public function MigrateNodeTest::testNode in Drupal 10
Same name in this branch
- 10 core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php \Drupal\Tests\node\Kernel\Migrate\d6\MigrateNodeTest::testNode()
- 10 core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php \Drupal\Tests\node\Kernel\Migrate\d7\MigrateNodeTest::testNode()
Same name and namespace in other branches
- 8 core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php \Drupal\Tests\node\Kernel\Migrate\d7\MigrateNodeTest::testNode()
- 9 core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php \Drupal\Tests\node\Kernel\Migrate\d7\MigrateNodeTest::testNode()
Tests node migration from Drupal 7 to 8.
File
- core/
modules/ node/ tests/ src/ Kernel/ Migrate/ d7/ MigrateNodeTest.php, line 154
Class
- MigrateNodeTest
- Tests node migration.
Namespace
Drupal\Tests\node\Kernel\Migrate\d7Code
public function testNode() {
// Confirm there are only classic node migration map tables. This shows
// that only the classic migration ran.
$results = $this
->nodeMigrateMapTableCount('7');
$this
->assertSame(9, $results['node']);
$this
->assertSame(0, $results['node_complete']);
$this
->assertEntity(1, 'test_content_type', 'en', 'An English Node', '2', TRUE, '1421727515', '1441032132', TRUE, FALSE);
$this
->assertRevision(1, 'An English Node', '1', NULL, '1441032132');
$node = Node::load(1);
$this
->assertNotEmpty($node->field_boolean->value);
$this
->assertEquals('99-99-99-99', $node->field_phone->value);
$this
->assertSame('2015-01-20T04:15:00', $node->field_date->value);
$this
->assertSame('2015-01-20', $node->field_date_without_time->value);
$this
->assertSame('2015-01-20', $node->field_datetime_without_time->value);
$this
->assertEquals(1, $node->field_float->value);
$this
->assertEquals('5', $node->field_integer->value);
$this
->assertEquals('Some more text', $node->field_text_list[0]->value);
$this
->assertEquals('7', $node->field_integer_list[0]->value);
$this
->assertEquals('qwerty', $node->field_text->value);
$this
->assertEquals('2', $node->field_file->target_id);
$this
->assertEquals('file desc', $node->field_file->description);
$this
->assertNotEmpty($node->field_file->display);
$this
->assertEquals('1', $node->field_images->target_id);
$this
->assertEquals('alt text', $node->field_images->alt);
$this
->assertEquals('title text', $node->field_images->title);
$this
->assertEquals('93', $node->field_images->width);
$this
->assertEquals('93', $node->field_images->height);
$this
->assertEquals('http://google.com', $node->field_link->uri);
$this
->assertEquals('Click Here', $node->field_link->title);
// Test that an email field is migrated.
$this
->assertEquals('default@example.com', $node->field_email->value);
$this
->assertEquals('another@example.com', $node->field_email[1]->value);
$this
->assertEquals(CommentItemInterface::OPEN, $node->comment_node_test_content_type->status);
$this
->assertEquals('3.1416', $node->field_float_list[0]->value);
$node = Node::load(2);
$this
->assertEquals('en', $node->langcode->value);
$this
->assertEquals("...is that it's the absolute best show ever. Trust me, I would know.", $node->body->value);
$this
->assertEquals('The thing about Deep Space 9', $node
->label());
$this
->assertEquals('internal:/', $node->field_link->uri);
$this
->assertEquals('Home', $node->field_link->title);
$this
->assertEquals(CommentItemInterface::OPEN, $node->comment_node_article->status);
$term_ref = $node
->get('field_vocab_localize')->target_id;
$this
->assertSame('20', $term_ref);
$this
->assertSame('DS9', Term::load($term_ref)
->getName());
$term_ref = $node
->get('field_vocab_translate')->target_id;
$this
->assertSame('21', $term_ref);
$this
->assertSame('High council', Term::load($term_ref)
->getName());
$term_ref = $node
->get('field_vocab_fixed')->target_id;
$this
->assertSame('24', $term_ref);
$this
->assertTrue($node
->hasTranslation('is'), "Node 2 has an Icelandic translation");
$translation = $node
->getTranslation('is');
$this
->assertEquals('is', $translation->langcode->value);
$this
->assertEquals("is - ...is that it's the absolute best show ever. Trust me, I would know.", $translation->body->value);
$this
->assertEquals('is - The thing about Deep Space 9', $translation
->label());
$this
->assertEquals('internal:/', $translation->field_link->uri);
$this
->assertEquals(CommentItemInterface::OPEN, $translation->comment_node_article->status);
$this
->assertEquals('Home', $translation->field_link->title);
$term_ref = $translation
->get('field_vocab_localize')->target_id;
$this
->assertSame('20', $term_ref);
$this
->assertSame('DS9', Term::load($term_ref)
->getName());
$term_ref = $translation
->get('field_vocab_translate')->target_id;
$this
->assertSame('23', $term_ref);
$this
->assertSame('is - High council', Term::load($term_ref)
->getName());
$term_ref = $translation
->get('field_vocab_fixed')->target_id;
$this
->assertNulL($term_ref);
// Test that content_translation_source is set.
$manager = $this->container
->get('content_translation.manager');
$this
->assertEquals('en', $manager
->getTranslationMetadata($node
->getTranslation('is'))
->getSource());
// Node 3 is a translation of node 2, and should not be imported separately.
$this
->assertNull(Node::load(3), "Node 3 doesn't exist in D8, it was a translation");
// Test that content_translation_source for a source other than English.
$node = Node::load(4);
$this
->assertEquals('is', $manager
->getTranslationMetadata($node
->getTranslation('en'))
->getSource());
$this
->assertEquals(CommentItemInterface::CLOSED, $node->comment_node_article->status);
$translation = $node
->getTranslation('en');
$this
->assertEquals(CommentItemInterface::CLOSED, $translation->comment_node_article->status);
$node = Node::load(6);
$this
->assertEquals(CommentItemInterface::CLOSED, $node->comment_forum->status);
$node = Node::load(7);
$this
->assertEquals(CommentItemInterface::OPEN, $node->comment_forum->status);
// Test synchronized field.
$value = 'Kai Opaka';
$node = Node::load(2);
$this
->assertSame($value, $node->field_text_plain->value);
$this
->assertArrayNotHasKey('field_text_plain', $node
->getTranslatableFields());
$node = $node
->getTranslation('is');
$this
->assertSame($value, $node->field_text_plain->value);
// Tests node entity translations migration from Drupal 7 to 8.
$manager = $this->container
->get('content_translation.manager');
// Get the node and its translations.
$node = Node::load(1);
$node_fr = $node
->getTranslation('fr');
$node_is = $node
->getTranslation('is');
// Test that fields translated with Entity Translation are migrated.
$this
->assertSame('An English Node', $node
->getTitle());
$this
->assertSame('A French Node', $node_fr
->getTitle());
$this
->assertSame('An Icelandic Node', $node_is
->getTitle());
$this
->assertSame('5', $node->field_integer->value);
$this
->assertSame('6', $node_fr->field_integer->value);
$this
->assertSame('7', $node_is->field_integer->value);
// Test that the French translation metadata is correctly migrated.
$metadata_fr = $manager
->getTranslationMetadata($node_fr);
$this
->assertSame('en', $metadata_fr
->getSource());
$this
->assertTrue($metadata_fr
->isOutdated());
$this
->assertSame('2', $node_fr
->getOwnerId());
$this
->assertSame('1529615802', $node_fr
->getCreatedTime());
$this
->assertSame('1529615802', $node_fr
->getChangedTime());
$this
->assertTrue($node_fr
->isPublished());
// Test that the Icelandic translation metadata is correctly migrated.
$metadata_is = $manager
->getTranslationMetadata($node_is);
$this
->assertSame('en', $metadata_is
->getSource());
$this
->assertFalse($metadata_is
->isOutdated());
$this
->assertSame('1', $node_is
->getOwnerId());
$this
->assertSame('1529615813', $node_is
->getCreatedTime());
$this
->assertSame('1529615813', $node_is
->getChangedTime());
$this
->assertFalse($node_is
->isPublished());
}