public function BooleanFormatterSettingsTest::testBooleanFormatterSettings in Drupal 10
Same name in this branch
- 10 core/modules/field/tests/src/Functional/Boolean/BooleanFormatterSettingsTest.php \Drupal\Tests\field\Functional\Boolean\BooleanFormatterSettingsTest::testBooleanFormatterSettings()
 - 10 core/modules/field/tests/src/FunctionalJavascript/Boolean/BooleanFormatterSettingsTest.php \Drupal\Tests\field\FunctionalJavascript\Boolean\BooleanFormatterSettingsTest::testBooleanFormatterSettings()
 
Same name and namespace in other branches
- 8 core/modules/field/tests/src/Functional/Boolean/BooleanFormatterSettingsTest.php \Drupal\Tests\field\Functional\Boolean\BooleanFormatterSettingsTest::testBooleanFormatterSettings()
 - 9 core/modules/field/tests/src/Functional/Boolean/BooleanFormatterSettingsTest.php \Drupal\Tests\field\Functional\Boolean\BooleanFormatterSettingsTest::testBooleanFormatterSettings()
 
Tests the formatter settings page for the Boolean formatter.
File
- core/
modules/ field/ tests/ src/ Functional/ Boolean/ BooleanFormatterSettingsTest.php, line 91  
Class
- BooleanFormatterSettingsTest
 - Tests the Boolean field formatter settings.
 
Namespace
Drupal\Tests\field\Functional\BooleanCode
public function testBooleanFormatterSettings() {
  // List the options we expect to see on the settings form. Omit the one
  // with the Unicode check/x characters, which does not appear to work
  // well in BrowserTestBase.
  $options = [
    'Yes / No',
    'True / False',
    'On / Off',
    'Enabled / Disabled',
    '1 / 0',
    'Custom',
  ];
  // For several different values of the field settings, test that the
  // options, including default, are shown correctly.
  $settings = [
    [
      'Yes',
      'No',
    ],
    [
      'On',
      'Off',
    ],
    [
      'TRUE',
      'FALSE',
    ],
  ];
  $assert_session = $this
    ->assertSession();
  foreach ($settings as $values) {
    // Set up the field settings.
    $this
      ->drupalGet('admin/structure/types/manage/' . $this->bundle . '/fields/node.' . $this->bundle . '.' . $this->fieldName);
    $this
      ->submitForm([
      'settings[on_label]' => $values[0],
      'settings[off_label]' => $values[1],
    ], 'Save settings');
    // Open the Manage Display page and trigger the field settings form.
    $this
      ->drupalGet('admin/structure/types/manage/' . $this->bundle . '/display');
    $this
      ->submitForm([], $this->fieldName . '_settings_edit');
    // Test that the settings options are present in the correct format.
    foreach ($options as $string) {
      $assert_session
        ->pageTextContains($string);
    }
    $assert_session
      ->pageTextContains("Field settings ({$values[0]} / {$values[1]})");
    // Test that the settings summary are present in the correct format.
    $this
      ->drupalGet('admin/structure/types/manage/' . $this->bundle . '/display');
    $this
      ->assertSession()
      ->elementExists('xpath', "//div[contains(@class, 'field-plugin-summary')]");
    $this
      ->assertSession()
      ->elementTextEquals('xpath', "//div[contains(@class, 'field-plugin-summary')]", "Display: {$values[0]} / {$values[1]}");
  }
}