function SessionExampleTest::testUserIsolation

Same name and namespace in other branches
  1. 4.0.x modules/session_example/tests/src/Functional/SessionExampleTest.php \Drupal\Tests\session_example\Functional\SessionExampleTest::testUserIsolation()

Ensure the session data does not follow different users around.

File

modules/session_example/tests/src/Functional/SessionExampleTest.php, line 140

Class

SessionExampleTest
Tests the basic functions of the Session Example module.

Namespace

Drupal\Tests\session_example\Functional

Code

public function testUserIsolation() {
  $assert = $this->assertSession();
  // Our setUp() method has already logged in a user, so let's add some data.
  $form_data = [
    'name' => 'Sir Lancelot',
    'quest' => 'To seek the Grail',
    'color' => 'blue',
  ];
  $this->drupalGet(Url::fromRoute('session_example.form'));
  $this->submitForm($form_data, 'Save');
  // Check that the report shows our information.
  $this->clickLink('Check here');
  foreach ($form_data as $value) {
    $assert->pageTextContains($value);
  }
  // Let's log in a new user and make sure they can't see the other user's
  // data.
  $this->drupalLogin($this->createUser([
    'access content',
  ]));
  $this->drupalGet(Url::fromRoute('session_example.view'));
  $assert->statusCodeEquals(200);
  $assert->pageTextContains('No name');
  $assert->pageTextContains('No email');
  $assert->pageTextContains('No quest');
  $assert->pageTextContains('No color');
}