source: main/trunk/greenstone3/web/interfaces/oran/js/jquery-ui-1.8rc1/tests/unit/datepicker/datepicker_core.js@ 24245

Last change on this file since 24245 was 24245, checked in by sjb48, 13 years ago

Oran code for supporting format changes to document.

  • Property svn:executable set to *
File size: 21.9 KB
Line 
1/*
2 * datepicker_core.js
3 */
4
5function equalsDate(d1, d2, message) {
6 if (!d1 || !d2) {
7 ok(false, message + ' - missing date');
8 return;
9 }
10 d1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate());
11 d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate());
12 equals(d1.toString(), d2.toString(), message);
13}
14
15function equalsDateArray(a1, a2, message) {
16 if (!a1 || !a2) {
17 ok(false, message + ' - missing dates');
18 return;
19 }
20 a1[0] = (a1[0] ? new Date(a1[0].getFullYear(), a1[0].getMonth(), a1[0].getDate()) : '');
21 a1[1] = (a1[1] ? new Date(a1[1].getFullYear(), a1[1].getMonth(), a1[1].getDate()) : '');
22 a2[0] = (a2[0] ? new Date(a2[0].getFullYear(), a2[0].getMonth(), a2[0].getDate()) : '');
23 a2[1] = (a2[1] ? new Date(a2[1].getFullYear(), a2[1].getMonth(), a2[1].getDate()) : '');
24 same(a1, a2, message);
25}
26
27function addMonths(date, offset) {
28 var maxDay = 32 - new Date(date.getFullYear(), date.getMonth() + offset, 32).getDate();
29 date.setDate(Math.min(date.getDate(), maxDay));
30 date.setMonth(date.getMonth() + offset);
31 return date;
32}
33
34function init(id, options) {
35 $.datepicker.setDefaults($.datepicker.regional['']);
36 return $(id).datepicker($.extend({showAnim: ''}, options || {}));
37}
38
39var PROP_NAME = 'datepicker';
40
41(function($) {
42
43module("datepicker: core", {
44 teardown: function() {
45 stop();
46 setTimeout(start, 13);
47 }
48});
49
50test("widget method", function() {
51 var actual = $("#inp").datepicker().datepicker("widget")[0];
52 same($("body > #ui-datepicker-div:last-child")[0], actual);
53});
54
55test('baseStructure', function() {
56 var inp = init('#inp');
57 inp.focus();
58 var dp = $('#ui-datepicker-div');
59 var iframe = ($.browser.msie && parseInt($.browser.version) < 7);
60 ok(dp.is(':visible'), 'Structure - datepicker visible');
61 ok(!dp.is('.ui-datepicker-rtl'), 'Structure - not right-to-left');
62 ok(!dp.is('.ui-datepicker-multi'), 'Structure - not multi-month');
63 equals(dp.children().length, 2 + (iframe ? 1 : 0), 'Structure - child count');
64
65 var header = dp.children(':first');
66 ok(header.is('div.ui-datepicker-header'), 'Structure - header division');
67 equals(header.children().length, 3, 'Structure - header child count');
68 ok(header.children(':first').is('a.ui-datepicker-prev') && header.children(':first').html() != '', 'Structure - prev link');
69 ok(header.children(':eq(1)').is('a.ui-datepicker-next') && header.children(':eq(1)').html() != '', 'Structure - next link');
70
71 var title = header.children(':last');
72 ok(title.is('div.ui-datepicker-title') && title.html() != '','Structure - title division');
73 equals(title.children().length, 2, 'Structure - title child count');
74 ok(title.children(':first').is('span.ui-datepicker-month') && title.children(':first').text() != '', 'Structure - month text')
75 ok(title.children(':last').is('span.ui-datepicker-year') && title.children(':last').text() != '', 'Structure - year text')
76
77 var table = dp.children(':eq(1)');
78 ok(table.is('table.ui-datepicker-calendar'), 'Structure - month table');
79 ok(table.children(':first').is('thead'), 'Structure - month table thead');
80 var thead = table.children(':first').children(':first');
81 ok(thead.is('tr'), 'Structure - month table title row');
82 equals(thead.find('th').length, 7, 'Structure - month table title cells');
83 ok(table.children(':eq(1)').is('tbody'), 'Structure - month table body');
84 ok(table.children(':eq(1)').children('tr').length >= 4, 'Structure - month table week count');
85 var week = table.children(':eq(1)').children(':first');
86 ok(week.is('tr'), 'Structure - month table week row');
87 equals(week.children().length, 7, 'Structure - week child count');
88 ok(week.children(':first').is('td.ui-datepicker-week-end'), 'Structure - month table first day cell');
89 ok(week.children(':last').is('td.ui-datepicker-week-end'), 'Structure - month table second day cell');
90 ok(dp.children('iframe').length == (iframe ? 1 : 0), 'Structure - iframe');
91 inp.datepicker('hide').datepicker('destroy');
92
93 // Editable month/year and button panel
94 inp = init('#inp', {changeMonth: true, changeYear: true, showButtonPanel: true});
95 inp.focus();
96
97 var title = dp.find('div.ui-datepicker-title');
98 ok(title.children(':first').is('select.ui-datepicker-month'), 'Structure - month selector');
99 ok(title.children(':last').is('select.ui-datepicker-year'), 'Structure - year selector');
100
101 var panel = dp.children(':last');
102 ok(panel.is('div.ui-datepicker-buttonpane'), 'Structure - button panel division');
103 equals(panel.children().length, 2, 'Structure - button panel child count');
104 ok(panel.children(':first').is('button.ui-datepicker-current'), 'Structure - today button');
105 ok(panel.children(':last').is('button.ui-datepicker-close'), 'Structure - close button');
106 inp.datepicker('hide').datepicker('destroy');
107
108 // Multi-month 2
109 inp = init('#inp', {numberOfMonths: 2});
110 inp.focus();
111 ok(dp.is('.ui-datepicker-multi'), 'Structure multi [2] - multi-month');
112 equals(dp.children().length, 3 + (iframe ? 1 : 0), 'Structure multi [2] - child count');
113 var child = dp.children(':first');
114 ok(child.is('div.ui-datepicker-group') && child.is('div.ui-datepicker-group-first'), 'Structure multi [2] - first month division');
115 child = dp.children(':eq(1)');
116 ok(child.is('div.ui-datepicker-group') && child.is('div.ui-datepicker-group-last'), 'Structure multi [2] - second month division');
117 child = dp.children(':eq(2)');
118 ok(child.is('div.ui-datepicker-row-break'), 'Structure multi [2] - row break');
119 inp.datepicker('hide').datepicker('destroy');
120
121 // Multi-month [2, 2]
122 inp = init('#inp', {numberOfMonths: [2, 2]});
123 inp.focus();
124 ok(dp.is('.ui-datepicker-multi'), 'Structure multi - multi-month');
125 equals(dp.children().length, 6 + (iframe ? 1 : 0), 'Structure multi [2,2] - child count');
126 child = dp.children(':first');
127 ok(child.is('div.ui-datepicker-group') && child.is('div.ui-datepicker-group-first'), 'Structure multi [2,2] - first month division');
128 child = dp.children(':eq(1)');
129 ok(child.is('div.ui-datepicker-group') && child.is('div.ui-datepicker-group-last'), 'Structure multi [2,2] - second month division');
130 child = dp.children(':eq(2)');
131 ok(child.is('div.ui-datepicker-row-break'), 'Structure multi [2,2] - row break');
132 child = dp.children(':eq(3)');
133 ok(child.is('div.ui-datepicker-group') && child.is('div.ui-datepicker-group-first'), 'Structure multi [2,2] - third month division');
134 child = dp.children(':eq(4)');
135 ok(child.is('div.ui-datepicker-group') && child.is('div.ui-datepicker-group-last'), 'Structure multi [2,2] - fourth month division');
136 child = dp.children(':eq(5)');
137 ok(child.is('div.ui-datepicker-row-break'), 'Structure multi [2,2] - row break');
138 inp.datepicker('hide').datepicker('destroy');
139
140 // Inline
141 var inl = init('#inl');
142 dp = inl.children();
143 ok(dp.is('.ui-datepicker-inline'), 'Structure inline - main div');
144 ok(!dp.is('.ui-datepicker-rtl'), 'Structure inline - not right-to-left');
145 ok(!dp.is('.ui-datepicker-multi'), 'Structure inline - not multi-month');
146 equals(dp.children().length, 2, 'Structure inline - child count');
147 var header = dp.children(':first');
148 ok(header.is('div.ui-datepicker-header'), 'Structure inline - header division');
149 equals(header.children().length, 3, 'Structure inline - header child count');
150 var table = dp.children(':eq(1)');
151 ok(table.is('table.ui-datepicker-calendar'), 'Structure inline - month table');
152 ok(table.children(':first').is('thead'), 'Structure inline - month table thead');
153 ok(table.children(':eq(1)').is('tbody'), 'Structure inline - month table body');
154 inl.datepicker('destroy');
155
156 // Inline multi-month
157 inl = init('#inl', {numberOfMonths: 2});
158 dp = inl.children();
159 ok(dp.is('.ui-datepicker-inline') && dp.is('.ui-datepicker-multi'), 'Structure inline multi - main div');
160 equals(dp.children().length, 3 + (iframe ? 1 : 0), 'Structure inline multi - child count');
161 child = dp.children(':first');
162 ok(child.is('div.ui-datepicker-group') && child.is('div.ui-datepicker-group-first'), 'Structure inline multi - first month division');
163 child = dp.children(':eq(1)');
164 ok(child.is('div.ui-datepicker-group') && child.is('div.ui-datepicker-group-last'), 'Structure inline multi - second month division');
165 child = dp.children(':eq(2)');
166 ok(child.is('div.ui-datepicker-row-break'), 'Structure inline multi - row break');
167 inl.datepicker('destroy');
168});
169
170test('customStructure', function() {
171 var dp = $('#ui-datepicker-div');
172 // Check right-to-left localisation
173 var inp = init('#inp', $.datepicker.regional['he']);
174 inp.data('showButtonPanel.datepicker',true);
175 inp.focus();
176 var iframe = ($.browser.msie && parseInt($.browser.version) < 7);
177 ok(dp.is('.ui-datepicker-rtl'), 'Structure RTL - right-to-left');
178 var header = dp.children(':first');
179 ok(header.is('div.ui-datepicker-header'), 'Structure RTL - header division');
180 equals(header.children().length, 3, 'Structure RTL - header child count');
181 ok(header.children(':first').is('a.ui-datepicker-next'), 'Structure RTL - prev link');
182 ok(header.children(':eq(1)').is('a.ui-datepicker-prev'), 'Structure RTL - next link');
183 var panel = dp.children(':last');
184 ok(panel.is('div.ui-datepicker-buttonpane'), 'Structure RTL - button division');
185 equals(panel.children().length, 2, 'Structure RTL - button panel child count');
186 ok(panel.children(':first').is('button.ui-datepicker-close'), 'Structure RTL - close button');
187 ok(panel.children(':last').is('button.ui-datepicker-current'), 'Structure RTL - today button');
188 inp.datepicker('hide').datepicker('destroy');
189
190 // Hide prev/next
191 inp = init('#inp', {hideIfNoPrevNext: true, minDate: new Date(2008, 2 - 1, 4), maxDate: new Date(2008, 2 - 1, 14)});
192 inp.val('02/10/2008').focus();
193 var header = dp.children(':first');
194 ok(header.is('div.ui-datepicker-header'), 'Structure hide prev/next - header division');
195 equals(header.children().length, 1, 'Structure hide prev/next - links child count');
196 ok(header.children(':first').is('div.ui-datepicker-title'), 'Structure hide prev/next - title division');
197 inp.datepicker('hide').datepicker('destroy');
198
199 // Changeable Month with read-only year
200 inp = init('#inp', {changeMonth: true});
201 inp.focus();
202 var title = dp.children(':first').children(':last');
203 equals(title.children().length, 2, 'Structure changeable month - title child count');
204 ok(title.children(':first').is('select.ui-datepicker-month'), 'Structure changeable month - month selector');
205 ok(title.children(':last').is('span.ui-datepicker-year'), 'Structure changeable month - read-only year');
206 inp.datepicker('hide').datepicker('destroy');
207
208 // Changeable year with read-only month
209 inp = init('#inp', {changeYear: true});
210 inp.focus();
211 var title = dp.children(':first').children(':last');
212 equals(title.children().length, 2, 'Structure changeable year - title child count');
213 ok(title.children(':first').is('span.ui-datepicker-month'), 'Structure changeable year - read-only month');
214 ok(title.children(':last').is('select.ui-datepicker-year'), 'Structure changeable year - year selector');
215 inp.datepicker('hide').datepicker('destroy');
216
217 // Read-only first day of week
218 inp = init('#inp', {changeFirstDay: false});
219 inp.focus();
220 var thead = dp.find('.ui-datepicker-calendar thead tr');
221 equals(thead.children().length, 7, 'Structure read-only first day - thead child count');
222 equals(thead.find('a').length, 0, 'Structure read-only first day - thead links count');
223 inp.datepicker('hide').datepicker('destroy');
224});
225
226test('keystrokes', function() {
227 var inp = init('#inp');
228 var date = new Date();
229 inp.val('').datepicker('show').
230 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
231 equalsDate(inp.datepicker('getDate'), date, 'Keystroke enter');
232 inp.val('02/04/2008').datepicker('show').
233 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
234 equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
235 'Keystroke enter - preset');
236 inp.val('02/04/2008').datepicker('show').
237 simulate('keydown', {ctrlKey: true, keyCode: $.simulate.VK_HOME}).
238 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
239 equalsDate(inp.datepicker('getDate'), date, 'Keystroke ctrl+home');
240 inp.val('02/04/2008').datepicker('show').
241 simulate('keydown', {ctrlKey: true, keyCode: $.simulate.VK_END});
242 ok(inp.datepicker('getDate') == null, 'Keystroke ctrl+end');
243 inp.val('').datepicker('show').
244 simulate('keydown', {keyCode: $.simulate.VK_ESC});
245 ok(inp.datepicker('getDate') == null, 'Keystroke esc');
246 inp.val('02/04/2008').datepicker('show').
247 simulate('keydown', {keyCode: $.simulate.VK_ESC});
248 equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
249 'Keystroke esc - preset');
250 inp.val('02/04/2008').datepicker('show').
251 simulate('keydown', {ctrlKey: true, keyCode: $.simulate.VK_PGUP}).
252 simulate('keydown', {keyCode: $.simulate.VK_ESC});
253 equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
254 'Keystroke esc - abandoned');
255 // Moving by day or week
256 inp.val('').datepicker('show').
257 simulate('keydown', {ctrlKey: true, keyCode: $.simulate.VK_LEFT}).
258 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
259 date.setDate(date.getDate() - 1);
260 equalsDate(inp.datepicker('getDate'), date, 'Keystroke ctrl+left');
261 inp.val('').datepicker('show').
262 simulate('keydown', {keyCode: $.simulate.VK_LEFT}).
263 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
264 date.setDate(date.getDate() + 1);
265 equalsDate(inp.datepicker('getDate'), date, 'Keystroke left');
266 inp.val('').datepicker('show').
267 simulate('keydown', {ctrlKey: true, keyCode: $.simulate.VK_RIGHT}).
268 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
269 date.setDate(date.getDate() + 1);
270 equalsDate(inp.datepicker('getDate'), date, 'Keystroke ctrl+right');
271 inp.val('').datepicker('show').
272 simulate('keydown', {keyCode: $.simulate.VK_RIGHT}).
273 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
274 date.setDate(date.getDate() - 1);
275 equalsDate(inp.datepicker('getDate'), date, 'Keystroke right');
276 inp.val('').datepicker('show').
277 simulate('keydown', {ctrlKey: true, keyCode: $.simulate.VK_UP}).
278 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
279 date.setDate(date.getDate() - 7);
280 equalsDate(inp.datepicker('getDate'), date, 'Keystroke ctrl+up');
281 inp.val('').datepicker('show').
282 simulate('keydown', {keyCode: $.simulate.VK_UP}).
283 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
284 date.setDate(date.getDate() + 7);
285 equalsDate(inp.datepicker('getDate'), date, 'Keystroke up');
286 inp.val('').datepicker('show').
287 simulate('keydown', {ctrlKey: true, keyCode: $.simulate.VK_DOWN}).
288 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
289 date.setDate(date.getDate() + 7);
290 equalsDate(inp.datepicker('getDate'), date, 'Keystroke ctrl+down');
291 inp.val('').datepicker('show').
292 simulate('keydown', {keyCode: $.simulate.VK_DOWN}).
293 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
294 date.setDate(date.getDate() - 7);
295 equalsDate(inp.datepicker('getDate'), date, 'Keystroke down');
296 // Moving by month or year
297 inp.val('02/04/2008').datepicker('show').
298 simulate('keydown', {keyCode: $.simulate.VK_PGUP}).
299 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
300 equalsDate(inp.datepicker('getDate'), new Date(2008, 1 - 1, 4),
301 'Keystroke pgup');
302 inp.val('02/04/2008').datepicker('show').
303 simulate('keydown', {keyCode: $.simulate.VK_PGDN}).
304 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
305 equalsDate(inp.datepicker('getDate'), new Date(2008, 3 - 1, 4),
306 'Keystroke pgdn');
307 inp.val('02/04/2008').datepicker('show').
308 simulate('keydown', {ctrlKey: true, keyCode: $.simulate.VK_PGUP}).
309 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
310 equalsDate(inp.datepicker('getDate'), new Date(2007, 2 - 1, 4),
311 'Keystroke ctrl+pgup');
312 inp.val('02/04/2008').datepicker('show').
313 simulate('keydown', {ctrlKey: true, keyCode: $.simulate.VK_PGDN}).
314 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
315 equalsDate(inp.datepicker('getDate'), new Date(2009, 2 - 1, 4),
316 'Keystroke ctrl+pgdn');
317 // Check for moving to short months
318 inp.val('03/31/2008').datepicker('show').
319 simulate('keydown', {keyCode: $.simulate.VK_PGUP}).
320 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
321 equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 29),
322 'Keystroke pgup - Feb');
323 inp.val('01/30/2008').datepicker('show').
324 simulate('keydown', {keyCode: $.simulate.VK_PGDN}).
325 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
326 equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 29),
327 'Keystroke pgdn - Feb');
328 inp.val('02/29/2008').datepicker('show').
329 simulate('keydown', {ctrlKey: true, keyCode: $.simulate.VK_PGUP}).
330 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
331 equalsDate(inp.datepicker('getDate'), new Date(2007, 2 - 1, 28),
332 'Keystroke ctrl+pgup - Feb');
333 inp.val('02/29/2008').datepicker('show').
334 simulate('keydown', {ctrlKey: true, keyCode: $.simulate.VK_PGDN}).
335 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
336 equalsDate(inp.datepicker('getDate'), new Date(2009, 2 - 1, 28),
337 'Keystroke ctrl+pgdn - Feb');
338 // Goto current
339 inp.datepicker('option', {gotoCurrent: true}).
340 datepicker('hide').val('02/04/2008').datepicker('show').
341 simulate('keydown', {keyCode: $.simulate.VK_PGDN}).
342 simulate('keydown', {ctrlKey: true, keyCode: $.simulate.VK_HOME}).
343 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
344 equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
345 'Keystroke ctrl+home');
346 // Change steps
347 inp.datepicker('option', {stepMonths: 2, gotoCurrent: false}).
348 datepicker('hide').val('02/04/2008').datepicker('show').
349 simulate('keydown', {keyCode: $.simulate.VK_PGUP}).
350 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
351 equalsDate(inp.datepicker('getDate'), new Date(2007, 12 - 1, 4),
352 'Keystroke pgup step 2');
353 inp.val('02/04/2008').datepicker('show').
354 simulate('keydown', {keyCode: $.simulate.VK_PGDN}).
355 simulate('keydown', {keyCode: $.simulate.VK_ENTER});
356 equalsDate(inp.datepicker('getDate'), new Date(2008, 4 - 1, 4),
357 'Keystroke pgdn step 2');
358});
359
360test('mouse', function() {
361 var inp = init('#inp');
362 var dp = $('#ui-datepicker-div');
363 var date = new Date();
364 inp.val('').datepicker('show');
365 $('.ui-datepicker-calendar tbody a:contains(10)', dp).simulate('click', {});
366 date.setDate(10);
367 equalsDate(inp.datepicker('getDate'), date, 'Mouse click');
368 inp.val('02/04/2008').datepicker('show');
369 $('.ui-datepicker-calendar tbody a:contains(12)', dp).simulate('click', {});
370 equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 12),
371 'Mouse click - preset');
372 inp.val('02/04/2008').datepicker('show');
373 inp.val('').datepicker('show');
374 $('button.ui-datepicker-close', dp).simulate('click', {});
375 ok(inp.datepicker('getDate') == null, 'Mouse click - close');
376 inp.val('02/04/2008').datepicker('show');
377 $('button.ui-datepicker-close', dp).simulate('click', {});
378 equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
379 'Mouse click - close + preset');
380 inp.val('02/04/2008').datepicker('show');
381 $('a.ui-datepicker-prev', dp).simulate('click', {});
382 $('button.ui-datepicker-close', dp).simulate('click', {});
383 equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
384 'Mouse click - abandoned');
385 // Current/previous/next
386 inp.val('02/04/2008').datepicker('option', {showButtonPanel: true}).datepicker('show');
387 $('.ui-datepicker-current', dp).simulate('click', {});
388 $('.ui-datepicker-calendar tbody a:contains(14)', dp).simulate('click', {});
389 date.setDate(14);
390 equalsDate(inp.datepicker('getDate'), date, 'Mouse click - current');
391 inp.val('02/04/2008').datepicker('show');
392 $('.ui-datepicker-prev', dp).simulate('click');
393 $('.ui-datepicker-calendar tbody a:contains(16)', dp).simulate('click');
394 equalsDate(inp.datepicker('getDate'), new Date(2008, 1 - 1, 16),
395 'Mouse click - previous');
396 inp.val('02/04/2008').datepicker('show');
397 $('.ui-datepicker-next', dp).simulate('click');
398 $('.ui-datepicker-calendar tbody a:contains(18)', dp).simulate('click');
399 equalsDate(inp.datepicker('getDate'), new Date(2008, 3 - 1, 18),
400 'Mouse click - next');
401 // Previous/next with minimum/maximum
402 inp.datepicker('option', {minDate: new Date(2008, 2 - 1, 2),
403 maxDate: new Date(2008, 2 - 1, 26)}).val('02/04/2008').datepicker('show');
404 $('.ui-datepicker-prev', dp).simulate('click');
405 $('.ui-datepicker-calendar tbody a:contains(16)', dp).simulate('click');
406 equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 16),
407 'Mouse click - previous + min/max');
408 inp.val('02/04/2008').datepicker('show');
409 $('.ui-datepicker-next', dp).simulate('click');
410 $('.ui-datepicker-calendar tbody a:contains(18)', dp).simulate('click');
411 equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 18),
412 'Mouse click - next + min/max');
413 // Inline
414 var inl = init('#inl');
415 var dp = $('.ui-datepicker-inline', inl);
416 var date = new Date();
417 inl.datepicker('setDate', date);
418 $('.ui-datepicker-calendar tbody a:contains(10)', dp).simulate('click', {});
419 date.setDate(10);
420 equalsDate(inl.datepicker('getDate'), date, 'Mouse click inline');
421 inl.datepicker('option', {showButtonPanel: true}).datepicker('setDate', new Date(2008, 2 - 1, 4));
422 $('.ui-datepicker-calendar tbody a:contains(12)', dp).simulate('click', {});
423 equalsDate(inl.datepicker('getDate'), new Date(2008, 2 - 1, 12), 'Mouse click inline - preset');
424 inl.datepicker('option', {showButtonPanel: true});
425 $('.ui-datepicker-current', dp).simulate('click', {});
426 $('.ui-datepicker-calendar tbody a:contains(14)', dp).simulate('click', {});
427 date.setDate(14);
428 equalsDate(inl.datepicker('getDate'), date, 'Mouse click inline - current');
429 inl.datepicker('setDate', new Date(2008, 2 - 1, 4));
430 $('.ui-datepicker-prev', dp).simulate('click');
431 $('.ui-datepicker-calendar tbody a:contains(16)', dp).simulate('click');
432 equalsDate(inl.datepicker('getDate'), new Date(2008, 1 - 1, 16),
433 'Mouse click inline - previous');
434 inl.datepicker('setDate', new Date(2008, 2 - 1, 4));
435 $('.ui-datepicker-next', dp).simulate('click');
436 $('.ui-datepicker-calendar tbody a:contains(18)', dp).simulate('click');
437 equalsDate(inl.datepicker('getDate'), new Date(2008, 3 - 1, 18),
438 'Mouse click inline - next');
439});
440
441})(jQuery);
Note: See TracBrowser for help on using the repository browser.