function SessionHelperTest::testWrapper

Same name 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

modules/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->assertIsArray($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.");
}