public function BlockDisplayVariantTest::testBlockDisplayVariantEvents in Chaos Tool Suite (ctools) 8.3
Tests that events are fired when manipulating a block variant.
File
- tests/
src/ Kernel/ BlockDisplayVariantTest.php, line 26
Class
- BlockDisplayVariantTest
- @coversDefaultClass \Drupal\ctools\Plugin\DisplayVariant\BlockDisplayVariant @group CTools
Namespace
Drupal\Tests\ctools\KernelCode
public function testBlockDisplayVariantEvents() {
/** @var \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher */
$event_dispatcher = $this
->prophesize(EventDispatcherInterface::class);
// Swap in a mock event dispatcher so we can spy on method calls.
$this->container
->set('event_dispatcher', $event_dispatcher
->reveal());
$variant = BlockDisplayVariant::create($this->container, [], 'foobar', []);
// Set up the expected calls to the event dispatcher.
$event = Argument::type(BlockVariantEvent::class);
$event_dispatcher
->dispatch(BlockVariantEvents::ADD_BLOCK, $event)
->shouldBeCalled();
$event_dispatcher
->dispatch(BlockVariantEvents::UPDATE_BLOCK, $event)
->shouldBeCalled();
$event_dispatcher
->dispatch(BlockVariantEvents::DELETE_BLOCK, $event)
->shouldBeCalled();
$block_id = $variant
->addBlock([
'id' => 'system_powered_by_block',
]);
$variant
->updateBlock($block_id, []);
$variant
->removeBlock($block_id);
}