aboutsummaryrefslogtreecommitdiffstats
path: root/tests/session
diff options
context:
space:
mode:
Diffstat (limited to 'tests/session')
-rw-r--r--tests/session/check_ban_test.php4
-rw-r--r--tests/session/extract_page_test.php74
-rw-r--r--tests/session/testable_facade.php28
-rw-r--r--tests/session/testable_factory.php6
4 files changed, 73 insertions, 39 deletions
diff --git a/tests/session/check_ban_test.php b/tests/session/check_ban_test.php
index 8d6c9a866d..3f13b9f216 100644
--- a/tests/session/check_ban_test.php
+++ b/tests/session/check_ban_test.php
@@ -43,8 +43,8 @@ class phpbb_session_check_ban_test extends phpbb_session_test_case
// Change the global cache object for this test because
// the mock cache object does not hit the database as is needed
// for this test.
- $cache = new phpbb_cache_service(
- new phpbb_cache_driver_file(),
+ $cache = new \phpbb\cache\service(
+ new \phpbb\cache\driver\file(),
$config,
$this->db,
$phpbb_root_path,
diff --git a/tests/session/extract_page_test.php b/tests/session/extract_page_test.php
index f4ae8de021..6e137e28b8 100644
--- a/tests/session/extract_page_test.php
+++ b/tests/session/extract_page_test.php
@@ -24,6 +24,7 @@ class phpbb_session_extract_page_test extends phpbb_session_test_case
'/phpBB/index.php',
'',
'/phpBB/',
+ '/',
array(
'page_name' => 'index.php',
'page_dir' => '',
@@ -38,7 +39,8 @@ class phpbb_session_extract_page_test extends phpbb_session_test_case
'./',
'/phpBB/ucp.php',
'mode=login',
- '/phpBB/ucp.php?mode=login',
+ '/phpBB/',
+ '/',
array(
'page_name' => 'ucp.php',
'page_dir' => '',
@@ -53,7 +55,8 @@ class phpbb_session_extract_page_test extends phpbb_session_test_case
'./',
'/phpBB/ucp.php',
'mode=register',
- '/phpBB/ucp.php?mode=register',
+ '/phpBB/',
+ '/',
array(
'page_name' => 'ucp.php',
'page_dir' => '',
@@ -68,7 +71,8 @@ class phpbb_session_extract_page_test extends phpbb_session_test_case
'./',
'/phpBB/ucp.php',
'mode=register',
- '/phpBB/ucp.php?mode=register',
+ '/phpBB/',
+ '/',
array(
'page_name' => 'ucp.php',
'page_dir' => '',
@@ -83,30 +87,76 @@ class phpbb_session_extract_page_test extends phpbb_session_test_case
'./../',
'/phpBB/adm/index.php',
'sid=e7215d958cdd41a6fc13509bebe53e42',
- '/phpBB/adm/index.php?sid=e7215d958cdd41a6fc13509bebe53e42',
+ '/phpBB/adm/',
+ '/',
array(
'page_name' => 'index.php',
//'page_dir' => 'adm',
// ^-- Ignored because .. returns different directory in live vs testing
'query_string' => '',
'script_path' => '/phpBB/adm/',
- 'root_script_path' => '/phpBB/',
+ //'root_script_path' => '/phpBB/',
//'page' => 'adm/index.php',
'forum' => 0,
),
),
+ array(
+ './',
+ '/phpBB/adm/app.php',
+ 'page=1&test=2',
+ '/phpBB/',
+ '/foo/bar',
+ array(
+ 'page_name' => 'app.php/foo/bar',
+ 'page_dir' => '',
+ 'query_string' => 'page=1&test=2',
+ 'script_path' => '/phpBB/',
+ 'root_script_path' => '/phpBB/',
+ 'page' => 'app.php/foo/bar?page=1&test=2',
+ 'forum' => 0,
+ ),
+ ),
+ array(
+ './../phpBB/',
+ '/test/test.php',
+ 'page=1&test=2',
+ '/test/',
+ '',
+ array(
+ 'page_name' => 'test.php',
+ //'page_dir' => '',
+ 'query_string' => 'page=1&test=2',
+ 'script_path' => '/test/',
+ //'root_script_path' => '../phpBB/',
+ //'page' => '../test/test.php/foo/bar?page=1&test=2',
+ 'forum' => 0,
+ ),
+ ),
);
}
/** @dataProvider extract_current_page_data */
- function test_extract_current_page($root_path, $php_self, $query_string, $request_uri, $expected)
+ function test_extract_current_page($root_path, $getScriptName, $getQueryString, $getBasePath, $getPathInfo, $expected)
{
- $output = $this->session_facade->extract_current_page(
- $root_path,
- $php_self,
- $query_string,
- $request_uri
- );
+ global $symfony_request;
+
+ $symfony_request = $this->getMock("\phpbb\symfony_request", array(), array(
+ new phpbb_mock_request(),
+ ));
+ $symfony_request->expects($this->any())
+ ->method('getScriptName')
+ ->will($this->returnValue($getScriptName));
+ $symfony_request->expects($this->any())
+ ->method('getQueryString')
+ ->will($this->returnValue($getQueryString));
+ $symfony_request->expects($this->any())
+ ->method('getBasePath')
+ ->will($this->returnValue($getBasePath));
+ $symfony_request->expects($this->any())
+ ->method('getPathInfo')
+ ->will($this->returnValue($getPathInfo));
+
+ $output = \phpbb\session::extract_current_page($root_path);
// This compares the result of the output.
// Any keys that are not in the expected array are overwritten by the output (aka not checked).
diff --git a/tests/session/testable_facade.php b/tests/session/testable_facade.php
index 9f0a3c5f59..2600a46cc4 100644
--- a/tests/session/testable_facade.php
+++ b/tests/session/testable_facade.php
@@ -14,11 +14,11 @@ require_once dirname(__FILE__) . '/../../phpBB/phpbb/session.php';
* This class exists to expose session.php's functions in a more testable way.
*
* Since many functions in session.php have global variables inside the function,
- * this exposes those functions through a testable facade that uses
- * testable_factory's mock global variables to modify global variables used in
+ * this exposes those functions through a testable facade that uses
+ * testable_factory's mock global variables to modify global variables used in
* the functions.
*
- * This is using the facade pattern to provide a testable "front" to the
+ * This is using the facade pattern to provide a testable "front" to the
* functions in sessions.php.
*
*/
@@ -33,21 +33,6 @@ class phpbb_session_testable_facade
$this->session_factory = $session_factory;
}
- function extract_current_page(
- $root_path,
- $php_self,
- $query_string,
- $request_uri
- )
- {
- $this->session_factory->get_session($this->db);
- global $request;
- $request->overwrite('PHP_SELF', $php_self, phpbb_request_interface::SERVER);
- $request->overwrite('QUERY_STRING', $query_string, phpbb_request_interface::SERVER);
- $request->overwrite('REQUEST_URI', $request_uri, phpbb_request_interface::SERVER);
- return phpbb_session::extract_current_page($root_path);
- }
-
function extract_current_hostname(
$host,
$server_name_config,
@@ -58,8 +43,8 @@ class phpbb_session_testable_facade
global $config, $request;
$config['server_name'] = $server_name_config;
$config['cookie_domain'] = $cookie_domain_config;
- $request->overwrite('SERVER_NAME', $host, phpbb_request_interface::SERVER);
- $request->overwrite('Host', $host, phpbb_request_interface::SERVER);
+ $request->overwrite('SERVER_NAME', $host, \phpbb\request\request_interface::SERVER);
+ $request->overwrite('Host', $host, \phpbb\request\request_interface::SERVER);
// Note: There is a php_uname function used as a fallthrough
// that this function doesn't override
return $session->extract_current_hostname();
@@ -135,8 +120,7 @@ class phpbb_session_testable_facade
$session->host = $host;
$config['force_server_vars'] = $force_server_vars;
$config['server_name'] = $server_name;
- $request->overwrite('SERVER_PORT', $server_port, phpbb_request_interface::SERVER);
+ $request->overwrite('SERVER_PORT', $server_port, \phpbb\request\request_interface::SERVER);
return $session->validate_referer($check_script_path);
}
}
-
diff --git a/tests/session/testable_factory.php b/tests/session/testable_factory.php
index 8733ce15ef..a58e208efc 100644
--- a/tests/session/testable_factory.php
+++ b/tests/session/testable_factory.php
@@ -63,10 +63,10 @@ class phpbb_session_testable_factory
/**
* Retrieve the configured session class instance
*
- * @param phpbb_db_driver $dbal The database connection to use for session data
+ * @param \phpbb\db\driver\driver $dbal The database connection to use for session data
* @return phpbb_mock_session_testable A session instance
*/
- public function get_session(phpbb_db_driver $dbal)
+ public function get_session(\phpbb\db\driver\driver $dbal)
{
// set up all the global variables used by session
global $SID, $_SID, $db, $config, $cache, $request, $phpbb_container;
@@ -79,7 +79,7 @@ class phpbb_session_testable_factory
);
request_var(null, null, null, null, $request);
- $config = $this->config = new phpbb_config($this->get_config_data());
+ $config = $this->config = new \phpbb\config\config($this->get_config_data());
set_config(null, null, null, $config);
$db = $dbal;