diff options
author | Nils Adermann <naderman@naderman.de> | 2011-01-04 17:14:36 +0100 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2011-01-20 22:47:48 +0100 |
commit | 74f537e89d899831c606b9abe218383a4e71408e (patch) | |
tree | f813e889fe6c584fb0a73b3bc642cdd1c243a5b7 /tests/mock/session_testable.php | |
parent | ba5c7d8e63d97650989c2866c20c11f16f4c1128 (diff) | |
download | forums-74f537e89d899831c606b9abe218383a4e71408e.tar forums-74f537e89d899831c606b9abe218383a4e71408e.tar.gz forums-74f537e89d899831c606b9abe218383a4e71408e.tar.bz2 forums-74f537e89d899831c606b9abe218383a4e71408e.tar.xz forums-74f537e89d899831c606b9abe218383a4e71408e.zip |
[task/session-tests] Added tests for the session class.
Two first simple tests to check functionality of session_begin and
session_create.
Added a mock class for the cache as well as a subclass of session
which has its cookie handling function mocked out to avoid header
sending problems.
PHPBB3-9732
Diffstat (limited to 'tests/mock/session_testable.php')
-rw-r--r-- | tests/mock/session_testable.php | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/mock/session_testable.php b/tests/mock/session_testable.php new file mode 100644 index 0000000000..2d7d42f82a --- /dev/null +++ b/tests/mock/session_testable.php @@ -0,0 +1,56 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2008 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +require_once '../phpBB/includes/functions.php'; +require_once '../phpBB/includes/session.php'; + +class phpbb_mock_session_testable extends session +{ + private $_cookies = array(); + + public function set_cookie($name, $data, $time) + { + $this->_cookies[$name] = array($data, $time); + } + + /** + * Checks if the cookies were set correctly. + * + * @param PHPUnit_Framework_Assert test The test from which this is called + * @param array(string => mixed) cookies The cookie data to check against. + * The keys are cookie names, the values can either be null to + * check only the existance of the cookie, or an array(d, t), + * where d is the cookie data to check, or null to skip the + * check and t is the cookie time to check, or null to skip. + */ + public function check_cookies(PHPUnit_Framework_Assert $test, $cookies) + { + $test->assertEquals(array_keys($cookies), array_keys($this->_cookies), 'Incorrect cookies were set'); + + foreach ($cookies as $name => $cookie) + { + if (!is_null($cookie)) + { + $data = $cookie[0]; + $time = $cookie[1]; + + if (!is_null($data)) + { + $test->assertEquals($data, $this->_cookies[$name][0], "Cookie $name contains incorrect data"); + } + + if (!is_null($time)) + { + $test->assertEquals($time, $this->_cookies[$name][1], "Cookie $name expires at the wrong time"); + } + } + } + } +} + |