[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( $this->extension_manager = new phpbb_mock_extension_manager(
dirname(__FILE__) . '/', dirname(__FILE__) . '/',
array( array(
'foo' => array( 'vendor2/foo' => array(
'ext_name' => 'foo', 'ext_name' => 'vendor2/foo',
'ext_active' => '1', '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(); $container = new ContainerBuilder();
// YamlFileLoader only uses one path at a time, so we need to loop // YamlFileLoader only uses one path at a time, so we need to loop
// through all of the ones we are using. // 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 = new YamlFileLoader($container, new FileLocator($path));
$loader->load('services.yml'); $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 // Autoloading classes within the tests folder does not work
// so I'll include them manually. // 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')) if (!class_exists('phpbb\\controller\\foo'))
{ {

View file

@ -17,3 +17,15 @@ foo_exception_controller:
foo_redirect_controller: foo_redirect_controller:
pattern: /foo/redirect pattern: /foo/redirect
defaults: { _controller: foo_bar.controller: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', 'tests/index.php',
), ),
array( array(
$this->helper->url('index'), $this->helper->url('foo_index_controller'),
$rewrite_prefix . 'index', $rewrite_prefix . 'index',
), ),
array( array(
$this->helper->url('tests/index'), $this->helper->url('foo_tests_index_controller'),
$rewrite_prefix . 'tests/index', $rewrite_prefix . 'tests/index',
), ),
array( array(
$this->helper->url('tests/../index'), $this->helper->url('foo_tests_dotdot_index_controller'),
$rewrite_prefix . 'index', $rewrite_prefix . 'index',
), ),
/* /*

View file

@ -15,11 +15,8 @@ class phpbb_security_redirect_test extends phpbb_security_test_base
{ {
protected $path_helper; protected $path_helper;
protected $controller_helper;
public function provider() public function provider()
{ {
$this->controller_helper = $this->get_controller_helper();
// array(Input -> redirect(), expected triggered error (else false), expected returned result url (else false)) // array(Input -> redirect(), expected triggered error (else false), expected returned result url (else false))
return array( return array(
array('data://x', false, false, 'http://localhost/phpBB'), 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', false, false, 'http://localhost/foo/bar'),
array('./../foo/bar', true, 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('app.php/', false, false, 'http://localhost/phpBB/app.php/'),
array($this->controller_helper->url('a'), false, false, 'http://localhost/phpBB/app.php/a'), array('app.php/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/b', false, false, 'http://localhost/phpBB/app.php/a/b'),
array('./app.php/', false, false, 'http://localhost/phpBB/app.php/'), 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'),
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; 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() protected function setUp()
{ {
parent::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->path_helper = $this->get_path_helper();
$this->controller_helper = $this->get_controller_helper();
} }
/** /**