diff options
author | Nils Adermann <naderman@naderman.de> | 2013-09-17 16:56:50 +0200 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2013-09-17 16:56:50 +0200 |
commit | f039a3308a3d57e7b9fab562bdd71cf1a9fb4dc9 (patch) | |
tree | 1fff31b35cc52590b0f14ef3b1f457cb84ad448c /tests/filesystem | |
parent | 13ba981fc300171d88a197107317f3f1391ddb03 (diff) | |
parent | 6ba2fb6d62bb1429665f9e1b4f22dd241508950b (diff) | |
download | forums-f039a3308a3d57e7b9fab562bdd71cf1a9fb4dc9.tar forums-f039a3308a3d57e7b9fab562bdd71cf1a9fb4dc9.tar.gz forums-f039a3308a3d57e7b9fab562bdd71cf1a9fb4dc9.tar.bz2 forums-f039a3308a3d57e7b9fab562bdd71cf1a9fb4dc9.tar.xz forums-f039a3308a3d57e7b9fab562bdd71cf1a9fb4dc9.zip |
Merge remote-tracking branch 'github-phpbb/develop' into ticket/11700
* github-phpbb/develop:
[ticket/11832] Correct paths in tests
[ticket/11832] Correct ROOT_PATH variable
[ticket/11832] get_url() from phpbb_template_asset should return web path
[ticket/11832] Fix INCLUDE(JS/CSS)
[ticket/11832] Fix constructions of phpbb_filesystem
[ticket/11832] Fix smiley paths
[ticket/11832] Create phpbb_symfony_request to handle initiating symfony_request
[ticket/11832] Fix build_url and the S_LOGIN_ACTION
[ticket/11832] Changing comments to say app.php rather than index.php
[ticket/11832] We must instantiate the $phpbb_filesystem in common
[ticket/11832] Fix the web path corrections
[ticket/11832] More extensive testing
[ticket/11832] Use dirname(__FILE__)
[ticket/11832] Use $phpbb_filesystem instead of the container in append_sid
Revert "[ticket/11832] Make $phpbb_container a global initiated by the framework"
[ticket/11832] Make $phpbb_container a global initiated by the framework
[ticket/11832] Fix log tests
[ticket/11832] update_web_root_path helper and tests
[ticket/11832] Inject dependencies for phpbb_get_web_root_path (also moving)
Conflicts:
phpBB/common.php
phpBB/config/services.yml
phpBB/includes/bbcode.php
phpBB/includes/functions.php
phpBB/includes/functions_messenger.php
phpBB/install/index.php
phpBB/phpbb/filesystem.php
phpBB/phpbb/template/twig/environment.php
phpBB/phpbb/template/twig/node/includeasset.php
phpBB/phpbb/template/twig/twig.php
tests/controller/helper_url_test.php
tests/dbal/migrator_test.php
tests/extension/manager_test.php
tests/extension/metadata_manager_test.php
tests/filesystem/clean_path_test.php
tests/mock/extension_manager.php
tests/template/template_events_test.php
tests/template/template_test_case.php
tests/template/template_test_case_with_tree.php
tests/test_framework/phpbb_functional_test_case.php
Diffstat (limited to 'tests/filesystem')
-rw-r--r-- | tests/filesystem/clean_path_test.php | 8 | ||||
-rw-r--r-- | tests/filesystem/web_root_path_test.php | 142 |
2 files changed, 149 insertions, 1 deletions
diff --git a/tests/filesystem/clean_path_test.php b/tests/filesystem/clean_path_test.php index fedadc103b..7fefcf2f90 100644 --- a/tests/filesystem/clean_path_test.php +++ b/tests/filesystem/clean_path_test.php @@ -14,7 +14,13 @@ class phpbb_filesystem_clean_path_test extends phpbb_test_case public function setUp() { parent::setUp(); - $this->filesystem = new \phpbb\filesystem(); + $this->filesystem = new \phpbb\filesystem( + new \phpbb\symfony\request( + new phpbb_mock_request() + ), + dirname(__FILE__) . './../../phpBB/', + 'php' + ); } public function clean_path_data() diff --git a/tests/filesystem/web_root_path_test.php b/tests/filesystem/web_root_path_test.php new file mode 100644 index 0000000000..ae59d4f709 --- /dev/null +++ b/tests/filesystem/web_root_path_test.php @@ -0,0 +1,142 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2013 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +class phpbb_filesystem_web_root_path_test extends phpbb_test_case +{ + protected $filesystem; + protected $phpbb_root_path = ''; + + public function setUp() + { + parent::setUp(); + + $this->set_phpbb_root_path(); + + $this->filesystem = new phpbb_filesystem( + new phpbb_symfony_request( + new phpbb_mock_request() + ), + $this->phpbb_root_path, + 'php' + ); + } + + /** + * Set the phpbb_root_path + * + * This is necessary because dataProvider functions are called + * before setUp or setUpBeforeClass; so we must set the path + * any time we wish to use it in one of these functions (and + * also in general for everything else) + */ + public function set_phpbb_root_path() + { + $this->phpbb_root_path = dirname(__FILE__) . './../../phpBB/'; + } + + public function test_get_web_root_path() + { + // Symfony Request = null, so always should return phpbb_root_path + $this->assertEquals($this->phpbb_root_path, $this->filesystem->get_web_root_path()); + } + + public function basic_update_web_root_path_data() + { + $this->set_phpbb_root_path(); + + return array( + array( + $this->phpbb_root_path . 'test.php', + $this->phpbb_root_path . 'test.php', + ), + array( + 'test.php', + $this->phpbb_root_path . 'test.php', + ), + array( + $this->phpbb_root_path . $this->phpbb_root_path . 'test.php', + $this->phpbb_root_path . $this->phpbb_root_path . 'test.php', + ), + ); + } + + /** + * @dataProvider basic_update_web_root_path_data + */ + public function test_basic_update_web_root_path($input, $expected) + { + $this->assertEquals($expected, $this->filesystem->update_web_root_path($input, $symfony_request)); + } + + public function update_web_root_path_data() + { + $this->set_phpbb_root_path(); + + return array( + array( + $this->phpbb_root_path . 'test.php', + $this->phpbb_root_path . 'test.php', + '/', + ), + array( + $this->phpbb_root_path . 'test.php', + $this->phpbb_root_path . '../test.php', + '//', + ), + array( + $this->phpbb_root_path . 'test.php', + $this->phpbb_root_path . '../test.php', + '//', + 'foo/bar.php', + 'bar.php', + ), + array( + $this->phpbb_root_path . 'test.php', + $this->phpbb_root_path . '../../test.php', + '/foo/template', + '/phpbb3-fork/phpBB/app.php/foo/template', + '/phpbb3-fork/phpBB/app.php', + ), + array( + $this->phpbb_root_path . 'test.php', + $this->phpbb_root_path . '../test.php', + '/foo/template', + '/phpbb3-fork/phpBB/foo/template', + '/phpbb3-fork/phpBB/app.php', + ), + ); + } + + /** + * @dataProvider update_web_root_path_data + */ + public function test_update_web_root_path($input, $expected, $getPathInfo, $getRequestUri = null, $getScriptName = null) + { + $symfony_request = $this->getMock("phpbb_symfony_request", array(), array( + new phpbb_mock_request(), + )); + $symfony_request->expects($this->any()) + ->method('getPathInfo') + ->will($this->returnValue($getPathInfo)); + $symfony_request->expects($this->any()) + ->method('getRequestUri') + ->will($this->returnValue($getRequestUri)); + $symfony_request->expects($this->any()) + ->method('getScriptName') + ->will($this->returnValue($getScriptName)); + + $filesystem = new phpbb_filesystem( + $symfony_request, + $this->phpbb_root_path, + 'php' + ); + + $this->assertEquals($expected, $filesystem->update_web_root_path($input, $symfony_request)); + } +} |