Version 1
[yaffs-website] / web / core / modules / node / tests / src / Kernel / Plugin / migrate / source / d6 / NodeRevisionTest.php
diff --git a/web/core/modules/node/tests/src/Kernel/Plugin/migrate/source/d6/NodeRevisionTest.php b/web/core/modules/node/tests/src/Kernel/Plugin/migrate/source/d6/NodeRevisionTest.php
new file mode 100644 (file)
index 0000000..fbc28c5
--- /dev/null
@@ -0,0 +1,169 @@
+<?php
+
+namespace Drupal\Tests\node\Kernel\Plugin\migrate\source\d6;
+
+use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
+
+/**
+ * Tests D6 node revision source plugin.
+ *
+ * @covers \Drupal\node\Plugin\migrate\source\d6\NodeRevision
+ *
+ * @group node
+ */
+class NodeRevisionTest extends MigrateSqlSourceTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['node', 'user', 'migrate_drupal'];
+
+  /**
+   * {@inheritdoc}
+   */
+  public function providerSource() {
+    $tests = [];
+
+    // The source data.
+    $tests[0]['source_data']['node'] = [
+      [
+        'nid' => 1,
+        'type' => 'page',
+        'language' => 'en',
+        'status' => 1,
+        'created' => 1279051598,
+        'changed' => 1279051598,
+        'comment' => 2,
+        'promote' => 1,
+        'moderate' => 0,
+        'sticky' => 0,
+        'tnid' => 0,
+        'translate' => 0,
+        'vid' => 4,
+        'uid' => 1,
+        'title' => 'title for revision 1 (node 1)',
+      ],
+      [
+        'nid' => 2,
+        'type' => 'article',
+        'language' => 'en',
+        'status' => 1,
+        'created' => 1279290908,
+        'changed' => 1279308993,
+        'comment' => 0,
+        'promote' => 1,
+        'moderate' => 0,
+        'sticky' => 0,
+        'tnid' => 0,
+        'translate' => 0,
+        'vid' => 2,
+        'uid' => 1,
+        'title' => 'title for revision 2 (node 2)',
+      ],
+    ];
+    $tests[0]['source_data']['node_revisions'] = [
+      [
+        'nid' => 1,
+        'vid' => 1,
+        'uid' => 1,
+        'title' => 'title for revision 1 (node 1)',
+        'body' => 'body for revision 1 (node 1)',
+        'teaser' => 'teaser for revision 1 (node 1)',
+        'log' => 'log for revision 1 (node 1)',
+        'format' => 1,
+        'timestamp' => 1279051598,
+      ],
+      [
+        'nid' => 1,
+        'vid' => 3,
+        'uid' => 1,
+        'title' => 'title for revision 3 (node 1)',
+        'body' => 'body for revision 3 (node 1)',
+        'teaser' => 'teaser for revision 3 (node 1)',
+        'log' => 'log for revision 3 (node 1)',
+        'format' => 1,
+        'timestamp' => 1279051598,
+      ],
+      [
+        'nid' => 1,
+        'vid' => 4,
+        'uid' => 1,
+        'title' => 'title for revision 4 (node 1)',
+        'body' => 'body for revision 4 (node 1)',
+        'teaser' => 'teaser for revision 4 (node 1)',
+        'log' => 'log for revision 4 (node 1)',
+        'format' => 1,
+        'timestamp' => 1279051598,
+      ],
+      [
+        'nid' => 2,
+        'vid' => 2,
+        'uid' => 1,
+        'title' => 'title for revision 2 (node 2)',
+        'body' => 'body for revision 2 (node 2)',
+        'teaser' => 'teaser for revision 2 (node 2)',
+        'log' => 'log for revision 2 (node 2)',
+        'format' => 1,
+        'timestamp' => 1279308993,
+      ],
+    ];
+
+    // The expected results.
+    // There are three revisions of nid 1, but the NodeRevision source ignores
+    // the current revision. So only two revisions will be returned here. nid 2
+    // is ignored because it only has one revision (the current one).
+    $tests[0]['expected_data'] = [
+      [
+        // Node fields.
+        'nid' => 1,
+        'type' => 'page',
+        'language' => 'en',
+        'status' => 1,
+        'created' => 1279051598,
+        'changed' => 1279051598,
+        'comment' => 2,
+        'promote' => 1,
+        'moderate' => 0,
+        'sticky' => 0,
+        'tnid' => 1,
+        'translate' => 0,
+        // Node revision fields.
+        'vid' => 1,
+        'node_uid' => 1,
+        'revision_uid' => 1,
+        'title' => 'title for revision 1 (node 1)',
+        'body' => 'body for revision 1 (node 1)',
+        'teaser' => 'teaser for revision 1 (node 1)',
+        'log' => 'log for revision 1 (node 1)',
+        'format' => 1,
+      ],
+      [
+        // Node fields.
+        'nid' => 1,
+        'type' => 'page',
+        'language' => 'en',
+        'status' => 1,
+        'created' => 1279051598,
+        'changed' => 1279051598,
+        'comment' => 2,
+        'promote' => 1,
+        'moderate' => 0,
+        'sticky' => 0,
+        'tnid' => 1,
+        'translate' => 0,
+        // Node revision fields.
+        'vid' => 3,
+        'node_uid' => 1,
+        'revision_uid' => 1,
+        'title' => 'title for revision 3 (node 1)',
+        'body' => 'body for revision 3 (node 1)',
+        'teaser' => 'teaser for revision 3 (node 1)',
+        'log' => 'log for revision 3 (node 1)',
+        'format' => 1,
+      ],
+    ];
+
+    return $tests;
+  }
+
+}