Ejemplo n.º 1
0
 /**
  * Test Slim sets encrypted cookie
  *
  * Pre-conditions:
  * Slim app initialized;
  * Case A: Cookie time not set;
  * Case B: Cookie time set as seconds from now (integer);
  * Case C: Cookie time set as string;
  * Case D: Cookie time is set to 0;
  *
  * Post-conditions:
  * Cookie available in response;
  * Case A: Cookie time set using default value;
  * Case C: Cookie time set using `strtotime()`;
  * Case D: Cookie time is 0;
  */
 public function testSlimSetsEncryptedCookie() {
     Slim::init();
     $cj = Slim::response()->getCookieJar();
     //Case A
     $timeA = time();
     Slim::setEncryptedCookie('myCookie1', 'myValue1');
     $cookieA = $cj->getResponseCookie('myCookie1');
     $this->assertEquals('myCookie1', $cookieA->getName());
     $this->assertEquals($timeA + 1200, $cookieA->getExpires()); //default duration is 20 minutes
     $this->assertEquals('/', $cookieA->getPath());
     $this->assertEquals('', $cookieA->getDomain());
     $this->assertFalse($cookieA->getSecure());
     $this->assertFalse($cookieA->getHttpOnly());
     //Case C
     $timeC = time();
     Slim::setEncryptedCookie('myCookie3', 'myValue3', '1 hour');
     $cookieC = $cj->getResponseCookie('myCookie3');
     $this->assertEquals($timeC + 3600, $cookieC->getExpires());
     //Case D
     $timeD = time();
     Slim::setEncryptedCookie('myCookie4', 'myValue4', 0);
     $cookieD = $cj->getResponseCookie('myCookie4');
     $this->assertEquals(0, $cookieD->getExpires());
 }
Ejemplo n.º 2
0
 public function write($id, $sessionData)
 {
     Slim::setEncryptedCookie($id, $sessionData, 0);
 }
Ejemplo n.º 3
0
 /**
  * Test Slim deletes cookies
  *
  * Pre-conditions:
  * Case A: Classic cookie
  * Case B: Encrypted cookie
  *
  * Post-conditions:
  * Response Cookies replaced with empty, auto-expiring Cookies
  */
 public function testSlimDeletesCookies()
 {
     $app = new Slim();
     $cj = $app->response()->getCookieJar();
     //Case A
     $app->setCookie('foo1', 'bar1');
     $this->assertEquals('bar1', $cj->getResponseCookie('foo1')->getValue());
     $this->assertTrue($cj->getResponseCookie('foo1')->getExpires() > time());
     $app->deleteCookie('foo1');
     $this->assertEquals('', $app->getCookie('foo1'));
     $this->assertTrue($cj->getResponseCookie('foo1')->getExpires() < time());
     //Case B
     $app->setEncryptedCookie('foo2', 'bar2');
     $this->assertTrue(strlen($cj->getResponseCookie('foo2')->getValue()) > 0);
     $this->assertTrue($cj->getResponseCookie('foo2')->getExpires() > time());
     $app->deleteCookie('foo2');
     $this->assertEquals('', $cj->getResponseCookie('foo2')->getValue());
     $this->assertTrue($cj->getResponseCookie('foo2')->getExpires() < time());
 }
Ejemplo n.º 4
0
 /**
  * Test set encrypted cookie
  *
  * This method ensures that the `Set-Cookie:` HTTP request
  * header is set. The implementation is tested in a separate file.
  */
 public function testSetEncryptedCookie()
 {
     $s = new Slim();
     $s->setEncryptedCookie('foo', 'bar');
     $r = $s->response();
     $this->assertEquals(1, preg_match("@^foo=.+%7C.+%7C.+@", $r['Set-Cookie']));
     //<-- %7C is a url-encoded pipe
 }
Ejemplo n.º 5
0
 /**
  * Test Slim deletes cookies
  *
  * Pre-conditions:
  * Case A: Classic cookie
  * Case B: Encrypted cookie
  *
  * Post-conditions:
  * Response Cookies replaced with empty, auto-expiring Cookies
  */
 public function testSlimDeletesCookies()
 {
     Slim::init();
     $cj = Slim::response()->getCookieJar();
     //Case A
     Slim::setCookie('foo1', 'bar1');
     $this->assertEquals('bar1', $cj->getResponseCookie('foo1')->getValue());
     $this->assertTrue($cj->getResponseCookie('foo1')->getExpires() > time());
     Slim::deleteCookie('foo1');
     $this->assertEquals('', Slim::getCookie('foo1'));
     $this->assertTrue($cj->getResponseCookie('foo1')->getExpires() < time());
     //Case B
     Slim::setEncryptedCookie('foo2', 'bar2');
     $this->assertTrue(strlen($cj->getResponseCookie('foo2')->getValue()) > 0);
     $this->assertTrue($cj->getResponseCookie('foo2')->getExpires() > time());
     Slim::deleteCookie('foo2');
     $this->assertEquals('', $cj->getResponseCookie('foo2')->getValue());
     $this->assertTrue($cj->getResponseCookie('foo2')->getExpires() < time());
 }