X-Git-Url: https://yaffs.net/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Fcomment%2Ftests%2Fsrc%2FKernel%2FMigrate%2Fd7%2FMigrateCommentTest.php;h=58c70f62032dc5559e5ba01d115a5b34096695ae;hb=1c1cb0980bfa6caf0c24cce671b6bb541dc87583;hp=95717ed352d005cfc12620c4abd569342eb1f389;hpb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;p=yaffs-website diff --git a/web/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTest.php b/web/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTest.php index 95717ed35..58c70f620 100644 --- a/web/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTest.php +++ b/web/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTest.php @@ -17,7 +17,22 @@ class MigrateCommentTest extends MigrateDrupal7TestBase { /** * {@inheritdoc} */ - public static $modules = ['filter', 'node', 'comment', 'text', 'menu_ui']; + public static $modules = [ + 'comment', + 'content_translation', + 'datetime', + 'filter', + 'image', + 'language', + 'link', + 'menu_ui', + // Required for translation migrations. + 'migrate_drupal_multilingual', + 'node', + 'taxonomy', + 'telephone', + 'text', + ]; /** * {@inheritdoc} @@ -27,20 +42,30 @@ class MigrateCommentTest extends MigrateDrupal7TestBase { $this->installEntitySchema('node'); $this->installEntitySchema('comment'); + $this->installEntitySchema('taxonomy_term'); $this->installConfig(['comment', 'node']); $this->installSchema('comment', ['comment_entity_statistics']); - + $this->installSchema('node', ['node_access']); $this->executeMigrations([ + 'language', + 'd7_node_type', + 'd7_language_content_settings', 'd7_user_role', 'd7_user', 'd7_node_type', 'd7_node', + 'd7_node_translation', 'd7_comment_type', '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', ]); } @@ -50,7 +75,7 @@ class MigrateCommentTest extends MigrateDrupal7TestBase { public function testMigration() { $comment = Comment::load(1); $this->assertInstanceOf(Comment::class, $comment); - $this->assertSame('A comment', $comment->getSubject()); + $this->assertSame('Subject field in English', $comment->getSubject()); $this->assertSame('1421727536', $comment->getCreatedTime()); $this->assertSame('1421727536', $comment->getChangedTime()); $this->assertTrue($comment->getStatus()); @@ -59,10 +84,72 @@ class MigrateCommentTest extends MigrateDrupal7TestBase { $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()); + + // Tests that comments that used the Drupal 7 Title module and that have + // their subject replaced by a real field are correctly migrated. + $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()); + + // Tests that the commented entity is correctly migrated when the comment + // was posted to a node translation. + $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()); + } + + /** + * Tests the migration of comment entity translations. + */ + public function testCommentEntityTranslations() { + $manager = $this->container->get('content_translation.manager'); + + // Get the comment and its translations. + $comment = Comment::load(1); + $comment_fr = $comment->getTranslation('fr'); + $comment_is = $comment->getTranslation('is'); + + // Test that fields translated with Entity Translation are migrated. + $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); + + // Test that the French translation metadata is correctly migrated. + $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()); + + // Test that the Icelandic translation metadata is correctly migrated. + $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()); } }