diff options
Diffstat (limited to 'tests/codeigniter/libraries/Session_test.php')
-rw-r--r-- | tests/codeigniter/libraries/Session_test.php | 441 |
1 files changed, 0 insertions, 441 deletions
diff --git a/tests/codeigniter/libraries/Session_test.php b/tests/codeigniter/libraries/Session_test.php deleted file mode 100644 index 840df076a..000000000 --- a/tests/codeigniter/libraries/Session_test.php +++ /dev/null @@ -1,441 +0,0 @@ -<?php - -/** - * Session driver library unit test - */ -class Session_test extends CI_TestCase { - - protected $settings = array( - 'use_cookies' => 0, - 'use_only_cookies' => 0, - 'cache_limiter' => FALSE - ); - protected $setting_vals = array(); - protected $cookie_vals; - protected $session; - - /** - * Set up test framework - */ - public function set_up() - { -return; - // Override settings - foreach ($this->settings as $name => $value) { - $this->setting_vals[$name] = ini_get('session.'.$name); - ini_set('session.'.$name, $value); - } - - // Start with clean environment - $this->cookie_vals = $_COOKIE; - $_COOKIE = array(); - - // Set subclass prefix to match our mock - $this->ci_set_config('subclass_prefix', 'Mock_Libraries_'); - - // Establish necessary support classes - $ci = $this->ci_instance(); - $ldr = $this->ci_core_class('load'); - $ci->load = new $ldr(); - $security = new Mock_Core_Security('UTF-8'); - $ci->input = new CI_Input($security); - - // Make sure string helper is available - $this->ci_vfs_clone('system/helpers/string_helper.php'); - - // Attach session instance locally - $config = array( - 'sess_encrypt_cookie' => FALSE, - 'sess_use_database' => FALSE, - 'sess_table_name' => '', - 'sess_expiration' => 7200, - 'sess_expire_on_close' => FALSE, - 'sess_match_ip' => FALSE, - 'sess_match_useragent' => TRUE, - 'sess_cookie_name' => 'ci_session', - 'cookie_path' => '', - 'cookie_domain' => '', - 'cookie_secure' => FALSE, - 'cookie_httponly' => FALSE, - 'sess_time_to_update' => 300, - 'time_reference' => 'local', - 'cookie_prefix' => '', - 'encryption_key' => 'foobar' - ); - $this->session = new Mock_Libraries_Session($config); - } - - /** - * Tear down test framework - */ - public function tear_down() - { -return; - // Restore environment - if (session_id()) session_destroy(); - $_SESSION = array(); - $_COOKIE = $this->cookie_vals; - - // Restore settings - foreach ($this->settings as $name => $value) { - ini_set('session.'.$name, $this->setting_vals[$name]); - } - } - - /** - * Test set_userdata() function - */ - public function test_set_userdata() - { -return; - // Set userdata values for each driver - $key1 = 'test1'; - $ckey2 = 'test2'; - $nkey2 = 'test3'; - $cmsg1 = 'Some test data'; - $cmsg2 = 42; - $nmsg1 = 'Other test data'; - $nmsg2 = TRUE; - $this->session->cookie->set_userdata($key1, $cmsg1); - $this->session->set_userdata($ckey2, $cmsg2); - $this->session->native->set_userdata($key1, $nmsg1); - $this->session->set_userdata($nkey2, $nmsg2); - - // Verify independent messages - $this->assertEquals($cmsg1, $this->session->cookie->userdata($key1)); - $this->assertEquals($nmsg1, $this->session->native->userdata($key1)); - - // Verify pre-selected driver sets - $this->assertEquals($cmsg2, $this->session->cookie->userdata($ckey2)); - $this->assertEquals($nmsg2, $this->session->native->userdata($nkey2)); - - // Verify no crossover - $this->assertNull($this->session->cookie->userdata($nkey2)); - $this->assertNull($this->session->native->userdata($ckey2)); - } - - /** - * Test the has_userdata() function - */ - public function test_has_userdata() - { -return; - // Set a userdata value for each driver - $key = 'hastest'; - $cmsg = 'My test data'; - $this->session->cookie->set_userdata($key, $cmsg); - $nmsg = 'Your test data'; - $this->session->native->set_userdata($key, $nmsg); - - // Verify values exist - $this->assertTrue($this->session->cookie->has_userdata($key)); - $this->assertTrue($this->session->native->has_userdata($key)); - - // Verify non-existent values - $nokey = 'hasnot'; - $this->assertFalse($this->session->cookie->has_userdata($nokey)); - $this->assertFalse($this->session->native->has_userdata($nokey)); - } - - /** - * Test the all_userdata() function - */ - public function test_all_userdata() - { -return; - // Set a specific series of data for each driver - $cdata = array( - 'one' => 'first', - 'two' => 'second', - 'three' => 'third', - 'foo' => 'bar', - 'bar' => 'baz' - ); - $ndata = array( - 'one' => 'gold', - 'two' => 'silver', - 'three' => 'bronze', - 'foo' => 'baz', - 'bar' => 'foo' - ); - $this->session->cookie->set_userdata($cdata); - $this->session->native->set_userdata($ndata); - - // Make sure all values are present - $call = $this->session->cookie->userdata(); - foreach ($cdata as $key => $value) { - $this->assertEquals($value, $call[$key]); - } - $nall = $this->session->native->userdata(); - foreach ($ndata as $key => $value) { - $this->assertEquals($value, $nall[$key]); - } - } - - /** - * Test the unset_userdata() function - */ - public function test_unset_userdata() - { -return; - // Set a userdata message for each driver - $key = 'untest'; - $cmsg = 'Other test data'; - $this->session->cookie->set_userdata($key, $cmsg); - $nmsg = 'Sundry test data'; - $this->session->native->set_userdata($key, $nmsg); - - // Verify independent messages - $this->assertEquals($this->session->cookie->userdata($key), $cmsg); - $this->assertEquals($this->session->native->userdata($key), $nmsg); - - // Unset them and verify absence - $this->session->cookie->unset_userdata($key); - $this->session->native->unset_userdata($key); - $this->assertNull($this->session->cookie->userdata($key)); - $this->assertNull($this->session->native->userdata($key)); - } - - /** - * Test the flashdata() functions - */ - public function test_flashdata() - { -return; - // Set flashdata message for each driver - $key = 'fltest'; - $cmsg = 'Some flash data'; - $this->session->cookie->set_flashdata($key, $cmsg); - $nmsg = 'Other flash data'; - $this->session->native->set_flashdata($key, $nmsg); - - // Simulate page reload - $this->session->cookie->reload(); - $this->session->native->reload(); - - // Verify independent messages - $this->assertEquals($cmsg, $this->session->cookie->flashdata($key)); - $this->assertEquals($nmsg, $this->session->native->flashdata($key)); - - // Simulate next page reload - $this->session->cookie->reload(); - $this->session->native->reload(); - - // Verify absence of messages - $this->assertNull($this->session->cookie->flashdata($key)); - $this->assertNull($this->session->native->flashdata($key)); - } - - /** - * Test the keep_flashdata() function - */ - public function test_keep_flashdata() - { -return; - // Set flashdata message for each driver - $key = 'kfltest'; - $cmsg = 'My flash data'; - $this->session->cookie->set_flashdata($key, $cmsg); - $nmsg = 'Your flash data'; - $this->session->native->set_flashdata($key, $nmsg); - - // Simulate page reload and verify independent messages - $this->session->cookie->reload(); - $this->session->native->reload(); - $this->assertEquals($cmsg, $this->session->cookie->flashdata($key)); - $this->assertEquals($nmsg, $this->session->native->flashdata($key)); - - // Keep messages - $this->session->cookie->keep_flashdata($key); - $this->session->native->keep_flashdata($key); - - // Simulate next page reload and verify message persistence - $this->session->cookie->reload(); - $this->session->native->reload(); - $this->assertEquals($cmsg, $this->session->cookie->flashdata($key)); - $this->assertEquals($nmsg, $this->session->native->flashdata($key)); - - // Simulate next page reload and verify absence of messages - $this->session->cookie->reload(); - $this->session->native->reload(); - $this->assertNull($this->session->cookie->flashdata($key)); - $this->assertNull($this->session->native->flashdata($key)); - } - - public function test_keep_flashdata_with_array() - { -return; - // Set flashdata array for each driver - $cdata = array( - 'one' => 'first', - 'two' => 'second', - 'three' => 'third', - 'foo' => 'bar', - 'bar' => 'baz' - ); - $ndata = array( - 'one' => 'gold', - 'two' => 'silver', - 'three' => 'bronze', - 'foo' => 'baz', - 'bar' => 'foo' - ); - $kdata = array( - 'one', - 'two', - 'three', - 'foo', - 'bar' - ); - $this->session->cookie->set_flashdata($cdata); - $this->session->native->set_flashdata($ndata); - - // Simulate page reload and verify independent messages - $this->session->cookie->reload(); - $this->session->native->reload(); - $this->assertEquals($cdata, $this->session->cookie->flashdata()); - $this->assertEquals($ndata, $this->session->native->flashdata()); - - // Keep messages - $this->session->cookie->keep_flashdata($kdata); - $this->session->native->keep_flashdata($kdata); - - // Simulate next page reload and verify message persistence - $this->session->cookie->reload(); - $this->session->native->reload(); - $this->assertEquals($cdata, $this->session->cookie->flashdata()); - $this->assertEquals($ndata, $this->session->native->flashdata()); - - // Simulate next page reload and verify absence of messages - $this->session->cookie->reload(); - $this->session->native->reload(); - $this->assertEmpty($this->session->cookie->flashdata()); - $this->assertEmpty($this->session->native->flashdata()); - } - - /** - * Test the all_flashdata() function - */ - public function test_all_flashdata() - { -return; - // Set a specific series of data for each driver - $cdata = array( - 'one' => 'first', - 'two' => 'second', - 'three' => 'third', - 'foo' => 'bar', - 'bar' => 'baz' - ); - $ndata = array( - 'one' => 'gold', - 'two' => 'silver', - 'three' => 'bronze', - 'foo' => 'baz', - 'bar' => 'foo' - ); - $this->session->cookie->set_flashdata($cdata); - $this->session->native->set_flashdata($ndata); - - // Simulate page reload and make sure all values are present - $this->session->cookie->reload(); - $this->session->native->reload(); - $this->assertEquals($cdata, $this->session->cookie->flashdata()); - $this->assertEquals($ndata, $this->session->native->flashdata()); - } - - /** - * Test the tempdata() functions - */ - public function test_set_tempdata() - { -return; - // Set tempdata message for each driver - 1 second timeout - $key = 'tmptest'; - $cmsg = 'Some temp data'; - $this->session->cookie->set_tempdata($key, $cmsg, 1); - $nmsg = 'Other temp data'; - $this->session->native->set_tempdata($key, $nmsg, 1); - - // Simulate page reload and verify independent messages - $this->session->cookie->reload(); - $this->session->native->reload(); - $this->assertEquals($cmsg, $this->session->cookie->tempdata($key)); - $this->assertEquals($nmsg, $this->session->native->tempdata($key)); - - // Wait 2 seconds, simulate page reload and verify message absence - sleep(2); - $this->session->cookie->reload(); - $this->session->native->reload(); - $this->assertNull($this->session->cookie->tempdata($key)); - $this->assertNull($this->session->native->tempdata($key)); - } - - /** - * Test the unset_tempdata() function - */ - public function test_unset_tempdata() - { -return; - // Set tempdata message for each driver - 1 second timeout - $key = 'utmptest'; - $cmsg = 'My temp data'; - $this->session->cookie->set_tempdata($key, $cmsg, 1); - $nmsg = 'Your temp data'; - $this->session->native->set_tempdata($key, $nmsg, 1); - - // Verify independent messages - $this->assertEquals($cmsg, $this->session->cookie->tempdata($key)); - $this->assertEquals($nmsg, $this->session->native->tempdata($key)); - - // Unset data and verify message absence - $this->session->cookie->unset_tempdata($key); - $this->session->native->unset_tempdata($key); - $this->assertNull($this->session->cookie->tempdata($key)); - $this->assertNull($this->session->native->tempdata($key)); - } - - /** - * Test the sess_regenerate() function - */ - public function test_sess_regenerate() - { -return; - // Get current session id, regenerate, and compare - // Cookie driver - $oldid = $this->session->cookie->userdata('session_id'); - $this->session->cookie->sess_regenerate(); - $newid = $this->session->cookie->userdata('session_id'); - $this->assertNotEquals($oldid, $newid); - - // Native driver - bug #55267 (https://bugs.php.net/bug.php?id=55267) prevents testing this - // $oldid = session_id(); - // $this->session->native->sess_regenerate(); - // $oldid = session_id(); - // $this->assertNotEquals($oldid, $newid); - } - - /** - * Test the sess_destroy() function - */ - public function test_sess_destroy() - { -return; - // Set a userdata message, destroy session, and verify absence - $key = 'dsttest'; - $msg = 'More test data'; - - // Cookie driver - $this->session->cookie->set_userdata($key, $msg); - $this->assertEquals($msg, $this->session->cookie->userdata($key)); - $this->session->cookie->sess_destroy(); - $this->assertNull($this->session->cookie->userdata($key)); - - // Native driver - $this->session->native->set_userdata($key, $msg); - $this->assertEquals($msg, $this->session->native->userdata($key)); - $this->session->native->sess_destroy(); - $this->assertNull($this->session->native->userdata($key)); - } - -} |