and a note on manual changes in dataTables.bootstrap.css
[myslice.git] / third-party / jquery-ui-1.10.2 / tests / unit / datepicker / datepicker_events.js
1 /*
2  * datepicker_events.js
3  */
4 (function($) {
5
6 module("datepicker: events");
7
8 var selectedThis = null,
9 selectedDate = null,
10 selectedInst = null;
11
12 function callback(date, inst) {
13         selectedThis = this;
14         selectedDate = date;
15         selectedInst = inst;
16 }
17
18 function callback2(year, month, inst) {
19         selectedThis = this;
20         selectedDate = year + "/" + month;
21         selectedInst = inst;
22 }
23
24 test("events", function() {
25         expect( 26 );
26         var dateStr, newMonthYear, inp2,
27                 inp = TestHelpers.datepicker.init("#inp", {onSelect: callback}),
28         date = new Date();
29         // onSelect
30         inp.val("").datepicker("show").
31                 simulate("keydown", {keyCode: $.ui.keyCode.ENTER});
32         equal(selectedThis, inp[0], "Callback selected this");
33         equal(selectedInst, $.data(inp[0], TestHelpers.datepicker.PROP_NAME), "Callback selected inst");
34         equal(selectedDate, $.datepicker.formatDate("mm/dd/yy", date),
35                 "Callback selected date");
36         inp.val("").datepicker("show").
37                 simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.DOWN}).
38                 simulate("keydown", {keyCode: $.ui.keyCode.ENTER});
39         date.setDate(date.getDate() + 7);
40         equal(selectedDate, $.datepicker.formatDate("mm/dd/yy", date),
41                 "Callback selected date - ctrl+down");
42         inp.val("").datepicker("show").
43                 simulate("keydown", {keyCode: $.ui.keyCode.ESCAPE});
44         equal(selectedDate, $.datepicker.formatDate("mm/dd/yy", date),
45                 "Callback selected date - esc");
46     dateStr = "02/04/2008";
47     inp.val(dateStr).datepicker("show").
48         simulate("keydown", {keyCode: $.ui.keyCode.ENTER});
49     equal(dateStr, selectedDate,
50         "onSelect is called after enter keydown");
51         // onChangeMonthYear
52         inp.datepicker("option", {onChangeMonthYear: callback2, onSelect: null}).
53                 val("").datepicker("show");
54         newMonthYear = function(date) {
55                 return date.getFullYear() + "/" + (date.getMonth() + 1);
56         };
57         date = new Date();
58         date.setDate(1);
59         inp.simulate("keydown", {keyCode: $.ui.keyCode.PAGE_UP});
60         date.setMonth(date.getMonth() - 1);
61         equal(selectedThis, inp[0], "Callback change month/year this");
62         equal(selectedInst, $.data(inp[0], TestHelpers.datepicker.PROP_NAME), "Callback change month/year inst");
63         equal(selectedDate, newMonthYear(date),
64                 "Callback change month/year date - pgup");
65         inp.simulate("keydown", {keyCode: $.ui.keyCode.PAGE_DOWN});
66         date.setMonth(date.getMonth() + 1);
67         equal(selectedDate, newMonthYear(date),
68                 "Callback change month/year date - pgdn");
69         inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP});
70         date.setFullYear(date.getFullYear() - 1);
71         equal(selectedDate, newMonthYear(date),
72                 "Callback change month/year date - ctrl+pgup");
73         inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.HOME});
74         date.setFullYear(date.getFullYear() + 1);
75         equal(selectedDate, newMonthYear(date),
76                 "Callback change month/year date - ctrl+home");
77         inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN});
78         date.setFullYear(date.getFullYear() + 1);
79         equal(selectedDate, newMonthYear(date),
80                 "Callback change month/year date - ctrl+pgdn");
81         inp.datepicker("setDate", new Date(2007, 1 - 1, 26));
82         equal(selectedDate, "2007/1", "Callback change month/year date - setDate");
83         selectedDate = null;
84         inp.datepicker("setDate", new Date(2007, 1 - 1, 12));
85         ok(selectedDate == null, "Callback change month/year date - setDate no change");
86         // onChangeMonthYear step by 2
87         inp.datepicker("option", {stepMonths: 2}).
88                 datepicker("hide").val("").datepicker("show").
89                 simulate("keydown", {keyCode: $.ui.keyCode.PAGE_UP});
90         date.setMonth(date.getMonth() - 14);
91         equal(selectedDate, newMonthYear(date),
92                 "Callback change month/year by 2 date - pgup");
93         inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP});
94         date.setMonth(date.getMonth() - 12);
95         equal(selectedDate, newMonthYear(date),
96                 "Callback change month/year by 2 date - ctrl+pgup");
97         inp.simulate("keydown", {keyCode: $.ui.keyCode.PAGE_DOWN});
98         date.setMonth(date.getMonth() + 2);
99         equal(selectedDate, newMonthYear(date),
100                 "Callback change month/year by 2 date - pgdn");
101         inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN});
102         date.setMonth(date.getMonth() + 12);
103         equal(selectedDate, newMonthYear(date),
104                 "Callback change month/year by 2 date - ctrl+pgdn");
105         // onClose
106         inp.datepicker("option", {onClose: callback, onChangeMonthYear: null, stepMonths: 1}).
107                 val("").datepicker("show").
108                 simulate("keydown", {keyCode: $.ui.keyCode.ESCAPE});
109         equal(selectedThis, inp[0], "Callback close this");
110         equal(selectedInst, $.data(inp[0], TestHelpers.datepicker.PROP_NAME), "Callback close inst");
111         equal(selectedDate, "", "Callback close date - esc");
112         inp.val("").datepicker("show").
113                 simulate("keydown", {keyCode: $.ui.keyCode.ENTER});
114         equal(selectedDate, $.datepicker.formatDate("mm/dd/yy", new Date()),
115                 "Callback close date - enter");
116         inp.val("02/04/2008").datepicker("show").
117                 simulate("keydown", {keyCode: $.ui.keyCode.ESCAPE});
118         equal(selectedDate, "02/04/2008", "Callback close date - preset");
119         inp.val("02/04/2008").datepicker("show").
120                 simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.END});
121         equal(selectedDate, "", "Callback close date - ctrl+end");
122
123         inp2 = TestHelpers.datepicker.init("#inp2");
124         inp2.datepicker().datepicker("option", {onClose: callback}).datepicker("show");
125         inp.datepicker("show");
126         equal(selectedThis, inp2[0], "Callback close this");
127 });
128
129 test("beforeShowDay-getDate", function() {
130         expect( 3 );
131         var inp = TestHelpers.datepicker.init("#inp", {beforeShowDay: function() { inp.datepicker("getDate"); return [true, ""]; }}),
132                 dp = $("#ui-datepicker-div");
133         inp.val("01/01/2010").datepicker("show");
134         // contains non-breaking space
135         equal($("div.ui-datepicker-title").text(),
136                 // support: IE <9, jQuery <1.8
137                 // In IE7/8 with jQuery <1.8, encoded spaces behave in strange ways
138                 $( "<span>January&#xa0;2010</span>" ).text(), "Initial month");
139         $("a.ui-datepicker-next", dp).click();
140         $("a.ui-datepicker-next", dp).click();
141         // contains non-breaking space
142         equal($("div.ui-datepicker-title").text(),
143                 $( "<span>March&#xa0;2010</span>" ).text(), "After next clicks");
144         inp.datepicker("hide").datepicker("show");
145         $("a.ui-datepicker-prev", dp).click();
146         $("a.ui-datepicker-prev", dp).click();
147         // contains non-breaking space
148         equal($("div.ui-datepicker-title").text(),
149                 $( "<span>November&#xa0;2009</span>" ).text(), "After prev clicks");
150         inp.datepicker("hide");
151 });
152
153 })(jQuery);