View source
<?php
namespace Drupal\Tests\comment\Kernel\Migrate\d7;
use Drupal\comment\Entity\Comment;
use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
use Drupal\node\NodeInterface;
class MigrateCommentTest extends MigrateDrupal7TestBase {
protected static $modules = [
'comment',
'content_translation',
'datetime',
'datetime_range',
'filter',
'image',
'language',
'link',
'menu_ui',
'node',
'taxonomy',
'telephone',
'text',
];
protected function setUp() : void {
parent::setUp();
$this
->installEntitySchema('comment');
$this
->installEntitySchema('taxonomy_term');
$this
->installSchema('comment', [
'comment_entity_statistics',
]);
$this
->installSchema('node', [
'node_access',
]);
$this
->migrateContent();
$this
->executeMigrations([
'language',
'd7_node_type',
'd7_language_content_settings',
'd7_node_translation',
'd7_comment_field',
'd7_comment_field_instance',
'd7_comment_entity_display',
'd7_comment_entity_form_display',
'd7_taxonomy_vocabulary',
'd7_field',
'd7_field_instance',
'd7_comment',
'd7_entity_translation_settings',
'd7_comment_entity_translation',
]);
}
public function testMigration() {
$comment = Comment::load(1);
$this
->assertInstanceOf(Comment::class, $comment);
$this
->assertSame('Subject field in English', $comment
->getSubject());
$this
->assertSame('1421727536', $comment
->getCreatedTime());
$this
->assertSame('1421727536', $comment
->getChangedTime());
$this
->assertTrue($comment
->isPublished());
$this
->assertSame('admin', $comment
->getAuthorName());
$this
->assertSame('admin@local.host', $comment
->getAuthorEmail());
$this
->assertSame('This is a comment', $comment->comment_body->value);
$this
->assertSame('filtered_html', $comment->comment_body->format);
$this
->assertSame('2001:db8:ffff:ffff:ffff:ffff:ffff:ffff', $comment
->getHostname());
$this
->assertSame('en', $comment
->language()
->getId());
$this
->assertSame('1000000', $comment->field_integer->value);
$node = $comment
->getCommentedEntity();
$this
->assertInstanceOf(NodeInterface::class, $node);
$this
->assertSame('1', $node
->id());
$comment = Comment::load(2);
$this
->assertInstanceOf(Comment::class, $comment);
$this
->assertSame('TNG for the win!', $comment
->getSubject());
$this
->assertSame('TNG is better than DS9.', $comment->comment_body->value);
$this
->assertSame('en', $comment
->language()
->getId());
$comment = Comment::load(3);
$this
->assertInstanceOf(Comment::class, $comment);
$this
->assertSame('Comment to IS translation', $comment
->getSubject());
$this
->assertSame('This is a comment to an Icelandic translation.', $comment->comment_body->value);
$this
->assertSame('2', $comment
->getCommentedEntityId());
$this
->assertSame('node', $comment
->getCommentedEntityTypeId());
$this
->assertSame('is', $comment
->language()
->getId());
$node = $comment
->getCommentedEntity();
$this
->assertInstanceOf(NodeInterface::class, $node);
$this
->assertSame('2', $node
->id());
$comment = Comment::load(4);
$this
->assertInstanceOf(Comment::class, $comment);
$this
->assertSame('Comment without language', $comment
->getSubject());
$this
->assertSame('1426781880', $comment
->getCreatedTime());
$this
->assertSame('1426781880', $comment
->getChangedTime());
$this
->assertTrue($comment
->isPublished());
$this
->assertSame('Bob', $comment
->getAuthorName());
$this
->assertSame('bob@local.host', $comment
->getAuthorEmail());
$this
->assertSame('A comment without language (migrated from Drupal 6)', $comment->comment_body->value);
$this
->assertSame('filtered_html', $comment->comment_body->format);
$this
->assertSame('drupal7.local', $comment
->getHostname());
$this
->assertSame('und', $comment
->language()
->getId());
$this
->assertSame('10', $comment->field_integer->value);
$node = $comment
->getCommentedEntity();
$this
->assertInstanceOf(NodeInterface::class, $node);
$this
->assertSame('1', $node
->id());
$manager = $this->container
->get('content_translation.manager');
$comment = Comment::load(1);
$comment_fr = $comment
->getTranslation('fr');
$comment_is = $comment
->getTranslation('is');
$this
->assertSame('Subject field in English', $comment
->getSubject());
$this
->assertSame('Subject field in French', $comment_fr
->getSubject());
$this
->assertSame('Subject field in Icelandic', $comment_is
->getSubject());
$this
->assertSame('1000000', $comment->field_integer->value);
$this
->assertSame('2000000', $comment_fr->field_integer->value);
$this
->assertSame('3000000', $comment_is->field_integer->value);
$metadata_fr = $manager
->getTranslationMetadata($comment_fr);
$this
->assertFalse($metadata_fr
->isPublished());
$this
->assertSame('en', $metadata_fr
->getSource());
$this
->assertSame('1', $metadata_fr
->getAuthor()->uid->value);
$this
->assertSame('1531837764', $metadata_fr
->getCreatedTime());
$this
->assertSame('1531837764', $metadata_fr
->getChangedTime());
$this
->assertFalse($metadata_fr
->isOutdated());
$metadata_is = $manager
->getTranslationMetadata($comment_is);
$this
->assertTrue($metadata_is
->isPublished());
$this
->assertSame('en', $metadata_is
->getSource());
$this
->assertSame('2', $metadata_is
->getAuthor()->uid->value);
$this
->assertSame('1531838064', $metadata_is
->getCreatedTime());
$this
->assertSame('1531838064', $metadata_is
->getChangedTime());
$this
->assertTrue($metadata_is
->isOutdated());
}
}