acquia_dam-1.0.0-rc1/tests/src/Kernel/ExpiredTagTest.php
tests/src/Kernel/ExpiredTagTest.php
<?php declare(strict_types=1); namespace Drupal\Tests\acquia_dam\Kernel; use Drupal\acquia_dam\Entity\MediaExpiryDateField; use Drupal\acquia_dam\Entity\MediaSourceField; use Drupal\Core\Config\FileStorage; use Drupal\entity_test\Entity\EntityTest; use Drupal\media\Entity\Media; use Drupal\Tests\field\Traits\EntityReferenceTestTrait; use Symfony\Component\HttpFoundation\Request; /** * Test Acquia Dam expiry tag. * * @group acquia_dam */ final class ExpiredTagTest extends AcquiaDamKernelTestBase { use EntityReferenceTestTrait; protected function setUp(): void { parent::setUp(); $this->installConfig(['system', 'image']); $source = new FileStorage(__DIR__ . '/../../../config/install'); $view = $this->container->get('entity_type.manager') ->getStorage('view') ->createFromStorageRecord($source->read('views.view.dam_content_overview')); $view->save(); $this->createEntityReferenceField('entity_test', 'entity_test', 'media_field', 'A Media Field', 'media', 'default', [], -1); $display_repository = $this->container->get('entity_display.repository'); $display_repository->getFormDisplay('entity_test', 'entity_test') ->setComponent('media_field', [ 'type' => 'media_library_widget', 'region' => 'content', ]) ->save(); $display_repository->getViewDisplay('entity_test', 'entity_test', 'default') ->setComponent('media_field', [ 'type' => 'entity_reference_entity_view', ]) ->save(); } public function testExpiryTag(): void { $this->drupalSetUpCurrentUser([], [ 'administer entity_test content', 'view media', ]); $media_type = $this->createDocumentMediaType(); $time = $this->container->get('datetime.time'); $media_expired = Media::create([ 'bundle' => $media_type->id(), MediaSourceField::SOURCE_FIELD_NAME => [ 'asset_id' => 'efb03f75-3c42-497b-baa9-5ec79d1f56af', ], MediaExpiryDateField::EXPIRY_DATE_FIELD_NAME => [ 'value' => $time->getCurrentTime() - 86400, ], ]); $media_expired->save(); $media = Media::create([ 'bundle' => $media_type->id(), MediaSourceField::SOURCE_FIELD_NAME => [ 'asset_id' => '0324b0b2-5293-4aa0-b0aa-c85b003395e2', ], MediaExpiryDateField::EXPIRY_DATE_FIELD_NAME => [ 'value' => $time->getCurrentTime() + 86400, ], ]); $media->save(); $entity = EntityTest::create([ 'name' => 'test_expiry', 'media_field' => [ ['target_id' => $media_expired->id()], ['target_id' => $media->id()], ], ]); $entity->save(); $response = $this->processRequest( Request::create($entity->toUrl('edit-form')->toString()) ); self::assertEquals(200, $response->getStatusCode()); $media_items = $this->cssSelect('.js-media-library-item'); self::assertCount(2, $media_items); $expired_items = $this->cssSelect('.acquia-dam-expired-asset'); self::assertCount(1, $expired_items); $response = $this->processRequest( Request::create('/admin/content/dam-media') ); self::assertEquals(200, $response->getStatusCode()); $media_items = $this->cssSelect('.views-field-acquia-dam-expiry-date-value'); self::assertCount(2, $media_items); $expired_items = $this->cssSelect('.acquia-dam-expired-asset'); self::assertCount(1, $expired_items); } }