public function MigrateUserConfigsTest::testUserSettings in Drupal 8
Tests migration of user variables to user.settings.yml.
File
- core/
modules/ user/ tests/ src/ Kernel/ Migrate/ d6/ MigrateUserConfigsTest.php, line 55
Class
- MigrateUserConfigsTest
- Upgrade variables to user.*.yml.
Namespace
Drupal\Tests\user\Kernel\Migrate\d6Code
public function testUserSettings() {
$config = $this
->config('user.settings');
$this
->assertIdentical(TRUE, $config
->get('notify.status_blocked'));
$this
->assertIdentical(FALSE, $config
->get('notify.status_activated'));
$this
->assertIdentical(FALSE, $config
->get('verify_mail'));
$this
->assertIdentical('admin_only', $config
->get('register'));
$this
->assertIdentical('Guest', $config
->get('anonymous'));
// Tests migration of user_register using the AccountSettingsForm.
// Map D6 value to D8 value
$user_register_map = [
[
0,
UserInterface::REGISTER_ADMINISTRATORS_ONLY,
],
[
1,
UserInterface::REGISTER_VISITORS,
],
[
2,
UserInterface::REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL,
],
];
foreach ($user_register_map as $map) {
// Tests migration of user_register = 1
Database::getConnection('default', 'migrate')
->update('variable')
->fields([
'value' => serialize($map[0]),
])
->condition('name', 'user_register')
->execute();
/** @var \Drupal\migrate\Plugin\MigrationInterface $migration */
$migration = $this
->getMigration('d6_user_settings');
// Indicate we're rerunning a migration that's already run.
$migration
->getIdMap()
->prepareUpdate();
$this
->executeMigration($migration);
$form = $this->container
->get('form_builder')
->getForm(AccountSettingsForm::create($this->container));
$this
->assertIdentical($map[1], $form['registration_cancellation']['user_register']['#value']);
}
}