aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/includes/functions.php2
-rw-r--r--phpBB/includes/functions_install.php5
-rw-r--r--tests/functional/posting_test.php10
3 files changed, 6 insertions, 11 deletions
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index 5914831539..8e7e84bf83 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -2811,7 +2811,7 @@ function check_form_key($form_name, $timespan = false, $return_page = '', $trigg
$diff = time() - $creation_time;
// If creation_time and the time() now is zero we can assume it was not a human doing this (the check for if ($diff)...
- if ($diff && ($diff <= $timespan || $timespan === -1))
+ if (defined('DEBUG_TEST') || $diff && ($diff <= $timespan || $timespan === -1))
{
$token_sid = ($user->data['user_id'] == ANONYMOUS && !empty($config['form_token_sid_guests'])) ? $user->session_id : '';
$key = sha1($creation_time . $user->data['user_form_salt'] . $form_name . $token_sid);
diff --git a/phpBB/includes/functions_install.php b/phpBB/includes/functions_install.php
index 89dfb7cd2f..2e10db6b24 100644
--- a/phpBB/includes/functions_install.php
+++ b/phpBB/includes/functions_install.php
@@ -551,10 +551,12 @@ function adjust_language_keys_callback($matches)
* @param string $dbms The name of the DBAL class to use
* @param array $load_extensions Array of additional extensions that should be loaded
* @param bool $debug If the debug constants should be enabled by default or not
+* @param bool $debug_test If the DEBUG_TEST constant should be added
+* NOTE: Only for use within the testing framework
*
* @return string The output to write to the file
*/
-function phpbb_create_config_file_data($data, $dbms, $load_extensions, $debug = false)
+function phpbb_create_config_file_data($data, $dbms, $load_extensions, $debug = false, $debug_test = false)
{
$load_extensions = implode(',', $load_extensions);
@@ -584,6 +586,7 @@ function phpbb_create_config_file_data($data, $dbms, $load_extensions, $debug =
{
$config_data .= "@define('DEBUG', true);\n";
$config_data .= "@define('DEBUG_EXTRA', true);\n";
+ $config_data .= "@define('DEBUG_TEST', true);\n";
}
else
{
diff --git a/tests/functional/posting_test.php b/tests/functional/posting_test.php
index 8d722361e0..f54a3591b2 100644
--- a/tests/functional/posting_test.php
+++ b/tests/functional/posting_test.php
@@ -47,13 +47,6 @@ class phpbb_functional_posting_test extends phpbb_functional_test_case
// is not at least 2 seconds before submission, cancel the form
$form_data['lastclick'] = 0;
- // The add_form_key()/check_form_key() safeguards present a challenge because they require
- // the timestamp created in add_form_key() to be sent as-is to check_form_key() but in check_form_key()
- // it won't allow the current time to be the same as the timestamp it requires.
- // As such, automated scripts like this one have to somehow bypass this without being able to change
- // the timestamp. The only way I can think to do so is using sleep()
- sleep(1);
-
// I use a request because the form submission method does not allow you to send data that is not
// contained in one of the actual form fields that the browser sees (i.e. it ignores "hidden" inputs)
// Instead, I send it as a request with the submit button "post" set to true.
@@ -96,9 +89,8 @@ class phpbb_functional_posting_test extends phpbb_functional_test_case
}
}
- // For reasoning behind the following two commands, see the test_post_new_topic() test
+ // For reasoning behind the following command, see the test_post_new_topic() test
$form_data['lastclick'] = 0;
- sleep(1);
// Submit the post
$crawler = $this->client->request('POST', 'posting.php', $form_data);