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