function MediaFilterControllerTest::testPreview

Same name and namespace in other branches
  1. 11.x core/modules/media/tests/src/Kernel/MediaFilterControllerTest.php \Drupal\Tests\media\Kernel\MediaFilterControllerTest::testPreview()

Tests that media access is validated on media filter preview request.

File

core/modules/media/tests/src/Kernel/MediaFilterControllerTest.php, line 55

Class

MediaFilterControllerTest
Tests that media preview route follows the media's access control.

Namespace

Drupal\Tests\media\Kernel

Code

public function testPreview() : void {
  $text = $this->createEmbedCode([
    'data-entity-type' => 'media',
    'data-entity-uuid' => static::EMBEDDED_ENTITY_UUID,
  ]);
  $url = Url::fromRoute('media.filter.preview', [
    'filter_format' => $this->filterFormat
      ->id(),
  ], [
    'query' => [
      'text' => $text,
      'uuid' => static::EMBEDDED_ENTITY_UUID,
    ],
  ]);
  $output = $this->drupalGet($url, [], [
    'X-Drupal-MediaPreview-CSRF-Token' => 'placeholder-token',
  ]);
  $session = $this->getSession();
  $this->assertSame(Response::HTTP_OK, $session->getStatusCode());
  $this->assertStringNotContainsString('<drupal-media', $output);
  $media = \Drupal::service('entity.repository')->loadEntityByUuid('media', static::EMBEDDED_ENTITY_UUID);
  $this->assertFalse($media->access('view label', \Drupal::currentUser()));
  self::assertSame(\sprintf('Media %s', $media->id()), $session->getResponseHeader('Drupal-Media-Label'));
}

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