aboutsummaryrefslogtreecommitdiffstats
path: root/tests/wrapper/gmgetdate_test.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/wrapper/gmgetdate_test.php')
-rw-r--r--tests/wrapper/gmgetdate_test.php60
1 files changed, 41 insertions, 19 deletions
diff --git a/tests/wrapper/gmgetdate_test.php b/tests/wrapper/gmgetdate_test.php
index a838cfdba9..2e55a78d21 100644
--- a/tests/wrapper/gmgetdate_test.php
+++ b/tests/wrapper/gmgetdate_test.php
@@ -1,9 +1,13 @@
<?php
/**
*
-* @package testing
-* @copyright (c) 2011 phpBB Group
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
*
*/
@@ -11,26 +15,28 @@ require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
class phpbb_wrapper_gmgetdate_test extends phpbb_test_case
{
- public function test_gmgetdate()
+ public static function phpbb_gmgetdate_data()
{
- $this->run_gmgetdate_assertion();
- $this->run_test_with_timezone('UTC');
- $this->run_test_with_timezone('Europe/Berlin');
- $this->run_test_with_timezone('America/Los_Angeles');
- $this->run_test_with_timezone('Antarctica/South_Pole');
+ return array(
+ array(''),
+ array('UTC'),
+ array('Europe/Berlin'),
+ array('America/Los_Angeles'),
+ array('Antarctica/South_Pole'),
+ );
}
- protected function run_test_with_timezone($timezone_identifier)
+ /**
+ * @dataProvider phpbb_gmgetdate_data
+ */
+ public function test_phpbb_gmgetdate($timezone_identifier)
{
- $current_timezone = date_default_timezone_get();
-
- date_default_timezone_set($timezone_identifier);
- $this->run_gmgetdate_assertion();
- date_default_timezone_set($current_timezone);
- }
+ if ($timezone_identifier)
+ {
+ $current_timezone = date_default_timezone_get();
+ date_default_timezone_set($timezone_identifier);
+ }
- protected function run_gmgetdate_assertion()
- {
$expected = time();
$date_array = phpbb_gmgetdate($expected);
@@ -44,6 +50,22 @@ class phpbb_wrapper_gmgetdate_test extends phpbb_test_case
$date_array['year']
);
- $this->assertEquals($expected, $actual);
+ // Calling second-granularity time functions twice isn't guaranteed to
+ // give the same results. As long as they're in the right order, allow
+ // a 1 second difference.
+ $this->assertGreaterThanOrEqual(
+ $expected, $actual,
+ 'Expected second time to be after (or equal to) the previous one'
+ );
+ $this->assertLessThanOrEqual(
+ 1,
+ abs($actual - $expected),
+ "Expected $actual to be within 1 second of $expected."
+ );
+
+ if (isset($current_timezone))
+ {
+ date_default_timezone_set($current_timezone);
+ }
}
}