diff core/modules/comment/tests/src/Kernel/CommentStringIdEntitiesTest.php @ 0:c75dbcec494b

Initial commit from drush-created site
author Chris Cannam
date Thu, 05 Jul 2018 14:24:15 +0000
parents
children 12f9dff5fda9
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/modules/comment/tests/src/Kernel/CommentStringIdEntitiesTest.php	Thu Jul 05 14:24:15 2018 +0000
@@ -0,0 +1,66 @@
+<?php
+
+namespace Drupal\Tests\comment\Kernel;
+
+use Drupal\comment\Entity\CommentType;
+use Drupal\KernelTests\KernelTestBase;
+use Drupal\field\Entity\FieldStorageConfig;
+
+/**
+ * Tests that comment fields cannot be added to entities with non-integer IDs.
+ *
+ * @group comment
+ */
+class CommentStringIdEntitiesTest extends KernelTestBase {
+
+  /**
+   * Modules to install.
+   *
+   * @var array
+   */
+  public static $modules = [
+    'comment',
+    'user',
+    'field',
+    'field_ui',
+    'entity_test',
+    'text',
+  ];
+
+  protected function setUp() {
+    parent::setUp();
+    $this->installEntitySchema('comment');
+    $this->installSchema('comment', ['comment_entity_statistics']);
+    // Create the comment body field storage.
+    $this->installConfig(['field']);
+  }
+
+  /**
+   * Tests that comment fields cannot be added entities with non-integer IDs.
+   */
+  public function testCommentFieldNonStringId() {
+    try {
+      $bundle = CommentType::create([
+        'id' => 'foo',
+        'label' => 'foo',
+        'description' => '',
+        'target_entity_type_id' => 'entity_test_string_id',
+      ]);
+      $bundle->save();
+      $field_storage = FieldStorageConfig::create([
+        'field_name' => 'foo',
+        'entity_type' => 'entity_test_string_id',
+        'settings' => [
+          'comment_type' => 'entity_test_string_id',
+        ],
+        'type' => 'comment',
+      ]);
+      $field_storage->save();
+      $this->fail('Did not throw an exception as expected.');
+    }
+    catch (\UnexpectedValueException $e) {
+      $this->pass('Exception thrown when trying to create comment field on Entity Type with string ID.');
+    }
+  }
+
+}