annotate core/modules/node/tests/src/Functional/NodeAccessMenuLinkTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\node\Functional;
Chris@0 4
Chris@0 5 use Drupal\user\RoleInterface;
Chris@0 6
Chris@0 7 /**
Chris@0 8 * Tests the interaction of the node access system with menu links.
Chris@0 9 *
Chris@0 10 * @group node
Chris@0 11 */
Chris@0 12 class NodeAccessMenuLinkTest extends NodeTestBase {
Chris@0 13
Chris@0 14 /**
Chris@0 15 * Modules to enable.
Chris@0 16 *
Chris@0 17 * @var array
Chris@0 18 */
Chris@0 19 public static $modules = ['menu_ui', 'block'];
Chris@0 20
Chris@0 21 /**
Chris@0 22 * A user with permission to manage menu links and create nodes.
Chris@0 23 *
Chris@0 24 * @var \Drupal\user\UserInterface
Chris@0 25 */
Chris@0 26 protected $contentAdminUser;
Chris@0 27
Chris@0 28 protected function setUp() {
Chris@0 29 parent::setUp();
Chris@0 30
Chris@0 31 $this->drupalPlaceBlock('system_menu_block:main');
Chris@0 32
Chris@0 33 $this->contentAdminUser = $this->drupalCreateUser([
Chris@0 34 'access content',
Chris@0 35 'administer content types',
Chris@17 36 'administer menu',
Chris@0 37 ]);
Chris@0 38
Chris@0 39 $this->config('user.role.' . RoleInterface::ANONYMOUS_ID)->set('permissions', [])->save();
Chris@0 40 }
Chris@0 41
Chris@0 42 /**
Chris@0 43 * SA-CORE-2015-003: Tests menu links to nodes when node access is restricted.
Chris@0 44 */
Chris@0 45 public function testNodeAccessMenuLink() {
Chris@0 46
Chris@0 47 $menu_link_title = $this->randomString();
Chris@0 48
Chris@0 49 $this->drupalLogin($this->contentAdminUser);
Chris@0 50 $edit = [
Chris@0 51 'title[0][value]' => $this->randomString(),
Chris@0 52 'body[0][value]' => $this->randomString(),
Chris@0 53 'menu[enabled]' => 1,
Chris@0 54 'menu[title]' => $menu_link_title,
Chris@0 55 ];
Chris@0 56 $this->drupalPostForm('node/add/page', $edit, t('Save'));
Chris@0 57 $this->assertLink($menu_link_title);
Chris@0 58
Chris@0 59 // Ensure anonymous users without "access content" permission do not see
Chris@0 60 // this menu link.
Chris@0 61 $this->drupalLogout();
Chris@0 62 $this->drupalGet('');
Chris@0 63 $this->assertNoLink($menu_link_title);
Chris@0 64
Chris@0 65 // Ensure anonymous users with "access content" permission see this menu
Chris@0 66 // link.
Chris@0 67 $this->config('user.role.' . RoleInterface::ANONYMOUS_ID)->set('permissions', ['access content'])->save();
Chris@0 68 $this->drupalGet('');
Chris@0 69 $this->assertLink($menu_link_title);
Chris@0 70 }
Chris@0 71
Chris@0 72 }