-// The implement of events is completely changing therefore these tests are no longer directly
-// relevant. Leaving them around commented out so we can ensure the functionality is replicated.
-// For example:
-// TODO: In the old implementation the Enter key select's today's date when the <input> has
-// focus and is empty. Do we want to replicate this behavior in the rewrite?
-/*
-
(function( $ ) {
module( "datepicker: events" );
test( "beforeOpen", function() {
- expect( 0 );
+ expect( 3 );
+
+ var input = TestHelpers.datepicker.init( "#datepicker", {
+ beforeOpen: function() {
+ ok( true, "beforeOpen event fired before open" );
+ ok( input.datepicker( "widget" ).is( ":hidden" ), "calendar hidden on beforeOpen" );
+ },
+ open: function() {
+ ok( input.datepicker( "widget" ).is( ":visible" ), "calendar open on open" );
+ }
+ });
+
+ input
+ .datepicker( "open" )
+ .datepicker( "close" )
+ .datepicker( "option", {
+ beforeOpen: function() {
+ return false;
+ },
+ open: function() {
+ ok( false, "calendar should not open when openBefore is canceled" );
+ }
+ })
+ .datepicker( "open" );
});
test( "close", function() {
input.datepicker( "open" );
});
-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" );
+asyncTest( "select", function() {
+ expect( 4 );
+
+ var input = TestHelpers.datepicker.init( "#datepicker", {
+ select: function( event ) {
+ ok( true, "select event fired " + message );
+ equal(
+ event.originalEvent.type,
+ "calendarselect",
+ "select originalEvent " + message
+ );
+ }
+ }),
+ widget = input.datepicker( "widget" ),
+ message = "";
+
+ function step1() {
+ message = "on calendar cell click";
+ input
+ .simulate( "focus" )
+ .simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
+ setTimeout(function() {
+ widget.find( "tbody tr:first a:first" ).simulate( "mousedown" );
+ input.datepicker( "close" );
+ step2();
+ }, 100 );
+ }
+
+ function step2() {
+ message = "on calendar cell enter";
+ input
+ .simulate( "focus" )
+ .simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
+ setTimeout(function() {
+ $( ":focus" )
+ .simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } )
+ .simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
+ input.datepicker( "close" );
+ step3();
+ }, 100 );
+ }
+
+ function step3() {
+ message = "on calendar escape (not expected)";
+ input
+ .simulate( "focus" )
+ .simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
+ setTimeout(function() {
+ $( ":focus" ).simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
+ input.datepicker( "close" );
+ start();
+ }, 100 );
+ }
+
+ step1();
});
})( jQuery );
- */