imported the whole jquery-ui package, refreshed with 1.10.2
[unfold.git] / third-party / jquery-ui-1.10.2 / tests / unit / datepicker / datepicker_events.js
diff --git a/third-party/jquery-ui-1.10.2/tests/unit/datepicker/datepicker_events.js b/third-party/jquery-ui-1.10.2/tests/unit/datepicker/datepicker_events.js
new file mode 100644 (file)
index 0000000..dfc42cc
--- /dev/null
@@ -0,0 +1,153 @@
+/*
+ * datepicker_events.js
+ */
+(function($) {
+
+module("datepicker: events");
+
+var selectedThis = null,
+selectedDate = null,
+selectedInst = null;
+
+function callback(date, inst) {
+       selectedThis = this;
+       selectedDate = date;
+       selectedInst = inst;
+}
+
+function callback2(year, month, inst) {
+       selectedThis = this;
+       selectedDate = year + "/" + month;
+       selectedInst = inst;
+}
+
+test("events", function() {
+       expect( 26 );
+       var dateStr, newMonthYear, inp2,
+               inp = TestHelpers.datepicker.init("#inp", {onSelect: callback}),
+       date = new Date();
+       // onSelect
+       inp.val("").datepicker("show").
+               simulate("keydown", {keyCode: $.ui.keyCode.ENTER});
+       equal(selectedThis, inp[0], "Callback selected this");
+       equal(selectedInst, $.data(inp[0], TestHelpers.datepicker.PROP_NAME), "Callback selected inst");
+       equal(selectedDate, $.datepicker.formatDate("mm/dd/yy", date),
+               "Callback selected date");
+       inp.val("").datepicker("show").
+               simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.DOWN}).
+               simulate("keydown", {keyCode: $.ui.keyCode.ENTER});
+       date.setDate(date.getDate() + 7);
+       equal(selectedDate, $.datepicker.formatDate("mm/dd/yy", date),
+               "Callback selected date - ctrl+down");
+       inp.val("").datepicker("show").
+               simulate("keydown", {keyCode: $.ui.keyCode.ESCAPE});
+       equal(selectedDate, $.datepicker.formatDate("mm/dd/yy", date),
+               "Callback selected date - esc");
+    dateStr = "02/04/2008";
+    inp.val(dateStr).datepicker("show").
+        simulate("keydown", {keyCode: $.ui.keyCode.ENTER});
+    equal(dateStr, selectedDate,
+        "onSelect is called after enter keydown");
+       // onChangeMonthYear
+       inp.datepicker("option", {onChangeMonthYear: callback2, onSelect: null}).
+               val("").datepicker("show");
+       newMonthYear = function(date) {
+               return date.getFullYear() + "/" + (date.getMonth() + 1);
+       };
+       date = new Date();
+       date.setDate(1);
+       inp.simulate("keydown", {keyCode: $.ui.keyCode.PAGE_UP});
+       date.setMonth(date.getMonth() - 1);
+       equal(selectedThis, inp[0], "Callback change month/year this");
+       equal(selectedInst, $.data(inp[0], TestHelpers.datepicker.PROP_NAME), "Callback change month/year inst");
+       equal(selectedDate, newMonthYear(date),
+               "Callback change month/year date - pgup");
+       inp.simulate("keydown", {keyCode: $.ui.keyCode.PAGE_DOWN});
+       date.setMonth(date.getMonth() + 1);
+       equal(selectedDate, newMonthYear(date),
+               "Callback change month/year date - pgdn");
+       inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP});
+       date.setFullYear(date.getFullYear() - 1);
+       equal(selectedDate, newMonthYear(date),
+               "Callback change month/year date - ctrl+pgup");
+       inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.HOME});
+       date.setFullYear(date.getFullYear() + 1);
+       equal(selectedDate, newMonthYear(date),
+               "Callback change month/year date - ctrl+home");
+       inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN});
+       date.setFullYear(date.getFullYear() + 1);
+       equal(selectedDate, newMonthYear(date),
+               "Callback change month/year date - ctrl+pgdn");
+       inp.datepicker("setDate", new Date(2007, 1 - 1, 26));
+       equal(selectedDate, "2007/1", "Callback change month/year date - setDate");
+       selectedDate = null;
+       inp.datepicker("setDate", new Date(2007, 1 - 1, 12));
+       ok(selectedDate == null, "Callback change month/year date - setDate no change");
+       // onChangeMonthYear step by 2
+       inp.datepicker("option", {stepMonths: 2}).
+               datepicker("hide").val("").datepicker("show").
+               simulate("keydown", {keyCode: $.ui.keyCode.PAGE_UP});
+       date.setMonth(date.getMonth() - 14);
+       equal(selectedDate, newMonthYear(date),
+               "Callback change month/year by 2 date - pgup");
+       inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP});
+       date.setMonth(date.getMonth() - 12);
+       equal(selectedDate, newMonthYear(date),
+               "Callback change month/year by 2 date - ctrl+pgup");
+       inp.simulate("keydown", {keyCode: $.ui.keyCode.PAGE_DOWN});
+       date.setMonth(date.getMonth() + 2);
+       equal(selectedDate, newMonthYear(date),
+               "Callback change month/year by 2 date - pgdn");
+       inp.simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN});
+       date.setMonth(date.getMonth() + 12);
+       equal(selectedDate, newMonthYear(date),
+               "Callback change month/year by 2 date - ctrl+pgdn");
+       // onClose
+       inp.datepicker("option", {onClose: callback, onChangeMonthYear: null, stepMonths: 1}).
+               val("").datepicker("show").
+               simulate("keydown", {keyCode: $.ui.keyCode.ESCAPE});
+       equal(selectedThis, inp[0], "Callback close this");
+       equal(selectedInst, $.data(inp[0], TestHelpers.datepicker.PROP_NAME), "Callback close inst");
+       equal(selectedDate, "", "Callback close date - esc");
+       inp.val("").datepicker("show").
+               simulate("keydown", {keyCode: $.ui.keyCode.ENTER});
+       equal(selectedDate, $.datepicker.formatDate("mm/dd/yy", new Date()),
+               "Callback close date - enter");
+       inp.val("02/04/2008").datepicker("show").
+               simulate("keydown", {keyCode: $.ui.keyCode.ESCAPE});
+       equal(selectedDate, "02/04/2008", "Callback close date - preset");
+       inp.val("02/04/2008").datepicker("show").
+               simulate("keydown", {ctrlKey: true, keyCode: $.ui.keyCode.END});
+       equal(selectedDate, "", "Callback close date - ctrl+end");
+
+       inp2 = TestHelpers.datepicker.init("#inp2");
+       inp2.datepicker().datepicker("option", {onClose: callback}).datepicker("show");
+       inp.datepicker("show");
+       equal(selectedThis, inp2[0], "Callback close this");
+});
+
+test("beforeShowDay-getDate", function() {
+       expect( 3 );
+       var inp = TestHelpers.datepicker.init("#inp", {beforeShowDay: function() { inp.datepicker("getDate"); return [true, ""]; }}),
+               dp = $("#ui-datepicker-div");
+       inp.val("01/01/2010").datepicker("show");
+       // contains non-breaking space
+       equal($("div.ui-datepicker-title").text(),
+               // support: IE <9, jQuery <1.8
+               // In IE7/8 with jQuery <1.8, encoded spaces behave in strange ways
+               $( "<span>January&#xa0;2010</span>" ).text(), "Initial month");
+       $("a.ui-datepicker-next", dp).click();
+       $("a.ui-datepicker-next", dp).click();
+       // contains non-breaking space
+       equal($("div.ui-datepicker-title").text(),
+               $( "<span>March&#xa0;2010</span>" ).text(), "After next clicks");
+       inp.datepicker("hide").datepicker("show");
+       $("a.ui-datepicker-prev", dp).click();
+       $("a.ui-datepicker-prev", dp).click();
+       // contains non-breaking space
+       equal($("div.ui-datepicker-title").text(),
+               $( "<span>November&#xa0;2009</span>" ).text(), "After prev clicks");
+       inp.datepicker("hide");
+});
+
+})(jQuery);