Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / language / tests / src / Kernel / Migrate / d6 / MigrateLanguageContentMenuSettingsTest.php
diff --git a/web/core/modules/language/tests/src/Kernel/Migrate/d6/MigrateLanguageContentMenuSettingsTest.php b/web/core/modules/language/tests/src/Kernel/Migrate/d6/MigrateLanguageContentMenuSettingsTest.php
new file mode 100644 (file)
index 0000000..0148452
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+
+namespace Drupal\Tests\language\Kernel\Migrate\d6;
+
+use Drupal\language\Entity\ConfigurableLanguage;
+use Drupal\language\Entity\ContentLanguageSettings;
+use Drupal\Core\Language\LanguageInterface;
+use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
+
+/**
+ * Tests migration of the ability to translate menu content.
+ *
+ * @group migrate_drupal_6
+ */
+class MigrateLanguageContentMenuSettingsTest extends MigrateDrupal6TestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = [
+    'language',
+    'content_translation',
+    'menu_link_content',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    // Create some languages.
+    ConfigurableLanguage::createFromLangcode('en')->save();
+    ConfigurableLanguage::createFromLangcode('fr')->save();
+    $this->executeMigrations(['d6_language_content_menu_settings']);
+  }
+
+  /**
+   * Tests migration of menu translation ability.
+   */
+  public function testLanguageMenuContent() {
+    $config = ContentLanguageSettings::load('menu_link_content.menu_link_content');
+    $this->assertInstanceOf(ContentLanguageSettings::class, $config);
+    $this->assertSame('menu_link_content', $config->getTargetEntityTypeId());
+    $this->assertSame('menu_link_content', $config->getTargetBundle());
+    $this->assertSame(LanguageInterface::LANGCODE_SITE_DEFAULT, $config->getDefaultLangcode());
+    $this->assertTrue($config->isLanguageAlterable());
+
+    // Test that menus are not alterable when the i18nmenu is not enabled.
+    $this->sourceDatabase->update('system')
+      ->fields(['status' => 0])
+      ->condition('name', 'i18nmenu')
+      ->execute();
+
+    /** @var \Drupal\migrate\Plugin\MigrationInterface $migration */
+    $migration = $this->getMigration('d6_language_content_menu_settings');
+    // Indicate we're rerunning a migration that's already run.
+    $migration->getIdMap()->prepareUpdate();
+    $this->executeMigration($migration);
+
+    $config = ContentLanguageSettings::load('menu_link_content.menu_link_content');
+    $this->assertInstanceOf(ContentLanguageSettings::class, $config);
+    $this->assertSame('menu_link_content', $config->getTargetEntityTypeId());
+    $this->assertSame('menu_link_content', $config->getTargetBundle());
+    $this->assertSame(LanguageInterface::LANGCODE_SITE_DEFAULT, $config->getDefaultLangcode());
+    $this->assertFalse($config->isLanguageAlterable());
+  }
+
+}