summaryrefslogtreecommitdiff
path: root/tests/UnitTests/framework/I18N/testDateFormat.php
blob: 7e4259d661b4f01dd9ac8ba4f8829f268a1eec46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php

Prado::using('System.I18N.core.DateFormat');

class testDateFormat extends UnitTestCase
{
	function testDateFormat()
	{
		$this->UnitTestCase();
	}
	
	function testStandardPatterns()
	{
		$dateFormatter = new DateFormat();
		
		$time = @mktime(9, 9, 9, 9, 1, 2004);
		$zone = @date('T', $time);
		//var_dump(date('c',$time));
		//for ShortDatePattern  "M/d/yy"
		$this->assertEqual('9/1/04', $dateFormatter->format($time, 'd'));
		//var_dump(date('c',strtotime($dateFormatter->format($time,'d'))));
		
		//for LongDatePattern  "MMMM d, yyyy"
		$wants = 'September 1, 2004';
		$this->assertEqual($wants, $dateFormatter->format($time, 'D'));
		//var_dump(date('c',strtotime($dateFormatter->format($time,'D'))));
		
		//for Full date and time  "MMMM d, yyyy h:mm a"
		$wants = 'September 1, 2004 9:09 AM';
		$this->assertEqual($wants, $dateFormatter->format($time, 'f'));
		//var_dump(date('c',strtotime($dateFormatter->format($time,'f'))));
		
		//for FullDateTimePattern  "MMMM d, yyyy h:mm:ss a z"
		$wants = 'September 1, 2004 9:09:09 AM '.$zone;
		$this->assertEqual($wants, $dateFormatter->format($time, 'F'));

		//for General "M/d/yy h:mm a"
		$wants = '9/1/04 9:09 AM';
		$this->assertEqual($wants, $dateFormatter->format($time, 'g'));
		//var_dump(date('c',strtotime($dateFormatter->format($time,'g'))));

		//for General "M/d/yy h:mm:ss a z"
		$wants = '9/1/04 9:09:09 AM '.$zone;
		$this->assertEqual($wants, $dateFormatter->format($time, 'G'));	

		//for MonthDayPattern  "MMMM dd" (invariant)
		$wants = 'September 01';
		$this->assertEqual($wants, $dateFormatter->format($time, 'm'));
		//var_dump(date('c',strtotime($dateFormatter->format($time,'m'))));

		//for RFC1123Pattern  "EEE, dd MMM yyyy HH:mm:ss" (invariant)
		$wants = 'Wed, 01 Sep 2004 09:09:09';
		$this->assertEqual($wants, $dateFormatter->format($time, 'r'));	
		//var_dump(date('c',strtotime($dateFormatter->format($time,'r'))));
		
		//for SortableDateTimePattern "yyyy-MM-ddTHH:mm:ss" (invariant)
		$wants = '2004-09-01T09:09:09';
		$this->assertEqual($wants, $dateFormatter->format($time, 's'));	
		//var_dump(date('c',strtotime($dateFormatter->format($time,'s'))));
		
		//for ShortTimePattern  "H:mm a"
		$wants = '9:09 AM';
		$this->assertEqual($wants, $dateFormatter->format($time, 't'));	
		//(date('c',strtotime($dateFormatter->format($time,'t'))));
		
		//for LongTimePattern  "H:mm:ss a z"
		$wants = '9:09:09 AM '.$zone;
		$this->assertEqual($wants, $dateFormatter->format($time, 'T'));	
		
		//for UniversalSortableDateTimePattern "yyyy-MM-dd HH:mm:ss z" 
		//(invariant)
		$wants = '2004-09-01 09:09:09 '.$zone;
		$this->assertEqual($wants, $dateFormatter->format($time, 'u'));	
		
		//for Full date and time  "EEEE dd MMMM yyyy HH:mm:ss" (invariant)
		$wants = 'Wednesday 01 September 2004 09:09:09';
		$this->assertEqual($wants, $dateFormatter->format($time, 'U'));	
		//var_dump(date('c',strtotime($dateFormatter->format($time,'U'))));
		
		//for YearMonthPattern  "yyyy MMMM" (invariant)
		$wants = '2004 September';
		$this->assertEqual($wants, $dateFormatter->format($time, 'y'));	
		//var_dump(date('c',strtotime($dateFormatter->format($time,'y'))));
	}
	
	function testCustomPatterns()
	{
		$dateFormatter = new DateFormat();
		
		$time = @mktime(9, 9, 9, 9, 1, 2004);
		
		$pattern = "'Hello' EEEE, 'it should be' MMM yyyy HH:mm:ss!!!";
		$wants = 'Hello Wednesday, it should be Sep 2004 09:09:09!!!';
		$this->assertEqual($wants, $dateFormatter->format($time, $pattern));
		
	}
}

?>