summaryrefslogtreecommitdiff
path: root/tests/unit/I18N/core/DateFormatTest.php
blob: da7c6b730d6a94bd305fb0e9d1723fc49a5b1a4e (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
<?php
require_once dirname(__FILE__).'/../../phpunit.php';

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

/**
 * @package System.I18N.core
 */
class DateFormatTest extends PHPUnit_Framework_TestCase {

  public 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->assertEquals('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->assertEquals($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->assertEquals($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->assertEquals($wants, $dateFormatter->format($time, 'F'));
    
    //for General "M/d/yy h:mm a"
    $wants = '9/1/04 9:09 AM';
    $this->assertEquals($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->assertEquals($wants, $dateFormatter->format($time, 'G'));	
    
    //for MonthDayPattern  "MMMM dd" (invariant)
    $wants = 'September 01';
    $this->assertEquals($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->assertEquals($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->assertEquals($wants, $dateFormatter->format($time, 's'));	
    //var_dump(date('c',strtotime($dateFormatter->format($time,'s'))));
    
    //for ShortTimePattern  "H:mm a"
    $wants = '9:09 AM';
    $this->assertEquals($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->assertEquals($wants, $dateFormatter->format($time, 'T'));	
    
    //for UniversalSortableDateTimePattern "yyyy-MM-dd HH:mm:ss z" 
    //(invariant)
    $wants = '2004-09-01 09:09:09 '.$zone;
    $this->assertEquals($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->assertEquals($wants, $dateFormatter->format($time, 'U'));	
    //var_dump(date('c',strtotime($dateFormatter->format($time,'U'))));
    
    //for YearMonthPattern  "yyyy MMMM" (invariant)
    $wants = '2004 September';
    $this->assertEquals($wants, $dateFormatter->format($time, 'y'));	
    //var_dump(date('c',strtotime($dateFormatter->format($time,'y'))));
  }
  
  public 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->assertEquals($wants, $dateFormatter->format($time, $pattern));  
  }
}

?>