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 }
|