diff options
author | Nathan Guse <nathaniel.guse@gmail.com> | 2013-09-12 12:45:17 -0500 |
---|---|---|
committer | Nathan Guse <nathaniel.guse@gmail.com> | 2013-09-12 12:45:17 -0500 |
commit | baa73f6933e70f79482e0c4c978d3bfa53eed768 (patch) | |
tree | a5d2c64c7d84554e9cf5c62278917ece6629f0db /tests | |
parent | 934786d45da83ec85f5d45794eef8a6221803259 (diff) | |
parent | 310844fb7d0330d4329bd59c3d6d50d01caaa4d4 (diff) | |
download | forums-baa73f6933e70f79482e0c4c978d3bfa53eed768.tar forums-baa73f6933e70f79482e0c4c978d3bfa53eed768.tar.gz forums-baa73f6933e70f79482e0c4c978d3bfa53eed768.tar.bz2 forums-baa73f6933e70f79482e0c4c978d3bfa53eed768.tar.xz forums-baa73f6933e70f79482e0c4c978d3bfa53eed768.zip |
Merge remote-tracking branch 'remotes/imkingdavid/ticket/11824' into ticket/11832
* remotes/imkingdavid/ticket/11824:
[ticket/11824] Revert changes in functions.php
[ticket/11824] Reorganize test file
[ticket/11824] Update language string for board settings
[ticket/11824] Revert changes to functions_content.php
[ticket/11824] Add tests for urls with mod_rewrite enabled
[ticket/11824] Correct a comment
[ticket/11824] Change copyright year in migration file
[ticket/11824] Remove unused globals
[ticket/11824] Fix smilies
[ticket/11824] Fix logic
[ticket/11824] Add option for mod_rewrite
Diffstat (limited to 'tests')
-rw-r--r-- | tests/controller/helper_url_test.php | 56 |
1 files changed, 50 insertions, 6 deletions
diff --git a/tests/controller/helper_url_test.php b/tests/controller/helper_url_test.php index 49635332a7..da90947bb5 100644 --- a/tests/controller/helper_url_test.php +++ b/tests/controller/helper_url_test.php @@ -12,7 +12,52 @@ require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; class phpbb_controller_helper_url_test extends phpbb_test_case { - public function helper_url_data() + public function helper_url_data_no_rewrite() + { + return array( + array('foo/bar?t=1&f=2', false, true, false, 'app.php/foo/bar?t=1&f=2', 'parameters in url-argument'), + array('foo/bar', 't=1&f=2', true, false, 'app.php/foo/bar?t=1&f=2', 'parameters in params-argument using amp'), + array('foo/bar', 't=1&f=2', false, false, 'app.php/foo/bar?t=1&f=2', 'parameters in params-argument using &'), + array('foo/bar', array('t' => 1, 'f' => 2), true, false, 'app.php/foo/bar?t=1&f=2', 'parameters in params-argument as array'), + + // Custom sid parameter + array('foo/bar', 't=1&f=2', true, 'custom-sid', 'app.php/foo/bar?t=1&f=2&sid=custom-sid', 'using session_id'), + + // Testing anchors + array('foo/bar?t=1&f=2#anchor', false, true, false, 'app.php/foo/bar?t=1&f=2#anchor', 'anchor in url-argument'), + array('foo/bar', 't=1&f=2#anchor', true, false, 'app.php/foo/bar?t=1&f=2#anchor', 'anchor in params-argument'), + array('foo/bar', array('t' => 1, 'f' => 2, '#' => 'anchor'), true, false, 'app.php/foo/bar?t=1&f=2#anchor', 'anchor in params-argument (array)'), + + // Anchors and custom sid + array('foo/bar?t=1&f=2#anchor', false, true, 'custom-sid', 'app.php/foo/bar?t=1&f=2&sid=custom-sid#anchor', 'anchor in url-argument using session_id'), + array('foo/bar', 't=1&f=2#anchor', true, 'custom-sid', 'app.php/foo/bar?t=1&f=2&sid=custom-sid#anchor', 'anchor in params-argument using session_id'), + array('foo/bar', array('t' => 1, 'f' => 2, '#' => 'anchor'), true, 'custom-sid', 'app.php/foo/bar?t=1&f=2&sid=custom-sid#anchor', 'anchor in params-argument (array) using session_id'), + + // Empty parameters should not append the & + array('foo/bar', false, true, false, 'app.php/foo/bar', 'no params using bool false'), + array('foo/bar', '', true, false, 'app.php/foo/bar', 'no params using empty string'), + array('foo/bar', array(), true, false, 'app.php/foo/bar', 'no params using empty array'), + ); + } + + /** + * @dataProvider helper_url_data_no_rewrite() + */ + public function test_helper_url_no_rewrite($route, $params, $is_amp, $session_id, $expected, $description) + { + global $phpbb_dispatcher, $phpbb_root_path, $phpEx; + + $phpbb_dispatcher = new phpbb_mock_event_dispatcher; + $this->user = $this->getMock('phpbb_user'); + $this->template = new phpbb_template_twig($phpbb_root_path, $phpEx, $config, $this->user, new phpbb_template_context()); + + // We don't use mod_rewrite in these tests + $config = new phpbb_config(array('enable_mod_rewrite' => '0')); + $helper = new phpbb_controller_helper($this->template, $this->user, $config, '', 'php'); + $this->assertEquals($helper->url($route, $params, $is_amp, $session_id), $expected); + } + + public function helper_url_data_with_rewrite() { return array( array('foo/bar?t=1&f=2', false, true, false, 'foo/bar?t=1&f=2', 'parameters in url-argument'), @@ -41,9 +86,9 @@ class phpbb_controller_helper_url_test extends phpbb_test_case } /** - * @dataProvider helper_url_data + * @dataProvider helper_url_data_with_rewrite() */ - public function test_helper_url($route, $params, $is_amp, $session_id, $expected, $description) + public function test_helper_url_with_rewrite($route, $params, $is_amp, $session_id, $expected, $description) { global $phpbb_dispatcher, $phpbb_root_path, $phpEx; @@ -51,9 +96,8 @@ class phpbb_controller_helper_url_test extends phpbb_test_case $this->user = $this->getMock('phpbb_user'); $this->template = new phpbb_template_twig($phpbb_root_path, $phpEx, $config, $this->user, new phpbb_template_context()); - - $request = new phpbb_mock_request($_GET, $_POST, $_COOKIE, $_SERVER, false, $_FILES); - $helper = new phpbb_controller_helper($this->template, $this->user, $request, '', 'php'); + $config = new phpbb_config(array('enable_mod_rewrite' => '1')); + $helper = new phpbb_controller_helper($this->template, $this->user, $config, '', 'php'); $this->assertEquals($helper->url($route, $params, $is_amp, $session_id), $expected); } } |