1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-04-20 07:42:09 +02:00

[ticket/11850] Fix extract current page test

PHPBB3-11850
This commit is contained in:
Nathan Guse 2013-09-19 11:49:13 -05:00
parent d85ae0f7bc
commit 2ee22d4615
2 changed files with 47 additions and 11 deletions

View File

@ -14,7 +14,7 @@ abstract class phpbb_security_test_base extends phpbb_test_case
*/
protected function setUp()
{
global $user, $phpbb_root_path, $request;
global $user, $phpbb_root_path, $phpEx, $request, $symfony_request, $phpbb_filesystem;
// Put this into a global function being run by every test to init a proper user session
$server['HTTP_HOST'] = 'localhost';
@ -37,6 +37,22 @@ abstract class phpbb_security_test_base extends phpbb_test_case
*/
$request = new phpbb_mock_request(array(), array(), array(), $server);
$symfony_request = $this->getMock("phpbb_symfony_request", array(), array(
$request,
));
$symfony_request->expects($this->any())
->method('getScriptName')
->will($this->returnValue($server['SCRIPT_NAME']));
$symfony_request->expects($this->any())
->method('getQueryString')
->will($this->returnValue($server['QUERY_STRING']));
$symfony_request->expects($this->any())
->method('getBasePath')
->will($this->returnValue($server['REQUEST_URI']));
$symfony_request->expects($this->any())
->method('getPathInfo')
->will($this->returnValue('/'));
$phpbb_filesystem = new phpbb_filesystem($symfony_request, $phpbb_root_path, $phpEx);
// Set no user and trick a bit to circumvent errors
$user = new phpbb_user();

View File

@ -26,13 +26,23 @@ class phpbb_security_extract_current_page_test extends phpbb_security_test_base
*/
public function test_query_string_php_self($url, $query_string, $expected)
{
global $request;
global $symfony_request, $request;
$request->merge(phpbb_request_interface::SERVER, array(
'PHP_SELF' => $url,
'QUERY_STRING' => $query_string,
$symfony_request = $this->getMock("phpbb_symfony_request", array(), array(
$request,
));
$symfony_request->expects($this->any())
->method('getScriptName')
->will($this->returnValue($url));
$symfony_request->expects($this->any())
->method('getQueryString')
->will($this->returnValue($query_string));
$symfony_request->expects($this->any())
->method('getBasePath')
->will($this->returnValue($server['REQUEST_URI']));
$symfony_request->expects($this->any())
->method('getPathInfo')
->will($this->returnValue('/'));
$result = phpbb_session::extract_current_page('./');
$label = 'Running extract_current_page on ' . $query_string . ' with PHP_SELF filled.';
@ -44,12 +54,23 @@ class phpbb_security_extract_current_page_test extends phpbb_security_test_base
*/
public function test_query_string_request_uri($url, $query_string, $expected)
{
global $request;
global $symfony_request, $request;
$request->merge(phpbb_request_interface::SERVER, array(
'PHP_SELF' => $url,
'QUERY_STRING' => $query_string,
$symfony_request = $this->getMock("phpbb_symfony_request", array(), array(
$request,
));
$symfony_request->expects($this->any())
->method('getScriptName')
->will($this->returnValue($url));
$symfony_request->expects($this->any())
->method('getQueryString')
->will($this->returnValue($query_string));
$symfony_request->expects($this->any())
->method('getBasePath')
->will($this->returnValue($server['REQUEST_URI']));
$symfony_request->expects($this->any())
->method('getPathInfo')
->will($this->returnValue('/'));
$result = phpbb_session::extract_current_page('./');
@ -57,4 +78,3 @@ class phpbb_security_extract_current_page_test extends phpbb_security_test_base
$this->assertEquals($expected, $result['query_string'], $label);
}
}