3 namespace Drupal\Tests\language\Kernel\Migrate\d6;
5 use Drupal\language\Entity\ConfigurableLanguage;
6 use Drupal\language\Entity\ContentLanguageSettings;
7 use Drupal\Core\Language\LanguageInterface;
8 use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
11 * Tests migration of the ability to translate menu content.
13 * @group migrate_drupal_6
15 class MigrateLanguageContentMenuSettingsTest extends MigrateDrupal6TestBase {
20 public static $modules = [
22 'content_translation',
29 protected function setUp() {
31 // Create some languages.
32 ConfigurableLanguage::createFromLangcode('en')->save();
33 ConfigurableLanguage::createFromLangcode('fr')->save();
34 $this->executeMigrations(['d6_language_content_menu_settings']);
38 * Tests migration of menu translation ability.
40 public function testLanguageMenuContent() {
41 $config = ContentLanguageSettings::load('menu_link_content.menu_link_content');
42 $this->assertInstanceOf(ContentLanguageSettings::class, $config);
43 $this->assertSame('menu_link_content', $config->getTargetEntityTypeId());
44 $this->assertSame('menu_link_content', $config->getTargetBundle());
45 $this->assertSame(LanguageInterface::LANGCODE_SITE_DEFAULT, $config->getDefaultLangcode());
46 $this->assertTrue($config->isLanguageAlterable());
48 // Test that menus are not alterable when the i18nmenu is not enabled.
49 $this->sourceDatabase->update('system')
50 ->fields(['status' => 0])
51 ->condition('name', 'i18nmenu')
54 /** @var \Drupal\migrate\Plugin\MigrationInterface $migration */
55 $migration = $this->getMigration('d6_language_content_menu_settings');
56 // Indicate we're rerunning a migration that's already run.
57 $migration->getIdMap()->prepareUpdate();
58 $this->executeMigration($migration);
60 $config = ContentLanguageSettings::load('menu_link_content.menu_link_content');
61 $this->assertInstanceOf(ContentLanguageSettings::class, $config);
62 $this->assertSame('menu_link_content', $config->getTargetEntityTypeId());
63 $this->assertSame('menu_link_content', $config->getTargetBundle());
64 $this->assertSame(LanguageInterface::LANGCODE_SITE_DEFAULT, $config->getDefaultLangcode());
65 $this->assertFalse($config->isLanguageAlterable());