public function SchedulerBasicMediaTest::testMediaPublishing in Scheduler 2.x
Tests scheduled publishing of a media entity.
Covers scheduler_entity_presave(), scheduler_cron(), schedulerManager::publish.
File
- tests/
src/ Functional/ SchedulerBasicMediaTest.php, line 18
Class
- SchedulerBasicMediaTest
- Tests the modules primary functions with a Media entity type.
Namespace
Drupal\Tests\scheduler\FunctionalCode
public function testMediaPublishing() {
// Specify values for the entity.
$values = [
'name' => 'Publish This Media',
'publish_on' => $this->requestTime + 3600,
];
// Create a media entity with the scheduler fields populated as required.
$entity = $this
->createMediaItem($values);
$this
->assertNotEmpty($entity, 'The entity was created sucessfully.');
// Assert that the entity has a publish_on date.
$this
->assertNotEmpty($entity->publish_on, 'The entity has a publish_on date');
// Assert that the entity is not published before cron.
$this
->assertFalse($entity
->isPublished(), 'The entity is unpublished before cron run');
// Modify the scheduler field to a time in the past, then run cron.
$entity->publish_on = $this->requestTime - 1;
$entity
->save();
$this
->cronRun();
// Refresh the cache, reload the entity and check the entity is published.
$this->mediaStorage
->resetCache([
$entity
->id(),
]);
$entity = $this->mediaStorage
->load($entity
->id());
$this
->assertTrue($entity
->isPublished(), 'The entity is published after cron run');
}