Version 1
[yaffs-website] / web / core / modules / menu_link_content / tests / src / Kernel / Migrate / d6 / MigrateMenuLinkTest.php
diff --git a/web/core/modules/menu_link_content/tests/src/Kernel/Migrate/d6/MigrateMenuLinkTest.php b/web/core/modules/menu_link_content/tests/src/Kernel/Migrate/d6/MigrateMenuLinkTest.php
new file mode 100644 (file)
index 0000000..f1368ed
--- /dev/null
@@ -0,0 +1,75 @@
+<?php
+
+namespace Drupal\Tests\menu_link_content\Kernel\Migrate\d6;
+
+use Drupal\menu_link_content\Entity\MenuLinkContent;
+use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
+
+/**
+ * Menu link migration.
+ *
+ * @group migrate_drupal_6
+ */
+class MigrateMenuLinkTest extends MigrateDrupal6TestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['menu_ui', 'menu_link_content'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installEntitySchema('menu_link_content');
+    $this->executeMigrations(['d6_menu', 'd6_menu_links']);
+  }
+
+  /**
+   * Tests migration of menu links.
+   */
+  public function testMenuLinks() {
+    $menu_link = MenuLinkContent::load(138);
+    $this->assertIdentical('Test 1', $menu_link->getTitle());
+    $this->assertIdentical('secondary-links', $menu_link->getMenuName());
+    $this->assertIdentical('Test menu link 1', $menu_link->getDescription());
+    $this->assertIdentical(TRUE, $menu_link->isEnabled());
+    $this->assertIdentical(FALSE, $menu_link->isExpanded());
+    $this->assertIdentical(['attributes' => ['title' => 'Test menu link 1']], $menu_link->link->options);
+    $this->assertIdentical('internal:/user/login', $menu_link->link->uri);
+    $this->assertIdentical(-50, $menu_link->getWeight());
+
+    $menu_link = MenuLinkContent::load(139);
+    $this->assertIdentical('Test 2', $menu_link->getTitle());
+    $this->assertIdentical('secondary-links', $menu_link->getMenuName());
+    $this->assertIdentical('Test menu link 2', $menu_link->getDescription());
+    $this->assertIdentical(TRUE, $menu_link->isEnabled());
+    $this->assertIdentical(TRUE, $menu_link->isExpanded());
+    $this->assertIdentical(['query' => 'foo=bar', 'attributes' => ['title' => 'Test menu link 2']], $menu_link->link->options);
+    $this->assertIdentical('internal:/admin', $menu_link->link->uri);
+    $this->assertIdentical(-49, $menu_link->getWeight());
+
+    $menu_link = MenuLinkContent::load(140);
+    $this->assertIdentical('Drupal.org', $menu_link->getTitle());
+    $this->assertIdentical('secondary-links', $menu_link->getMenuName());
+    $this->assertIdentical(NULL, $menu_link->getDescription());
+    $this->assertIdentical(TRUE, $menu_link->isEnabled());
+    $this->assertIdentical(FALSE, $menu_link->isExpanded());
+    $this->assertIdentical(['attributes' => ['title' => '']], $menu_link->link->options);
+    $this->assertIdentical('https://www.drupal.org', $menu_link->link->uri);
+    $this->assertIdentical(-50, $menu_link->getWeight());
+
+    // assert that missing title attributes don't stop or break migration.
+    $menu_link = MenuLinkContent::load(393);
+    $this->assertIdentical('Test 3', $menu_link->getTitle());
+    $this->assertIdentical('secondary-links', $menu_link->getMenuName());
+    $this->assertIdentical(NULL, $menu_link->getDescription());
+    $this->assertIdentical(TRUE, $menu_link->isEnabled());
+    $this->assertIdentical(FALSE, $menu_link->isExpanded());
+    $this->assertIdentical([], $menu_link->link->options);
+    $this->assertIdentical('internal:/user/login', $menu_link->link->uri);
+    $this->assertIdentical(-47, $menu_link->getWeight());
+  }
+
+}