function MigrateUserAdminPassTest::testAdminPasswordPreserved

Same name and namespace in other branches
  1. 9 core/modules/user/tests/src/Kernel/Migrate/MigrateUserAdminPassTest.php \Drupal\Tests\user\Kernel\Migrate\MigrateUserAdminPassTest::testAdminPasswordPreserved()
  2. 8.9.x core/modules/user/tests/src/Kernel/Migrate/MigrateUserAdminPassTest.php \Drupal\Tests\user\Kernel\Migrate\MigrateUserAdminPassTest::testAdminPasswordPreserved()
  3. 11.x core/modules/user/tests/src/Kernel/Migrate/MigrateUserAdminPassTest.php \Drupal\Tests\user\Kernel\Migrate\MigrateUserAdminPassTest::testAdminPasswordPreserved()

Tests preserving the admin user's password.

File

core/modules/user/tests/src/Kernel/Migrate/MigrateUserAdminPassTest.php, line 59

Class

MigrateUserAdminPassTest
Tests preservation of root account password.

Namespace

Drupal\Tests\user\Kernel\Migrate

Code

public function testAdminPasswordPreserved() : void {
  $user_data_rows = [
    [
      'id' => '1',
      'username' => 'site_admin',
      'password' => 'new_password',
      'email' => 'site_admin@example.com',
    ],
    [
      'id' => '2',
      'username' => 'random_user',
      'password' => 'random_password',
      'email' => 'random_user@example.com',
    ],
  ];
  $ids = [
    'id' => [
      'type' => 'integer',
    ],
  ];
  $definition = [
    'id' => 'users',
    'migration_tags' => [
      'Admin password test',
    ],
    'source' => [
      'plugin' => 'embedded_data',
      'data_rows' => $user_data_rows,
      'ids' => $ids,
    ],
    'process' => [
      'uid' => 'id',
      'name' => 'username',
      'mail' => 'email',
      'pass' => 'password',
    ],
    'destination' => [
      'plugin' => 'entity:user',
    ],
  ];
  $migration = \Drupal::service('plugin.manager.migration')->createStubMigration($definition);
  $this->executeMigration($migration);
  // Verify that admin username and email were changed, but password was not.
  /** @var \Drupal\user\Entity\User $admin_account */
  $admin_account = User::load(1);
  $this->assertSame('site_admin', $admin_account->getAccountName());
  $this->assertSame('site_admin@example.com', $admin_account->getEmail());
  $this->assertSame($this->originalPasswords[1], $admin_account->getPassword());
  // Verify that everything changed for the regular user.
  /** @var \Drupal\user\Entity\User $user_account */
  $user_account = User::load(2);
  $this->assertSame('random_user', $user_account->getAccountName());
  $this->assertSame('random_user@example.com', $user_account->getEmail());
  $this->assertNotSame($this->originalPasswords[2], $user_account->getPassword());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.