Security update for Core, with self-updated composer
[yaffs-website] / web / core / modules / comment / tests / src / Functional / Update / CommentUpdateTest.php
diff --git a/web/core/modules/comment/tests/src/Functional/Update/CommentUpdateTest.php b/web/core/modules/comment/tests/src/Functional/Update/CommentUpdateTest.php
new file mode 100644 (file)
index 0000000..e623132
--- /dev/null
@@ -0,0 +1,74 @@
+<?php
+
+namespace Drupal\Tests\comment\Functional\Update;
+
+use Drupal\FunctionalTests\Update\UpdatePathTestBase;
+
+/**
+ * Tests that comment settings are properly updated during database updates.
+ *
+ * @group comment
+ */
+class CommentUpdateTest extends UpdatePathTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setDatabaseDumpFiles() {
+    $this->databaseDumpFiles = [
+      __DIR__ . '/../../../../../system/tests/fixtures/update/drupal-8-rc1.filled.standard.php.gz',
+    ];
+  }
+
+  /**
+   * Tests comment_update_8200().
+   *
+   * @see comment_update_8200()
+   */
+  public function testCommentUpdate8101() {
+    // Load the 'node.article.default' entity view display config, and check
+    // that component 'comment' does not contain the 'view_mode' setting.
+    $config = $this->config('core.entity_view_display.node.article.default');
+    $this->assertNull($config->get('content.comment.settings.view_mode'));
+
+    // Load the 'node.forum.default' entity view display config, and check that
+    // component 'comment_forum' does not contain the 'view_mode' setting.
+    $config = $this->config('core.entity_view_display.node.forum.default');
+    $this->assertNull($config->get('content.comment_forum.settings.view_mode'));
+
+    // Run updates.
+    $this->runUpdates();
+
+    // Check that 'node.article.default' entity view display setting 'view_mode'
+    // has the value 'default'.
+    $config = $this->config('core.entity_view_display.node.article.default');
+    $this->assertIdentical($config->get('content.comment.settings.view_mode'), 'default');
+
+    // Check that 'node.forum.default' entity view display setting 'view_mode'
+    // has the value 'default'.
+    $config = $this->config('core.entity_view_display.node.forum.default');
+    $this->assertIdentical($config->get('content.comment_forum.settings.view_mode'), 'default');
+  }
+
+  /**
+   * Tests that the comment entity type has a 'published' entity key.
+   *
+   * @see comment_update_8301()
+   */
+  public function testPublishedEntityKey() {
+    // Check that the 'published' entity key does not exist prior to the update.
+    $entity_type = \Drupal::entityDefinitionUpdateManager()->getEntityType('comment');
+    $this->assertFalse($entity_type->getKey('published'));
+
+    // Run updates.
+    $this->runUpdates();
+
+    // Check that the entity key exists and it has the correct value.
+    $entity_type = \Drupal::entityDefinitionUpdateManager()->getEntityType('comment');
+    $this->assertEqual('status', $entity_type->getKey('published'));
+
+    // Check that the {comment_field_data} table status index has been created.
+    $this->assertTrue(\Drupal::database()->schema()->indexExists('comment_field_data', 'comment__status_comment_type'));
+  }
+
+}