function StackSessionHandlerIntegrationTest::testRequestWriteInvokesUpdateTimestamp
Tests a session rewrite-unmodified request with a valid session cookie.
The trace should include `validateId` because a session cookie is included.
The trace should include `updateTimestamp` but not include `write` because the session data is rewritten without modification and `session.lazy_write` is enabled.
File
-
core/
modules/ system/ tests/ src/ Functional/ Session/ StackSessionHandlerIntegrationTest.php, line 111
Class
- StackSessionHandlerIntegrationTest
- Tests the stacked session handler functionality.
Namespace
Drupal\Tests\system\Functional\SessionCode
public function testRequestWriteInvokesUpdateTimestamp() : void {
$options['query'][MainContentViewSubscriber::WRAPPER_FORMAT] = 'drupal_ajax';
$headers = [
'X-Requested-With' => 'XMLHttpRequest',
];
// Call the write trace handler to store the trace and retrieve a session
// cookie.
$this->drupalGet('session-test/trace-handler');
// Call the rewrite-unmodified trace handler with the session cookie.
$actual_trace = json_decode($this->drupalGet('session-test/trace-handler-rewrite-unmodified', $options, $headers));
$sessionId = $this->getSessionCookies()
->getCookieByName($this->getSessionName())
->getValue();
$expect_trace = [
[
"BEGIN",
"test_argument",
"open",
],
[
"BEGIN",
NULL,
"open",
],
[
"END",
NULL,
"open",
],
[
"END",
"test_argument",
"open",
],
[
"BEGIN",
"test_argument",
"validateId",
$sessionId,
],
[
"BEGIN",
NULL,
"validateId",
$sessionId,
],
[
"END",
NULL,
"validateId",
$sessionId,
],
[
"END",
"test_argument",
"validateId",
$sessionId,
],
[
"BEGIN",
"test_argument",
"read",
$sessionId,
],
[
"BEGIN",
NULL,
"read",
$sessionId,
],
[
"END",
NULL,
"read",
$sessionId,
],
[
"END",
"test_argument",
"read",
$sessionId,
],
[
"BEGIN",
"test_argument",
"updateTimestamp",
$sessionId,
],
[
"BEGIN",
NULL,
"updateTimestamp",
$sessionId,
],
[
"END",
NULL,
"updateTimestamp",
$sessionId,
],
[
"END",
"test_argument",
"updateTimestamp",
$sessionId,
],
[
"BEGIN",
"test_argument",
"close",
],
[
"BEGIN",
NULL,
"close",
],
[
"END",
NULL,
"close",
],
[
"END",
"test_argument",
"close",
],
];
$this->assertEquals($expect_trace, $actual_trace);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.