1 |
/* |
2 |
* datepicker_options.js |
3 |
*/ |
4 |
|
5 |
(function($) { |
6 |
|
7 |
module("datepicker: options"); |
8 |
|
9 |
test("setDefaults", function() { |
10 |
expect( 3 ); |
11 |
TestHelpers.datepicker.init("#inp"); |
12 |
equal($.datepicker._defaults.showOn, "focus", "Initial showOn"); |
13 |
$.datepicker.setDefaults({showOn: "button"}); |
14 |
equal($.datepicker._defaults.showOn, "button", "Change default showOn"); |
15 |
$.datepicker.setDefaults({showOn: "focus"}); |
16 |
equal($.datepicker._defaults.showOn, "focus", "Restore showOn"); |
17 |
}); |
18 |
|
19 |
test("option", function() { |
20 |
expect( 17 ); |
21 |
var inp = TestHelpers.datepicker.init("#inp"), |
22 |
inst = $.data(inp[0], TestHelpers.datepicker.PROP_NAME); |
23 |
// Set option |
24 |
equal(inst.settings.showOn, null, "Initial setting showOn"); |
25 |
equal($.datepicker._get(inst, "showOn"), "focus", "Initial instance showOn"); |
26 |
equal($.datepicker._defaults.showOn, "focus", "Initial default showOn"); |
27 |
inp.datepicker("option", "showOn", "button"); |
28 |
equal(inst.settings.showOn, "button", "Change setting showOn"); |
29 |
equal($.datepicker._get(inst, "showOn"), "button", "Change instance showOn"); |
30 |
equal($.datepicker._defaults.showOn, "focus", "Retain default showOn"); |
31 |
inp.datepicker("option", {showOn: "both"}); |
32 |
equal(inst.settings.showOn, "both", "Change setting showOn"); |
33 |
equal($.datepicker._get(inst, "showOn"), "both", "Change instance showOn"); |
34 |
equal($.datepicker._defaults.showOn, "focus", "Retain default showOn"); |
35 |
inp.datepicker("option", "showOn", undefined); |
36 |
equal(inst.settings.showOn, null, "Clear setting showOn"); |
37 |
equal($.datepicker._get(inst, "showOn"), "focus", "Restore instance showOn"); |
38 |
equal($.datepicker._defaults.showOn, "focus", "Retain default showOn"); |
39 |
// Get option |
40 |
inp = TestHelpers.datepicker.init("#inp"); |
41 |
equal(inp.datepicker("option", "showOn"), "focus", "Initial setting showOn"); |
42 |
inp.datepicker("option", "showOn", "button"); |
43 |
equal(inp.datepicker("option", "showOn"), "button", "Change instance showOn"); |
44 |
inp.datepicker("option", "showOn", undefined); |
45 |
equal(inp.datepicker("option", "showOn"), "focus", "Reset instance showOn"); |
46 |
deepEqual(inp.datepicker("option", "all"), {showAnim: ""}, "Get instance settings"); |
47 |
deepEqual(inp.datepicker("option", "defaults"), $.datepicker._defaults, |
48 |
"Get default settings"); |
49 |
}); |
50 |
|
51 |
test( "disabled", function() { |
52 |
expect(8); |
53 |
var inp = TestHelpers.datepicker.init("#inp"); |
54 |
ok(!inp.datepicker("isDisabled"), "Initially marked as enabled"); |
55 |
ok(!inp[0].disabled, "Field initially enabled"); |
56 |
inp.datepicker("option", "disabled", true); |
57 |
ok(inp.datepicker("isDisabled"), "Marked as disabled"); |
58 |
ok(inp[0].disabled, "Field now disabled"); |
59 |
inp.datepicker("option", "disabled", false); |
60 |
ok(!inp.datepicker("isDisabled"), "Marked as enabled"); |
61 |
ok(!inp[0].disabled, "Field now enabled"); |
62 |
inp.datepicker("destroy"); |
63 |
|
64 |
inp = TestHelpers.datepicker.init("#inp", { disabled: true }); |
65 |
ok(inp.datepicker("isDisabled"), "Initially marked as disabled"); |
66 |
ok(inp[0].disabled, "Field initially disabled"); |
67 |
}); |
68 |
|
69 |
test("change", function() { |
70 |
expect( 12 ); |
71 |
var inp = TestHelpers.datepicker.init("#inp"), |
72 |
inst = $.data(inp[0], TestHelpers.datepicker.PROP_NAME); |
73 |
equal(inst.settings.showOn, null, "Initial setting showOn"); |
74 |
equal($.datepicker._get(inst, "showOn"), "focus", "Initial instance showOn"); |
75 |
equal($.datepicker._defaults.showOn, "focus", "Initial default showOn"); |
76 |
inp.datepicker("change", "showOn", "button"); |
77 |
equal(inst.settings.showOn, "button", "Change setting showOn"); |
78 |
equal($.datepicker._get(inst, "showOn"), "button", "Change instance showOn"); |
79 |
equal($.datepicker._defaults.showOn, "focus", "Retain default showOn"); |
80 |
inp.datepicker("change", {showOn: "both"}); |
81 |
equal(inst.settings.showOn, "both", "Change setting showOn"); |
82 |
equal($.datepicker._get(inst, "showOn"), "both", "Change instance showOn"); |
83 |
equal($.datepicker._defaults.showOn, "focus", "Retain default showOn"); |
84 |
inp.datepicker("change", "showOn", undefined); |
85 |
equal(inst.settings.showOn, null, "Clear setting showOn"); |
86 |
equal($.datepicker._get(inst, "showOn"), "focus", "Restore instance showOn"); |
87 |
equal($.datepicker._defaults.showOn, "focus", "Retain default showOn"); |
88 |
}); |
89 |
|
90 |
asyncTest( "invocation", function() { |
91 |
var button, image, |
92 |
isOldIE = $.ui.ie && ( !document.documentMode || document.documentMode < 9 ), |
93 |
body = $( "body" ); |
94 |
|
95 |
expect( isOldIE ? 25 : 29 ); |
96 |
|
97 |
function step0() { |
98 |
var input = $( "<input>" ).appendTo( "#qunit-fixture" ), |
99 |
inp = TestHelpers.datepicker.init( input ), |
100 |
dp = $( "#ui-datepicker-div" ); |
101 |
|
102 |
button = inp.siblings( "button" ); |
103 |
ok( button.length === 0, "Focus - button absent" ); |
104 |
image = inp.siblings( "img" ); |
105 |
ok( image.length === 0, "Focus - image absent" ); |
106 |
|
107 |
TestHelpers.datepicker.onFocus( inp, function() { |
108 |
ok( dp.is( ":visible" ), "Focus - rendered on focus" ); |
109 |
inp.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } ); |
110 |
ok( !dp.is( ":visible" ), "Focus - hidden on exit" ); |
111 |
step1(); |
112 |
}); |
113 |
} |
114 |
|
115 |
function step1() { |
116 |
|
117 |
var input = $( "<input>" ).appendTo( "#qunit-fixture" ), |
118 |
inp = TestHelpers.datepicker.init( input ), |
119 |
dp = $( "#ui-datepicker-div" ); |
120 |
|
121 |
TestHelpers.datepicker.onFocus( inp, function() { |
122 |
ok( dp.is( ":visible" ), "Focus - rendered on focus" ); |
123 |
body.simulate( "mousedown", {} ); |
124 |
ok( !dp.is( ":visible" ), "Focus - hidden on external click" ); |
125 |
inp.datepicker( "hide" ).datepicker( "destroy" ); |
126 |
|
127 |
step2(); |
128 |
}); |
129 |
} |
130 |
|
131 |
function step2() { |
132 |
var input = $( "<input>" ).appendTo( "#qunit-fixture" ), |
133 |
inp = TestHelpers.datepicker.init( input, { showOn: "button", buttonText: "Popup" } ), |
134 |
dp = $( "#ui-datepicker-div" ); |
135 |
|
136 |
ok( !dp.is( ":visible" ), "Button - initially hidden" ); |
137 |
button = inp.siblings( "button" ); |
138 |
image = inp.siblings( "img" ); |
139 |
ok( button.length === 1, "Button - button present" ); |
140 |
ok( image.length === 0, "Button - image absent" ); |
141 |
equal( button.text(), "Popup", "Button - button text" ); |
142 |
|
143 |
TestHelpers.datepicker.onFocus( inp, function() { |
144 |
ok( !dp.is( ":visible" ), "Button - not rendered on focus" ); |
145 |
button.click(); |
146 |
ok( dp.is( ":visible" ), "Button - rendered on button click" ); |
147 |
button.click(); |
148 |
ok( !dp.is( ":visible" ), "Button - hidden on second button click" ); |
149 |
inp.datepicker( "hide" ).datepicker( "destroy" ); |
150 |
|
151 |
step3(); |
152 |
}); |
153 |
} |
154 |
|
155 |
function step3() { |
156 |
var input = $( "<input>" ).appendTo( "#qunit-fixture" ), |
157 |
inp = TestHelpers.datepicker.init( input, { |
158 |
showOn: "button", |
159 |
buttonImageOnly: true, |
160 |
buttonImage: "images/calendar.gif", |
161 |
buttonText: "Cal" |
162 |
}), |
163 |
dp = $( "#ui-datepicker-div" ); |
164 |
|
165 |
ok( !dp.is( ":visible" ), "Image button - initially hidden" ); |
166 |
button = inp.siblings( "button" ); |
167 |
ok( button.length === 0, "Image button - button absent" ); |
168 |
image = inp.siblings( "img" ); |
169 |
ok( image.length === 1, "Image button - image present" ); |
170 |
equal( image.attr( "src" ), "images/calendar.gif", "Image button - image source" ); |
171 |
equal( image.attr( "title" ), "Cal", "Image button - image text" ); |
172 |
|
173 |
TestHelpers.datepicker.onFocus( inp, function() { |
174 |
ok( !dp.is( ":visible" ), "Image button - not rendered on focus" ); |
175 |
image.click(); |
176 |
ok( dp.is( ":visible" ), "Image button - rendered on image click" ); |
177 |
image.click(); |
178 |
ok( !dp.is( ":visible" ), "Image button - hidden on second image click" ); |
179 |
inp.datepicker( "hide" ).datepicker( "destroy" ); |
180 |
|
181 |
step4(); |
182 |
}); |
183 |
} |
184 |
|
185 |
function step4() { |
186 |
var input = $( "<input>" ).appendTo( "#qunit-fixture" ), |
187 |
inp = TestHelpers.datepicker.init( input, { showOn: "both", buttonImage: "images/calendar.gif"} ), |
188 |
dp = $( "#ui-datepicker-div" ); |
189 |
|
190 |
ok( !dp.is( ":visible" ), "Both - initially hidden" ); |
191 |
button = inp.siblings( "button" ); |
192 |
ok( button.length === 1, "Both - button present" ); |
193 |
image = inp.siblings( "img" ); |
194 |
ok( image.length === 0, "Both - image absent" ); |
195 |
image = button.children( "img" ); |
196 |
ok( image.length === 1, "Both - button image present" ); |
197 |
|
198 |
// TODO: occasionally this test flakily fails to focus in IE8 in browserstack |
199 |
if ( !isOldIE ) { |
200 |
TestHelpers.datepicker.onFocus( inp, function() { |
201 |
ok( dp.is( ":visible" ), "Both - rendered on focus" ); |
202 |
body.simulate( "mousedown", {} ); |
203 |
ok( !dp.is( ":visible" ), "Both - hidden on external click" ); |
204 |
button.click(); |
205 |
ok( dp.is( ":visible" ), "Both - rendered on button click" ); |
206 |
button.click(); |
207 |
ok( !dp.is( ":visible" ), "Both - hidden on second button click" ); |
208 |
inp.datepicker( "hide" ).datepicker( "destroy" ); |
209 |
|
210 |
start(); |
211 |
}); |
212 |
} else { |
213 |
start(); |
214 |
} |
215 |
} |
216 |
|
217 |
step0(); |
218 |
}); |
219 |
|
220 |
test("otherMonths", function() { |
221 |
expect( 8 ); |
222 |
var inp = TestHelpers.datepicker.init("#inp"), |
223 |
pop = $("#ui-datepicker-div"); |
224 |
inp.val("06/01/2009").datepicker("show"); |
225 |
equal(pop.find("tbody").text(), |
226 |
// support: IE <9, jQuery <1.8 |
227 |
// In IE7/8 with jQuery <1.8, encoded spaces behave in strange ways |
228 |
$( "<span>\u00a0123456789101112131415161718192021222324252627282930\u00a0\u00a0\u00a0\u00a0</span>" ).text(), |
229 |
"Other months - none"); |
230 |
ok(pop.find("td:last *").length === 0, "Other months - no content"); |
231 |
inp.datepicker("hide").datepicker("option", "showOtherMonths", true).datepicker("show"); |
232 |
equal(pop.find("tbody").text(), "311234567891011121314151617181920212223242526272829301234", |
233 |
"Other months - show"); |
234 |
ok(pop.find("td:last span").length === 1, "Other months - span content"); |
235 |
inp.datepicker("hide").datepicker("option", "selectOtherMonths", true).datepicker("show"); |
236 |
equal(pop.find("tbody").text(), "311234567891011121314151617181920212223242526272829301234", |
237 |
"Other months - select"); |
238 |
ok(pop.find("td:last a").length === 1, "Other months - link content"); |
239 |
inp.datepicker("hide").datepicker("option", "showOtherMonths", false).datepicker("show"); |
240 |
equal(pop.find("tbody").text(), |
241 |
// support: IE <9, jQuery <1.8 |
242 |
// In IE7/8 with jQuery <1.8, encoded spaces behave in strange ways |
243 |
$( "<span>\u00a0123456789101112131415161718192021222324252627282930\u00a0\u00a0\u00a0\u00a0</span>" ).text(), |
244 |
"Other months - none"); |
245 |
ok(pop.find("td:last *").length === 0, "Other months - no content"); |
246 |
}); |
247 |
|
248 |
test("defaultDate", function() { |
249 |
expect( 16 ); |
250 |
var inp = TestHelpers.datepicker.init("#inp"), |
251 |
date = new Date(); |
252 |
inp.val("").datepicker("show"). |
253 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
254 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date null"); |
255 |
|
256 |
// Numeric values |
257 |
inp.datepicker("option", {defaultDate: -2}). |
258 |
datepicker("hide").val("").datepicker("show"). |
259 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
260 |
date.setDate(date.getDate() - 2); |
261 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date -2"); |
262 |
|
263 |
date = new Date(); |
264 |
inp.datepicker("option", {defaultDate: 3}). |
265 |
datepicker("hide").val("").datepicker("show"). |
266 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
267 |
date.setDate(date.getDate() + 3); |
268 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date 3"); |
269 |
|
270 |
date = new Date(); |
271 |
inp.datepicker("option", {defaultDate: 1 / "a"}). |
272 |
datepicker("hide").val("").datepicker("show"). |
273 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
274 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date NaN"); |
275 |
|
276 |
// String offset values |
277 |
inp.datepicker("option", {defaultDate: "-1d"}). |
278 |
datepicker("hide").val("").datepicker("show"). |
279 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
280 |
date.setDate(date.getDate() - 1); |
281 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date -1d"); |
282 |
inp.datepicker("option", {defaultDate: "+3D"}). |
283 |
datepicker("hide").val("").datepicker("show"). |
284 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
285 |
date.setDate(date.getDate() + 4); |
286 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date +3D"); |
287 |
inp.datepicker("option", {defaultDate: " -2 w "}). |
288 |
datepicker("hide").val("").datepicker("show"). |
289 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
290 |
date = new Date(); |
291 |
date.setDate(date.getDate() - 14); |
292 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date -2 w"); |
293 |
inp.datepicker("option", {defaultDate: "+1 W"}). |
294 |
datepicker("hide").val("").datepicker("show"). |
295 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
296 |
date.setDate(date.getDate() + 21); |
297 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date +1 W"); |
298 |
inp.datepicker("option", {defaultDate: " -1 m "}). |
299 |
datepicker("hide").val("").datepicker("show"). |
300 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
301 |
date = TestHelpers.datepicker.addMonths(new Date(), -1); |
302 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date -1 m"); |
303 |
inp.datepicker("option", {defaultDate: "+2M"}). |
304 |
datepicker("hide").val("").datepicker("show"). |
305 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
306 |
date = TestHelpers.datepicker.addMonths(new Date(), 2); |
307 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date +2M"); |
308 |
inp.datepicker("option", {defaultDate: "-2y"}). |
309 |
datepicker("hide").val("").datepicker("show"). |
310 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
311 |
date = new Date(); |
312 |
date.setFullYear(date.getFullYear() - 2); |
313 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date -2y"); |
314 |
inp.datepicker("option", {defaultDate: "+1 Y "}). |
315 |
datepicker("hide").val("").datepicker("show"). |
316 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
317 |
date.setFullYear(date.getFullYear() + 3); |
318 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date +1 Y"); |
319 |
inp.datepicker("option", {defaultDate: "+1M +10d"}). |
320 |
datepicker("hide").val("").datepicker("show"). |
321 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
322 |
date = TestHelpers.datepicker.addMonths(new Date(), 1); |
323 |
date.setDate(date.getDate() + 10); |
324 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date +1M +10d"); |
325 |
// String date values |
326 |
inp.datepicker("option", {defaultDate: "07/04/2007"}). |
327 |
datepicker("hide").val("").datepicker("show"). |
328 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
329 |
date = new Date(2007, 7 - 1, 4); |
330 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date 07/04/2007"); |
331 |
inp.datepicker("option", {dateFormat: "yy-mm-dd", defaultDate: "2007-04-02"}). |
332 |
datepicker("hide").val("").datepicker("show"). |
333 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
334 |
date = new Date(2007, 4 - 1, 2); |
335 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date 2007-04-02"); |
336 |
// Date value |
337 |
date = new Date(2007, 1 - 1, 26); |
338 |
inp.datepicker("option", {dateFormat: "mm/dd/yy", defaultDate: date}). |
339 |
datepicker("hide").val("").datepicker("show"). |
340 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
341 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, "Default date 01/26/2007"); |
342 |
}); |
343 |
|
344 |
test("miscellaneous", function() { |
345 |
expect( 19 ); |
346 |
var curYear, longNames, shortNames, date, |
347 |
dp = $("#ui-datepicker-div"), |
348 |
inp = TestHelpers.datepicker.init("#inp"); |
349 |
// Year range |
350 |
function genRange(start, offset) { |
351 |
var i = start, |
352 |
range = ""; |
353 |
for (; i < start + offset; i++) { |
354 |
range += i; |
355 |
} |
356 |
return range; |
357 |
} |
358 |
curYear = new Date().getFullYear(); |
359 |
inp.val("02/04/2008").datepicker("show"); |
360 |
equal(dp.find(".ui-datepicker-year").text(), "2008", "Year range - read-only default"); |
361 |
inp.datepicker("hide").datepicker("option", {changeYear: true}).datepicker("show"); |
362 |
equal(dp.find(".ui-datepicker-year").text(), genRange(2008 - 10, 21), "Year range - changeable default"); |
363 |
inp.datepicker("hide").datepicker("option", {yearRange: "c-6:c+2", changeYear: true}).datepicker("show"); |
364 |
equal(dp.find(".ui-datepicker-year").text(), genRange(2008 - 6, 9), "Year range - c-6:c+2"); |
365 |
inp.datepicker("hide").datepicker("option", {yearRange: "2000:2010", changeYear: true}).datepicker("show"); |
366 |
equal(dp.find(".ui-datepicker-year").text(), genRange(2000, 11), "Year range - 2000:2010"); |
367 |
inp.datepicker("hide").datepicker("option", {yearRange: "-5:+3", changeYear: true}).datepicker("show"); |
368 |
equal(dp.find(".ui-datepicker-year").text(), genRange(curYear - 5, 9), "Year range - -5:+3"); |
369 |
inp.datepicker("hide").datepicker("option", {yearRange: "2000:-5", changeYear: true}).datepicker("show"); |
370 |
equal(dp.find(".ui-datepicker-year").text(), genRange(2000, curYear - 2004), "Year range - 2000:-5"); |
371 |
inp.datepicker("hide").datepicker("option", {yearRange: "", changeYear: true}).datepicker("show"); |
372 |
equal(dp.find(".ui-datepicker-year").text(), genRange(curYear, 1), "Year range - -6:+2"); |
373 |
|
374 |
// Navigation as date format |
375 |
inp.datepicker("option", {showButtonPanel: true}); |
376 |
equal(dp.find(".ui-datepicker-prev").text(), "Prev", "Navigation prev - default"); |
377 |
equal(dp.find(".ui-datepicker-current").text(), "Today", "Navigation current - default"); |
378 |
equal(dp.find(".ui-datepicker-next").text(), "Next", "Navigation next - default"); |
379 |
inp.datepicker("hide").datepicker("option", {navigationAsDateFormat: true, prevText: "< M", currentText: "MM", nextText: "M >"}). |
380 |
val("02/04/2008").datepicker("show"); |
381 |
longNames = $.datepicker.regional[""].monthNames; |
382 |
shortNames = $.datepicker.regional[""].monthNamesShort; |
383 |
date = new Date(); |
384 |
equal(dp.find(".ui-datepicker-prev").text(), "< " + shortNames[0], "Navigation prev - as date format"); |
385 |
equal(dp.find(".ui-datepicker-current").text(), |
386 |
longNames[date.getMonth()], "Navigation current - as date format"); |
387 |
equal(dp.find(".ui-datepicker-next").text(), |
388 |
shortNames[2] + " >", "Navigation next - as date format"); |
389 |
inp.simulate("keydown", {keyCode: $.ui.keyCode.PAGE_DOWN}); |
390 |
equal(dp.find(".ui-datepicker-prev").text(), |
391 |
"< " + shortNames[1], "Navigation prev - as date format + pgdn"); |
392 |
equal(dp.find(".ui-datepicker-current").text(), |
393 |
longNames[date.getMonth()], "Navigation current - as date format + pgdn"); |
394 |
equal(dp.find(".ui-datepicker-next").text(), |
395 |
shortNames[3] + " >", "Navigation next - as date format + pgdn"); |
396 |
inp.datepicker("hide").datepicker("option", {gotoCurrent: true}). |
397 |
val("02/04/2008").datepicker("show"); |
398 |
equal(dp.find(".ui-datepicker-prev").text(), |
399 |
"< " + shortNames[0], "Navigation prev - as date format + goto current"); |
400 |
equal(dp.find(".ui-datepicker-current").text(), |
401 |
longNames[1], "Navigation current - as date format + goto current"); |
402 |
equal(dp.find(".ui-datepicker-next").text(), |
403 |
shortNames[2] + " >", "Navigation next - as date format + goto current"); |
404 |
}); |
405 |
|
406 |
test("minMax", function() { |
407 |
expect( 23 ); |
408 |
var date, |
409 |
inp = TestHelpers.datepicker.init("#inp"), |
410 |
dp = $("#ui-datepicker-div"), |
411 |
lastYear = new Date(2007, 6 - 1, 4), |
412 |
nextYear = new Date(2009, 6 - 1, 4), |
413 |
minDate = new Date(2008, 2 - 1, 29), |
414 |
maxDate = new Date(2008, 12 - 1, 7); |
415 |
inp.val("06/04/2008").datepicker("show"); |
416 |
inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}). |
417 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
418 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), lastYear, |
419 |
"Min/max - null, null - ctrl+pgup"); |
420 |
inp.val("06/04/2008").datepicker("show"); |
421 |
inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN}). |
422 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
423 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), nextYear, |
424 |
"Min/max - null, null - ctrl+pgdn"); |
425 |
inp.datepicker("option", {minDate: minDate}). |
426 |
datepicker("hide").val("06/04/2008").datepicker("show"); |
427 |
inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}). |
428 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
429 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), minDate, |
430 |
"Min/max - 02/29/2008, null - ctrl+pgup"); |
431 |
inp.val("06/04/2008").datepicker("show"); |
432 |
inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN}). |
433 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
434 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), nextYear, |
435 |
"Min/max - 02/29/2008, null - ctrl+pgdn"); |
436 |
inp.datepicker("option", {maxDate: maxDate}). |
437 |
datepicker("hide").val("06/04/2008").datepicker("show"); |
438 |
inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}). |
439 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
440 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), minDate, |
441 |
"Min/max - 02/29/2008, 12/07/2008 - ctrl+pgup"); |
442 |
inp.val("06/04/2008").datepicker("show"); |
443 |
inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN}). |
444 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
445 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), maxDate, |
446 |
"Min/max - 02/29/2008, 12/07/2008 - ctrl+pgdn"); |
447 |
inp.datepicker("option", {minDate: null}). |
448 |
datepicker("hide").val("06/04/2008").datepicker("show"); |
449 |
inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}). |
450 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
451 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), lastYear, |
452 |
"Min/max - null, 12/07/2008 - ctrl+pgup"); |
453 |
inp.val("06/04/2008").datepicker("show"); |
454 |
inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN}). |
455 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
456 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), maxDate, |
457 |
"Min/max - null, 12/07/2008 - ctrl+pgdn"); |
458 |
// Relative dates |
459 |
date = new Date(); |
460 |
date.setDate(date.getDate() - 7); |
461 |
inp.datepicker("option", {minDate: "-1w", maxDate: "+1 M +10 D "}). |
462 |
datepicker("hide").val("").datepicker("show"); |
463 |
inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}). |
464 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
465 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, |
466 |
"Min/max - -1w, +1 M +10 D - ctrl+pgup"); |
467 |
date = TestHelpers.datepicker.addMonths(new Date(), 1); |
468 |
date.setDate(date.getDate() + 10); |
469 |
inp.val("").datepicker("show"); |
470 |
inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN}). |
471 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
472 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date, |
473 |
"Min/max - -1w, +1 M +10 D - ctrl+pgdn"); |
474 |
// With existing date |
475 |
inp = TestHelpers.datepicker.init("#inp"); |
476 |
inp.val("06/04/2008").datepicker("option", {minDate: minDate}); |
477 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), new Date(2008, 6 - 1, 4), "Min/max - setDate > min"); |
478 |
inp.datepicker("option", {minDate: null}).val("01/04/2008").datepicker("option", {minDate: minDate}); |
479 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), minDate, "Min/max - setDate < min"); |
480 |
inp.datepicker("option", {minDate: null}).val("06/04/2008").datepicker("option", {maxDate: maxDate}); |
481 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), new Date(2008, 6 - 1, 4), "Min/max - setDate < max"); |
482 |
inp.datepicker("option", {maxDate: null}).val("01/04/2009").datepicker("option", {maxDate: maxDate}); |
483 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), maxDate, "Min/max - setDate > max"); |
484 |
inp.datepicker("option", {maxDate: null}).val("01/04/2008").datepicker("option", {minDate: minDate, maxDate: maxDate}); |
485 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), minDate, "Min/max - setDate < min"); |
486 |
inp.datepicker("option", {maxDate: null}).val("06/04/2008").datepicker("option", {minDate: minDate, maxDate: maxDate}); |
487 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), new Date(2008, 6 - 1, 4), "Min/max - setDate > min, < max"); |
488 |
inp.datepicker("option", {maxDate: null}).val("01/04/2009").datepicker("option", {minDate: minDate, maxDate: maxDate}); |
489 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), maxDate, "Min/max - setDate > max"); |
490 |
|
491 |
inp.datepicker("option", {yearRange: "-0:+1"}).val("01/01/" + new Date().getFullYear()); |
492 |
ok(dp.find(".ui-datepicker-prev").hasClass("ui-state-disabled"), "Year Range Test - previous button disabled at 1/1/minYear"); |
493 |
inp.datepicker("setDate", "12/30/" + new Date().getFullYear()); |
494 |
ok(dp.find(".ui-datepicker-next").hasClass("ui-state-disabled"), "Year Range Test - next button disabled at 12/30/maxYear"); |
495 |
|
496 |
inp.datepicker("option", { |
497 |
minDate: new Date(1900, 0, 1), |
498 |
maxDate: "-6Y", |
499 |
yearRange: "1900:-6" |
500 |
}).val( "" ); |
501 |
ok(dp.find(".ui-datepicker-next").hasClass("ui-state-disabled"), "Year Range Test - next button disabled"); |
502 |
ok(!dp.find(".ui-datepicker-prev").hasClass("ui-state-disabled"), "Year Range Test - prev button enabled"); |
503 |
|
504 |
inp.datepicker("option", { |
505 |
minDate: new Date(1900, 0, 1), |
506 |
maxDate: "1/25/2007", |
507 |
yearRange: "1900:2007" |
508 |
}).val( "" ); |
509 |
ok(dp.find(".ui-datepicker-next").hasClass("ui-state-disabled"), "Year Range Test - next button disabled"); |
510 |
ok(!dp.find(".ui-datepicker-prev").hasClass("ui-state-disabled"), "Year Range Test - prev button enabled"); |
511 |
}); |
512 |
|
513 |
test("setDate", function() { |
514 |
expect( 24 ); |
515 |
var inl, alt, minDate, maxDate, dateAndTimeToSet, dateAndTimeClone, |
516 |
inp = TestHelpers.datepicker.init("#inp"), |
517 |
date1 = new Date(2008, 6 - 1, 4), |
518 |
date2 = new Date(); |
519 |
ok(inp.datepicker("getDate") == null, "Set date - default"); |
520 |
inp.datepicker("setDate", date1); |
521 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date1, "Set date - 2008-06-04"); |
522 |
date1 = new Date(); |
523 |
date1.setDate(date1.getDate() + 7); |
524 |
inp.datepicker("setDate", +7); |
525 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date1, "Set date - +7"); |
526 |
date2.setFullYear(date2.getFullYear() + 2); |
527 |
inp.datepicker("setDate", "+2y"); |
528 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date2, "Set date - +2y"); |
529 |
inp.datepicker("setDate", date1, date2); |
530 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date1, "Set date - two dates"); |
531 |
inp.datepicker("setDate"); |
532 |
ok(inp.datepicker("getDate") == null, "Set date - null"); |
533 |
// Relative to current date |
534 |
date1 = new Date(); |
535 |
date1.setDate(date1.getDate() + 7); |
536 |
inp.datepicker("setDate", "c +7"); |
537 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date1, "Set date - c +7"); |
538 |
date1.setDate(date1.getDate() + 7); |
539 |
inp.datepicker("setDate", "c+7"); |
540 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date1, "Set date - c+7"); |
541 |
date1.setDate(date1.getDate() - 21); |
542 |
inp.datepicker("setDate", "c -3 w"); |
543 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date1, "Set date - c -3 w"); |
544 |
// Inline |
545 |
inl = TestHelpers.datepicker.init("#inl"); |
546 |
date1 = new Date(2008, 6 - 1, 4); |
547 |
date2 = new Date(); |
548 |
TestHelpers.datepicker.equalsDate(inl.datepicker("getDate"), date2, "Set date inline - default"); |
549 |
inl.datepicker("setDate", date1); |
550 |
TestHelpers.datepicker.equalsDate(inl.datepicker("getDate"), date1, "Set date inline - 2008-06-04"); |
551 |
date1 = new Date(); |
552 |
date1.setDate(date1.getDate() + 7); |
553 |
inl.datepicker("setDate", +7); |
554 |
TestHelpers.datepicker.equalsDate(inl.datepicker("getDate"), date1, "Set date inline - +7"); |
555 |
date2.setFullYear(date2.getFullYear() + 2); |
556 |
inl.datepicker("setDate", "+2y"); |
557 |
TestHelpers.datepicker.equalsDate(inl.datepicker("getDate"), date2, "Set date inline - +2y"); |
558 |
inl.datepicker("setDate", date1, date2); |
559 |
TestHelpers.datepicker.equalsDate(inl.datepicker("getDate"), date1, "Set date inline - two dates"); |
560 |
inl.datepicker("setDate"); |
561 |
ok(inl.datepicker("getDate") == null, "Set date inline - null"); |
562 |
// Alternate field |
563 |
alt = $("#alt"); |
564 |
inp.datepicker("option", {altField: "#alt", altFormat: "yy-mm-dd"}); |
565 |
date1 = new Date(2008, 6 - 1, 4); |
566 |
inp.datepicker("setDate", date1); |
567 |
equal(inp.val(), "06/04/2008", "Set date alternate - 06/04/2008"); |
568 |
equal(alt.val(), "2008-06-04", "Set date alternate - 2008-06-04"); |
569 |
// With minimum/maximum |
570 |
inp = TestHelpers.datepicker.init("#inp"); |
571 |
date1 = new Date(2008, 1 - 1, 4); |
572 |
date2 = new Date(2008, 6 - 1, 4); |
573 |
minDate = new Date(2008, 2 - 1, 29); |
574 |
maxDate = new Date(2008, 3 - 1, 28); |
575 |
inp.val("").datepicker("option", {minDate: minDate}).datepicker("setDate", date2); |
576 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date2, "Set date min/max - setDate > min"); |
577 |
inp.datepicker("setDate", date1); |
578 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), minDate, "Set date min/max - setDate < min"); |
579 |
inp.val("").datepicker("option", {maxDate: maxDate, minDate: null}).datepicker("setDate", date1); |
580 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), date1, "Set date min/max - setDate < max"); |
581 |
inp.datepicker("setDate", date2); |
582 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), maxDate, "Set date min/max - setDate > max"); |
583 |
inp.val("").datepicker("option", {minDate: minDate}).datepicker("setDate", date1); |
584 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), minDate, "Set date min/max - setDate < min"); |
585 |
inp.datepicker("setDate", date2); |
586 |
TestHelpers.datepicker.equalsDate(inp.datepicker("getDate"), maxDate, "Set date min/max - setDate > max"); |
587 |
dateAndTimeToSet = new Date(2008, 3 - 1, 28, 1, 11, 0); |
588 |
dateAndTimeClone = new Date(2008, 3 - 1, 28, 1, 11, 0); |
589 |
inp.datepicker("setDate", dateAndTimeToSet); |
590 |
equal(dateAndTimeToSet.getTime(), dateAndTimeClone.getTime(), "Date object passed should not be changed by setDate"); |
591 |
}); |
592 |
|
593 |
test("altField", function() { |
594 |
expect( 10 ); |
595 |
var inp = TestHelpers.datepicker.init("#inp"), |
596 |
alt = $("#alt"); |
597 |
// No alternate field set |
598 |
alt.val(""); |
599 |
inp.val("06/04/2008").datepicker("show"); |
600 |
inp.simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
601 |
equal(inp.val(), "06/04/2008", "Alt field - dp - enter"); |
602 |
equal(alt.val(), "", "Alt field - alt not set"); |
603 |
// Alternate field set |
604 |
alt.val(""); |
605 |
inp.datepicker("option", {altField: "#alt", altFormat: "yy-mm-dd"}). |
606 |
val("06/04/2008").datepicker("show"); |
607 |
inp.simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
608 |
equal(inp.val(), "06/04/2008", "Alt field - dp - enter"); |
609 |
equal(alt.val(), "2008-06-04", "Alt field - alt - enter"); |
610 |
// Move from initial date |
611 |
alt.val(""); |
612 |
inp.val("06/04/2008").datepicker("show"); |
613 |
inp.simulate("keydown", {keyCode: $.ui.keyCode.PAGE_DOWN}). |
614 |
simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
615 |
equal(inp.val(), "07/04/2008", "Alt field - dp - pgdn"); |
616 |
equal(alt.val(), "2008-07-04", "Alt field - alt - pgdn"); |
617 |
// Alternate field set - closed |
618 |
alt.val(""); |
619 |
inp.val("06/04/2008").datepicker("show"); |
620 |
inp.simulate("keydown", {keyCode: $.ui.keyCode.PAGE_DOWN}). |
621 |
simulate("keydown", {keyCode: $.ui.keyCode.ESCAPE}); |
622 |
equal(inp.val(), "06/04/2008", "Alt field - dp - pgdn/esc"); |
623 |
equal(alt.val(), "", "Alt field - alt - pgdn/esc"); |
624 |
// Clear date and alternate |
625 |
alt.val(""); |
626 |
inp.val("06/04/2008").datepicker("show"); |
627 |
inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.END}); |
628 |
equal(inp.val(), "", "Alt field - dp - ctrl+end"); |
629 |
equal(alt.val(), "", "Alt field - alt - ctrl+end"); |
630 |
}); |
631 |
|
632 |
test("autoSize", function() { |
633 |
expect( 15 ); |
634 |
var inp = TestHelpers.datepicker.init("#inp"); |
635 |
equal(inp.prop("size"), 20, "Auto size - default"); |
636 |
inp.datepicker("option", "autoSize", true); |
637 |
equal(inp.prop("size"), 10, "Auto size - mm/dd/yy"); |
638 |
inp.datepicker("option", "dateFormat", "m/d/yy"); |
639 |
equal(inp.prop("size"), 10, "Auto size - m/d/yy"); |
640 |
inp.datepicker("option", "dateFormat", "D M d yy"); |
641 |
equal(inp.prop("size"), 15, "Auto size - D M d yy"); |
642 |
inp.datepicker("option", "dateFormat", "DD, MM dd, yy"); |
643 |
equal(inp.prop("size"), 29, "Auto size - DD, MM dd, yy"); |
644 |
|
645 |
// French |
646 |
inp.datepicker("option", $.extend({autoSize: false}, $.datepicker.regional.fr)); |
647 |
equal(inp.prop("size"), 29, "Auto size - fr - default"); |
648 |
inp.datepicker("option", "autoSize", true); |
649 |
equal(inp.prop("size"), 10, "Auto size - fr - dd/mm/yy"); |
650 |
inp.datepicker("option", "dateFormat", "m/d/yy"); |
651 |
equal(inp.prop("size"), 10, "Auto size - fr - m/d/yy"); |
652 |
inp.datepicker("option", "dateFormat", "D M d yy"); |
653 |
equal(inp.prop("size"), 18, "Auto size - fr - D M d yy"); |
654 |
inp.datepicker("option", "dateFormat", "DD, MM dd, yy"); |
655 |
equal(inp.prop("size"), 28, "Auto size - fr - DD, MM dd, yy"); |
656 |
|
657 |
// Hebrew |
658 |
inp.datepicker("option", $.extend({autoSize: false}, $.datepicker.regional.he)); |
659 |
equal(inp.prop("size"), 28, "Auto size - he - default"); |
660 |
inp.datepicker("option", "autoSize", true); |
661 |
equal(inp.prop("size"), 10, "Auto size - he - dd/mm/yy"); |
662 |
inp.datepicker("option", "dateFormat", "m/d/yy"); |
663 |
equal(inp.prop("size"), 10, "Auto size - he - m/d/yy"); |
664 |
inp.datepicker("option", "dateFormat", "D M d yy"); |
665 |
equal(inp.prop("size"), 16, "Auto size - he - D M d yy"); |
666 |
inp.datepicker("option", "dateFormat", "DD, MM dd, yy"); |
667 |
equal(inp.prop("size"), 23, "Auto size - he - DD, MM dd, yy"); |
668 |
}); |
669 |
|
670 |
test("daylightSaving", function() { |
671 |
expect( 25 ); |
672 |
var inp = TestHelpers.datepicker.init("#inp"), |
673 |
dp = $("#ui-datepicker-div"); |
674 |
ok(true, "Daylight saving - " + new Date()); |
675 |
// Australia, Sydney - AM change, southern hemisphere |
676 |
inp.val("04/01/2008").datepicker("show"); |
677 |
$(".ui-datepicker-calendar td:eq(6) a", dp).simulate("click"); |
678 |
equal(inp.val(), "04/05/2008", "Daylight saving - Australia 04/05/2008"); |
679 |
inp.val("04/01/2008").datepicker("show"); |
680 |
$(".ui-datepicker-calendar td:eq(7) a", dp).simulate("click"); |
681 |
equal(inp.val(), "04/06/2008", "Daylight saving - Australia 04/06/2008"); |
682 |
inp.val("04/01/2008").datepicker("show"); |
683 |
$(".ui-datepicker-calendar td:eq(8) a", dp).simulate("click"); |
684 |
equal(inp.val(), "04/07/2008", "Daylight saving - Australia 04/07/2008"); |
685 |
inp.val("10/01/2008").datepicker("show"); |
686 |
$(".ui-datepicker-calendar td:eq(6) a", dp).simulate("click"); |
687 |
equal(inp.val(), "10/04/2008", "Daylight saving - Australia 10/04/2008"); |
688 |
inp.val("10/01/2008").datepicker("show"); |
689 |
$(".ui-datepicker-calendar td:eq(7) a", dp).simulate("click"); |
690 |
equal(inp.val(), "10/05/2008", "Daylight saving - Australia 10/05/2008"); |
691 |
inp.val("10/01/2008").datepicker("show"); |
692 |
$(".ui-datepicker-calendar td:eq(8) a", dp).simulate("click"); |
693 |
equal(inp.val(), "10/06/2008", "Daylight saving - Australia 10/06/2008"); |
694 |
// Brasil, Brasilia - midnight change, southern hemisphere |
695 |
inp.val("02/01/2008").datepicker("show"); |
696 |
$(".ui-datepicker-calendar td:eq(20) a", dp).simulate("click"); |
697 |
equal(inp.val(), "02/16/2008", "Daylight saving - Brasil 02/16/2008"); |
698 |
inp.val("02/01/2008").datepicker("show"); |
699 |
$(".ui-datepicker-calendar td:eq(21) a", dp).simulate("click"); |
700 |
equal(inp.val(), "02/17/2008", "Daylight saving - Brasil 02/17/2008"); |
701 |
inp.val("02/01/2008").datepicker("show"); |
702 |
$(".ui-datepicker-calendar td:eq(22) a", dp).simulate("click"); |
703 |
equal(inp.val(), "02/18/2008", "Daylight saving - Brasil 02/18/2008"); |
704 |
inp.val("10/01/2008").datepicker("show"); |
705 |
$(".ui-datepicker-calendar td:eq(13) a", dp).simulate("click"); |
706 |
equal(inp.val(), "10/11/2008", "Daylight saving - Brasil 10/11/2008"); |
707 |
inp.val("10/01/2008").datepicker("show"); |
708 |
$(".ui-datepicker-calendar td:eq(14) a", dp).simulate("click"); |
709 |
equal(inp.val(), "10/12/2008", "Daylight saving - Brasil 10/12/2008"); |
710 |
inp.val("10/01/2008").datepicker("show"); |
711 |
$(".ui-datepicker-calendar td:eq(15) a", dp).simulate("click"); |
712 |
equal(inp.val(), "10/13/2008", "Daylight saving - Brasil 10/13/2008"); |
713 |
// Lebanon, Beirut - midnight change, northern hemisphere |
714 |
inp.val("03/01/2008").datepicker("show"); |
715 |
$(".ui-datepicker-calendar td:eq(34) a", dp).simulate("click"); |
716 |
equal(inp.val(), "03/29/2008", "Daylight saving - Lebanon 03/29/2008"); |
717 |
inp.val("03/01/2008").datepicker("show"); |
718 |
$(".ui-datepicker-calendar td:eq(35) a", dp).simulate("click"); |
719 |
equal(inp.val(), "03/30/2008", "Daylight saving - Lebanon 03/30/2008"); |
720 |
inp.val("03/01/2008").datepicker("show"); |
721 |
$(".ui-datepicker-calendar td:eq(36) a", dp).simulate("click"); |
722 |
equal(inp.val(), "03/31/2008", "Daylight saving - Lebanon 03/31/2008"); |
723 |
inp.val("10/01/2008").datepicker("show"); |
724 |
$(".ui-datepicker-calendar td:eq(27) a", dp).simulate("click"); |
725 |
equal(inp.val(), "10/25/2008", "Daylight saving - Lebanon 10/25/2008"); |
726 |
inp.val("10/01/2008").datepicker("show"); |
727 |
$(".ui-datepicker-calendar td:eq(28) a", dp).simulate("click"); |
728 |
equal(inp.val(), "10/26/2008", "Daylight saving - Lebanon 10/26/2008"); |
729 |
inp.val("10/01/2008").datepicker("show"); |
730 |
$(".ui-datepicker-calendar td:eq(29) a", dp).simulate("click"); |
731 |
equal(inp.val(), "10/27/2008", "Daylight saving - Lebanon 10/27/2008"); |
732 |
// US, Eastern - AM change, northern hemisphere |
733 |
inp.val("03/01/2008").datepicker("show"); |
734 |
$(".ui-datepicker-calendar td:eq(13) a", dp).simulate("click"); |
735 |
equal(inp.val(), "03/08/2008", "Daylight saving - US 03/08/2008"); |
736 |
inp.val("03/01/2008").datepicker("show"); |
737 |
$(".ui-datepicker-calendar td:eq(14) a", dp).simulate("click"); |
738 |
equal(inp.val(), "03/09/2008", "Daylight saving - US 03/09/2008"); |
739 |
inp.val("03/01/2008").datepicker("show"); |
740 |
$(".ui-datepicker-calendar td:eq(15) a", dp).simulate("click"); |
741 |
equal(inp.val(), "03/10/2008", "Daylight saving - US 03/10/2008"); |
742 |
inp.val("11/01/2008").datepicker("show"); |
743 |
$(".ui-datepicker-calendar td:eq(6) a", dp).simulate("click"); |
744 |
equal(inp.val(), "11/01/2008", "Daylight saving - US 11/01/2008"); |
745 |
inp.val("11/01/2008").datepicker("show"); |
746 |
$(".ui-datepicker-calendar td:eq(7) a", dp).simulate("click"); |
747 |
equal(inp.val(), "11/02/2008", "Daylight saving - US 11/02/2008"); |
748 |
inp.val("11/01/2008").datepicker("show"); |
749 |
$(".ui-datepicker-calendar td:eq(8) a", dp).simulate("click"); |
750 |
equal(inp.val(), "11/03/2008", "Daylight saving - US 11/03/2008"); |
751 |
}); |
752 |
|
753 |
var beforeShowThis = null, |
754 |
beforeShowInput = null, |
755 |
beforeShowInst = null, |
756 |
beforeShowDayThis = null, |
757 |
beforeShowDayOK = true; |
758 |
|
759 |
|
760 |
function beforeAll(input, inst) { |
761 |
beforeShowThis = this; |
762 |
beforeShowInput = input; |
763 |
beforeShowInst = inst; |
764 |
return {currentText: "Current"}; |
765 |
} |
766 |
|
767 |
function beforeDay(date) { |
768 |
beforeShowDayThis = this; |
769 |
beforeShowDayOK &= (date > new Date(2008, 1 - 1, 26) && |
770 |
date < new Date(2008, 3 - 1, 6)); |
771 |
return [(date.getDate() % 2 === 0), (date.getDate() % 10 === 0 ? "day10" : ""), |
772 |
(date.getDate() % 3 === 0 ? "Divisble by 3" : "")]; |
773 |
} |
774 |
|
775 |
test("callbacks", function() { |
776 |
expect( 13 ); |
777 |
// Before show |
778 |
var dp, day20, day21, |
779 |
inp = TestHelpers.datepicker.init("#inp", {beforeShow: beforeAll}), |
780 |
inst = $.data(inp[0], "datepicker"); |
781 |
equal($.datepicker._get(inst, "currentText"), "Today", "Before show - initial"); |
782 |
inp.val("02/04/2008").datepicker("show"); |
783 |
equal($.datepicker._get(inst, "currentText"), "Current", "Before show - changed"); |
784 |
ok(beforeShowThis.id === inp[0].id, "Before show - this OK"); |
785 |
ok(beforeShowInput.id === inp[0].id, "Before show - input OK"); |
786 |
deepEqual(beforeShowInst, inst, "Before show - inst OK"); |
787 |
inp.datepicker("hide").datepicker("destroy"); |
788 |
// Before show day |
789 |
inp = TestHelpers.datepicker.init("#inp", {beforeShowDay: beforeDay}); |
790 |
dp = $("#ui-datepicker-div"); |
791 |
inp.val("02/04/2008").datepicker("show"); |
792 |
ok(beforeShowDayThis.id === inp[0].id, "Before show day - this OK"); |
793 |
ok(beforeShowDayOK, "Before show day - dates OK"); |
794 |
day20 = dp.find(".ui-datepicker-calendar td:contains('20')"); |
795 |
day21 = dp.find(".ui-datepicker-calendar td:contains('21')"); |
796 |
ok(!day20.is(".ui-datepicker-unselectable"), "Before show day - unselectable 20"); |
797 |
ok(day21.is(".ui-datepicker-unselectable"), "Before show day - unselectable 21"); |
798 |
ok(day20.is(".day10"), "Before show day - CSS 20"); |
799 |
ok(!day21.is(".day10"), "Before show day - CSS 21"); |
800 |
ok(!day20.attr("title"), "Before show day - title 20"); |
801 |
ok(day21.attr("title") === "Divisble by 3", "Before show day - title 21"); |
802 |
inp.datepicker("hide").datepicker("destroy"); |
803 |
}); |
804 |
|
805 |
test("beforeShowDay - tooltips with quotes", function() { |
806 |
expect( 1 ); |
807 |
var inp, dp; |
808 |
inp = TestHelpers.datepicker.init("#inp", { |
809 |
beforeShowDay: function() { |
810 |
return [ true, "", "'" ]; |
811 |
} |
812 |
}); |
813 |
dp = $("#ui-datepicker-div"); |
814 |
|
815 |
inp.datepicker("show"); |
816 |
equal( dp.find( ".ui-datepicker-calendar td:contains('9')").attr( "title" ), "'" ); |
817 |
inp.datepicker("hide").datepicker("destroy"); |
818 |
}); |
819 |
|
820 |
test("localisation", function() { |
821 |
expect( 24 ); |
822 |
var dp, month, day, date, |
823 |
inp = TestHelpers.datepicker.init("#inp", $.datepicker.regional.fr); |
824 |
inp.datepicker("option", {dateFormat: "DD, d MM yy", showButtonPanel:true, changeMonth:true, changeYear:true}).val("").datepicker("show"); |
825 |
dp = $("#ui-datepicker-div"); |
826 |
equal($(".ui-datepicker-close", dp).text(), "Fermer", "Localisation - close"); |
827 |
$(".ui-datepicker-close", dp).simulate("mouseover"); |
828 |
equal($(".ui-datepicker-prev", dp).text(), "Précédent", "Localisation - previous"); |
829 |
equal($(".ui-datepicker-current", dp).text(), "Aujourd'hui", "Localisation - current"); |
830 |
equal($(".ui-datepicker-next", dp).text(), "Suivant", "Localisation - next"); |
831 |
month = 0; |
832 |
$(".ui-datepicker-month option", dp).each(function() { |
833 |
equal($(this).text(), $.datepicker.regional.fr.monthNamesShort[month], |
834 |
"Localisation - month " + month); |
835 |
month++; |
836 |
}); |
837 |
day = 1; |
838 |
$(".ui-datepicker-calendar th", dp).each(function() { |
839 |
equal($(this).text(), $.datepicker.regional.fr.dayNamesMin[day], |
840 |
"Localisation - day " + day); |
841 |
day = (day + 1) % 7; |
842 |
}); |
843 |
inp.simulate("keydown", {keyCode: $.ui.keyCode.ENTER}); |
844 |
date = new Date(); |
845 |
equal(inp.val(), $.datepicker.regional.fr.dayNames[date.getDay()] + ", " + |
846 |
date.getDate() + " " + $.datepicker.regional.fr.monthNames[date.getMonth()] + |
847 |
" " + date.getFullYear(), "Localisation - formatting"); |
848 |
}); |
849 |
|
850 |
test("noWeekends", function() { |
851 |
expect( 31 ); |
852 |
var i, date; |
853 |
for (i = 1; i <= 31; i++) { |
854 |
date = new Date(2001, 1 - 1, i); |
855 |
deepEqual($.datepicker.noWeekends(date), [(i + 1) % 7 >= 2, ""], |
856 |
"No weekends " + date); |
857 |
} |
858 |
}); |
859 |
|
860 |
test("iso8601Week", function() { |
861 |
expect( 12 ); |
862 |
var date = new Date(2000, 12 - 1, 31); |
863 |
equal($.datepicker.iso8601Week(date), 52, "ISO 8601 week " + date); |
864 |
date = new Date(2001, 1 - 1, 1); |
865 |
equal($.datepicker.iso8601Week(date), 1, "ISO 8601 week " + date); |
866 |
date = new Date(2001, 1 - 1, 7); |
867 |
equal($.datepicker.iso8601Week(date), 1, "ISO 8601 week " + date); |
868 |
date = new Date(2001, 1 - 1, 8); |
869 |
equal($.datepicker.iso8601Week(date), 2, "ISO 8601 week " + date); |
870 |
date = new Date(2003, 12 - 1, 28); |
871 |
equal($.datepicker.iso8601Week(date), 52, "ISO 8601 week " + date); |
872 |
date = new Date(2003, 12 - 1, 29); |
873 |
equal($.datepicker.iso8601Week(date), 1, "ISO 8601 week " + date); |
874 |
date = new Date(2004, 1 - 1, 4); |
875 |
equal($.datepicker.iso8601Week(date), 1, "ISO 8601 week " + date); |
876 |
date = new Date(2004, 1 - 1, 5); |
877 |
equal($.datepicker.iso8601Week(date), 2, "ISO 8601 week " + date); |
878 |
date = new Date(2009, 12 - 1, 28); |
879 |
equal($.datepicker.iso8601Week(date), 53, "ISO 8601 week " + date); |
880 |
date = new Date(2010, 1 - 1, 3); |
881 |
equal($.datepicker.iso8601Week(date), 53, "ISO 8601 week " + date); |
882 |
date = new Date(2010, 1 - 1, 4); |
883 |
equal($.datepicker.iso8601Week(date), 1, "ISO 8601 week " + date); |
884 |
date = new Date(2010, 1 - 1, 10); |
885 |
equal($.datepicker.iso8601Week(date), 1, "ISO 8601 week " + date); |
886 |
}); |
887 |
|
888 |
test("parseDate", function() { |
889 |
expect( 26 ); |
890 |
TestHelpers.datepicker.init("#inp"); |
891 |
var currentYear, gmtDate, fr, settings, zh; |
892 |
ok($.datepicker.parseDate("d m y", "") == null, "Parse date empty"); |
893 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("d m y", "3 2 01"), |
894 |
new Date(2001, 2 - 1, 3), "Parse date d m y"); |
895 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("dd mm yy", "03 02 2001"), |
896 |
new Date(2001, 2 - 1, 3), "Parse date dd mm yy"); |
897 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("d m y", "13 12 01"), |
898 |
new Date(2001, 12 - 1, 13), "Parse date d m y"); |
899 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("dd mm yy", "13 12 2001"), |
900 |
new Date(2001, 12 - 1, 13), "Parse date dd mm yy"); |
901 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("y-o", "01-34"), |
902 |
new Date(2001, 2 - 1, 3), "Parse date y-o"); |
903 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("yy-oo", "2001-347"), |
904 |
new Date(2001, 12 - 1, 13), "Parse date yy-oo"); |
905 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("oo yy", "348 2004"), |
906 |
new Date(2004, 12 - 1, 13), "Parse date oo yy"); |
907 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("D d M y", "Sat 3 Feb 01"), |
908 |
new Date(2001, 2 - 1, 3), "Parse date D d M y"); |
909 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("d MM DD yy", "3 February Saturday 2001"), |
910 |
new Date(2001, 2 - 1, 3), "Parse date dd MM DD yy"); |
911 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("DD, MM d, yy", "Saturday, February 3, 2001"), |
912 |
new Date(2001, 2 - 1, 3), "Parse date DD, MM d, yy"); |
913 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("'day' d 'of' MM (''DD''), yy", |
914 |
"day 3 of February ('Saturday'), 2001"), new Date(2001, 2 - 1, 3), |
915 |
"Parse date 'day' d 'of' MM (''DD''), yy"); |
916 |
currentYear = new Date().getFullYear(); |
917 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("y-m-d", (currentYear - 2000) + "-02-03"), |
918 |
new Date(currentYear, 2 - 1, 3), "Parse date y-m-d - default cutuff"); |
919 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("y-m-d", (currentYear - 2000 + 10) + "-02-03"), |
920 |
new Date(currentYear+10, 2 - 1, 3), "Parse date y-m-d - default cutuff"); |
921 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("y-m-d", (currentYear - 2000 + 11) + "-02-03"), |
922 |
new Date(currentYear-89, 2 - 1, 3), "Parse date y-m-d - default cutuff"); |
923 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("y-m-d", "80-02-03", {shortYearCutoff: 80}), |
924 |
new Date(2080, 2 - 1, 3), "Parse date y-m-d - cutoff 80"); |
925 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("y-m-d", "81-02-03", {shortYearCutoff: 80}), |
926 |
new Date(1981, 2 - 1, 3), "Parse date y-m-d - cutoff 80"); |
927 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("y-m-d", (currentYear - 2000 + 60) + "-02-03", {shortYearCutoff: "+60"}), |
928 |
new Date(currentYear + 60, 2 - 1, 3), "Parse date y-m-d - cutoff +60"); |
929 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("y-m-d", (currentYear - 2000 + 61) + "-02-03", {shortYearCutoff: "+60"}), |
930 |
new Date(currentYear - 39, 2 - 1, 3), "Parse date y-m-d - cutoff +60"); |
931 |
gmtDate = new Date(2001, 2 - 1, 3); |
932 |
gmtDate.setMinutes(gmtDate.getMinutes() - gmtDate.getTimezoneOffset()); |
933 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("@", "981158400000"), gmtDate, "Parse date @"); |
934 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("!", "631167552000000000"), gmtDate, "Parse date !"); |
935 |
|
936 |
fr = $.datepicker.regional.fr; |
937 |
settings = {dayNamesShort: fr.dayNamesShort, dayNames: fr.dayNames, |
938 |
monthNamesShort: fr.monthNamesShort, monthNames: fr.monthNames}; |
939 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("D d M y", "Lun. 9 Avril 01", settings), |
940 |
new Date(2001, 4 - 1, 9), "Parse date D M y with settings"); |
941 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("d MM DD yy", "9 Avril Lundi 2001", settings), |
942 |
new Date(2001, 4 - 1, 9), "Parse date d MM DD yy with settings"); |
943 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("DD, MM d, yy", "Lundi, Avril 9, 2001", settings), |
944 |
new Date(2001, 4 - 1, 9), "Parse date DD, MM d, yy with settings"); |
945 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("'jour' d 'de' MM (''DD''), yy", "jour 9 de Avril ('Lundi'), 2001", settings), |
946 |
new Date(2001, 4 - 1, 9), "Parse date 'jour' d 'de' MM (''DD''), yy with settings"); |
947 |
|
948 |
zh = $.datepicker.regional["zh-CN"]; |
949 |
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("yy M d", "2011 十一月 22", zh), |
950 |
new Date(2011, 11 - 1, 22), "Parse date yy M d with zh-CN"); |
951 |
}); |
952 |
|
953 |
test("parseDateErrors", function() { |
954 |
expect( 17 ); |
955 |
TestHelpers.datepicker.init("#inp"); |
956 |
var fr, settings; |
957 |
function expectError(expr, value, error) { |
958 |
try { |
959 |
expr(); |
960 |
ok(false, "Parsed error " + value); |
961 |
} |
962 |
catch (e) { |
963 |
equal(e, error, "Parsed error " + value); |
964 |
} |
965 |
} |
966 |
expectError(function() { $.datepicker.parseDate(null, "Sat 2 01"); }, |
967 |
"Sat 2 01", "Invalid arguments"); |
968 |
expectError(function() { $.datepicker.parseDate("d m y", null); }, |
969 |
"null", "Invalid arguments"); |
970 |
expectError(function() { $.datepicker.parseDate("d m y", "Sat 2 01"); }, |
971 |
"Sat 2 01 - d m y", "Missing number at position 0"); |
972 |
expectError(function() { $.datepicker.parseDate("dd mm yy", "Sat 2 01"); }, |
973 |
"Sat 2 01 - dd mm yy", "Missing number at position 0"); |
974 |
expectError(function() { $.datepicker.parseDate("d m y", "3 Feb 01"); }, |
975 |
"3 Feb 01 - d m y", "Missing number at position 2"); |
976 |
expectError(function() { $.datepicker.parseDate("dd mm yy", "3 Feb 01"); }, |
977 |
"3 Feb 01 - dd mm yy", "Missing number at position 2"); |
978 |
expectError(function() { $.datepicker.parseDate("d m y", "3 2 AD01"); }, |
979 |
"3 2 AD01 - d m y", "Missing number at position 4"); |
980 |
expectError(function() { $.datepicker.parseDate("d m yy", "3 2 AD01"); }, |
981 |
"3 2 AD01 - dd mm yy", "Missing number at position 4"); |
982 |
expectError(function() { $.datepicker.parseDate("y-o", "01-D01"); }, |
983 |
"2001-D01 - y-o", "Missing number at position 3"); |
984 |
expectError(function() { $.datepicker.parseDate("yy-oo", "2001-D01"); }, |
985 |
"2001-D01 - yy-oo", "Missing number at position 5"); |
986 |
expectError(function() { $.datepicker.parseDate("D d M y", "D7 3 Feb 01"); }, |
987 |
"D7 3 Feb 01 - D d M y", "Unknown name at position 0"); |
988 |
expectError(function() { $.datepicker.parseDate("D d M y", "Sat 3 M2 01"); }, |
989 |
"Sat 3 M2 01 - D d M y", "Unknown name at position 6"); |
990 |
expectError(function() { $.datepicker.parseDate("DD, MM d, yy", "Saturday- Feb 3, 2001"); }, |
991 |
"Saturday- Feb 3, 2001 - DD, MM d, yy", "Unexpected literal at position 8"); |
992 |
expectError(function() { $.datepicker.parseDate("'day' d 'of' MM (''DD''), yy", |
993 |
"day 3 of February (\"Saturday\"), 2001"); }, |
994 |
"day 3 of Mon2 ('Day7'), 2001", "Unexpected literal at position 19"); |
995 |
expectError(function() { $.datepicker.parseDate("d m y", "29 2 01"); }, |
996 |
"29 2 01 - d m y", "Invalid date"); |
997 |
fr = $.datepicker.regional.fr; |
998 |
settings = {dayNamesShort: fr.dayNamesShort, dayNames: fr.dayNames, |
999 |
monthNamesShort: fr.monthNamesShort, monthNames: fr.monthNames}; |
1000 |
expectError(function() { $.datepicker.parseDate("D d M y", "Mon 9 Avr 01", settings); }, |
1001 |
"Mon 9 Avr 01 - D d M y", "Unknown name at position 0"); |
1002 |
expectError(function() { $.datepicker.parseDate("D d M y", "Lun. 9 Apr 01", settings); }, |
1003 |
"Lun. 9 Apr 01 - D d M y", "Unknown name at position 7"); |
1004 |
}); |
1005 |
|
1006 |
test("Ticket #7244: date parser does not fail when too many numbers are passed into the date function", function() { |
1007 |
expect( 4 ); |
1008 |
var date; |
1009 |
try{ |
1010 |
date = $.datepicker.parseDate("dd/mm/yy", "18/04/19881"); |
1011 |
ok(false, "Did not properly detect an invalid date"); |
1012 |
}catch(e){ |
1013 |
ok("invalid date detected"); |
1014 |
} |
1015 |
|
1016 |
try { |
1017 |
date = $.datepicker.parseDate("dd/mm/yy", "18/04/1988 @ 2:43 pm"); |
1018 |
equal(date.getDate(), 18); |
1019 |
equal(date.getMonth(), 3); |
1020 |
equal(date.getFullYear(), 1988); |
1021 |
} catch(e) { |
1022 |
ok(false, "Did not properly parse date with extra text separated by whitespace"); |
1023 |
} |
1024 |
}); |
1025 |
|
1026 |
test("formatDate", function() { |
1027 |
expect( 16 ); |
1028 |
TestHelpers.datepicker.init("#inp"); |
1029 |
var gmtDate, fr, settings; |
1030 |
equal($.datepicker.formatDate("d m y", new Date(2001, 2 - 1, 3)), |
1031 |
"3 2 01", "Format date d m y"); |
1032 |
equal($.datepicker.formatDate("dd mm yy", new Date(2001, 2 - 1, 3)), |
1033 |
"03 02 2001", "Format date dd mm yy"); |
1034 |
equal($.datepicker.formatDate("d m y", new Date(2001, 12 - 1, 13)), |
1035 |
"13 12 01", "Format date d m y"); |
1036 |
equal($.datepicker.formatDate("dd mm yy", new Date(2001, 12 - 1, 13)), |
1037 |
"13 12 2001", "Format date dd mm yy"); |
1038 |
equal($.datepicker.formatDate("yy-o", new Date(2001, 2 - 1, 3)), |
1039 |
"2001-34", "Format date yy-o"); |
1040 |
equal($.datepicker.formatDate("yy-oo", new Date(2001, 2 - 1, 3)), |
1041 |
"2001-034", "Format date yy-oo"); |
1042 |
equal($.datepicker.formatDate("D M y", new Date(2001, 2 - 1, 3)), |
1043 |
"Sat Feb 01", "Format date D M y"); |
1044 |
equal($.datepicker.formatDate("DD MM yy", new Date(2001, 2 - 1, 3)), |
1045 |
"Saturday February 2001", "Format date DD MM yy"); |
1046 |
equal($.datepicker.formatDate("DD, MM d, yy", new Date(2001, 2 - 1, 3)), |
1047 |
"Saturday, February 3, 2001", "Format date DD, MM d, yy"); |
1048 |
equal($.datepicker.formatDate("'day' d 'of' MM (''DD''), yy", |
1049 |
new Date(2001, 2 - 1, 3)), "day 3 of February ('Saturday'), 2001", |
1050 |
"Format date 'day' d 'of' MM ('DD'), yy"); |
1051 |
gmtDate = new Date(2001, 2 - 1, 3); |
1052 |
gmtDate.setMinutes(gmtDate.getMinutes() - gmtDate.getTimezoneOffset()); |
1053 |
equal($.datepicker.formatDate("@", gmtDate), "981158400000", "Format date @"); |
1054 |
equal($.datepicker.formatDate("!", gmtDate), "631167552000000000", "Format date !"); |
1055 |
fr = $.datepicker.regional.fr; |
1056 |
settings = {dayNamesShort: fr.dayNamesShort, dayNames: fr.dayNames, |
1057 |
monthNamesShort: fr.monthNamesShort, monthNames: fr.monthNames}; |
1058 |
equal($.datepicker.formatDate("D M y", new Date(2001, 4 - 1, 9), settings), |
1059 |
"Lun. Avril 01", "Format date D M y with settings"); |
1060 |
equal($.datepicker.formatDate("DD MM yy", new Date(2001, 4 - 1, 9), settings), |
1061 |
"Lundi Avril 2001", "Format date DD MM yy with settings"); |
1062 |
equal($.datepicker.formatDate("DD, MM d, yy", new Date(2001, 4 - 1, 9), settings), |
1063 |
"Lundi, Avril 9, 2001", "Format date DD, MM d, yy with settings"); |
1064 |
equal($.datepicker.formatDate("'jour' d 'de' MM (''DD''), yy", |
1065 |
new Date(2001, 4 - 1, 9), settings), "jour 9 de Avril ('Lundi'), 2001", |
1066 |
"Format date 'jour' d 'de' MM (''DD''), yy with settings"); |
1067 |
}); |
1068 |
|
1069 |
test("Ticket 6827: formatDate day of year calculation is wrong during day lights savings time", function(){ |
1070 |
expect( 1 ); |
1071 |
var time = $.datepicker.formatDate("oo", new Date("2010/03/30 12:00:00 CDT")); |
1072 |
equal(time, "089"); |
1073 |
}); |
1074 |
|
1075 |
test( "Ticket 7602: Stop datepicker from appearing with beforeShow event handler", function() { |
1076 |
expect( 3 ); |
1077 |
|
1078 |
var inp, dp; |
1079 |
|
1080 |
inp = TestHelpers.datepicker.init( "#inp", { |
1081 |
beforeShow: function() { |
1082 |
} |
1083 |
}); |
1084 |
dp = $( "#ui-datepicker-div" ); |
1085 |
inp.datepicker( "show" ); |
1086 |
equal( dp.css( "display" ), "block", "beforeShow returns nothing" ); |
1087 |
inp.datepicker( "hide" ).datepicker( "destroy" ); |
1088 |
|
1089 |
inp = TestHelpers.datepicker.init( "#inp", { |
1090 |
beforeShow: function() { |
1091 |
return true; |
1092 |
} |
1093 |
}); |
1094 |
dp = $( "#ui-datepicker-div" ); |
1095 |
inp.datepicker( "show" ); |
1096 |
equal( dp.css( "display" ), "block", "beforeShow returns true" ); |
1097 |
inp.datepicker( "hide" ); |
1098 |
inp.datepicker( "destroy" ); |
1099 |
|
1100 |
inp = TestHelpers.datepicker.init( "#inp", { |
1101 |
beforeShow: function() { |
1102 |
return false; |
1103 |
} |
1104 |
}); |
1105 |
dp = $( "#ui-datepicker-div" ); |
1106 |
inp.datepicker( "show" ); |
1107 |
equal( dp.css( "display" ), "none","beforeShow returns false" ); |
1108 |
inp.datepicker( "destroy" ); |
1109 |
}); |
1110 |
|
1111 |
})(jQuery); |