public function PanelsEverywherePageDisplayVariantSubscriberTest::testSubscriberStopsPropagationForNonAdminRoutesIfPanelsEverywhereVariantIsFound in Panels Everywhere 8.4
File
- tests/
src/ Unit/ EventSubscriber/ PanelsEverywherePageDisplayVariantSubscriberTest.php, line 85
Class
- PanelsEverywherePageDisplayVariantSubscriberTest
- @coversDefaultClass \Drupal\panels_everywhere\EventSubscriber\PanelsEverywherePageDisplayVariantSubscriber @group panels_everywhere
Namespace
Drupal\Tests\panels_everywhere\Unit\EventSubscriberCode
public function testSubscriberStopsPropagationForNonAdminRoutesIfPanelsEverywhereVariantIsFound() {
$page_id = 'some_page_id';
$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($page_id)
->willReturn($page
->reveal());
$pageStorage
->load('site_template')
->willReturn(NULL);
$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);
$route
->setDefault('page_id', $page_id);
$routeMatch = new RouteMatch('some.route_name', $route);
$event = new PageDisplayVariantSelectionEvent('some_plugin_id', $routeMatch);
// When.
$subscriber
->onSelectPageDisplayVariant($event);
// Then.
self::assertTrue($event
->isPropagationStopped());
}