Same name and namespace in other branches
  1. 8.9.x core/modules/text/tests/src/Kernel/TextFormatterTest.php \Drupal\Tests\text\Kernel\TextFormatterTest
  2. 9 core/modules/text/tests/src/Kernel/TextFormatterTest.php \Drupal\Tests\text\Kernel\TextFormatterTest

Tests the text formatters functionality.

@group text

Hierarchy

Expanded class hierarchy of TextFormatterTest

File

core/modules/text/tests/src/Kernel/TextFormatterTest.php, line 17

Namespace

Drupal\Tests\text\Kernel
View source
class TextFormatterTest extends EntityKernelTestBase {

  /**
   * The entity type used in this test.
   *
   * @var string
   */
  protected $entityType = 'entity_test';

  /**
   * The bundle used in this test.
   *
   * @var string
   */
  protected $bundle = 'entity_test';

  /**
   * Modules to enable.
   *
   * @var array
   */
  protected static $modules = [
    'text',
  ];

  /**
   * {@inheritdoc}
   */
  protected function setUp() : void {
    parent::setUp();
    FilterFormat::create([
      'format' => 'my_text_format',
      'name' => 'My text format',
      'filters' => [
        'filter_autop' => [
          'module' => 'filter',
          'status' => TRUE,
        ],
      ],
    ])
      ->save();
    FieldStorageConfig::create([
      'field_name' => 'formatted_text',
      'entity_type' => $this->entityType,
      'type' => 'text',
      'settings' => [],
    ])
      ->save();
    FieldConfig::create([
      'entity_type' => $this->entityType,
      'bundle' => $this->bundle,
      'field_name' => 'formatted_text',
      'label' => 'Filtered text',
    ])
      ->save();
  }

  /**
   * Tests all text field formatters.
   */
  public function testFormatters() {
    $formatters = [
      'text_default',
      'text_trimmed',
      'text_summary_or_trimmed',
    ];

    // Create the entity to be referenced.
    $entity = $this->container
      ->get('entity_type.manager')
      ->getStorage($this->entityType)
      ->create([
      'name' => $this
        ->randomMachineName(),
    ]);
    $entity->formatted_text = [
      'value' => 'Hello, world!',
      'format' => 'my_text_format',
    ];
    $entity
      ->save();
    foreach ($formatters as $formatter) {

      // Verify the text field formatter's render array.
      $build = $entity
        ->get('formatted_text')
        ->view([
        'type' => $formatter,
      ]);
      \Drupal::service('renderer')
        ->renderRoot($build[0]);
      $this
        ->assertSame("<p>Hello, world!</p>\n", (string) $build[0]['#markup']);
      $this
        ->assertEquals(FilterFormat::load('my_text_format')
        ->getCacheTags(), $build[0]['#cache']['tags'], "The {$formatter} formatter has the expected cache tags when formatting a formatted text field.");
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
EntityKernelTestBase::$entityTypeManager protected property The entity type manager service. 1
EntityKernelTestBase::$generatedIds protected property A list of generated identifiers.
EntityKernelTestBase::$state protected property The state service.
EntityKernelTestBase::createUser protected function Creates a user.
EntityKernelTestBase::generateRandomEntityId protected function Generates a random ID avoiding collisions.
EntityKernelTestBase::getHooksInfo protected function Returns the entity_test hook invocation info.
EntityKernelTestBase::installModule protected function Installs a module and refreshes services.
EntityKernelTestBase::refreshServices protected function Refresh services.
EntityKernelTestBase::reloadEntity protected function Reloads the given entity from the storage and returns it.
EntityKernelTestBase::uninstallModule protected function Uninstalls a module and refreshes services.
TextFormatterTest::$bundle protected property The bundle used in this test.
TextFormatterTest::$entityType protected property The entity type used in this test.
TextFormatterTest::$modules protected static property Modules to enable. Overrides EntityKernelTestBase::$modules
TextFormatterTest::setUp protected function Overrides EntityKernelTestBase::setUp
TextFormatterTest::testFormatters public function Tests all text field formatters.
UserCreationTrait::checkPermissions protected function Checks whether a given list of permission names is valid. Aliased as: drupalCheckPermissions
UserCreationTrait::createAdminRole protected function Creates an administrative role. Aliased as: drupalCreateAdminRole
UserCreationTrait::createRole protected function Creates a role with specified permissions. Aliased as: drupalCreateRole
UserCreationTrait::createUser protected function Create a user with a given set of permissions. Aliased as: drupalCreateUser
UserCreationTrait::grantPermissions protected function Grant permissions to a user role. Aliased as: drupalGrantPermissions
UserCreationTrait::setCurrentUser protected function Switch the current logged in user. Aliased as: drupalSetCurrentUser
UserCreationTrait::setUpCurrentUser protected function Creates a random user account and sets it as current user. Aliased as: drupalSetUpCurrentUser