diff options
| author | Nils Adermann <naderman@naderman.de> | 2008-05-04 22:54:16 +0000 |
|---|---|---|
| committer | Nils Adermann <naderman@naderman.de> | 2008-05-04 22:54:16 +0000 |
| commit | 6871e7caa47ff928262213785f5209040fd5fca0 (patch) | |
| tree | 8e7637cd87e1fa1f72eead4463ed2ae6de61a4f1 /tests/request | |
| parent | 0d631c2ae01f3e8b299f63ec3949c688e6a479a8 (diff) | |
| download | forums-6871e7caa47ff928262213785f5209040fd5fca0.tar forums-6871e7caa47ff928262213785f5209040fd5fca0.tar.gz forums-6871e7caa47ff928262213785f5209040fd5fca0.tar.bz2 forums-6871e7caa47ff928262213785f5209040fd5fca0.tar.xz forums-6871e7caa47ff928262213785f5209040fd5fca0.zip | |
- adding request_var tests
git-svn-id: file:///svn/phpbb/trunk@8549 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'tests/request')
| -rw-r--r-- | tests/request/all_tests.php | 44 | ||||
| -rw-r--r-- | tests/request/request_var.php | 160 |
2 files changed, 204 insertions, 0 deletions
diff --git a/tests/request/all_tests.php b/tests/request/all_tests.php new file mode 100644 index 0000000000..a8191cb9d6 --- /dev/null +++ b/tests/request/all_tests.php @@ -0,0 +1,44 @@ +<?php +/** +* +* @package testing +* @version $Id$ +* @copyright (c) 2008 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +define('IN_PHPBB', true); + +if (!defined('PHPUnit_MAIN_METHOD')) +{ + define('PHPUnit_MAIN_METHOD', 'phpbb_request_all_tests::main'); +} + +require_once 'PHPUnit/Framework.php'; +require_once 'PHPUnit/TextUI/TestRunner.php'; + +require_once 'request/request_var.php'; + +class phpbb_request_all_tests +{ + public static function main() + { + PHPUnit_TextUI_TestRunner::run(self::suite()); + } + + public static function suite() + { + $suite = new PHPUnit_Framework_TestSuite('phpBB Request Parameter Handling'); + + $suite->addTestSuite('phpbb_request_request_var_test'); + + return $suite; + } +} + +if (PHPUnit_MAIN_METHOD == 'phpbb_request_all_tests::main') +{ + phpbb_request_all_tests::main(); +} +?>
\ No newline at end of file diff --git a/tests/request/request_var.php b/tests/request/request_var.php new file mode 100644 index 0000000000..c0ef3ddba8 --- /dev/null +++ b/tests/request/request_var.php @@ -0,0 +1,160 @@ +<?php +/** +* +* @package testing +* @version $Id$ +* @copyright (c) 2008 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +define('IN_PHPBB', true); + +require_once 'PHPUnit/Framework.php'; + +require_once '../phpBB/includes/functions.php'; + +class phpbb_request_request_var_test extends PHPUnit_Framework_TestCase +{ + public static function request_variables() + { + return array( + // strings + array('abc', '', false, 'abc'), + array(' some spaces ', '', true, 'some spaces'), + array("\r\rsome\rcarriage\r\rreturns\r", '', true, "some\ncarriage\n\nreturns"), + array("\n\nsome\ncarriage\n\nreturns\n", '', true, "some\ncarriage\n\nreturns"), + array("\r\n\r\nsome\r\ncarriage\r\n\r\nreturns\r\n", '', true, "some\ncarriage\n\nreturns"), + array("we\xC2\xA1rd\xE1\x9A\x80ch\xCE\xB1r\xC2\xADacters", '', true, "we\xC2\xA1rd\xE1\x9A\x80ch\xCE\xB1r\xC2\xADacters"), + array("we\xC2\xA1rd\xE1\x9A\x80ch\xCE\xB1r\xC2\xADacters", '', false, "we??rd???ch??r??acters"), + array("Some <html> \"entities\" like &", '', true, "Some <html> "entities" like &"), + + // integers + array('1234', 0, false, 1234), + array('abc', 12, false, 0), + array('324abc', 0, false, 324), + + // string to array + array('123', array(0), false, array()), + array('123', array(''), false, array()), + + // 1 dimensional arrays + array( + // input: + array('123', 'abc'), + // default: + array(''), + false, + // expected: + array('123', 'abc') + ), + array( + // input: + array('123', 'abc'), + // default: + array(999), + false, + // expected: + array(123, 0) + ), + array( + // input: + array('xyz' => '123', 'abc' => 'abc'), + // default: + array('' => ''), + false, + // expected: + array('xyz' => '123', 'abc' => 'abc') + ), + array( + // input: + array('xyz' => '123', 'abc' => 'abc'), + // default: + array('' => 0), + false, + // expected: + array('xyz' => 123, 'abc' => 0) + ), + + // 2 dimensional arrays + array( + // input: + '', + // default: + array( + array(0) + ), + false, + // expected: + array() + ), + array( + // input: + array( + 'xyz' => array('123', 'def'), + 'abc' => 'abc' + ), + // default: + array( + '' => array('') + ), + false, + // expected: + array( + 'xyz' => array('123', 'def'), + 'abc' => array() + ) + ), + array( + // input: + array( + 'xyz' => array('123', 'def'), + 'abc' => 'abc' + ), + // default: + array( + '' => array(0) + ), + false, + // expected: + array( + 'xyz' => array(123, 0), + 'abc' => array() + ) + ), + ); + } + + /** + * @dataProvider request_variables + */ + public function test_post($variable_value, $default, $multibyte, $expected) + { + $variable_name = 'name'; + + $_POST[$variable_name] = $variable_value; + $_REQUEST[$variable_name] = $variable_value; + + $result = request_var($variable_name, $default, $multibyte); + + $label = 'Requesting POST variable, converting from ' . gettype($variable_value) . ' to ' . gettype($default) . (($multibyte) ? ' multibyte' : ''); + $this->assertEquals($expected, $result, $label); + } + + /** + * @dataProvider request_variables + */ + public function test_get($variable_value, $default, $multibyte, $expected) + { + $variable_name = 'name'; + + $_GET[$variable_name] = $variable_value; + $_REQUEST[$variable_name] = $variable_value; + + $result = request_var($variable_name, $default, $multibyte); + + $label = 'Requesting GET variable, converting from ' . gettype($variable_value) . ' to ' . gettype($default) . (($multibyte) ? ' multibyte' : ''); + $this->assertEquals($expected, $result, $label); + } +} +?>
\ No newline at end of file |
