annotate core/modules/user/tests/src/Kernel/UserDeleteTest.php @ 5:12f9dff5fda9 tip

Update to Drupal core 8.7.1
author Chris Cannam
date Thu, 09 May 2019 15:34:47 +0100
parents
children
rev   line source
Chris@5 1 <?php
Chris@5 2
Chris@5 3 namespace Drupal\Tests\user\Kernel;
Chris@5 4
Chris@5 5 use Drupal\Core\Database\Database;
Chris@5 6 use Drupal\KernelTests\KernelTestBase;
Chris@5 7 use Drupal\Tests\user\Traits\UserCreationTrait;
Chris@5 8 use Drupal\user\Entity\User;
Chris@5 9
Chris@5 10 /**
Chris@5 11 * Tests deleting of user accounts.
Chris@5 12 *
Chris@5 13 * @group user
Chris@5 14 */
Chris@5 15 class UserDeleteTest extends KernelTestBase {
Chris@5 16
Chris@5 17 use UserCreationTrait;
Chris@5 18
Chris@5 19 /**
Chris@5 20 * {@inheritdoc}
Chris@5 21 */
Chris@5 22 protected static $modules = [
Chris@5 23 'system',
Chris@5 24 'user',
Chris@5 25 ];
Chris@5 26
Chris@5 27 /**
Chris@5 28 * Test deleting multiple users.
Chris@5 29 */
Chris@5 30 public function testUserDeleteMultiple() {
Chris@5 31 $this->installSchema('system', ['sequences']);
Chris@5 32 $this->installSchema('user', ['users_data']);
Chris@5 33 $this->installEntitySchema('user');
Chris@5 34
Chris@5 35 // Create a few users with permissions, so roles will be created.
Chris@5 36 $user_a = $this->createUser(['access user profiles']);
Chris@5 37 $user_b = $this->createUser(['access user profiles']);
Chris@5 38 $user_c = $this->createUser(['access user profiles']);
Chris@5 39
Chris@5 40 $uids = [$user_a->id(), $user_b->id(), $user_c->id()];
Chris@5 41
Chris@5 42 // These users should have a role
Chris@5 43 $connection = Database::getConnection();
Chris@5 44 $query = $connection->select('user__roles', 'r');
Chris@5 45 $roles_created = $query
Chris@5 46 ->fields('r', ['entity_id'])
Chris@5 47 ->condition('entity_id', $uids, 'IN')
Chris@5 48 ->countQuery()
Chris@5 49 ->execute()
Chris@5 50 ->fetchField();
Chris@5 51
Chris@5 52 $this->assertGreaterThan(0, $roles_created);
Chris@5 53 // We should be able to load one of the users.
Chris@5 54 $this->assertNotNull(User::load($user_a->id()));
Chris@5 55 // Delete the users.
Chris@5 56 user_delete_multiple($uids);
Chris@5 57 // Test if the roles assignments are deleted.
Chris@5 58 $query = $connection->select('user__roles', 'r');
Chris@5 59 $roles_after_deletion = $query
Chris@5 60 ->fields('r', ['entity_id'])
Chris@5 61 ->condition('entity_id', $uids, 'IN')
Chris@5 62 ->countQuery()
Chris@5 63 ->execute()
Chris@5 64 ->fetchField();
Chris@5 65 $this->assertEquals(0, $roles_after_deletion);
Chris@5 66 // Test if the users are deleted, User::load() will return NULL.
Chris@5 67 $this->assertNull(User::load($user_a->id()));
Chris@5 68 $this->assertNull(User::load($user_b->id()));
Chris@5 69 $this->assertNull(User::load($user_c->id()));
Chris@5 70 }
Chris@5 71
Chris@5 72 }