[ticket/12090] Change redirect tests to use route()

PHPBB3-12090
This commit is contained in:
Joas Schilling 2014-03-07 12:42:06 +01:00
parent 51273f6fb1
commit ecf1e94726
4 changed files with 23 additions and 40 deletions

View file

@ -21,10 +21,10 @@ class phpbb_controller_controller_test extends phpbb_test_case
$this->extension_manager = new phpbb_mock_extension_manager(
dirname(__FILE__) . '/',
array(
'foo' => array(
'ext_name' => 'foo',
'vendor2/foo' => array(
'ext_name' => 'vendor2/foo',
'ext_active' => '1',
'ext_path' => 'ext/foo/',
'ext_path' => 'ext/vendor2/foo/',
),
));
}
@ -52,7 +52,7 @@ class phpbb_controller_controller_test extends phpbb_test_case
$container = new ContainerBuilder();
// YamlFileLoader only uses one path at a time, so we need to loop
// through all of the ones we are using.
foreach (array(__DIR__.'/config', __DIR__.'/ext/foo/config') as $path)
foreach (array(__DIR__.'/config', __DIR__ . '/ext/vendor2/foo/config') as $path)
{
$loader = new YamlFileLoader($container, new FileLocator($path));
$loader->load('services.yml');
@ -60,9 +60,9 @@ class phpbb_controller_controller_test extends phpbb_test_case
// Autoloading classes within the tests folder does not work
// so I'll include them manually.
if (!class_exists('foo\\controller'))
if (!class_exists('vendor2\\foo\\controller'))
{
include(__DIR__ . '/ext/foo/controller.php');
include(__DIR__ . '/ext/vendor2/foo/controller.php');
}
if (!class_exists('phpbb\\controller\\foo'))
{

View file

@ -17,3 +17,15 @@ foo_exception_controller:
foo_redirect_controller:
pattern: /foo/redirect
defaults: { _controller: foo_bar.controller:redirect }
foo_index_controller:
pattern: /index
defaults: { _controller: foo_bar.controller:redirect }
foo_tests_index_controller:
pattern: /tests/index
defaults: { _controller: foo_bar.controller:redirect }
foo_tests_dotdot_index_controller:
pattern: /tests/../index
defaults: { _controller: foo_bar.controller:redirect }

View file

@ -63,15 +63,15 @@ class controller
'tests/index.php',
),
array(
$this->helper->url('index'),
$this->helper->url('foo_index_controller'),
$rewrite_prefix . 'index',
),
array(
$this->helper->url('tests/index'),
$this->helper->url('foo_tests_index_controller'),
$rewrite_prefix . 'tests/index',
),
array(
$this->helper->url('tests/../index'),
$this->helper->url('foo_tests_dotdot_index_controller'),
$rewrite_prefix . 'index',
),
/*

View file

@ -15,11 +15,8 @@ class phpbb_security_redirect_test extends phpbb_security_test_base
{
protected $path_helper;
protected $controller_helper;
public function provider()
{
$this->controller_helper = $this->get_controller_helper();
// array(Input -> redirect(), expected triggered error (else false), expected returned result url (else false))
return array(
array('data://x', false, false, 'http://localhost/phpBB'),
@ -38,8 +35,8 @@ class phpbb_security_redirect_test extends phpbb_security_test_base
array('./../foo/bar', false, false, 'http://localhost/foo/bar'),
array('./../foo/bar', true, false, 'http://localhost/foo/bar'),
array('app.php/', false, false, 'http://localhost/phpBB/app.php/'),
array($this->controller_helper->url('a'), false, false, 'http://localhost/phpBB/app.php/a'),
array($this->controller_helper->url(''), false, false, 'http://localhost/phpBB/app.php/'),
array('app.php/a', false, false, 'http://localhost/phpBB/app.php/a'),
array('app.php/a/b', false, false, 'http://localhost/phpBB/app.php/a/b'),
array('./app.php/', false, false, 'http://localhost/phpBB/app.php/'),
array('foobar', false, false, 'http://localhost/phpBB/foobar'),
array('./foobar', false, false, 'http://localhost/phpBB/foobar'),
@ -69,31 +66,6 @@ class phpbb_security_redirect_test extends phpbb_security_test_base
return $this->path_helper;
}
protected function get_controller_helper()
{
if (!($this->controller_helper instanceof \phpbb\controller\helper))
{
global $phpbb_dispatcher;
$phpbb_dispatcher = new phpbb_mock_event_dispatcher;
$this->user = $this->getMock('\phpbb\user');
$phpbb_path_helper = new \phpbb\path_helper(
new \phpbb\symfony_request(
new phpbb_mock_request()
),
new \phpbb\filesystem(),
$phpbb_root_path,
$phpEx
);
$this->template = new phpbb\template\twig\twig($phpbb_path_helper, $config, $this->user, new \phpbb\template\context());
// We don't use mod_rewrite in these tests
$config = new \phpbb\config\config(array('enable_mod_rewrite' => '0'));
$this->controller_helper = new \phpbb\controller\helper($this->template, $this->user, $config, '', 'php');
}
return $this->controller_helper;
}
protected function setUp()
{
parent::setUp();
@ -103,7 +75,6 @@ class phpbb_security_redirect_test extends phpbb_security_test_base
);
$this->path_helper = $this->get_path_helper();
$this->controller_helper = $this->get_controller_helper();
}
/**