Mercurial > hg > isophonics-drupal-site
comparison core/modules/media/tests/src/Functional/MediaAccessTest.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | 4c8ae668cc8c |
children | 129ea1e6d783 |
comparison
equal
deleted
inserted
replaced
13:5fb285c0d0e3 | 14:1fec387a4317 |
---|---|
10 /** | 10 /** |
11 * Basic access tests for Media. | 11 * Basic access tests for Media. |
12 * | 12 * |
13 * @group media | 13 * @group media |
14 */ | 14 */ |
15 class MediaAccessTest extends MediaUiFunctionalTest { | 15 class MediaAccessTest extends MediaFunctionalTestBase { |
16 | 16 |
17 use AssertPageCacheContextsAndTagsTrait; | 17 use AssertPageCacheContextsAndTagsTrait; |
18 | |
19 /** | |
20 * {@inheritdoc} | |
21 */ | |
22 public static $modules = [ | |
23 'block', | |
24 'media_test_source', | |
25 ]; | |
26 | |
27 /** | |
28 * {@inheritdoc} | |
29 */ | |
30 protected function setUp() { | |
31 parent::setUp(); | |
32 // This is needed to provide the user cache context for a below assertion. | |
33 $this->drupalPlaceBlock('local_tasks_block'); | |
34 } | |
18 | 35 |
19 /** | 36 /** |
20 * Test some access control functionality. | 37 * Test some access control functionality. |
21 */ | 38 */ |
22 public function testMediaAccess() { | 39 public function testMediaAccess() { |
62 $assert_session->statusCodeEquals(403); | 79 $assert_session->statusCodeEquals(403); |
63 $access_result = $media->access('view', NULL, TRUE); | 80 $access_result = $media->access('view', NULL, TRUE); |
64 $this->assertSame("The 'view media' permission is required and the media item must be published.", $access_result->getReason()); | 81 $this->assertSame("The 'view media' permission is required and the media item must be published.", $access_result->getReason()); |
65 $this->grantPermissions($role, ['view media']); | 82 $this->grantPermissions($role, ['view media']); |
66 $this->drupalGet('media/' . $media->id()); | 83 $this->drupalGet('media/' . $media->id()); |
67 $this->assertCacheContext('user'); | 84 $this->assertCacheContext('user.permissions'); |
68 $assert_session->statusCodeEquals(200); | 85 $assert_session->statusCodeEquals(200); |
86 | |
87 // Test 'create BUNDLE media' permission. | |
88 $this->drupalGet('media/add/' . $media_type->id()); | |
89 $this->assertCacheContext('user.permissions'); | |
90 $assert_session->statusCodeEquals(403); | |
91 $permissions = ['create ' . $media_type->id() . ' media']; | |
92 $this->grantPermissions($role, $permissions); | |
93 $this->drupalGet('media/add/' . $media_type->id()); | |
94 $this->assertCacheContext('user.permissions'); | |
95 $assert_session->statusCodeEquals(200); | |
96 user_role_revoke_permissions($role->id(), $permissions); | |
97 $role = Role::load(RoleInterface::AUTHENTICATED_ID); | |
69 | 98 |
70 // Test 'create media' permission. | 99 // Test 'create media' permission. |
71 $this->drupalGet('media/add/' . $media_type->id()); | 100 $this->drupalGet('media/add/' . $media_type->id()); |
72 $this->assertCacheContext('user.permissions'); | 101 $this->assertCacheContext('user.permissions'); |
73 $assert_session->statusCodeEquals(403); | 102 $assert_session->statusCodeEquals(403); |
74 $this->grantPermissions($role, ['create media']); | 103 $permissions = ['create media']; |
104 $this->grantPermissions($role, $permissions); | |
75 $this->drupalGet('media/add/' . $media_type->id()); | 105 $this->drupalGet('media/add/' . $media_type->id()); |
76 $this->assertCacheContext('user.permissions'); | 106 $this->assertCacheContext('user.permissions'); |
77 $assert_session->statusCodeEquals(200); | 107 $assert_session->statusCodeEquals(200); |
108 user_role_revoke_permissions($role->id(), $permissions); | |
109 $role = Role::load(RoleInterface::AUTHENTICATED_ID); | |
78 | 110 |
79 // Test 'update media' and 'delete media' permissions. | 111 // Test 'edit own BUNDLE media' and 'delete own BUNDLE media' permissions. |
80 $this->drupalGet('media/' . $user_media->id() . '/edit'); | 112 $this->drupalGet('media/' . $user_media->id() . '/edit'); |
81 $this->assertCacheContext('user'); | 113 $this->assertCacheContext('user.permissions'); |
82 $assert_session->statusCodeEquals(403); | 114 $assert_session->statusCodeEquals(403); |
83 $this->drupalGet('media/' . $user_media->id() . '/delete'); | 115 $this->drupalGet('media/' . $user_media->id() . '/delete'); |
84 $this->assertCacheContext('user'); | 116 $this->assertCacheContext('user.permissions'); |
85 $assert_session->statusCodeEquals(403); | 117 $assert_session->statusCodeEquals(403); |
86 $this->grantPermissions($role, ['update media']); | 118 $permissions = [ |
87 $this->grantPermissions($role, ['delete media']); | 119 'edit own ' . $user_media->bundle() . ' media', |
120 'delete own ' . $user_media->bundle() . ' media', | |
121 ]; | |
122 $this->grantPermissions($role, $permissions); | |
88 $this->drupalGet('media/' . $user_media->id() . '/edit'); | 123 $this->drupalGet('media/' . $user_media->id() . '/edit'); |
89 $this->assertCacheContext('user'); | 124 $this->assertCacheContext('user'); |
90 $assert_session->statusCodeEquals(200); | 125 $assert_session->statusCodeEquals(200); |
91 $this->drupalGet('media/' . $user_media->id() . '/delete'); | 126 $this->drupalGet('media/' . $user_media->id() . '/delete'); |
92 $this->assertCacheContext('user'); | 127 $this->assertCacheContext('user'); |
93 $assert_session->statusCodeEquals(200); | 128 $assert_session->statusCodeEquals(200); |
129 user_role_revoke_permissions($role->id(), $permissions); | |
130 $role = Role::load(RoleInterface::AUTHENTICATED_ID); | |
94 | 131 |
95 // Test 'update any media' and 'delete any media' permissions. | 132 // Test 'edit any BUNDLE media' and 'delete any BUNDLE media' permissions. |
96 $this->drupalGet('media/' . $media->id() . '/edit'); | 133 $this->drupalGet('media/' . $media->id() . '/edit'); |
97 $this->assertCacheContext('user'); | 134 $this->assertCacheContext('user.permissions'); |
98 $assert_session->statusCodeEquals(403); | 135 $assert_session->statusCodeEquals(403); |
99 $this->drupalGet('media/' . $media->id() . '/delete'); | 136 $this->drupalGet('media/' . $media->id() . '/delete'); |
100 $this->assertCacheContext('user'); | 137 $this->assertCacheContext('user.permissions'); |
101 $assert_session->statusCodeEquals(403); | 138 $assert_session->statusCodeEquals(403); |
102 $this->grantPermissions($role, ['update any media']); | 139 $permissions = [ |
103 $this->grantPermissions($role, ['delete any media']); | 140 'edit any ' . $media->bundle() . ' media', |
141 'delete any ' . $media->bundle() . ' media', | |
142 ]; | |
143 $this->grantPermissions($role, $permissions); | |
104 $this->drupalGet('media/' . $media->id() . '/edit'); | 144 $this->drupalGet('media/' . $media->id() . '/edit'); |
105 $this->assertCacheContext('user.permissions'); | 145 $this->assertCacheContext('user.permissions'); |
106 $assert_session->statusCodeEquals(200); | 146 $assert_session->statusCodeEquals(200); |
107 $this->drupalGet('media/' . $media->id() . '/delete'); | 147 $this->drupalGet('media/' . $media->id() . '/delete'); |
108 $this->assertCacheContext('user.permissions'); | 148 $this->assertCacheContext('user.permissions'); |