class MigrateDefaultLanguageTest
Same name in this branch
- 9 core/modules/language/tests/src/Kernel/Migrate/d6/MigrateDefaultLanguageTest.php \Drupal\Tests\language\Kernel\Migrate\d6\MigrateDefaultLanguageTest
Same name and namespace in other branches
- 10 core/modules/language/tests/src/Kernel/Migrate/d6/MigrateDefaultLanguageTest.php \Drupal\Tests\language\Kernel\Migrate\d6\MigrateDefaultLanguageTest
- 10 core/modules/language/tests/src/Kernel/Migrate/d7/MigrateDefaultLanguageTest.php \Drupal\Tests\language\Kernel\Migrate\d7\MigrateDefaultLanguageTest
- 11.x core/modules/language/tests/src/Kernel/Migrate/d6/MigrateDefaultLanguageTest.php \Drupal\Tests\language\Kernel\Migrate\d6\MigrateDefaultLanguageTest
- 11.x core/modules/language/tests/src/Kernel/Migrate/d7/MigrateDefaultLanguageTest.php \Drupal\Tests\language\Kernel\Migrate\d7\MigrateDefaultLanguageTest
- 8.9.x core/modules/language/tests/src/Kernel/Migrate/d6/MigrateDefaultLanguageTest.php \Drupal\Tests\language\Kernel\Migrate\d6\MigrateDefaultLanguageTest
- 8.9.x core/modules/language/tests/src/Kernel/Migrate/d7/MigrateDefaultLanguageTest.php \Drupal\Tests\language\Kernel\Migrate\d7\MigrateDefaultLanguageTest
Tests the default language variable migration.
@group migrate_drupal_7
Hierarchy
- class \Drupal\KernelTests\KernelTestBase implements \Drupal\Core\DependencyInjection\ServiceProviderInterface uses \Drupal\KernelTests\AssertLegacyTrait, \Drupal\KernelTests\AssertContentTrait, \Drupal\Tests\RandomGeneratorTrait, \Drupal\Tests\ConfigTestTrait, \Drupal\Tests\ExtensionListTestTrait, \Drupal\Tests\TestRequirementsTrait, \Drupal\Tests\Traits\PhpUnitWarnings, \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait extends \PHPUnit\Framework\TestCase
- class \Drupal\Tests\migrate\Kernel\MigrateTestBase implements \Drupal\migrate\MigrateMessageInterface extends \Drupal\KernelTests\KernelTestBase
- class \Drupal\Tests\migrate_drupal\Kernel\MigrateDrupalTestBase extends \Drupal\Tests\migrate\Kernel\MigrateTestBase
- class \Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase uses \Drupal\Tests\migrate_drupal\Traits\NodeMigrateTypeTestTrait extends \Drupal\Tests\migrate_drupal\Kernel\MigrateDrupalTestBase
- class \Drupal\Tests\language\Kernel\Migrate\d7\MigrateDefaultLanguageTest extends \Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase
- class \Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase uses \Drupal\Tests\migrate_drupal\Traits\NodeMigrateTypeTestTrait extends \Drupal\Tests\migrate_drupal\Kernel\MigrateDrupalTestBase
- class \Drupal\Tests\migrate_drupal\Kernel\MigrateDrupalTestBase extends \Drupal\Tests\migrate\Kernel\MigrateTestBase
- class \Drupal\Tests\migrate\Kernel\MigrateTestBase implements \Drupal\migrate\MigrateMessageInterface extends \Drupal\KernelTests\KernelTestBase
Expanded class hierarchy of MigrateDefaultLanguageTest
File
-
core/
modules/ language/ tests/ src/ Kernel/ Migrate/ d7/ MigrateDefaultLanguageTest.php, line 14
Namespace
Drupal\Tests\language\Kernel\Migrate\d7View source
class MigrateDefaultLanguageTest extends MigrateDrupal7TestBase {
/**
* {@inheritdoc}
*/
protected static $modules = [
'language',
];
/**
* Tests language_default migration with a non-existing language.
*/
public function testMigrationWithExistingLanguage() {
$this->setDefaultLanguage('is');
$this->startCollectingMessages();
$this->executeMigrations([
'language',
'default_language',
]);
// Tests the language is loaded and is the default language.
$default_language = ConfigurableLanguage::load('is');
$this->assertNotNull($default_language);
$this->assertSame('is', $this->config('system.site')
->get('default_langcode'));
}
/**
* Tests language_default migration with a non-existing language.
*/
public function testMigrationWithNonExistentLanguage() {
$this->setDefaultLanguage('tv');
$this->startCollectingMessages();
$this->executeMigrations([
'language',
'default_language',
]);
// Tests the migration log contains an error message.
$messages = $this->migration
->getIdMap()
->getMessages();
$count = 0;
foreach ($messages as $message) {
$count++;
$this->assertSame("The language 'tv' does not exist on this site.", $message->message);
$this->assertSame(MigrationInterface::MESSAGE_ERROR, (int) $message->level);
}
$this->assertSame(1, $count);
}
/**
* Tests language_default migration with unset default language variable.
*/
public function testMigrationWithUnsetVariable() {
// Delete the language_default variable.
$this->sourceDatabase
->delete('variable')
->condition('name', 'language_default')
->execute();
$this->startCollectingMessages();
$this->executeMigrations([
'language',
'default_language',
]);
$messages = $this->migration
->getIdMap()
->getMessages()
->fetchAll();
// Make sure there's no migration exceptions.
$this->assertEmpty($messages);
// Make sure the default langcode is 'en', as it was the default on D6 & D7.
$this->assertSame('en', $this->config('system.site')
->get('default_langcode'));
}
/**
* Helper method to test the migration.
*
* @param string $langcode
* The langcode of the default language.
*/
protected function setDefaultLanguage($langcode) {
// The default language of the test fixture is English. Change it to
// something else before migrating, to be sure that the source site
// default language is migrated.
$value = 'O:8:"stdClass":11:{s:8:"language";s:2:"' . $langcode . '";s:4:"name";s:6:"French";s:6:"native";s:6:"French";s:9:"direction";s:1:"0";s:7:"enabled";i:1;s:7:"plurals";s:1:"0";s:7:"formula";s:0:"";s:6:"domain";s:0:"";s:6:"prefix";s:0:"";s:6:"weight";s:1:"0";s:10:"javascript";s:0:"";}';
$this->sourceDatabase
->update('variable')
->fields([
'value' => $value,
])
->condition('name', 'language_default')
->execute();
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.