diff options
-rw-r--r-- | build/build.xml | 12 | ||||
-rwxr-xr-x | build/build_announcement.php | 98 | ||||
-rw-r--r-- | phpBB/common.php | 2 | ||||
-rw-r--r-- | phpBB/includes/functions_user.php | 4 | ||||
-rw-r--r-- | phpBB/includes/ucp/ucp_pm_viewmessage.php | 4 | ||||
-rw-r--r-- | phpBB/install/index.php | 2 | ||||
-rw-r--r-- | phpBB/memberlist.php | 2 | ||||
-rw-r--r-- | phpBB/phpbb/content_visibility.php | 6 | ||||
-rw-r--r-- | phpBB/phpbb/db/migration/data/v310/signature_module_auth.php | 2 | ||||
-rw-r--r-- | phpBB/phpbb/db/migrator.php | 5 | ||||
-rw-r--r-- | phpBB/phpbb/notification/type/quote.php | 2 | ||||
-rw-r--r-- | phpBB/phpbb/notification/type/report_pm.php | 2 | ||||
-rw-r--r-- | phpBB/phpbb/session.php | 20 | ||||
-rw-r--r-- | phpBB/viewtopic.php | 14 | ||||
-rw-r--r-- | phpunit.xml.all | 2 | ||||
-rw-r--r-- | phpunit.xml.dist | 2 | ||||
-rw-r--r-- | phpunit.xml.functional | 2 | ||||
-rw-r--r-- | tests/security/base.php | 18 | ||||
-rw-r--r-- | tests/security/extract_current_page_test.php | 40 | ||||
-rw-r--r-- | tests/session/extract_page_test.php | 74 | ||||
-rw-r--r-- | tests/session/testable_facade.php | 16 | ||||
-rw-r--r-- | tests/test_framework/phpbb_session_test_case.php | 13 |
22 files changed, 274 insertions, 68 deletions
diff --git a/build/build.xml b/build/build.xml index 31782e6821..063f1017fb 100644 --- a/build/build.xml +++ b/build/build.xml @@ -169,6 +169,18 @@ <exec dir="${dir}" command="sha256sum ${filename} > ${filename}.sha256" /> </target> + <target name="announcement" depends="prepare"> + <echo msg="Writing download links and checksums for email announcement to save/announcement_email_${newversion}.txt" /> + <exec dir="build" escape="false" + command="php -f build_announcement.php email '${newversion}' 'new_version/release_files' sha256 > + save/announcement_email_${newversion}.txt" /> + + <echo msg="Writing download links and checksums for bbcode announcement to save/announcement_bbcode_${newversion}.txt" /> + <exec dir="build" escape="false" + command="php -f build_announcement.php bbcode '${newversion}' 'new_version/release_files' sha256 > + save/announcement_bbcode_${newversion}.txt" /> + </target> + <target name="changelog" depends="prepare"> <exec dir="build" escape="false" command="php -f build_changelog.php '${newversion}' > diff --git a/build/build_announcement.php b/build/build_announcement.php new file mode 100755 index 0000000000..3ee96fc67d --- /dev/null +++ b/build/build_announcement.php @@ -0,0 +1,98 @@ +#!/usr/bin/env php +<?php +/** +* +* @package build +* @copyright (c) 2013 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +if (php_sapi_name() !== 'cli' || $_SERVER['argc'] != 5) +{ + echo "Usage (CLI only): build_announcement.php email|bbcode new_version release_files_dir checksum_algorithm\n"; + exit(1); +} + +$mode = $_SERVER['argv'][1]; +$version = $_SERVER['argv'][2]; +$root = $_SERVER['argv'][3]; +$checksum_algorithm = $_SERVER['argv'][4]; + +$series_version = substr($version, 0, 3); +$base_url = "https://download.phpbb.com/pub/release/$series_version"; + +if (strpos($version, 'RC') === false) +{ + // Final release + $install_url = "$base_url/$version"; + $update_url = "$base_url/update/to_$version"; +} +else +{ + $install_url = "$base_url/release_candidates/$version"; + $update_url = "$base_url/release_candidates/update/other_to_$version"; +} + +if ($mode === 'bbcode') +{ + $template = "[url=%1\$s/%2\$s]%2\$s[/url]\n{$checksum_algorithm}sum: %3\$s\n"; +} +else +{ + $template = "%s/%s\n{$checksum_algorithm}sum: %s\n"; +} + +function phpbb_rnatsort($array) +{ + $strrnatcmp = function($a, $b) + { + return strnatcmp($b, $a); + }; + usort($array, $strrnatcmp); + return $array; +} + +function phpbb_string_ends_with($haystack, $needle) +{ + return substr($haystack, -strlen($needle)) === $needle; +} + +function phpbb_is_update_file($filename) +{ + return strpos($filename, '_to_') !== false; +} + +function phpbb_get_checksum($checksum_file) +{ + return array_shift(explode(' ', file_get_contents($checksum_file))); +} + +$install_files = $update_files = array(); +foreach (phpbb_rnatsort(array_diff(scandir($root), array('.', '..'))) as $filename) +{ + if (phpbb_string_ends_with($filename, $checksum_algorithm)) + { + continue; + } + else if (phpbb_is_update_file($filename)) + { + $update_files[] = $filename; + } + else + { + $install_files[] = $filename; + } +} + +foreach ($install_files as $filename) +{ + printf($template, $install_url, $filename, phpbb_get_checksum("$root/$filename.$checksum_algorithm")); +} + +echo "\n"; + +foreach ($update_files as $filename) +{ + printf($template, $update_url, $filename, phpbb_get_checksum("$root/$filename.$checksum_algorithm")); +} diff --git a/phpBB/common.php b/phpBB/common.php index 6bb3509ea1..b1da2215fb 100644 --- a/phpBB/common.php +++ b/phpBB/common.php @@ -115,6 +115,8 @@ set_config(null, null, null, $config); set_config_count(null, null, null, $config); $phpbb_log = $phpbb_container->get('log'); +$symfony_request = $phpbb_container->get('symfony_request'); +$phpbb_filesystem = $phpbb_container->get('filesystem'); $phpbb_path_helper = $phpbb_container->get('path_helper'); // load extensions diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php index 0a0656377c..30891c3fb5 100644 --- a/phpBB/includes/functions_user.php +++ b/phpBB/includes/functions_user.php @@ -2754,8 +2754,8 @@ function group_user_del($group_id, $user_id_ary = false, $username_ary = false, * Event before users are removed from a group * * @event core.group_delete_user_before - * @var int group_id ID of the group from which users are deleted - * @var string group_name Name of the group + * @var int group_id ID of the group from which users are deleted + * @var string group_name Name of the group * @var array user_id_ary IDs of the users which are removed * @var array username_ary names of the users which are removed * @since 3.1-A1 diff --git a/phpBB/includes/ucp/ucp_pm_viewmessage.php b/phpBB/includes/ucp/ucp_pm_viewmessage.php index c7b4489daf..cebbadc7c7 100644 --- a/phpBB/includes/ucp/ucp_pm_viewmessage.php +++ b/phpBB/includes/ucp/ucp_pm_viewmessage.php @@ -254,8 +254,8 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row) * @var string mode Active module * @var int folder_id ID of the folder the message is in * @var int msg_id ID of the private message - * var array folder Array with data of user's message folders - * @var array message_row Array with message data + * @var array folder Array with data of user's message folders + * @var array message_row Array with message data * @var array cp_row Array with senders custom profile field data * @var array msg_data Template array with message data * @since 3.1-A1 diff --git a/phpBB/install/index.php b/phpBB/install/index.php index 161dc78173..c9bf76bf04 100644 --- a/phpBB/install/index.php +++ b/phpBB/install/index.php @@ -244,6 +244,8 @@ $config = new \phpbb\config\config(array( 'load_tplcompile' => '1' )); +$symfony_request = $phpbb_container->get('symfony_request'); +$phpbb_filesystem = $phpbb_container->get('filesystem'); $phpbb_path_helper = $phpbb_container->get('path_helper'); $template = new \phpbb\template\twig\twig($phpbb_path_helper, $config, $user, new \phpbb\template\context()); $paths = array($phpbb_root_path . 'install/update/new/adm/style', $phpbb_admin_path . 'style'); diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index ead7179732..941d0ca713 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -595,7 +595,7 @@ switch ($mode) * Modify user data before we display the profile * * @event core.memberlist_view_profile - * @var array member Title of the index page + * @var array member Array with user's data * @var bool user_notes_enabled Is the mcp user notes module * enabled? * @var bool warn_user_enabled Is the mcp warnings module diff --git a/phpBB/phpbb/content_visibility.php b/phpBB/phpbb/content_visibility.php index bf720957bc..0b351bc9ec 100644 --- a/phpBB/phpbb/content_visibility.php +++ b/phpBB/phpbb/content_visibility.php @@ -556,7 +556,7 @@ class content_visibility * * @param $data array Contains information from the topics table about given topic * @param $sql_data array Populated with the SQL changes, may be empty at call time - * @return void + * @return null */ public function add_post_to_statistic($data, &$sql_data) { @@ -577,7 +577,7 @@ class content_visibility * * @param $data array Contains information from the topics table about given topic * @param $sql_data array Populated with the SQL changes, may be empty at call time - * @return void + * @return null */ public function remove_post_from_statistic($data, &$sql_data) { @@ -599,7 +599,7 @@ class content_visibility * @param $forum_id int Forum where the topic is found * @param $topic_row array Contains information from the topic, may be empty at call time * @param $sql_data array Populated with the SQL changes, may be empty at call time - * @return void + * @return null */ public function remove_topic_from_statistic($topic_id, $forum_id, &$topic_row, &$sql_data) { diff --git a/phpBB/phpbb/db/migration/data/v310/signature_module_auth.php b/phpBB/phpbb/db/migration/data/v310/signature_module_auth.php index a85e0be01c..6da1cb8009 100644 --- a/phpBB/phpbb/db/migration/data/v310/signature_module_auth.php +++ b/phpBB/phpbb/db/migration/data/v310/signature_module_auth.php @@ -27,7 +27,7 @@ class signature_module_auth extends \phpbb\db\migration\migration static public function depends_on() { - return array('\phpbb\db\migration\data\v31x\dev'); + return array('\phpbb\db\migration\data\v310\dev'); } public function update_data() diff --git a/phpBB/phpbb/db/migrator.php b/phpBB/phpbb/db/migrator.php index 7efb23a230..9879ff2a85 100644 --- a/phpBB/phpbb/db/migrator.php +++ b/phpBB/phpbb/db/migrator.php @@ -192,6 +192,11 @@ class migrator foreach ($state['migration_depends_on'] as $depend) { + if ($this->unfulfillable($depend) !== false) + { + throw new \phpbb\db\migration\exception('MIGRATION_NOT_FULFILLABLE', $name, $depend); + } + if (!isset($this->migration_state[$depend]) || !$this->migration_state[$depend]['migration_schema_done'] || !$this->migration_state[$depend]['migration_data_done']) diff --git a/phpBB/phpbb/notification/type/quote.php b/phpBB/phpbb/notification/type/quote.php index 56cfbc9364..8fb433990e 100644 --- a/phpBB/phpbb/notification/type/quote.php +++ b/phpBB/phpbb/notification/type/quote.php @@ -19,7 +19,7 @@ if (!defined('IN_PHPBB')) /** * Post quoting notifications class -* This class handles notifications for quoting users in a post +* This class handles notifying users when they have been quoted in a post * * @package notifications */ diff --git a/phpBB/phpbb/notification/type/report_pm.php b/phpBB/phpbb/notification/type/report_pm.php index fd3f754f8a..13330e2932 100644 --- a/phpBB/phpbb/notification/type/report_pm.php +++ b/phpBB/phpbb/notification/type/report_pm.php @@ -18,7 +18,7 @@ if (!defined('IN_PHPBB')) } /** -* Private message reproted notifications class +* Private message reported notifications class * This class handles notifications for private messages when they are reported * * @package notifications diff --git a/phpBB/phpbb/session.php b/phpBB/phpbb/session.php index 2baf61043d..5e4380bfc8 100644 --- a/phpBB/phpbb/session.php +++ b/phpBB/phpbb/session.php @@ -42,13 +42,13 @@ class session */ static function extract_current_page($root_path) { - global $request; + global $request, $symfony_request, $phpbb_filesystem; $page_array = array(); // First of all, get the request uri... - $script_name = htmlspecialchars_decode($request->server('PHP_SELF')); - $args = explode('&', htmlspecialchars_decode($request->server('QUERY_STRING'))); + $script_name = $symfony_request->getScriptName(); + $args = explode('&', $symfony_request->getQueryString()); // If we are unable to get the script name we use REQUEST_URI as a failover and note it within the page array for easier support... if (!$script_name) @@ -89,6 +89,12 @@ class session $page_name = (substr($script_name, -1, 1) == '/') ? '' : basename($script_name); $page_name = urlencode(htmlspecialchars($page_name)); + $symfony_request_path = $phpbb_filesystem->clean_path($symfony_request->getPathInfo()); + if ($symfony_request_path !== '/') + { + $page_name .= $symfony_request_path; + } + // current directory within the phpBB root (for example: adm) $root_dirs = explode('/', str_replace('\\', '/', phpbb_realpath($root_path))); $page_dirs = explode('/', str_replace('\\', '/', phpbb_realpath('./'))); @@ -105,10 +111,14 @@ class session } // Current page from phpBB root (for example: adm/index.php?i=10&b=2) - $page = (($page_dir) ? $page_dir . '/' : '') . $page_name . (($query_string) ? "?$query_string" : ''); + $page = (($page_dir) ? $page_dir . '/' : '') . $page_name; + if ($query_string) + { + $page .= '?' . $query_string; + } // The script path from the webroot to the current directory (for example: /phpBB3/adm/) : always prefixed with / and ends in / - $script_path = trim(str_replace('\\', '/', dirname($script_name))); + $script_path = $symfony_request->getBasePath(); // The script path from the webroot to the phpBB root (for example: /phpBB3/) $script_dirs = explode('/', $script_path); diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index 6880b6882d..69a972ed3e 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -1115,8 +1115,8 @@ while ($row = $db->sql_fetchrow($result)) * * @event core.viewtopic_cache_guest_data * @var array user_cache_data Array with the user's data - * @var int poster_id Poster's user id - * @var array row Array with original user and post data + * @var int poster_id Poster's user id + * @var array row Array with original user and post data * @since 3.1-A1 */ $vars = array('user_cache_data', 'poster_id', 'row'); @@ -1181,8 +1181,8 @@ while ($row = $db->sql_fetchrow($result)) * * @event core.viewtopic_cache_user_data * @var array user_cache_data Array with the user's data - * @var int poster_id Poster's user id - * @var array row Array with original user and post data + * @var int poster_id Poster's user id + * @var array row Array with original user and post data * @since 3.1-A1 */ $vars = array('user_cache_data', 'poster_id', 'row'); @@ -1673,10 +1673,10 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i) * Modify the posts template block * * @event core.viewtopic_modify_post_row - * @var array row Array with original post and user data - * @var array cp_row Custom profile field data of the poster + * @var array row Array with original post and user data + * @var array cp_row Custom profile field data of the poster * @var array user_poster_data Poster's data from user cache - * @var array post_row Template block array of the post + * @var array post_row Template block array of the post * @since 3.1-A1 */ $vars = array('row', 'cp_row', 'user_poster_data', 'post_row'); diff --git a/phpunit.xml.all b/phpunit.xml.all index d18518d3e3..d5ee606ce2 100644 --- a/phpunit.xml.all +++ b/phpunit.xml.all @@ -29,8 +29,6 @@ <directory suffix=".php">./phpBB/includes/</directory> <directory suffix=".php">./phpBB/phpbb/</directory> <exclude> - <file>./phpBB/phpbb/search/fulltext_native.php</file> - <file>./phpBB/phpbb/search/fulltext_mysql.php</file> <directory suffix=".php">./phpBB/includes/captcha/</directory> </exclude> </whitelist> diff --git a/phpunit.xml.dist b/phpunit.xml.dist index c852f91b50..700af8b2b2 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -36,8 +36,6 @@ <directory suffix=".php">./phpBB/includes/</directory> <directory suffix=".php">./phpBB/phpbb/</directory> <exclude> - <file>./phpBB/phpbb/search/fulltext_native.php</file> - <file>./phpBB/phpbb/search/fulltext_mysql.php</file> <directory suffix=".php">./phpBB/includes/captcha/</directory> </exclude> </whitelist> diff --git a/phpunit.xml.functional b/phpunit.xml.functional index cd9cc8771f..44d060e615 100644 --- a/phpunit.xml.functional +++ b/phpunit.xml.functional @@ -35,8 +35,6 @@ <directory suffix=".php">./phpBB/includes/</directory> <directory suffix=".php">./phpBB/phpbb/</directory> <exclude> - <file>./phpBB/phpbb/search/fulltext_native.php</file> - <file>./phpBB/phpbb/search/fulltext_mysql.php</file> <directory suffix=".php">./phpBB/includes/captcha/</directory> </exclude> </whitelist> diff --git a/tests/security/base.php b/tests/security/base.php index 8cd24ff145..3ab2d1cfec 100644 --- a/tests/security/base.php +++ b/tests/security/base.php @@ -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(); diff --git a/tests/security/extract_current_page_test.php b/tests/security/extract_current_page_test.php index e42f446b31..1284aab94c 100644 --- a/tests/security/extract_current_page_test.php +++ b/tests/security/extract_current_page_test.php @@ -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\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\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); } } - 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 f289c48f69..2600a46cc4 100644 --- a/tests/session/testable_facade.php +++ b/tests/session/testable_facade.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\request_interface::SERVER); - $request->overwrite('QUERY_STRING', $query_string, \phpbb\request\request_interface::SERVER); - $request->overwrite('REQUEST_URI', $request_uri, \phpbb\request\request_interface::SERVER); - return \phpbb\session::extract_current_page($root_path); - } - function extract_current_hostname( $host, $server_name_config, @@ -139,4 +124,3 @@ class phpbb_session_testable_facade return $session->validate_referer($check_script_path); } } - diff --git a/tests/test_framework/phpbb_session_test_case.php b/tests/test_framework/phpbb_session_test_case.php index e6a2b03bba..0a2f767845 100644 --- a/tests/test_framework/phpbb_session_test_case.php +++ b/tests/test_framework/phpbb_session_test_case.php @@ -19,6 +19,19 @@ abstract class phpbb_session_test_case extends phpbb_database_test_case function setUp() { parent::setUp(); + + global $symfony_request, $phpbb_filesystem, $phpbb_path_helper, $request, $phpbb_root_path, $phpEx; + $symfony_request = new \phpbb\symfony_request( + new phpbb_mock_request() + ); + $phpbb_filesystem = new \phpbb\filesystem(); + $phpbb_path_helper = new \phpbb\path_helper( + $symfony_request, + $phpbb_filesystem, + $phpbb_root_path, + $phpEx + ); + $this->session_factory = new phpbb_session_testable_factory; $this->db = $this->new_dbal(); $this->session_facade = |