1 session.test | SessionTestCase::testDataPersistence() |
Test data persistence via the session_test module callbacks.
File
- core/
modules/ simpletest/ tests/ session.test, line 66 - Provides SimpleTests for core session handling functionality.
Class
Code
function testDataPersistence() {
$user = $this->backdropCreateUser(array('access content'));
// Enable sessions.
$this->sessionReset($user->uid);
$this->backdropLogin($user);
$value_1 = $this->randomName();
$this->backdropGet('session-test/set/' . $value_1);
$this->assertText($value_1, 'The session value was stored.', 'Session');
$this->backdropGet('session-test/get');
$this->assertText($value_1, 'Session correctly returned the stored data for an authenticated user.', 'Session');
// Attempt to write over val_1. If backdrop_save_session(FALSE) is working.
// properly, val_1 will still be set.
$value_2 = $this->randomName();
$this->backdropGet('session-test/no-set/' . $value_2);
$this->assertText($value_2, 'The session value was correctly passed to session-test/no-set.', 'Session');
$this->backdropGet('session-test/get');
$this->assertText($value_1, 'Session data is not saved for backdrop_save_session(FALSE).', 'Session');
// Switch browser cookie to anonymous user, then back to user 1.
$this->sessionReset();
$this->sessionReset($user->uid);
$this->assertText($value_1, 'Session data persists through browser close.', 'Session');
// Logout the user and make sure the stored value no longer persists.
$this->backdropLogout();
$this->sessionReset();
$this->backdropGet('session-test/get');
$this->assertNoText($value_1, "After logout, previous user's session data is not available.", 'Session');
// Now try to store some data as an anonymous user.
$value_3 = $this->randomName();
$this->backdropGet('session-test/set/' . $value_3);
$this->assertText($value_3, 'Session data stored for anonymous user.', 'Session');
$this->backdropGet('session-test/get');
$this->assertText($value_3, 'Session correctly returned the stored data for an anonymous user.', 'Session');
// Try to store data when backdrop_save_session(FALSE).
$value_4 = $this->randomName();
$this->backdropGet('session-test/no-set/' . $value_4);
$this->assertText($value_4, 'The session value was correctly passed to session-test/no-set.', 'Session');
$this->backdropGet('session-test/get');
$this->assertText($value_3, 'Session data is not saved for backdrop_save_session(FALSE).', 'Session');
// Login, the data should persist.
$this->backdropLogin($user);
$this->sessionReset($user->uid);
$this->backdropGet('session-test/get');
$this->assertNoText($value_1, 'Session has persisted for an authenticated user after logging out and then back in.', 'Session');
// Change session and create another user.
$user2 = $this->backdropCreateUser(array('access content'));
$this->sessionReset($user2->uid);
$this->backdropLogin($user2);
}