Security update for Core, with self-updated composer
[yaffs-website] / web / core / modules / node / tests / src / Functional / Update / NodeUpdateTest.php
diff --git a/web/core/modules/node/tests/src/Functional/Update/NodeUpdateTest.php b/web/core/modules/node/tests/src/Functional/Update/NodeUpdateTest.php
new file mode 100644 (file)
index 0000000..223676b
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+
+namespace Drupal\Tests\node\Functional\Update;
+
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
+use Drupal\FunctionalTests\Update\UpdatePathTestBase;
+
+/**
+ * Tests that node settings are properly updated during database updates.
+ *
+ * @group node
+ */
+class NodeUpdateTest extends UpdatePathTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setDatabaseDumpFiles() {
+    $this->databaseDumpFiles = [
+      __DIR__ . '/../../../../../system/tests/fixtures/update/drupal-8-rc1.bare.standard.php.gz',
+    ];
+  }
+
+  /**
+   * Tests that the node entity type has a 'published' entity key.
+   *
+   * @see node_update_8301()
+   */
+  public function testPublishedEntityKey() {
+    // Check that the 'published' entity key does not exist prior to the update.
+    $entity_type = \Drupal::entityDefinitionUpdateManager()->getEntityType('node');
+    $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('node');
+    $this->assertEqual('status', $entity_type->getKey('published'));
+  }
+
+  /**
+   * Tests that the node entity form has the status checkbox.
+   *
+   * @see node_post_update_configure_status_field_widget()
+   */
+  public function testStatusCheckbox() {
+    // Run updates.
+    $this->runUpdates();
+
+    $query = \Drupal::entityQuery('entity_form_display')
+      ->condition('targetEntityType', 'node');
+    $ids = $query->execute();
+    $form_displays = EntityFormDisplay::loadMultiple($ids);
+
+    /**
+     * @var string $id
+     * @var \Drupal\Core\Entity\Display\EntityFormDisplayInterface $form_display
+     */
+    foreach ($form_displays as $id => $form_display) {
+      $component = $form_display->getComponent('status');
+      $this->assertEqual('boolean_checkbox', $component['type']);
+      $this->assertEqual(['display_label' => TRUE], $component['settings']);
+    }
+  }
+
+}