[ticket/13073] Rework route tests and add tests for more directory types

PHPBB3-13073
This commit is contained in:
Marc Alexander 2014-09-19 00:35:17 +02:00
parent d74f45aee0
commit a6d9b42e5f
4 changed files with 121 additions and 58 deletions

View file

@ -0,0 +1,33 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
require_once dirname(__FILE__) . '/helper_route_test.php';
class phpbb_controller_helper_route_adm_test extends phpbb_controller_helper_route_test
{
protected function get_phpbb_root_path()
{
return './../../';
}
protected function get_uri()
{
return '/adm/subdir/index.php';
}
protected function get_script_name()
{
return 'index.php';
}
}

View file

@ -14,45 +14,20 @@
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
require_once dirname(__FILE__) . '/helper_route_test.php'; require_once dirname(__FILE__) . '/helper_route_test.php';
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
class phpbb_controller_helper_route_adm_test extends phpbb_controller_helper_route_test class phpbb_controller_helper_route_adm_test extends phpbb_controller_helper_route_test
{ {
public function setUp() protected function get_phpbb_root_path()
{ {
global $phpbb_dispatcher, $phpbb_root_path, $phpEx; return './../';
}
parent::setUp(); protected function get_uri()
{
return '/adm/index.php';
}
$request = new phpbb_mock_request(); protected function get_script_name()
$request->overwrite('SCRIPT_NAME', '/adm/index.php', \phpbb\request\request_interface::SERVER); {
$request->overwrite('SCRIPT_FILENAME', 'index.php', \phpbb\request\request_interface::SERVER); return 'index.php';
$request->overwrite('REQUEST_URI', '/adm/index.php', \phpbb\request\request_interface::SERVER);
$request->overwrite('SERVER_NAME', 'localhost', \phpbb\request\request_interface::SERVER);
$request->overwrite('SERVER_PORT', '80', \phpbb\request\request_interface::SERVER);
$this->symfony_request = new \phpbb\symfony_request(
$request
);
$this->filesystem = new \phpbb\filesystem();
$phpbb_path_helper = new \phpbb\path_helper(
$this->symfony_request,
$this->filesystem,
$this->getMock('\phpbb\request\request'),
$phpbb_root_path,
$phpEx
);
$finder = new \phpbb\finder(
new \phpbb\filesystem(),
dirname(__FILE__) . '/',
new phpbb_mock_cache()
);
$finder->set_extensions(array_keys($this->extension_manager->all_enabled()));
$this->provider = new \phpbb\controller\provider();
$this->provider->find_routing_files($finder);
$this->provider->find(dirname(__FILE__) . '/');
// Set correct current phpBB root path
$this->root_path = './../';
} }
} }

View file

@ -23,29 +23,6 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
{ {
global $phpbb_dispatcher, $phpbb_root_path, $phpEx; global $phpbb_dispatcher, $phpbb_root_path, $phpEx;
$phpbb_dispatcher = new phpbb_mock_event_dispatcher;
$this->user = new \phpbb\user('\phpbb\datetime');
$request = new phpbb_mock_request();
$request->overwrite('SCRIPT_NAME', '/app.php', \phpbb\request\request_interface::SERVER);
$request->overwrite('SCRIPT_FILENAME', 'app.php', \phpbb\request\request_interface::SERVER);
$request->overwrite('REQUEST_URI', '/app.php', \phpbb\request\request_interface::SERVER);
$request->overwrite('SERVER_NAME', 'localhost', \phpbb\request\request_interface::SERVER);
$request->overwrite('SERVER_PORT', '80', \phpbb\request\request_interface::SERVER);
$this->symfony_request = new \phpbb\symfony_request(
$request
);
$this->filesystem = new \phpbb\filesystem();
$phpbb_path_helper = new \phpbb\path_helper(
$this->symfony_request,
$this->filesystem,
$this->getMock('\phpbb\request\request'),
$phpbb_root_path,
$phpEx
);
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '0'));
$this->template = new phpbb\template\twig\twig($phpbb_path_helper, $this->config, $this->user, new \phpbb\template\context());
$this->extension_manager = new phpbb_mock_extension_manager( $this->extension_manager = new phpbb_mock_extension_manager(
dirname(__FILE__) . '/', dirname(__FILE__) . '/',
array( array(
@ -56,6 +33,49 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
), ),
) )
); );
$this->generate_route_objects();
$phpbb_dispatcher = new phpbb_mock_event_dispatcher;
$this->user = new \phpbb\user('\phpbb\datetime');
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '0'));
$this->template = new phpbb\template\twig\twig($this->phpbb_path_helper, $this->config, $this->user, new \phpbb\template\context());
}
protected function get_phpbb_root_path()
{
return '';
}
protected function get_uri()
{
return '/app.php';
}
protected function get_script_name()
{
return 'app.php';
}
protected function generate_route_objects()
{
$request = new phpbb_mock_request();
$request->overwrite('SCRIPT_NAME', $this->get_uri(), \phpbb\request\request_interface::SERVER);
$request->overwrite('SCRIPT_FILENAME', $this->get_script_name(), \phpbb\request\request_interface::SERVER);
$request->overwrite('REQUEST_URI', $this->get_uri(), \phpbb\request\request_interface::SERVER);
$request->overwrite('SERVER_NAME', 'localhost', \phpbb\request\request_interface::SERVER);
$request->overwrite('SERVER_PORT', '80', \phpbb\request\request_interface::SERVER);
$this->symfony_request = new \phpbb\symfony_request(
$request
);
$this->filesystem = new \phpbb\filesystem();
$this->phpbb_path_helper = new \phpbb\path_helper(
$this->symfony_request,
$this->filesystem,
$this->getMock('\phpbb\request\request'),
$phpbb_root_path,
$phpEx
);
$finder = new \phpbb\finder( $finder = new \phpbb\finder(
new \phpbb\filesystem(), new \phpbb\filesystem(),
@ -66,6 +86,8 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
$this->provider = new \phpbb\controller\provider(); $this->provider = new \phpbb\controller\provider();
$this->provider->find_routing_files($finder); $this->provider->find_routing_files($finder);
$this->provider->find(dirname(__FILE__) . '/'); $this->provider->find(dirname(__FILE__) . '/');
// Set correct current phpBB root path
$this->root_path = $this->get_phpbb_root_path();
} }
public function helper_url_data_no_rewrite() public function helper_url_data_no_rewrite()

View file

@ -0,0 +1,33 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
require_once dirname(__FILE__) . '/helper_route_test.php';
class phpbb_controller_helper_route_adm_test extends phpbb_controller_helper_route_test
{
protected function get_phpbb_root_path()
{
return './../';
}
protected function get_uri()
{
return '/adm/../bertie/index.php';
}
protected function get_script_name()
{
return 'index.php';
}
}