Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Tests\user\Kernel;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\KernelTests\KernelTestBase;
|
Chris@0
|
6 use Drupal\user\Entity\User;
|
Chris@0
|
7
|
Chris@0
|
8 /**
|
Chris@0
|
9 * Tests the handling of user_role entity from the user module
|
Chris@0
|
10 *
|
Chris@0
|
11 * @group user
|
Chris@0
|
12 */
|
Chris@0
|
13 class UserRoleDeleteTest extends KernelTestBase {
|
Chris@0
|
14
|
Chris@0
|
15 /**
|
Chris@0
|
16 * Modules to enable.
|
Chris@0
|
17 *
|
Chris@0
|
18 * @var array
|
Chris@0
|
19 */
|
Chris@0
|
20 public static $modules = ['system', 'user', 'field'];
|
Chris@0
|
21
|
Chris@0
|
22 protected function setUp() {
|
Chris@0
|
23 parent::setUp();
|
Chris@0
|
24 $this->installEntitySchema('user');
|
Chris@0
|
25 }
|
Chris@0
|
26
|
Chris@0
|
27 /**
|
Chris@0
|
28 * Tests removal of role references on role entity delete.
|
Chris@0
|
29 *
|
Chris@0
|
30 * @see user_user_role_delete()
|
Chris@0
|
31 */
|
Chris@0
|
32 public function testRoleDeleteUserRoleReferenceDelete() {
|
Chris@0
|
33 // Create two test roles.
|
Chris@0
|
34 $role_storage = $this->container->get('entity.manager')->getStorage('user_role');
|
Chris@0
|
35 $role_storage->create(['id' => 'test_role_one'])->save();
|
Chris@0
|
36 $role_storage->create(['id' => 'test_role_two'])->save();
|
Chris@0
|
37
|
Chris@0
|
38 // Create user and assign both test roles.
|
Chris@0
|
39 $values = [
|
Chris@0
|
40 'uid' => 1,
|
Chris@0
|
41 'name' => $this->randomString(),
|
Chris@0
|
42 'roles' => ['test_role_one', 'test_role_two'],
|
Chris@0
|
43 ];
|
Chris@0
|
44 $user = User::create($values);
|
Chris@0
|
45 $user->save();
|
Chris@0
|
46
|
Chris@0
|
47 // Check that user has both roles.
|
Chris@0
|
48 $this->assertTrue($user->hasRole('test_role_one'));
|
Chris@0
|
49 $this->assertTrue($user->hasRole('test_role_two'));
|
Chris@0
|
50
|
Chris@0
|
51 // Delete test role one.
|
Chris@0
|
52 $test_role_one = $role_storage->load('test_role_one');
|
Chris@0
|
53 $test_role_one->delete();
|
Chris@0
|
54
|
Chris@0
|
55 // Load user again from the database.
|
Chris@0
|
56 $user = User::load($user->id());
|
Chris@0
|
57
|
Chris@0
|
58 // Check that user does not have role one anymore, still has role two.
|
Chris@0
|
59 $this->assertFalse($user->hasRole('test_role_one'));
|
Chris@0
|
60 $this->assertTrue($user->hasRole('test_role_two'));
|
Chris@0
|
61
|
Chris@0
|
62 // Create new role with same name.
|
Chris@0
|
63 $role_storage->create(['id' => 'test_role_one'])->save();
|
Chris@0
|
64
|
Chris@0
|
65 // Load user again from the database.
|
Chris@0
|
66 $user = User::load($user->id());
|
Chris@0
|
67
|
Chris@0
|
68 // Check that user does not have role one.
|
Chris@0
|
69 $this->assertFalse($user->hasRole('test_role_one'));
|
Chris@0
|
70 $this->assertTrue($user->hasRole('test_role_two'));
|
Chris@0
|
71
|
Chris@0
|
72 }
|
Chris@0
|
73
|
Chris@0
|
74 }
|