You are here

public function BooleanFormatterTest::testBooleanFormatter in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/field/tests/src/Kernel/Boolean/BooleanFormatterTest.php \Drupal\Tests\field\Kernel\Boolean\BooleanFormatterTest::testBooleanFormatter()

Tests boolean formatter output.

File

core/modules/field/tests/src/Kernel/Boolean/BooleanFormatterTest.php, line 108

Class

BooleanFormatterTest
Tests the boolean formatter.

Namespace

Drupal\Tests\field\Kernel\Boolean

Code

public function testBooleanFormatter() {
  $data = [];
  $data[] = [
    0,
    [],
    'Off',
  ];
  $data[] = [
    1,
    [],
    'On',
  ];
  $format = [
    'format' => 'enabled-disabled',
  ];
  $data[] = [
    0,
    $format,
    'Disabled',
  ];
  $data[] = [
    1,
    $format,
    'Enabled',
  ];
  $format = [
    'format' => 'unicode-yes-no',
  ];
  $data[] = [
    1,
    $format,
    '✔',
  ];
  $data[] = [
    0,
    $format,
    '✖',
  ];
  $format = [
    'format' => 'custom',
    'format_custom_false' => 'FALSE',
    'format_custom_true' => 'TRUE',
  ];
  $data[] = [
    0,
    $format,
    'FALSE',
  ];
  $data[] = [
    1,
    $format,
    'TRUE',
  ];
  foreach ($data as $test_data) {
    list($value, $settings, $expected) = $test_data;
    $component = $this->display
      ->getComponent($this->fieldName);
    $component['settings'] = $settings;
    $this->display
      ->setComponent($this->fieldName, $component);
    $entity = EntityTest::create([]);
    $entity->{$this->fieldName}->value = $value;

    // Verify that all HTML is escaped and newlines are retained.
    $this
      ->renderEntityFields($entity, $this->display);
    $this
      ->assertRaw($expected);
  }
}