Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / core / modules / taxonomy / tests / src / Functional / EarlyDateTest.php
diff --git a/web/core/modules/taxonomy/tests/src/Functional/EarlyDateTest.php b/web/core/modules/taxonomy/tests/src/Functional/EarlyDateTest.php
new file mode 100644 (file)
index 0000000..e4490f3
--- /dev/null
@@ -0,0 +1,69 @@
+<?php
+
+namespace Drupal\Tests\taxonomy\Functional;
+
+use Drupal\Core\Datetime\DrupalDateTime;
+use Drupal\Core\Field\FieldStorageDefinitionInterface;
+use Drupal\taxonomy\Entity\Vocabulary;
+
+/**
+ * Posts an article with a taxonomy term and a date prior to 1970.
+ *
+ * @group taxonomy
+ */
+class EarlyDateTest extends TaxonomyTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = ['node', 'datetime'];
+
+  protected function setUp() {
+    parent::setUp();
+
+    // Create a tags vocabulary for the 'article' content type.
+    $vocabulary = Vocabulary::create([
+      'name' => 'Tags',
+      'vid' => 'tags',
+    ]);
+    $vocabulary->save();
+    $field_name = 'field_' . $vocabulary->id();
+
+    $handler_settings = [
+      'target_bundles' => [
+        $vocabulary->id() => $vocabulary->id(),
+      ],
+      'auto_create' => TRUE,
+    ];
+    $this->createEntityReferenceField('node', 'article', $field_name, 'Tags', 'taxonomy_term', 'default', $handler_settings, FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED);
+
+    entity_get_form_display('node', 'article', 'default')
+      ->setComponent($field_name, [
+        'type' => 'entity_reference_autocomplete_tags',
+      ])
+      ->save();
+
+    $this->drupalLogin($this->drupalCreateUser(['administer taxonomy', 'administer nodes', 'bypass node access']));
+  }
+
+  /**
+   * Test taxonomy functionality with nodes prior to 1970.
+   */
+  public function testTaxonomyEarlyDateNode() {
+    // Posts an article with a taxonomy term and a date prior to 1970.
+    $date = new DrupalDateTime('1969-01-01 00:00:00');
+    $edit = [];
+    $edit['title[0][value]'] = $this->randomMachineName();
+    $edit['created[0][value][date]'] = $date->format('Y-m-d');
+    $edit['created[0][value][time]'] = $date->format('H:i:s');
+    $edit['body[0][value]'] = $this->randomMachineName();
+    $edit['field_tags[target_id]'] = $this->randomMachineName();
+    $this->drupalPostForm('node/add/article', $edit, t('Save'));
+    // Checks that the node has been saved.
+    $node = $this->drupalGetNodeByTitle($edit['title[0][value]']);
+    $this->assertEqual($node->getCreatedTime(), $date->getTimestamp(), 'Legacy node was saved with the right date.');
+  }
+
+}