<?php
class TimeAdjustTest extends MediaWikiLangTestCase {
- static $offset, $timezone;
-
- public function setUp() {
+ protected function setUp() {
parent::setUp();
- global $wgLocalTZoffset, $wgLocaltimezone;
- self::$offset = $wgLocalTZoffset;
- self::$timezone = $wgLocaltimezone;
- $this->iniSet( 'precision', 15 );
- }
+ $this->setMwGlobals( array(
+ 'wgLocalTZoffset' => null,
+ 'wgContLang' => Language::factory( 'en' ),
+ 'wgLanguageCode' => 'en',
+ ) );
- public function tearDown() {
- global $wgLocalTZoffset, $wgLocaltimezone;
- $wgLocalTZoffset = self::$offset;
- $wgLocaltimezone = self::$timezone;
- parent::tearDown();
+ $this->iniSet( 'precision', 15 );
}
- /**
- * Test offset usage for a given language::userAdjust
- * @dataProvider dataUserAdjustWithOffset
- */
- function testUserAdjustWithOffset( $inputDate, $offset, $expectedDate ) {
- global $wgLocalTZoffset, $wgLocaltimezone, $wgContLang;
-
- $wgContLang = $en = Language::factory( 'en' );
-
- $wgLocaltimezone = 'DummyTimezoneSoUserAdjustWillUseTzOffset';
- $wgLocalTZoffset = $offset;
-
- $this->assertEquals(
- strval( $expectedDate ),
- strval( $en->userAdjust( $inputDate, '' ) ),
- "User adjust {$inputDate} by {$offset} minutes should give {$expectedDate}"
- );
- }
+ # Test offset usage for a given language::userAdjust
+ function testUserAdjust() {
+ global $wgLocalTZoffset, $wgContLang;
- function dataUserAdjustWithOffset() {
# Collection of parameters for Language_t_Offset.
# Format: date to be formatted, localTZoffset value, expected date
- return array(
- array( 20061231235959, 0, 20061231235959 ),
- array( 20061231235959, 5, 20070101000459 ),
- array( 20061231235959, 15, 20070101001459 ),
- array( 20061231235959, 60, 20070101005959 ),
- array( 20061231235959, 90, 20070101012959 ),
+ $userAdjust_tests = array(
+ array( 20061231235959, 0, 20061231235959 ),
+ array( 20061231235959, 5, 20070101000459 ),
+ array( 20061231235959, 15, 20070101001459 ),
+ array( 20061231235959, 60, 20070101005959 ),
+ array( 20061231235959, 90, 20070101012959 ),
array( 20061231235959, 120, 20070101015959 ),
array( 20061231235959, 540, 20070101085959 ),
- array( 20061231235959, -5, 20061231235459 ),
+ array( 20061231235959, -5, 20061231235459 ),
array( 20061231235959, -30, 20061231232959 ),
array( 20061231235959, -60, 20061231225959 ),
);
- }
-
- /**
- * Test timezone usage for a given language::userAdjust
- * @dataProvider dataUserAdjustWithTimezone
- */
- function testUserAdjustWithTimezone( $inputDate, $timezone, $expectedDate ) {
- global $wgLocalTZoffset, $wgLocaltimezone;
-
- $wgContLang = $en = Language::factory( 'en' );
-
- $wgLocaltimezone = $timezone;
- $wgLocalTZoffset = 0;
- $this->assertEquals(
- strval( $expectedDate ),
- strval( $en->userAdjust( $inputDate, '' ) ),
- "User adjust {$inputDate} with timezone {$timezone} should give {$expectedDate}"
- );
- }
+ foreach ( $userAdjust_tests as $data ) {
+ $wgLocalTZoffset = $data[1];
- function dataUserAdjustWithTimezone() {
- return array(
- array( 20111028233711, 'Europe/Warsaw', 20111029013711 ),
- array( 20111108205929, 'Europe/Warsaw', 20111108215929 ),
- );
+ $this->assertEquals(
+ strval( $data[2] ),
+ strval( $wgContLang->userAdjust( $data[0], '' ) ),
+ "User adjust {$data[0]} by {$data[1]} minutes should give {$data[2]}"
+ );
+ }
}
-
}