annotate core/modules/user/tests/src/Functional/UserSaveTest.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
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 saving for arbitrary new uid.
Chris@0 10 *
Chris@0 11 * @group user
Chris@0 12 */
Chris@0 13 class UserSaveTest extends BrowserTestBase {
Chris@0 14
Chris@0 15 /**
Chris@0 16 * Test creating a user with arbitrary uid.
Chris@0 17 */
Chris@0 18 public function testUserImport() {
Chris@0 19 // User ID must be a number that is not in the database.
Chris@0 20
Chris@0 21 $uids = \Drupal::entityManager()->getStorage('user')->getQuery()
Chris@0 22 ->sort('uid', 'DESC')
Chris@0 23 ->range(0, 1)
Chris@0 24 ->execute();
Chris@0 25 $max_uid = reset($uids);
Chris@0 26 $test_uid = $max_uid + mt_rand(1000, 1000000);
Chris@0 27 $test_name = $this->randomMachineName();
Chris@0 28
Chris@0 29 // Create the base user, based on drupalCreateUser().
Chris@0 30 $user = User::create([
Chris@0 31 'name' => $test_name,
Chris@0 32 'uid' => $test_uid,
Chris@0 33 'mail' => $test_name . '@example.com',
Chris@0 34 'pass' => user_password(),
Chris@0 35 'status' => 1,
Chris@0 36 ]);
Chris@0 37 $user->enforceIsNew();
Chris@0 38 $user->save();
Chris@0 39
Chris@0 40 // Test if created user exists.
Chris@0 41 $user_by_uid = User::load($test_uid);
Chris@0 42 $this->assertTrue($user_by_uid, 'Loading user by uid.');
Chris@0 43
Chris@0 44 $user_by_name = user_load_by_name($test_name);
Chris@0 45 $this->assertTrue($user_by_name, 'Loading user by name.');
Chris@0 46 }
Chris@0 47
Chris@0 48 /**
Chris@0 49 * Ensures that an existing password is unset after the user was saved.
Chris@0 50 */
Chris@0 51 public function testExistingPasswordRemoval() {
Chris@0 52 /** @var \Drupal\user\Entity\User $user */
Chris@0 53 $user = User::create(['name' => $this->randomMachineName()]);
Chris@0 54 $user->save();
Chris@0 55 $user->setExistingPassword('existing password');
Chris@0 56 $this->assertNotNull($user->pass->existing);
Chris@0 57 $user->save();
Chris@0 58 $this->assertNull($user->pass->existing);
Chris@0 59 }
Chris@0 60
Chris@0 61 }