You are here

public function FormTest::testFieldFormUnlimitedRequired in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/field/tests/src/Functional/FormTest.php \Drupal\Tests\field\Functional\FormTest::testFieldFormUnlimitedRequired()
  2. 9 core/modules/field/tests/src/Functional/FormTest.php \Drupal\Tests\field\Functional\FormTest::testFieldFormUnlimitedRequired()

Tests the position of the required label.

File

core/modules/field/tests/src/Functional/FormTest.php, line 350

Class

FormTest
Tests field form handling.

Namespace

Drupal\Tests\field\Functional

Code

public function testFieldFormUnlimitedRequired() {
  $field_name = $this->fieldStorageUnlimited['field_name'];
  $this->field['field_name'] = $field_name;
  $this->field['required'] = TRUE;
  FieldStorageConfig::create($this->fieldStorageUnlimited)
    ->save();
  FieldConfig::create($this->field)
    ->save();
  \Drupal::service('entity_display.repository')
    ->getFormDisplay($this->field['entity_type'], $this->field['bundle'])
    ->setComponent($field_name)
    ->save();

  // Display creation form -> 1 widget.
  $this
    ->drupalGet('entity_test/add');

  // Check that the Required symbol is present for the multifield label.
  $this
    ->assertSession()
    ->elementAttributeContains('xpath', "//h4[contains(@class, 'label') and contains(text(), '{$this->field['label']}')]", 'class', 'js-form-required');

  // Check that the label of the field input is visually hidden and contains
  // the field title and an indication of the delta for a11y.
  $this
    ->assertSession()
    ->elementExists('xpath', "//label[@for='edit-field-unlimited-0-value' and contains(@class, 'visually-hidden') and contains(text(), '{$this->field['label']} (value 1)')]");
}