Commit 37dd50f5 authored by catch's avatar catch
Browse files

Issue #3373867 by lauriii, Eric_A, smustgrave: [regression] "Comments field is...

Issue #3373867 by lauriii, Eric_A, smustgrave: [regression] "Comments field is required" when creating content for types with a comment field configured as hidden

(cherry picked from commit 9028e6c0)
parent 9ae6dbd4
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
      '#title' => $this->t('Comments'),
      '#title_display' => 'invisible',
      '#default_value' => $items->status,
      '#required' => TRUE,
      '#options' => [
        CommentItemInterface::OPEN => $this->t('Open'),
        CommentItemInterface::CLOSED => $this->t('Closed'),
@@ -48,6 +47,12 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
        '#description' => $this->t('Comments are hidden from view.'),
      ],
    ];

    // Setting a value in the default value widget is required.
    if ($this->isDefaultValueWidget($form_state)) {
      $element['status']['#required'] = TRUE;
    }

    // If the entity doesn't have any comments, the "hidden" option makes no
    // sense, so don't even bother presenting it to the user unless this is the
    // default value widget on the field settings form.
+28 −0
Original line number Diff line number Diff line
@@ -523,4 +523,32 @@ public function testsNonIntegerIdEntities() {
    $this->assertSession()->optionExists('edit-new-storage-type', 'boolean');
  }

  /**
   * Ensures that comment settings are not required.
   */
  public function testCommentSettingsNotRequired() {
    $limited_user = $this->drupalCreateUser([
      'administer entity_test fields',
    ]);
    $this->drupalLogin($limited_user);
    $this->drupalGet('entity_test/structure/entity_test/fields/entity_test.entity_test.comment');

    // Change the comments to be displayed as hidden by default.
    $edit = [
      'default_value_input[comment][0][status]' => CommentItemInterface::HIDDEN,
      'settings[anonymous]' => CommentInterface::ANONYMOUS_MAY_CONTACT,
    ];
    $this->submitForm($edit, 'Save settings');

    // Ensure that the comment settings field is not required and can be saved
    // with the default value.
    $this->drupalLogin($this->adminUser);
    $this->drupalGet('/entity_test/add');
    $edit = [
      "name[0][value]" => 'Comment test',
    ];
    $this->submitForm($edit, 'Save');
    $this->assertSession()->pageTextContains('entity_test 2 has been created.');
  }

}