public function PanelsEverywherePageDisplayVariantSubscriberTest::testSubscriberStopsPropagationForPanelsEverywhereDisplayVariantOnSiteTemplateOnly in Panels Everywhere 8.4
File
- tests/
src/ Unit/ EventSubscriber/ PanelsEverywherePageDisplayVariantSubscriberTest.php, line 125
Class
- PanelsEverywherePageDisplayVariantSubscriberTest
- @coversDefaultClass \Drupal\panels_everywhere\EventSubscriber\PanelsEverywherePageDisplayVariantSubscriber @group panels_everywhere
Namespace
Drupal\Tests\panels_everywhere\Unit\EventSubscriberCode
public function testSubscriberStopsPropagationForPanelsEverywhereDisplayVariantOnSiteTemplateOnly() {
$variantPlugin = $this
->prophesize(BlockDisplayVariant::class);
$variantPlugin
->getPluginId()
->willReturn('panels_everywhere_variant');
$variantPlugin
->getConfiguration()
->willReturn([]);
$variantPlugin
->getContexts()
->willReturn([]);
$pageVariant = $this
->prophesize(PageVariantInterface::class);
$pageVariant
->access('view')
->willReturn(TRUE);
$pageVariant
->getVariantPlugin()
->willReturn($variantPlugin
->reveal());
$page = $this
->prophesize(PageInterface::class);
$page
->get('status')
->willReturn(TRUE);
$page
->getVariants()
->willReturn([
$pageVariant
->reveal(),
]);
$pageStorage = $this
->prophesize(EntityStorageInterface::class);
$pageStorage
->load('site_template')
->willReturn($page
->reveal());
$entity_type_manager = $this
->prophesize(EntityTypeManagerInterface::class);
$entity_type_manager
->getStorage('page')
->willReturn($pageStorage
->reveal());
$subscriber = new PanelsEverywherePageDisplayVariantSubscriber($entity_type_manager
->reveal());
$route = new Route('/some-path');
$route
->setOption('_admin_route', FALSE);
$routeMatch = new RouteMatch('some.route_name', $route);
$event = new PageDisplayVariantSelectionEvent('some_plugin_id', $routeMatch);
// When.
$subscriber
->onSelectPageDisplayVariant($event);
// Then.
self::assertTrue($event
->isPropagationStopped());
}