From 11f2517f24aca0580fec7d3560108458da787342 Mon Sep 17 00:00:00 2001 From: ctrlaltca <> Date: Sun, 6 Jan 2013 18:09:15 +0000 Subject: backported r3233, r3234 to trunk/ --- tests/unit/Util/TDateTimeStampTest.php | 53 +++++++++------------------- tests/unit/Util/TSimpleDateFormatterTest.php | 2 +- 2 files changed, 18 insertions(+), 37 deletions(-) (limited to 'tests/unit/Util') diff --git a/tests/unit/Util/TDateTimeStampTest.php b/tests/unit/Util/TDateTimeStampTest.php index e9a0a22f..60ccf640 100644 --- a/tests/unit/Util/TDateTimeStampTest.php +++ b/tests/unit/Util/TDateTimeStampTest.php @@ -4,12 +4,15 @@ require_once dirname(__FILE__).'/../phpunit.php'; Prado::using('System.Util.TDateTimeStamp'); +/** + * @package System.Util + */ class TDateTimeStampTest extends PHPUnit_Framework_TestCase { public function testGetTimeStampAndFormat() { $s = new TDateTimeStamp; $t = $s->getTimeStamp(0,0,0); - $this->assertEquals($s->formatDate('Y-m-d'), date('Y-m-d')); + $this->assertEquals($s->formatDate('Y-m-d',$t), date('Y-m-d')); $t = $s->getTimeStamp(0,0,0,6,1,2102); $this->assertEquals($s->formatDate('Y-m-d',$t), '2102-06-01'); @@ -18,33 +21,6 @@ class TDateTimeStampTest extends PHPUnit_Framework_TestCase { $this->assertEquals($s->formatDate('Y-m-d',$t), '2102-02-01'); } - public function testGregorianToJulianConversion() { - $s = new TDateTimeStamp; - $t = $s->getTimeStamp(0,0,0,10,11,1492); - - //http://www.holidayorigins.com/html/columbus_day.html - Friday check - $this->assertEquals($s->formatDate('D Y-m-d',$t), 'Fri 1492-10-11'); - - $t = $s->getTimeStamp(0,0,0,2,29,1500); - $this->assertEquals($s->formatDate('Y-m-d',$t), '1500-02-29'); - - $t = $s->getTimeStamp(0,0,0,2,29,1700); - $this->assertEquals($s->formatDate('Y-m-d',$t), '1700-03-01'); - - } - - public function testGregorianCorrection() { - $s = new TDateTimeStamp; - $diff = $s->getTimeStamp(0,0,0,10,15,1582) - $s->getTimeStamp(0,0,0,10,4,1582); - - //This test case fails on my windows machine! - //$this->assertEquals($diff, 3600*24, - // "Error in gregorian correction = ".($diff/3600/24)." days"); - - $this->assertEquals($s->getDayOfWeek(1582,10,15), 5.0); - $this->assertEquals($s->getDayOfWeek(1582,10,4), 4.0); - } - public function testOverFlow() { $s = new TDateTimeStamp; $t = $s->getTimeStamp(0,0,0,3,33,1965); @@ -53,13 +29,13 @@ class TDateTimeStampTest extends PHPUnit_Framework_TestCase { $t = $s->getTimeStamp(0,0,0,4,33,1971); $this->assertEquals($s->formatDate('Y-m-d',$t), '1971-05-03', 'Error in day overflow 2'); $t = $s->getTimeStamp(0,0,0,1,60,1965); - $this->assertEquals($s->formatDate('Y-m-d',$t), '1965-03-01', 'Error in day overflow 3 '.$s->getDate('Y-m-d',$t)); + $this->assertEquals($s->formatDate('Y-m-d',$t), '1965-03-01', 'Error in day overflow 3 '.$s->formatDate('Y-m-d',$t)); $t = $s->getTimeStamp(0,0,0,12,32,1965); - $this->assertEquals($s->formatDate('Y-m-d',$t), '1966-01-01', 'Error in day overflow 4 '.$s->getDate('Y-m-d',$t)); + $this->assertEquals($s->formatDate('Y-m-d',$t), '1966-01-01', 'Error in day overflow 4 '.$s->formatDate('Y-m-d',$t)); $t = $s->getTimeStamp(0,0,0,12,63,1965); - $this->assertEquals($s->formatDate('Y-m-d',$t), '1966-02-01', 'Error in day overflow 5 '.$s->getDate('Y-m-d',$t)); + $this->assertEquals($s->formatDate('Y-m-d',$t), '1966-02-01', 'Error in day overflow 5 '.$s->formatDate('Y-m-d',$t)); $t = $s->getTimeStamp(0,0,0,13,3,1965); - $this->assertEquals($s->formatDate('Y-m-d',$t), '1966-01-03', 'Error in mth overflow 1'); + $this->assertEquals($s->formatDate('Y-m-d',$t), '1966-01-03', 'Error in math overflow 1'); } public function test2DigitTo4DigitYearConversion() { @@ -93,11 +69,11 @@ class TDateTimeStampTest extends PHPUnit_Framework_TestCase { } } - public function testRandomDatesBetween100And4000() { - $this->assertIsValidDate(100,1); + public function testRandomDatesBetween1000And4000() { + $this->assertIsValidDate(1000,1); //echo "Testing year "; for ($i=10; --$i >= 0;) { - $y1 = 100+rand(0,1970-100); + $y1 = 1000+rand(0,1970-1000); //echo $y1." "; $m = rand(1,12); $this->assertIsValidDate($y1,$m); @@ -137,7 +113,12 @@ class TDateTimeStampTest extends PHPUnit_Framework_TestCase { $newi = $s->getTimestamp($arr[3],$arr[4],$arr[5],$arr[0],$arr[1],$arr[2]); if ($i != $newi) { - $fails++; + // This actually can fail if $i is in the middle of a time change due to DST + $tz = new DateTimeZone(date_default_timezone_get()); + $transitions = $tz->getTransitions($i-3600, $i+3600); + if(count($transitions) == 0) + $fails++; + //$j = mktime($arr[3],$arr[4],$arr[5],$arr[0],$arr[1],$arr[2]); //print "Error at $i, $j, getTimestamp() returned $newi ($ret)\n"; } diff --git a/tests/unit/Util/TSimpleDateFormatterTest.php b/tests/unit/Util/TSimpleDateFormatterTest.php index 13ad25a9..bfda4712 100644 --- a/tests/unit/Util/TSimpleDateFormatterTest.php +++ b/tests/unit/Util/TSimpleDateFormatterTest.php @@ -45,7 +45,7 @@ class TSimpleDateFormatterTest extends PHPUnit_Framework_TestCase { public function testMissingYearPattern() { $formatter = new TSimpleDateFormatter("MM/dd"); - self::assertEquals("2008-10-22", date('Y-m-d', $formatter->parse("10/22"))); + self::assertEquals(date("Y-10-22"), date('Y-m-d', $formatter->parse("10/22"))); } public function testDayMonthYearOrdering() { -- cgit v1.2.3