You are here

public function MediaEmbedFilterTest::testOverridesAltAndTitle in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/media/tests/src/Kernel/MediaEmbedFilterTest.php \Drupal\Tests\media\Kernel\MediaEmbedFilterTest::testOverridesAltAndTitle()

@covers ::applyPerEmbedMediaOverrides @dataProvider providerOverridesAltAndTitle

File

core/modules/media/tests/src/Kernel/MediaEmbedFilterTest.php, line 203

Class

MediaEmbedFilterTest
@coversDefaultClass \Drupal\media\Plugin\Filter\MediaEmbed @group media

Namespace

Drupal\Tests\media\Kernel

Code

public function testOverridesAltAndTitle($title_field_property_enabled, array $expected_title_attributes) {

  // The `alt` field property is enabled by default, the `title` one is not.
  if ($title_field_property_enabled) {
    $source_field = FieldConfig::load('media.image.field_media_image');
    $source_field
      ->setSetting('title_field', TRUE);
    $source_field
      ->save();
  }
  $base = [
    'data-entity-type' => 'media',
    'data-entity-uuid' => static::EMBEDDED_ENTITY_UUID,
  ];
  $input = $this
    ->createEmbedCode($base);
  $input .= $this
    ->createEmbedCode([
    'alt' => 'alt 1',
    'title' => 'title 1',
  ] + $base);
  $input .= $this
    ->createEmbedCode([
    'alt' => 'alt 2',
    'title' => 'title 2',
  ] + $base);
  $input .= $this
    ->createEmbedCode([
    'alt' => 'alt 3',
    'title' => 'title 3',
  ] + $base);
  $input .= $this
    ->createEmbedCode([
    'alt' => '""',
    'title' => 'title 4',
  ] + $base);
  $this
    ->applyFilter($input);
  $img_nodes = $this
    ->cssSelect('img');
  $this
    ->assertCount(5, $img_nodes);
  $this
    ->assertHasAttributes($img_nodes[0], [
    'alt' => 'default alt',
    'title' => $expected_title_attributes[0],
  ]);
  $this
    ->assertHasAttributes($img_nodes[1], [
    'alt' => 'alt 1',
    'title' => $expected_title_attributes[1],
  ]);
  $this
    ->assertHasAttributes($img_nodes[2], [
    'alt' => 'alt 2',
    'title' => $expected_title_attributes[2],
  ]);
  $this
    ->assertHasAttributes($img_nodes[3], [
    'alt' => 'alt 3',
    'title' => $expected_title_attributes[3],
  ]);
  $this
    ->assertHasAttributes($img_nodes[4], [
    'alt' => '',
    'title' => $expected_title_attributes[4],
  ]);
}