public function ScheduledTransitionModalFormTest::testAlterTargetRevisionIds in Scheduled Transitions 2.x
Tests ability to alter target revisions via query alter hook.
@covers \Drupal\scheduled_transitions\ScheduledTransitionsUtility::getTargetRevisionIds
See also
\Drupal\scheduled_transitions\ScheduledTransitionsUtility::QUERY_TAG_TARGET_REVISIONS
\scheduled_transitions_target_revisions_test_query_scheduled_transitions_target_revisions_alter()
File
- tests/
src/ Functional/ ScheduledTransitionModalFormTest.php, line 164
Class
- ScheduledTransitionModalFormTest
- Tests the route to add a new transition to an entity (modal form).
Namespace
Drupal\Tests\scheduled_transitions\FunctionalCode
public function testAlterTargetRevisionIds() {
$this
->enabledBundles([
[
'st_entity_test',
'st_entity_test',
],
]);
$workflow = $this
->createEditorialWorkflow();
$workflow
->getTypePlugin()
->addEntityTypeAndBundle('st_entity_test', 'st_entity_test');
$workflow
->save();
$currentUser = $this
->drupalCreateUser([
'administer st_entity_test entities',
'use editorial transition create_new_draft',
'use editorial transition publish',
'use editorial transition archive',
Permissions::addScheduledTransitionsPermission('st_entity_test', 'st_entity_test'),
]);
$this
->drupalLogin($currentUser);
/** @var \Drupal\scheduled_transitions_test\Entity\ScheduledTransitionsTestEntity $entity */
$entity = ScheduledTransitionsTestEntity::create([
'type' => 'st_entity_test',
]);
// Create a revision which will be filtered out by alter hook.
// Changing 'name' is required to counter
// https://www.drupal.org/project/drupal/issues/2859042.
$entity->name = 'rev 1';
$entity
->setNewRevision();
$entity
->setRevisionCreationTime((new \DateTime('1st June 2015'))
->getTimestamp());
$entity
->setRevisionLogMessage('June 2015 Revision');
$entity
->save();
// Create a revision which will still be visible.
$entity->name = 'rev 2';
$entity
->setNewRevision();
$entity
->setRevisionCreationTime((new \DateTime('1st August 2015'))
->getTimestamp());
$entity
->setRevisionLogMessage('August 2015 Revision');
$entity
->save();
// Access the modal directly.
$this
->drupalGet($entity
->toUrl(ScheduledTransitionsRouteProvider::LINK_TEMPLATE_ADD));
$this
->assertSession()
->pageTextNotContains('June 2015 Revision');
$this
->assertSession()
->pageTextContains('August 2015 Revision');
}