You are here

public function CommentNonNodeTest::testsNonIntegerIdEntities in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/comment/tests/src/Functional/CommentNonNodeTest.php \Drupal\Tests\comment\Functional\CommentNonNodeTest::testsNonIntegerIdEntities()

Tests comment fields cannot be added to entity types without integer IDs.

File

core/modules/comment/tests/src/Functional/CommentNonNodeTest.php, line 487

Class

CommentNonNodeTest
Tests commenting on a test entity.

Namespace

Drupal\Tests\comment\Functional

Code

public function testsNonIntegerIdEntities() {

  // Create a bundle for entity_test_string_id.
  entity_test_create_bundle('entity_test', 'Entity Test', 'entity_test_string_id');
  $limited_user = $this
    ->drupalCreateUser([
    'administer entity_test_string_id fields',
    'administer comment types',
  ]);
  $this
    ->drupalLogin($limited_user);

  // Visit the Field UI field add page.
  $this
    ->drupalGet('entity_test_string_id/structure/entity_test/fields/add-field');

  // Ensure field isn't shown for string IDs.
  $this
    ->assertSession()
    ->optionNotExists('edit-new-storage-type', 'comment');

  // Ensure a core field type shown.
  $this
    ->assertSession()
    ->optionExists('edit-new-storage-type', 'boolean');

  // Attempt to add a comment-type referencing this entity-type.
  $this
    ->drupalGet('admin/structure/comment/types/add');
  $this
    ->assertSession()
    ->optionNotExists('edit-target-entity-type-id', 'entity_test_string_id');
  $this
    ->assertSession()
    ->responseNotContains('Test entity with string_id');

  // Create a bundle for entity_test_no_id.
  entity_test_create_bundle('entity_test', 'Entity Test', 'entity_test_no_id');
  $this
    ->drupalLogin($this
    ->drupalCreateUser([
    'administer entity_test_no_id fields',
  ]));

  // Visit the Field UI field add page.
  $this
    ->drupalGet('entity_test_no_id/structure/entity_test/fields/add-field');

  // Ensure field isn't shown for empty IDs.
  $this
    ->assertSession()
    ->optionNotExists('edit-new-storage-type', 'comment');

  // Ensure a core field type shown.
  $this
    ->assertSession()
    ->optionExists('edit-new-storage-type', 'boolean');
}