function CommentFieldsTest::testCommentFieldCreate

Same name in other branches
  1. 9 core/modules/comment/tests/src/Functional/CommentFieldsTest.php \Drupal\Tests\comment\Functional\CommentFieldsTest::testCommentFieldCreate()
  2. 8.9.x core/modules/comment/tests/src/Functional/CommentFieldsTest.php \Drupal\Tests\comment\Functional\CommentFieldsTest::testCommentFieldCreate()
  3. 10 core/modules/comment/tests/src/Functional/CommentFieldsTest.php \Drupal\Tests\comment\Functional\CommentFieldsTest::testCommentFieldCreate()

Tests creating a comment field through the interface.

File

core/modules/comment/tests/src/Functional/CommentFieldsTest.php, line 148

Class

CommentFieldsTest
Tests fields on comments.

Namespace

Drupal\Tests\comment\Functional

Code

public function testCommentFieldCreate() : void {
    // Create user who can administer user fields.
    $user = $this->drupalCreateUser([
        'administer user fields',
    ]);
    $this->drupalLogin($user);
    // Create comment field in account settings.
    $edit = [
        'new_storage_type' => 'comment',
    ];
    $this->drupalGet('admin/config/people/accounts/fields/add-field');
    $this->submitForm($edit, 'Continue');
    $edit = [
        'label' => 'User comment',
        'field_name' => 'user_comment',
    ];
    $this->submitForm($edit, 'Continue');
    // Try to save the comment field without selecting a comment type.
    $edit = [];
    $this->submitForm($edit, 'Update settings');
    // We should get an error message.
    $this->assertSession()
        ->pageTextContains('The submitted value in the Comment type element is not allowed.');
    // Create a comment type for users.
    $bundle = CommentType::create([
        'id' => 'user_comment_type',
        'label' => 'user_comment_type',
        'description' => '',
        'target_entity_type_id' => 'user',
    ]);
    $bundle->save();
    // Select a comment type and try to save again.
    $edit = [
        'field_storage[subform][settings][comment_type]' => 'user_comment_type',
    ];
    $this->drupalGet('admin/config/people/accounts/add-field/user/field_user_comment');
    $this->submitForm($edit, 'Update settings');
    // We shouldn't get an error message.
    $this->assertSession()
        ->pageTextNotContains('The submitted value in the Comment type element is not allowed.');
    // Try to save the comment field with "Comments per page"
    // setting value as zero.
    $edit = [
        'settings[per_page]' => 0,
    ];
    $this->drupalGet('admin/config/people/accounts/add-field/user/field_user_comment');
    $this->submitForm($edit, 'Save settings');
    $this->assertSession()
        ->statusMessageContains('Saved User comment configuration.', 'status');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.