function MigrateUserAdminPassTest::testAdminPasswordPreserved

Same name in other branches
  1. 8.9.x core/modules/user/tests/src/Kernel/Migrate/MigrateUserAdminPassTest.php \Drupal\Tests\user\Kernel\Migrate\MigrateUserAdminPassTest::testAdminPasswordPreserved()
  2. 10 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() {
    $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.