You are here

public function SessionExampleTest::testUserIsolation in Examples for Developers 3.x

Same name and namespace in other branches
  1. 8 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 136

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
    ->drupalPostForm(Url::fromRoute('session_example.form'), $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');
}