test_session.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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. // Disable output buffering to show progress on other tests
  62. @ob_end_flush();
  63. }
  64. function testClear() {
  65. $_SESSION['foo'] = 'bar';
  66. $this->session->clear();
  67. $this->assertEmpty($_SESSION);
  68. }
  69. function testDestroySimple() {
  70. $this->session->destroy();
  71. $this->assertEquals('', session_id());
  72. }
  73. /**
  74. * @depends testClear
  75. */
  76. function testDestroyClear() {
  77. $_SESSION['foo'] = 'bar';
  78. $this->session->destroy(true);
  79. $this->assertEmpty($_SESSION);
  80. $this->assertEquals('', session_id());
  81. }
  82. }
  83. ?>