You are here

class MediaCacheTagsTest in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/media/tests/src/Functional/MediaCacheTagsTest.php \Drupal\Tests\media\Functional\MediaCacheTagsTest
  2. 9 core/modules/media/tests/src/Functional/MediaCacheTagsTest.php \Drupal\Tests\media\Functional\MediaCacheTagsTest

Tests the media items cache tags.

@group media

Hierarchy

Expanded class hierarchy of MediaCacheTagsTest

File

core/modules/media/tests/src/Functional/MediaCacheTagsTest.php, line 15

Namespace

Drupal\Tests\media\Functional
View source
class MediaCacheTagsTest extends EntityWithUriCacheTagsTestBase {
  use MediaTypeCreationTrait;

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'media',
    'media_test_source',
  ];

  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';

  /**
   * {@inheritdoc}
   */
  protected function setUp() : void {
    parent::setUp();
    \Drupal::configFactory()
      ->getEditable('media.settings')
      ->set('standalone_url', TRUE)
      ->save(TRUE);
    $this->container
      ->get('router.builder')
      ->rebuild();
  }

  /**
   * {@inheritdoc}
   */
  protected function createEntity() {

    // Create a media type.
    $mediaType = $this
      ->createMediaType('test');

    // Create a media item.
    $media = Media::create([
      'bundle' => $mediaType
        ->id(),
      'name' => 'Unnamed',
    ]);
    $media
      ->save();
    return $media;
  }

  /**
   * {@inheritdoc}
   */
  protected function getAdditionalCacheContextsForEntity(EntityInterface $media) {
    return [
      'timezone',
    ];
  }

  /**
   * {@inheritdoc}
   */
  protected function getAdditionalCacheTagsForEntity(EntityInterface $media) {

    // Each media item must have an author and a thumbnail.
    return [
      'user:' . $media
        ->getOwnerId(),
      'config:image.style.thumbnail',
      'file:' . $media
        ->get('thumbnail')->entity
        ->id(),
    ];
  }

}

Members