function BigPipeTest::setCsrfTokenSeedInTestEnvironment
Same name in other branches
- 9 core/modules/big_pipe/tests/src/Functional/BigPipeTest.php \Drupal\Tests\big_pipe\Functional\BigPipeTest::setCsrfTokenSeedInTestEnvironment()
- 8.9.x core/modules/big_pipe/tests/src/Functional/BigPipeTest.php \Drupal\Tests\big_pipe\Functional\BigPipeTest::setCsrfTokenSeedInTestEnvironment()
- 11.x core/modules/big_pipe/tests/src/Functional/BigPipeTest.php \Drupal\Tests\big_pipe\Functional\BigPipeTest::setCsrfTokenSeedInTestEnvironment()
Ensures CSRF tokens can be generated for the current user's session.
2 calls to BigPipeTest::setCsrfTokenSeedInTestEnvironment()
- BigPipeTest::testBigPipe in core/
modules/ big_pipe/ tests/ src/ Functional/ BigPipeTest.php - Tests BigPipe-delivered HTML responses when JavaScript is enabled.
- BigPipeTest::testBigPipeNoJs in core/
modules/ big_pipe/ tests/ src/ Functional/ BigPipeTest.php - Tests BigPipe-delivered HTML responses when JavaScript is disabled.
File
-
core/
modules/ big_pipe/ tests/ src/ Functional/ BigPipeTest.php, line 431
Class
- BigPipeTest
- Tests BigPipe's no-JS detection & response delivery (with and without JS).
Namespace
Drupal\Tests\big_pipe\FunctionalCode
protected function setCsrfTokenSeedInTestEnvironment() {
// Retrieve the CSRF token from the child site from its serialized session
// record in the database.
$session_data = $this->container
->get('session_handler.write_safe')
->read($this->getSession()
->getCookie($this->getSessionName()));
$csrf_token_seed = unserialize(explode('_sf2_meta|', $session_data)[1])['s'];
// Ensure that the session is started before accessing a session bag.
// Otherwise the value stored in the bag is lost when subsequent session
// access triggers a session start automatically.
/** @var \Symfony\Component\HttpFoundation\RequestStack $request_stack */
$request_stack = $this->container
->get('request_stack');
$session = $request_stack->getSession();
if (!$session->isStarted()) {
$session->start();
}
// Store the CSRF token in the test runners session metadata bag.
$this->container
->get('session_manager.metadata_bag')
->setCsrfTokenSeed($csrf_token_seed);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.