test_session.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. require_once 'SingletonTestCase.php';
  3. require_once 'session.php';
  4. use webbasics\Session;
  5. // Turn on outbut buffering to circumvent "headers already sent" error
  6. ob_start();
  7. class SessionTest extends SingletonTestCase {
  8. private $session;
  9. function getClassName() {
  10. return 'webbasics\Session';
  11. }
  12. function setUp() {
  13. parent::setUp();
  14. $this->session = @Session::getInstance();
  15. }
  16. function tearDown() {
  17. $_SESSION = array();
  18. }
  19. function testSessionStarted() {
  20. $this->assertNotEquals('', session_id());
  21. }
  22. function testSetSingle() {
  23. $this->session->set('foo', 'bar');
  24. $this->assertArrayHasKey('foo', $_SESSION);
  25. $this->assertEquals('bar', $_SESSION['foo']);
  26. }
  27. function testSetMultiple() {
  28. $this->session->set(array('foo' => 'bar', 'bar' => 'baz'));
  29. $this->assertArrayHasKey('foo', $_SESSION);
  30. $this->assertEquals('bar', $_SESSION['foo']);
  31. $this->assertArrayHasKey('bar', $_SESSION);
  32. $this->assertEquals('baz', $_SESSION['bar']);
  33. }
  34. function testGetSingle() {
  35. $_SESSION['foo'] = 'bar';
  36. $this->assertEquals('bar', $this->session->get('foo'));
  37. }
  38. function testGetMultiple() {
  39. $_SESSION['foo'] = 'bar';
  40. $_SESSION['bar'] = 'baz';
  41. $this->assertEquals(array('bar', 'baz'), $this->session->get(array('foo', 'bar')));
  42. }
  43. function testIsRegistered() {
  44. $_SESSION['foo'] = 'bar';
  45. $this->assertTrue($this->session->isRegistered('foo'));
  46. $this->assertFalse($this->session->isRegistered('bar'));
  47. }
  48. /**
  49. * @depends testIsRegistered
  50. */
  51. function testAreRegistered() {
  52. $_SESSION['foo'] = 'bar';
  53. $_SESSION['bar'] = 'baz';
  54. $this->assertTrue($this->session->areRegistered(array('foo', 'bar')));
  55. $this->assertFalse($this->session->areRegistered(array('foo', 'baz')));
  56. }
  57. function testRegenerateId() {
  58. $old_id = session_id();
  59. $this->session->regenerateId();
  60. $this->assertNotEquals($old_id, session_id());
  61. }
  62. function testClear() {
  63. $_SESSION['foo'] = 'bar';
  64. $this->session->clear();
  65. $this->assertEmpty($_SESSION);
  66. }
  67. /**
  68. * @depends testClear
  69. */
  70. function testDestroyClear() {
  71. $_SESSION['foo'] = 'bar';
  72. $this->session->destroy();
  73. $this->assertEmpty($_SESSION);
  74. $this->assertEquals('', session_id());
  75. }
  76. }
  77. ?>