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 }
|