MenuActiveTrail403Test.php in Drupal 9
File
core/tests/Drupal/FunctionalTests/Menu/MenuActiveTrail403Test.php
View source
<?php
namespace Drupal\FunctionalTests\Menu;
use Drupal\Core\Url;
use Drupal\menu_link_content\Entity\MenuLinkContent;
use Drupal\Tests\BrowserTestBase;
class MenuActiveTrail403Test extends BrowserTestBase {
protected $defaultTheme = 'stark';
protected $privilegedUser;
protected $menu = 'footer';
protected static $modules = [
'system',
'block',
'menu_link_content',
];
protected function setUp() : void {
parent::setUp();
$this
->drupalPlaceBlock('system_menu_block:' . $this->menu, [
'level' => 2,
]);
$parent_menu_link_content = MenuLinkContent::create([
'title' => 'Admin overview',
'menu_name' => 'footer',
'link' => [
'uri' => 'route:system.admin',
],
]);
$parent_menu_link_content
->save();
$menu_link_content = MenuLinkContent::create([
'title' => 'Link to Status page',
'menu_name' => 'footer',
'link' => [
'uri' => 'route:system.status',
],
'parent' => 'menu_link_content:' . $parent_menu_link_content
->uuid(),
]);
$menu_link_content
->save();
$privileged_permissions = [
'access administration pages',
'administer site configuration',
];
$this->privilegedUser = $this
->drupalCreateUser($privileged_permissions);
}
public function testMenuActiveTrail403Cache() {
$this
->drupalLogin($this->privilegedUser);
$system_status_url = Url::fromRoute('system.status');
$this
->drupalGet($system_status_url);
$this
->assertSession()
->statusCodeEquals(200);
$this
->assertSession()
->pageTextContains('Link to Status page');
$this
->drupalLogout();
$this
->drupalGet($system_status_url);
$this
->assertSession()
->statusCodeEquals(403);
$this
->drupalLogin($this->privilegedUser);
$system_status_url = Url::fromRoute('system.status');
$this
->drupalGet($system_status_url);
$this
->assertSession()
->statusCodeEquals(200);
$this
->assertSession()
->pageTextContains('Link to Status page');
}
}