1 if(!dojo._hasResource["dojox.date.tests.posix"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
2 dojo._hasResource["dojox.date.tests.posix"] = true;
3 dojo.provide("dojox.date.tests.posix");
4 dojo.require("dojox.date.posix");
6 tests.register("dojox.date.tests.posix",
9 //FIXME: set up by loading 'en' resources
10 function test_date_strftime(t){
11 var date = new Date(2006, 7, 11, 0, 55, 12, 3456);
12 t.is("06/08/11", dojox.date.posix.strftime(date, "%y/%m/%d"));
14 var dt = null; // Date to test
15 var fmt = ''; // Format to test
16 var res = ''; // Expected result
18 dt = new Date(2006, 0, 1, 18, 23);
21 t.is(res, dojox.date.posix.strftime(dt, fmt, 'en'));
25 t.is(res, dojox.date.posix.strftime(dt, fmt, 'en'));
29 t.is(res, dojox.date.posix.strftime(dt, fmt, 'en'));
33 t.is(res, dojox.date.posix.strftime(dt, fmt, 'en'));
36 res = 'Sunday, January 1, 2006 6:23:00 PM';
37 t.is(res, dojox.date.posix.strftime(dt, fmt).substring(0, res.length));
41 t.is(res, dojox.date.posix.strftime(dt, fmt));
45 t.is(res, dojox.date.posix.strftime(dt, fmt));
49 t.is(res, dojox.date.posix.strftime(dt, fmt));
53 t.is(res, dojox.date.posix.strftime(dt, fmt));
57 t.is(res, dojox.date.posix.strftime(dt, fmt, 'en'));
61 t.is(res, dojox.date.posix.strftime(dt, fmt));
65 t.is(res, dojox.date.posix.strftime(dt, fmt));
69 t.is(res, dojox.date.posix.strftime(dt, fmt));
73 t.is(res, dojox.date.posix.strftime(dt, fmt));
77 t.is(res, dojox.date.posix.strftime(dt, fmt));
81 t.is(res, dojox.date.posix.strftime(dt, fmt));
85 t.is(res, dojox.date.posix.strftime(dt, fmt));
89 t.is(res, dojox.date.posix.strftime(dt, fmt, 'en'));
93 t.is(res, dojox.date.posix.strftime(dt, fmt, 'en'));
97 t.is(res, dojox.date.posix.strftime(dt, fmt));
101 t.is(res, dojox.date.posix.strftime(dt, fmt));
105 t.is(res, dojox.date.posix.strftime(dt, fmt));
109 t.is(res, dojox.date.posix.strftime(dt, fmt));
113 t.is(res, dojox.date.posix.strftime(dt, fmt));
116 res = 'Sunday, January 1, 2006';
117 t.is(res, dojox.date.posix.strftime(dt, fmt, 'en'));
121 t.is(res, dojox.date.posix.strftime(dt, fmt, 'en').substring(0,res.length));
125 t.is(res, dojox.date.posix.strftime(dt, fmt));
129 t.is(res, dojox.date.posix.strftime(dt, fmt));
133 t.is(res, dojox.date.posix.strftime(dt, fmt));
135 function test_date_getStartOfWeek(t){
139 var date = new Date(2007, 0, 1);
140 weekStart = dojox.date.posix.getStartOfWeek(new Date(2007, 0, 1), 1);
141 t.is(date, weekStart);
142 weekStart = dojox.date.posix.getStartOfWeek(new Date(2007, 0, 2), 1);
143 t.is(date, weekStart);
144 weekStart = dojox.date.posix.getStartOfWeek(new Date(2007, 0, 3), 1);
145 t.is(date, weekStart);
146 weekStart = dojox.date.posix.getStartOfWeek(new Date(2007, 0, 4), 1);
147 t.is(date, weekStart);
148 weekStart = dojox.date.posix.getStartOfWeek(new Date(2007, 0, 5), 1);
149 t.is(date, weekStart);
150 weekStart = dojox.date.posix.getStartOfWeek(new Date(2007, 0, 6), 1);
151 t.is(date, weekStart);
152 weekStart = dojox.date.posix.getStartOfWeek(new Date(2007, 0, 7), 1);
153 t.is(date, weekStart);
156 date = new Date(2007, 0, 7);
157 weekStart = dojox.date.posix.getStartOfWeek(new Date(2007, 0, 7), 0);
158 t.is(date, weekStart);
159 weekStart = dojox.date.posix.getStartOfWeek(new Date(2007, 0, 8), 0);
160 t.is(date, weekStart);
161 weekStart = dojox.date.posix.getStartOfWeek(new Date(2007, 0, 9), 0);
162 t.is(date, weekStart);
163 weekStart = dojox.date.posix.getStartOfWeek(new Date(2007, 0, 10), 0);
164 t.is(date, weekStart);
165 weekStart = dojox.date.posix.getStartOfWeek(new Date(2007, 0, 11), 0);
166 t.is(date, weekStart);
167 weekStart = dojox.date.posix.getStartOfWeek(new Date(2007, 0, 12), 0);
168 t.is(date, weekStart);
169 weekStart = dojox.date.posix.getStartOfWeek(new Date(2007, 0, 13), 0);
170 t.is(date, weekStart);
173 function test_date_setIsoWeekOfYear(t){
174 var date = new Date(2006,10,10);
175 var result = dojox.date.posix.setIsoWeekOfYear(date, 1);
176 t.is(new Date(2006,0,6), result);
177 result = dojox.date.posix.setIsoWeekOfYear(date, 10);
178 result = dojox.date.posix.setIsoWeekOfYear(date, 2);
179 t.is(new Date(2006,0,13), result);
180 result = dojox.date.posix.setIsoWeekOfYear(date, 10);
181 t.is(new Date(2006,2,10), result);
182 result = dojox.date.posix.setIsoWeekOfYear(date, 52);
183 t.is(new Date(2006,11,29), result);
184 var result = dojox.date.posix.setIsoWeekOfYear(date, -1);
185 t.is(new Date(2006,11,29), result);
186 var result = dojox.date.posix.setIsoWeekOfYear(date, -2);
187 t.is(new Date(2006,11,22), result);
188 var result = dojox.date.posix.setIsoWeekOfYear(date, -10);
189 t.is(new Date(2006,9,27), result);
191 date = new Date(2004,10,10);
192 result = dojox.date.posix.setIsoWeekOfYear(date, 1);
193 t.is(new Date(2003,11,31), result);
194 result = dojox.date.posix.setIsoWeekOfYear(date, 2);
195 t.is(new Date(2004,0,7), result);
196 result = dojox.date.posix.setIsoWeekOfYear(date, -1);
197 t.is(new Date(2004,11,29), result);
200 function test_date_getIsoWeekOfYear(t){
201 var week = dojox.date.posix.getIsoWeekOfYear(new Date(2006,0,1));
203 week = dojox.date.posix.getIsoWeekOfYear(new Date(2006,0,4));
205 week = dojox.date.posix.getIsoWeekOfYear(new Date(2006,11,31));
207 week = dojox.date.posix.getIsoWeekOfYear(new Date(2007,0,1));
209 week = dojox.date.posix.getIsoWeekOfYear(new Date(2007,11,31));
211 week = dojox.date.posix.getIsoWeekOfYear(new Date(2008,0,1));
213 week = dojox.date.posix.getIsoWeekOfYear(new Date(2007,11,31));
217 function test_date_getIsoWeeksInYear(t){
218 // 44 long years in a 400 year cycle.
219 var longYears = [4, 9, 15, 20, 26, 32, 37, 43, 48, 54, 60, 65, 71, 76, 82,
220 88, 93, 99, 105, 111, 116, 122, 128, 133, 139, 144, 150, 156, 161, 167,
221 172, 178, 184, 189, 195, 201, 207, 212, 218, 224, 229, 235, 240, 246,
222 252, 257, 263, 268, 274, 280, 285, 291, 296, 303, 308, 314, 320, 325,
223 331, 336, 342, 348, 353, 359, 364, 370, 376, 381, 387, 392, 398];
225 var i, j, weeks, result;
226 for(i=0; i < 400; i++) {
228 if(i == longYears[0]) { weeks = 53; longYears.shift(); }
229 result = dojox.date.posix.getIsoWeeksInYear(new Date(2000 + i, 0, 1));
230 t.is(/*weeks +" weeks in "+ (2000+i), */weeks, result);