annotate core/modules/user/tests/src/Kernel/UserDeleteTest.php @ 19:fa3358dc1485 tip

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