Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Tests\user\Functional;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\Tests\BrowserTestBase;
|
Chris@0
|
6 use Drupal\user\Entity\User;
|
Chris@0
|
7
|
Chris@0
|
8 /**
|
Chris@0
|
9 * Tests account deleting of users.
|
Chris@0
|
10 *
|
Chris@0
|
11 * @group user
|
Chris@0
|
12 */
|
Chris@0
|
13 class UserDeleteTest extends BrowserTestBase {
|
Chris@0
|
14
|
Chris@0
|
15 /**
|
Chris@0
|
16 * Test deleting multiple users.
|
Chris@0
|
17 */
|
Chris@0
|
18 public function testUserDeleteMultiple() {
|
Chris@0
|
19 // Create a few users with permissions, so roles will be created.
|
Chris@0
|
20 $user_a = $this->drupalCreateUser(['access user profiles']);
|
Chris@0
|
21 $user_b = $this->drupalCreateUser(['access user profiles']);
|
Chris@0
|
22 $user_c = $this->drupalCreateUser(['access user profiles']);
|
Chris@0
|
23
|
Chris@0
|
24 $uids = [$user_a->id(), $user_b->id(), $user_c->id()];
|
Chris@0
|
25
|
Chris@0
|
26 // These users should have a role
|
Chris@0
|
27 $query = db_select('user__roles', 'r');
|
Chris@0
|
28 $roles_created = $query
|
Chris@0
|
29 ->fields('r', ['entity_id'])
|
Chris@0
|
30 ->condition('entity_id', $uids, 'IN')
|
Chris@0
|
31 ->countQuery()
|
Chris@0
|
32 ->execute()
|
Chris@0
|
33 ->fetchField();
|
Chris@0
|
34
|
Chris@0
|
35 $this->assertTrue($roles_created > 0, 'Role assignments created for new users and deletion of role assignments can be tested');
|
Chris@0
|
36 // We should be able to load one of the users.
|
Chris@0
|
37 $this->assertTrue(User::load($user_a->id()), 'User is created and deletion of user can be tested');
|
Chris@0
|
38 // Delete the users.
|
Chris@0
|
39 user_delete_multiple($uids);
|
Chris@0
|
40 // Test if the roles assignments are deleted.
|
Chris@0
|
41 $query = db_select('user__roles', 'r');
|
Chris@0
|
42 $roles_after_deletion = $query
|
Chris@0
|
43 ->fields('r', ['entity_id'])
|
Chris@0
|
44 ->condition('entity_id', $uids, 'IN')
|
Chris@0
|
45 ->countQuery()
|
Chris@0
|
46 ->execute()
|
Chris@0
|
47 ->fetchField();
|
Chris@0
|
48 $this->assertTrue($roles_after_deletion == 0, 'Role assignments deleted along with users');
|
Chris@0
|
49 // Test if the users are deleted, User::load() will return NULL.
|
Chris@0
|
50 $this->assertNull(User::load($user_a->id()), format_string('User with id @uid deleted.', ['@uid' => $user_a->id()]));
|
Chris@0
|
51 $this->assertNull(User::load($user_b->id()), format_string('User with id @uid deleted.', ['@uid' => $user_b->id()]));
|
Chris@0
|
52 $this->assertNull(User::load($user_c->id()), format_string('User with id @uid deleted.', ['@uid' => $user_c->id()]));
|
Chris@0
|
53 }
|
Chris@0
|
54
|
Chris@0
|
55 }
|