* @license http://www.gnu.org/licenses/gpl-2.0.txt GPL, version 2 * @author Icinga Development Team * */ // {{{ICINGA_LICENSE_HEADER}}} namespace Tests\Icinga\Authentication; // @codingStandardsIgnoreStart require_once realpath(__DIR__ . '/../../../../../library/Icinga/Test/BaseTestCase.php'); // @codingStandardsIgnoreEnd use Icinga\Test\BaseTestCase; // @codingStandardsIgnoreStart require_once BaseTestCase::$libDir . '/Authentication/Session.php'; require_once BaseTestCase::$libDir . '/Authentication/PhpSession.php'; require_once BaseTestCase::$libDir . '/Application/Logger.php'; require_once BaseTestCase::$libDir . '/Exception/ConfigurationError.php'; require_once 'Zend/Log.php'; // @codingStandardsIgnoreEnd use Icinga\Authentication\PhpSession; class PhpSessionTest extends BaseTestCase { private function getSession() { if (!is_writable('/tmp')) { $this->markTestSkipped('Could not write to session directory'); } return new PhpSession( array( 'use_cookies' => false, 'save_path' => '/tmp', 'test_session_name' => 'IcingawebUnittest' ) ); } /** * Test the creation of a PhpSession object * * @runInSeparateProcess */ public function testSessionCreation() { $this->getSession(); } /** * Test PhpSession::open() * * @runInSeparateProcess */ public function testSessionReadWrite() { $session = $this->getSession(); $session->purge(); $this->assertEquals(null, $session->get('key')); $session->set('key', 'value'); $session->write(); $session->read(); $this->assertEquals('value', $session->get('key')); } /** * Test a session being closed by PhpSession::close() * * @runInSeparateProcess */ public function testPurgeSession() { $session = $this->getSession(); $session->set('key2', 'value2'); $session->purge(); $session->read(); $this->assertEquals(null, $session->get('key2')); } }