NavigationTopBarPageContextTest.php
Namespace
Drupal\Tests\navigation\FunctionalFile
-
core/
modules/ navigation/ tests/ src/ Functional/ NavigationTopBarPageContextTest.php
View source
<?php
declare (strict_types=1);
namespace Drupal\Tests\navigation\Functional;
use Drupal\Core\Url;
use Drupal\Tests\BrowserTestBase;
use Drupal\Tests\node\Traits\ContentTypeCreationTrait;
use Drupal\Tests\node\Traits\NodeCreationTrait;
use Drupal\user\UserInterface;
/**
* Tests the PageContext top bar item functionality.
*
* @group navigation
*/
class NavigationTopBarPageContextTest extends BrowserTestBase {
use ContentTypeCreationTrait;
use NodeCreationTrait;
/**
* {@inheritdoc}
*/
protected static $modules = [
'node',
'navigation',
'navigation_top_bar',
'test_page_test',
];
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* An admin user to configure the test environment.
*
* @var \Drupal\user\UserInterface
*/
protected UserInterface $adminUser;
/**
* {@inheritdoc}
*/
protected function setUp() : void {
parent::setUp();
// Create and log in an administrative user.
$this->adminUser = $this->drupalCreateUser([
'access navigation',
'bypass node access',
]);
$this->drupalLogin($this->adminUser);
// Ensure the 'article' content type exists.
$this->createContentType([
'type' => 'article',
'name' => 'Article',
]);
}
/**
* Tests the PageContext top bar item output for a published node.
*/
public function testPageContextTopBarItemNode() : void {
// Create a published node entity.
$node = $this->createNode([
'type' => 'article',
'title' => 'No easy twist on the bow',
'status' => 1,
'uid' => $this->adminUser
->id(),
]);
$test_page_url = Url::fromRoute('test_page_test.test_page');
$this->drupalGet($test_page_url);
// Ensure the top bar item is not present.
$this->assertSession()
->elementNotExists('css', '.top-bar .top-bar__context .toolbar-title');
// Test the PageContext output for the published node.
$this->drupalGet($node->toUrl());
// Ensure the top bar exists and is valid.
$this->assertSession()
->elementTextEquals('css', '.top-bar .top-bar__context .toolbar-title', 'No easy twist on the bow');
$this->assertSession()
->elementTextEquals('css', '.top-bar .top-bar__context .toolbar-badge', 'Published');
$this->drupalGet($node->toUrl('edit-form'));
// Ensure the top bar exists and is valid.
$this->assertSession()
->elementTextEquals('css', '.top-bar .top-bar__context .toolbar-title', 'No easy twist on the bow');
$this->assertSession()
->elementTextEquals('css', '.top-bar .top-bar__context .toolbar-badge', 'Published');
// Unpublish the node.
$node->setUnpublished();
$node->save();
// Test the PageContext output for the unpublished node.
$this->drupalGet($node->toUrl());
// Ensure the top bar exists and is valid.
$this->assertSession()
->elementTextEquals('css', '.top-bar .top-bar__context .toolbar-title', 'No easy twist on the bow');
$this->assertSession()
->elementTextEquals('css', '.top-bar .top-bar__context .toolbar-badge', 'Unpublished');
$this->drupalGet($node->toUrl('edit-form'));
// Ensure the top bar exists and is valid.
$this->assertSession()
->elementTextEquals('css', '.top-bar .top-bar__context .toolbar-title', 'No easy twist on the bow');
$this->assertSession()
->elementTextEquals('css', '.top-bar .top-bar__context .toolbar-badge', 'Unpublished');
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
NavigationTopBarPageContextTest | Tests the PageContext top bar item functionality. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.