annotate core/modules/user/tests/src/Functional/UserDeleteTest.php @ 17:129ea1e6d783

Update, including to Drupal core 8.6.10
author Chris Cannam
date Thu, 28 Feb 2019 13:21:36 +0000
parents 4c8ae668cc8c
children
rev   line source
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 }