function BooleanFormatterSettingsTest::testBooleanFormatterSettings

Same name in this branch
  1. 11.x core/modules/field/tests/src/FunctionalJavascript/Boolean/BooleanFormatterSettingsTest.php \Drupal\Tests\field\FunctionalJavascript\Boolean\BooleanFormatterSettingsTest::testBooleanFormatterSettings()
Same name in other branches
  1. 9 core/modules/field/tests/src/FunctionalJavascript/Boolean/BooleanFormatterSettingsTest.php \Drupal\Tests\field\FunctionalJavascript\Boolean\BooleanFormatterSettingsTest::testBooleanFormatterSettings()
  2. 9 core/modules/field/tests/src/Functional/Boolean/BooleanFormatterSettingsTest.php \Drupal\Tests\field\Functional\Boolean\BooleanFormatterSettingsTest::testBooleanFormatterSettings()
  3. 8.9.x core/modules/field/tests/src/FunctionalJavascript/Boolean/BooleanFormatterSettingsTest.php \Drupal\Tests\field\FunctionalJavascript\Boolean\BooleanFormatterSettingsTest::testBooleanFormatterSettings()
  4. 8.9.x core/modules/field/tests/src/Functional/Boolean/BooleanFormatterSettingsTest.php \Drupal\Tests\field\Functional\Boolean\BooleanFormatterSettingsTest::testBooleanFormatterSettings()
  5. 10 core/modules/field/tests/src/FunctionalJavascript/Boolean/BooleanFormatterSettingsTest.php \Drupal\Tests\field\FunctionalJavascript\Boolean\BooleanFormatterSettingsTest::testBooleanFormatterSettings()
  6. 10 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\Boolean

Code

public function testBooleanFormatterSettings() : void {
    // 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]}");
    }
}

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