You are here

function SessionTestCase::testNoSameSiteCookieAttributeDefault in Drupal 7

Test absence of SameSite attribute on session cookies by default.

File

modules/simpletest/tests/session.test, line 250
Provides SimpleTests for core session handling functionality.

Class

SessionTestCase
@file Provides SimpleTests for core session handling functionality.

Code

function testNoSameSiteCookieAttributeDefault() {
  $user = $this
    ->drupalCreateUser(array(
    'access content',
  ));
  $this
    ->sessionReset($user->uid);
  if (\PHP_VERSION_ID < 70300) {
    $this
      ->drupalLogin($user);
  }
  else {

    // PHP often defaults to an empty value for session.cookie_samesite but
    // that may vary, so we set an explicit empty value.
    // Send our own login POST so that we can pass a custom header to trigger
    // session_test.module to call ini_set('session.cookie_samesite', $value)
    $headers[] = 'X-Session-Cookie-Ini-Set: *EMPTY*';
    $edit = array(
      'name' => $user->name,
      'pass' => $user->pass_raw,
    );
    $this
      ->drupalPost('user', $edit, t('Log in'), array(), $headers);
  }
  $this
    ->assertFalse(preg_match('/SameSite=/i', $this
    ->drupalGetHeader('Set-Cookie', TRUE)), 'Session cookie has no SameSite attribute (default).');
}