TestWaitTerminateMiddleware.php
Same filename in other branches
Namespace
Drupal\Core\Test\StackMiddlewareFile
-
core/
lib/ Drupal/ Core/ Test/ StackMiddleware/ TestWaitTerminateMiddleware.php
View source
<?php
namespace Drupal\Core\Test\StackMiddleware;
use Drupal\Core\Lock\LockBackendInterface;
use Drupal\Core\State\StateInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\HttpKernelInterface;
/**
* Acquire a lock to signal request termination to the test runner.
*/
class TestWaitTerminateMiddleware implements HttpKernelInterface {
/**
* Constructs a test wait terminate stack middleware object.
*
* @param \Symfony\Component\HttpKernel\HttpKernelInterface $httpKernel
* The decorated kernel.
* @param \Drupal\Core\State\StateInterface $state
* The state server.
* @param \Drupal\Core\Lock\LockBackendInterface $lock
* The lock backend.
*/
public function __construct(HttpKernelInterface $httpKernel, StateInterface $state, LockBackendInterface $lock) {
}
/**
* {@inheritdoc}
*/
public function handle(Request $request, $type = self::MAIN_REQUEST, $catch = TRUE) : Response {
$result = $this->httpKernel
->handle($request, $type, $catch);
if ($this->state
->get('drupal.test_wait_terminate')) {
// Set a header on the response to instruct the test runner that it must
// await the lock. Note that the lock acquired here is automatically
// released from within a shutdown function.
$this->lock
->acquire('test_wait_terminate');
$result->headers
->set('X-Drupal-Wait-Terminate', '1');
}
return $result;
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
TestWaitTerminateMiddleware | Acquire a lock to signal request termination to the test runner. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.