123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- <?php
- // $Id: cookies_test.php 1506 2007-05-07 00:58:03Z lastcraft $
- require_once(dirname(__FILE__) . '/../autorun.php');
- require_once(dirname(__FILE__) . '/../cookies.php');
-
- class TestOfCookie extends UnitTestCase {
-
- function testCookieDefaults() {
- $cookie = new SimpleCookie("name");
- $this->assertFalse($cookie->getValue());
- $this->assertEqual($cookie->getPath(), "/");
- $this->assertIdentical($cookie->getHost(), false);
- $this->assertFalse($cookie->getExpiry());
- $this->assertFalse($cookie->isSecure());
- }
-
- function testCookieAccessors() {
- $cookie = new SimpleCookie(
- "name",
- "value",
- "/path",
- "Mon, 18 Nov 2002 15:50:29 GMT",
- true);
- $this->assertEqual($cookie->getName(), "name");
- $this->assertEqual($cookie->getValue(), "value");
- $this->assertEqual($cookie->getPath(), "/path/");
- $this->assertEqual($cookie->getExpiry(), "Mon, 18 Nov 2002 15:50:29 GMT");
- $this->assertTrue($cookie->isSecure());
- }
-
- function testFullHostname() {
- $cookie = new SimpleCookie("name");
- $this->assertTrue($cookie->setHost("host.name.here"));
- $this->assertEqual($cookie->getHost(), "host.name.here");
- $this->assertTrue($cookie->setHost("host.com"));
- $this->assertEqual($cookie->getHost(), "host.com");
- }
-
- function testHostTruncation() {
- $cookie = new SimpleCookie("name");
- $cookie->setHost("this.host.name.here");
- $this->assertEqual($cookie->getHost(), "host.name.here");
- $cookie->setHost("this.host.com");
- $this->assertEqual($cookie->getHost(), "host.com");
- $this->assertTrue($cookie->setHost("dashes.in-host.com"));
- $this->assertEqual($cookie->getHost(), "in-host.com");
- }
-
- function testBadHosts() {
- $cookie = new SimpleCookie("name");
- $this->assertFalse($cookie->setHost("gibberish"));
- $this->assertFalse($cookie->setHost("host.here"));
- $this->assertFalse($cookie->setHost("host..com"));
- $this->assertFalse($cookie->setHost("..."));
- $this->assertFalse($cookie->setHost("host.com."));
- }
-
- function testHostValidity() {
- $cookie = new SimpleCookie("name");
- $cookie->setHost("this.host.name.here");
- $this->assertTrue($cookie->isValidHost("host.name.here"));
- $this->assertTrue($cookie->isValidHost("that.host.name.here"));
- $this->assertFalse($cookie->isValidHost("bad.host"));
- $this->assertFalse($cookie->isValidHost("nearly.name.here"));
- }
-
- function testPathValidity() {
- $cookie = new SimpleCookie("name", "value", "/path");
- $this->assertFalse($cookie->isValidPath("/"));
- $this->assertTrue($cookie->isValidPath("/path/"));
- $this->assertTrue($cookie->isValidPath("/path/more"));
- }
-
- function testSessionExpiring() {
- $cookie = new SimpleCookie("name", "value", "/path");
- $this->assertTrue($cookie->isExpired(0));
- }
-
- function testTimestampExpiry() {
- $cookie = new SimpleCookie("name", "value", "/path", 456);
- $this->assertFalse($cookie->isExpired(0));
- $this->assertTrue($cookie->isExpired(457));
- $this->assertFalse($cookie->isExpired(455));
- }
-
- function testDateExpiry() {
- $cookie = new SimpleCookie(
- "name",
- "value",
- "/path",
- "Mon, 18 Nov 2002 15:50:29 GMT");
- $this->assertTrue($cookie->isExpired("Mon, 18 Nov 2002 15:50:30 GMT"));
- $this->assertFalse($cookie->isExpired("Mon, 18 Nov 2002 15:50:28 GMT"));
- }
-
- function testAging() {
- $cookie = new SimpleCookie("name", "value", "/path", 200);
- $cookie->agePrematurely(199);
- $this->assertFalse($cookie->isExpired(0));
- $cookie->agePrematurely(2);
- $this->assertTrue($cookie->isExpired(0));
- }
- }
-
- class TestOfCookieJar extends UnitTestCase {
-
- function testAddCookie() {
- $jar = new SimpleCookieJar();
- $jar->setCookie("a", "A");
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/')), array('a=A'));
- }
-
- function testHostFilter() {
- $jar = new SimpleCookieJar();
- $jar->setCookie('a', 'A', 'my-host.com');
- $jar->setCookie('b', 'B', 'another-host.com');
- $jar->setCookie('c', 'C');
- $this->assertEqual(
- $jar->selectAsPairs(new SimpleUrl('my-host.com')),
- array('a=A', 'c=C'));
- $this->assertEqual(
- $jar->selectAsPairs(new SimpleUrl('another-host.com')),
- array('b=B', 'c=C'));
- $this->assertEqual(
- $jar->selectAsPairs(new SimpleUrl('www.another-host.com')),
- array('b=B', 'c=C'));
- $this->assertEqual(
- $jar->selectAsPairs(new SimpleUrl('new-host.org')),
- array('c=C'));
- $this->assertEqual(
- $jar->selectAsPairs(new SimpleUrl('/')),
- array('a=A', 'b=B', 'c=C'));
- }
-
- function testPathFilter() {
- $jar = new SimpleCookieJar();
- $jar->setCookie('a', 'A', false, '/path/');
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/')), array());
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/elsewhere')), array());
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/path/')), array('a=A'));
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/path')), array('a=A'));
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/pa')), array());
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/path/here')), array('a=A'));
- }
-
- function testPathFilterDeeply() {
- $jar = new SimpleCookieJar();
- $jar->setCookie('a', 'A', false, '/path/more_path/');
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/path/')), array());
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/path')), array());
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/pa')), array());
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/path/more_path/')), array('a=A'));
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/path/more_path/and_more')), array('a=A'));
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/path/not_here/')), array());
- }
-
- function testMultipleCookieWithDifferentPathsButSameName() {
- $jar = new SimpleCookieJar();
- $jar->setCookie('a', 'abc', false, '/');
- $jar->setCookie('a', '123', false, '/path/here/');
- $this->assertEqual(
- $jar->selectAsPairs(new SimpleUrl('/')),
- array('a=abc'));
- $this->assertEqual(
- $jar->selectAsPairs(new SimpleUrl('my-host.com/')),
- array('a=abc'));
- $this->assertEqual(
- $jar->selectAsPairs(new SimpleUrl('my-host.com/path/')),
- array('a=abc'));
- $this->assertEqual(
- $jar->selectAsPairs(new SimpleUrl('my-host.com/path/here')),
- array('a=abc', 'a=123'));
- $this->assertEqual(
- $jar->selectAsPairs(new SimpleUrl('my-host.com/path/here/there')),
- array('a=abc', 'a=123'));
- }
-
- function testOverwrite() {
- $jar = new SimpleCookieJar();
- $jar->setCookie('a', 'abc', false, '/');
- $jar->setCookie('a', 'cde', false, '/');
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/')), array('a=cde'));
- }
-
- function testClearSessionCookies() {
- $jar = new SimpleCookieJar();
- $jar->setCookie('a', 'A', false, '/');
- $jar->restartSession();
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/')), array());
- }
-
- function testExpiryFilterByDate() {
- $jar = new SimpleCookieJar();
- $jar->setCookie('a', 'A', false, '/', 'Wed, 25-Dec-02 04:24:20 GMT');
- $jar->restartSession("Wed, 25-Dec-02 04:24:19 GMT");
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/')), array('a=A'));
- $jar->restartSession("Wed, 25-Dec-02 04:24:21 GMT");
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/')), array());
- }
-
- function testExpiryFilterByAgeing() {
- $jar = new SimpleCookieJar();
- $jar->setCookie('a', 'A', false, '/', 'Wed, 25-Dec-02 04:24:20 GMT');
- $jar->restartSession("Wed, 25-Dec-02 04:24:19 GMT");
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/')), array('a=A'));
- $jar->agePrematurely(2);
- $jar->restartSession("Wed, 25-Dec-02 04:24:19 GMT");
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/')), array());
- }
-
- function testCookieClearing() {
- $jar = new SimpleCookieJar();
- $jar->setCookie('a', 'abc', false, '/');
- $jar->setCookie('a', '', false, '/');
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/')), array('a='));
- }
-
- function testCookieClearByLoweringDate() {
- $jar = new SimpleCookieJar();
- $jar->setCookie('a', 'abc', false, '/', 'Wed, 25-Dec-02 04:24:21 GMT');
- $jar->setCookie('a', 'def', false, '/', 'Wed, 25-Dec-02 04:24:19 GMT');
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/')), array('a=def'));
- $jar->restartSession('Wed, 25-Dec-02 04:24:20 GMT');
- $this->assertEqual($jar->selectAsPairs(new SimpleUrl('/')), array());
- }
- }
- ?>
|