function PackageManagerKernelTestBase::assertEventPropagationStopped

Asserts event propagation is stopped by a certain event subscriber.

Parameters

string $event_class: The event during which propagation is expected to stop.

callable $expected_propagation_stopper: The event subscriber (which subscribes to the given event class) which is expected to stop propagation. This event subscriber must have been registered by one of the installed Drupal module.

File

core/modules/package_manager/tests/src/Kernel/PackageManagerKernelTestBase.php, line 398

Class

PackageManagerKernelTestBase
Base class for kernel tests of Package Manager's functionality.

Namespace

Drupal\Tests\package_manager\Kernel

Code

protected function assertEventPropagationStopped(string $event_class, callable $expected_propagation_stopper) : void {
    $priority = $this->container
        ->get('event_dispatcher')
        ->getListenerPriority($event_class, $expected_propagation_stopper);
    // Ensure the event subscriber was actually a listener for the event.
    $this->assertIsInt($priority);
    // Add a listener with a priority that is 1 less than priority of the
    // event subscriber. This listener would be called after
    // $expected_propagation_stopper if the event propagation was not stopped
    // and cause the test to fail.
    $this->addEventTestListener(function () use ($event_class) : void {
        $this->fail('Event propagation should have been stopped during ' . $event_class . '.');
    }, $event_class, $priority - 1);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.