You are here

public function SessionHelperTest::testWrapper in Examples for Developers 8

Same name and namespace in other branches
  1. 3.x modules/stream_wrapper_example/tests/src/Unit/SessionHelperTest.php \Drupal\Tests\stream_wrapper_example\Unit\SessionHelperTest::testWrapper()

Run our wrapper through the paces.

File

stream_wrapper_example/tests/src/Unit/SessionHelperTest.php, line 48

Class

SessionHelperTest
PHPUnit test for the SessionHelper session manipulation class.

Namespace

Drupal\Tests\stream_wrapper_example\Unit

Code

public function testWrapper() {

  // Check out root.
  $helper = new SessionHelper($this->requestStack);
  $root = $helper
    ->getPath('');
  $this
    ->assertInternalType('array', $root);
  $this
    ->assertEmpty($root);

  // Add a top level file.
  $helper = new SessionHelper($this->requestStack);
  $helper
    ->setPath('drupal.txt', "Stuff");
  $text = $helper
    ->getPath('drupal.txt');
  $this
    ->assertEquals($text, "Stuff", "File at base of hierarchy can be read.");

  // Add a "directory".
  $helper = new SessionHelper($this->requestStack);
  $dir = [
    'file.txt' => 'More stuff',
  ];
  $helper
    ->setPath('directory1', $dir);
  $fetched_dir = $helper
    ->getPath('directory1');
  $this
    ->assertEquals($fetched_dir['file.txt'], "More stuff", "File inside of directory can be read.");

  // Check file existance.
  $helper = new SessionHelper($this->requestStack);
  $this
    ->assertTrue($helper
    ->checkPath('drupal.txt'), "File at root still exists.");
  $this
    ->assertFalse($helper
    ->checkPath('file.txt'), "Non-existant file at root does not exist.");
  $this
    ->assertTrue($helper
    ->checkPath('directory1'), "Directory at root still exists.");
  $this
    ->assertTrue($helper
    ->checkPath('directory1/file.txt'), "File in directory at root still exists.");

  // Two deep.
  $helper = new SessionHelper($this->requestStack);
  $helper
    ->setPath('directory1/directory2', []);
  $helper
    ->setPath('directory1/directory2/junk.txt', "Store some junk");
  $text = $helper
    ->getPath('directory1/directory2/junk.txt');
  $this
    ->assertEquals($text, "Store some junk", "File inside of nested directory can be read.");

  // Clear references.
  $helper = new SessionHelper($this->requestStack);
  $before = $helper
    ->checkPath('directory1/directory2/junk.txt');
  $this
    ->assertTrue($before, "File 2 deep exists.");
  $helper
    ->clearPath('directory1/directory2/junk.txt');
  $after = $helper
    ->checkPath('directory1/directory2/junk.txt');
  $this
    ->assertFalse($after, "File 2 deep should be gone.");

  // Clean up test.
  $helper = new SessionHelper($this->requestStack);
  $store = $helper
    ->getPath('');
  $this
    ->assertNotEmpty($store, "Before cleanup store is not empty.");
  $helper
    ->cleanUpStore();
  $store = $helper
    ->getPath('');
  $this
    ->assertEmpty($store, "After cleanup store is empty.");
}