function MigrateNodeTest::testNode

Same name in this branch
  1. 8.9.x core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php \Drupal\Tests\node\Kernel\Migrate\d6\MigrateNodeTest::testNode()
Same name in other branches
  1. 9 core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php \Drupal\Tests\node\Kernel\Migrate\d6\MigrateNodeTest::testNode()
  2. 9 core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php \Drupal\Tests\node\Kernel\Migrate\d7\MigrateNodeTest::testNode()
  3. 10 core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php \Drupal\Tests\node\Kernel\Migrate\d6\MigrateNodeTest::testNode()
  4. 10 core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php \Drupal\Tests\node\Kernel\Migrate\d7\MigrateNodeTest::testNode()
  5. 11.x core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php \Drupal\Tests\node\Kernel\Migrate\d6\MigrateNodeTest::testNode()
  6. 11.x core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php \Drupal\Tests\node\Kernel\Migrate\d7\MigrateNodeTest::testNode()

Test node migration from Drupal 7 to 8.

File

core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php, line 149

Class

MigrateNodeTest
Tests node migration.

Namespace

Drupal\Tests\node\Kernel\Migrate\d7

Code

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(8, $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);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.