You are here

protected function MediaSourceImageTest::assertViewDisplayConfigured in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/media/tests/src/FunctionalJavascript/MediaSourceImageTest.php \Drupal\Tests\media\FunctionalJavascript\MediaSourceImageTest::assertViewDisplayConfigured()
  2. 9 core/modules/media/tests/src/FunctionalJavascript/MediaSourceImageTest.php \Drupal\Tests\media\FunctionalJavascript\MediaSourceImageTest::assertViewDisplayConfigured()

Asserts the proper entity view display components for a media type.

@internal

Parameters

string $media_type_id: The media type ID.

File

core/modules/media/tests/src/FunctionalJavascript/MediaSourceImageTest.php, line 166

Class

MediaSourceImageTest
Tests the image media source.

Namespace

Drupal\Tests\media\FunctionalJavascript

Code

protected function assertViewDisplayConfigured(string $media_type_id) : void {
  $assert_session = $this
    ->assertSession();
  $type = MediaType::load($media_type_id);
  $display = EntityViewDisplay::load('media.' . $media_type_id . '.' . EntityDisplayRepositoryInterface::DEFAULT_DISPLAY_MODE);
  $this
    ->assertInstanceOf(EntityViewDisplay::class, $display);
  $source_field_definition = $type
    ->getSource()
    ->getSourceFieldDefinition($type);
  $component = $display
    ->getComponent($source_field_definition
    ->getName());
  $this
    ->assertSame('visually_hidden', $component['label']);
  if (ImageStyle::load('large')) {
    $this
      ->assertSame('large', $component['settings']['image_style']);
  }
  else {
    $this
      ->assertEmpty($component['settings']['image_style']);
  }
  $this
    ->assertEmpty($component['settings']['image_link']);

  // Since components that aren't explicitly hidden can show up on the
  // display edit form, check that only the image field appears enabled on
  // the display edit form.
  $this
    ->drupalGet('/admin/structure/media/manage/' . $media_type_id . '/display');

  // Assert that only the source field is enabled.
  $assert_session
    ->elementExists('css', 'input[name="' . $source_field_definition
    ->getName() . '_settings_edit"]');
  $assert_session
    ->elementsCount('css', 'input[name$="_settings_edit"]', 1);
}