|
1 |
| -// The implement of events is completely changing therefore these tests are no longer directly |
2 |
| -// relevant. Leaving them around commented out so we can ensure the functionality is replicated. |
3 |
| -// For example: |
4 |
| -// TODO: In the old implementation the Enter key select's today's date when the <input> has |
5 |
| -// focus and is empty. Do we want to replicate this behavior in the rewrite? |
6 |
| -/* |
7 |
| -
|
8 | 1 | (function( $ ) {
|
9 | 2 |
|
10 | 3 | module( "datepicker: events" );
|
11 | 4 |
|
12 | 5 | test( "beforeOpen", function() {
|
13 |
| - expect( 0 ); |
| 6 | + expect( 3 ); |
| 7 | + |
| 8 | + var input = TestHelpers.datepicker.init( "#datepicker", { |
| 9 | + beforeOpen: function() { |
| 10 | + ok( true, "beforeOpen event fired before open" ); |
| 11 | + ok( input.datepicker( "widget" ).is( ":hidden" ), "calendar hidden on beforeOpen" ); |
| 12 | + }, |
| 13 | + open: function() { |
| 14 | + ok( input.datepicker( "widget" ).is( ":visible" ), "calendar open on open" ); |
| 15 | + } |
| 16 | + }); |
| 17 | + |
| 18 | + input |
| 19 | + .datepicker( "open" ) |
| 20 | + .datepicker( "close" ) |
| 21 | + .datepicker( "option", { |
| 22 | + beforeOpen: function() { |
| 23 | + return false; |
| 24 | + }, |
| 25 | + open: function() { |
| 26 | + ok( false, "calendar should not open when openBefore is canceled" ); |
| 27 | + } |
| 28 | + }) |
| 29 | + .datepicker( "open" ); |
14 | 30 | });
|
15 | 31 |
|
16 | 32 | test( "close", function() {
|
@@ -58,126 +74,61 @@ test( "open", function() {
|
58 | 74 | input.datepicker( "open" );
|
59 | 75 | });
|
60 | 76 |
|
61 |
| -var selectedThis = null, |
62 |
| -selectedDate = null, |
63 |
| -selectedInst = null; |
64 |
| -
|
65 |
| -function callback(date, inst) { |
66 |
| - selectedThis = this; |
67 |
| - selectedDate = date; |
68 |
| - selectedInst = inst; |
69 |
| -} |
70 |
| -
|
71 |
| -function callback2(year, month, inst) { |
72 |
| - selectedThis = this; |
73 |
| - selectedDate = year + "/" + month; |
74 |
| - selectedInst = inst; |
75 |
| -} |
76 |
| -
|
77 |
| -test( "events", function() { |
78 |
| - expect( 26 ); |
79 |
| - var dateStr, newMonthYear, inp2, |
80 |
| - inp = TestHelpers.datepicker.init( "#inp", {onSelect: callback}), |
81 |
| - date = new Date(); |
82 |
| - // onSelect |
83 |
| - inp.val( "" ).datepicker( "show" ). |
84 |
| - simulate( "keydown", {keyCode: $.ui.keyCode.ENTER}); |
85 |
| - equal(selectedThis, inp[0], "Callback selected this" ); |
86 |
| - equal(selectedInst, $.data(inp[0], TestHelpers.datepicker.PROP_NAME), "Callback selected inst" ); |
87 |
| - equal(selectedDate, $.datepicker.formatDate( "mm/dd/yy", date), |
88 |
| - "Callback selected date" ); |
89 |
| - inp.val( "" ).datepicker( "show" ). |
90 |
| - simulate( "keydown", {ctrlKey: true, keyCode: $.ui.keyCode.DOWN}). |
91 |
| - simulate( "keydown", {keyCode: $.ui.keyCode.ENTER}); |
92 |
| - date.setDate(date.getDate() + 7); |
93 |
| - equal(selectedDate, $.datepicker.formatDate( "mm/dd/yy", date), |
94 |
| - "Callback selected date - ctrl+down" ); |
95 |
| - inp.val( "" ).datepicker( "show" ). |
96 |
| - simulate( "keydown", {keyCode: $.ui.keyCode.ESCAPE}); |
97 |
| - equal(selectedDate, $.datepicker.formatDate( "mm/dd/yy", date), |
98 |
| - "Callback selected date - esc" ); |
99 |
| - dateStr = "02/04/2008"; |
100 |
| - inp.val(dateStr).datepicker( "show" ). |
101 |
| - simulate( "keydown", {keyCode: $.ui.keyCode.ENTER}); |
102 |
| - equal(dateStr, selectedDate, |
103 |
| - "onSelect is called after enter keydown" ); |
104 |
| - // onChangeMonthYear |
105 |
| - inp.datepicker( "option", {onChangeMonthYear: callback2, onSelect: null}). |
106 |
| - val( "" ).datepicker( "show" ); |
107 |
| - newMonthYear = function(date) { |
108 |
| - return date.getFullYear() + "/" + (date.getMonth() + 1); |
109 |
| - }; |
110 |
| - date = new Date(); |
111 |
| - date.setDate(1); |
112 |
| - inp.simulate( "keydown", {keyCode: $.ui.keyCode.PAGE_UP}); |
113 |
| - date.setMonth(date.getMonth() - 1); |
114 |
| - equal(selectedThis, inp[0], "Callback change month/year this" ); |
115 |
| - equal(selectedInst, $.data(inp[0], TestHelpers.datepicker.PROP_NAME), "Callback change month/year inst" ); |
116 |
| - equal(selectedDate, newMonthYear(date), |
117 |
| - "Callback change month/year date - pgup" ); |
118 |
| - inp.simulate( "keydown", {keyCode: $.ui.keyCode.PAGE_DOWN}); |
119 |
| - date.setMonth(date.getMonth() + 1); |
120 |
| - equal(selectedDate, newMonthYear(date), |
121 |
| - "Callback change month/year date - pgdn" ); |
122 |
| - inp.simulate( "keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}); |
123 |
| - date.setFullYear(date.getFullYear() - 1); |
124 |
| - equal(selectedDate, newMonthYear(date), |
125 |
| - "Callback change month/year date - ctrl+pgup" ); |
126 |
| - inp.simulate( "keydown", {ctrlKey: true, keyCode: $.ui.keyCode.HOME}); |
127 |
| - date.setFullYear(date.getFullYear() + 1); |
128 |
| - equal(selectedDate, newMonthYear(date), |
129 |
| - "Callback change month/year date - ctrl+home" ); |
130 |
| - inp.simulate( "keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN}); |
131 |
| - date.setFullYear(date.getFullYear() + 1); |
132 |
| - equal(selectedDate, newMonthYear(date), |
133 |
| - "Callback change month/year date - ctrl+pgdn" ); |
134 |
| - inp.datepicker( "setDate", new Date(2007, 1 - 1, 26)); |
135 |
| - equal(selectedDate, "2007/1", "Callback change month/year date - setDate" ); |
136 |
| - selectedDate = null; |
137 |
| - inp.datepicker( "setDate", new Date(2007, 1 - 1, 12)); |
138 |
| - ok(selectedDate == null, "Callback change month/year date - setDate no change" ); |
139 |
| - // onChangeMonthYear step by 2 |
140 |
| - inp.datepicker( "option", {stepMonths: 2}). |
141 |
| - datepicker( "hide" ).val( "" ).datepicker( "show" ). |
142 |
| - simulate( "keydown", {keyCode: $.ui.keyCode.PAGE_UP}); |
143 |
| - date.setMonth(date.getMonth() - 14); |
144 |
| - equal(selectedDate, newMonthYear(date), |
145 |
| - "Callback change month/year by 2 date - pgup" ); |
146 |
| - inp.simulate( "keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}); |
147 |
| - date.setMonth(date.getMonth() - 12); |
148 |
| - equal(selectedDate, newMonthYear(date), |
149 |
| - "Callback change month/year by 2 date - ctrl+pgup" ); |
150 |
| - inp.simulate( "keydown", {keyCode: $.ui.keyCode.PAGE_DOWN}); |
151 |
| - date.setMonth(date.getMonth() + 2); |
152 |
| - equal(selectedDate, newMonthYear(date), |
153 |
| - "Callback change month/year by 2 date - pgdn" ); |
154 |
| - inp.simulate( "keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN}); |
155 |
| - date.setMonth(date.getMonth() + 12); |
156 |
| - equal(selectedDate, newMonthYear(date), |
157 |
| - "Callback change month/year by 2 date - ctrl+pgdn" ); |
158 |
| - // onClose |
159 |
| - inp.datepicker( "option", {onClose: callback, onChangeMonthYear: null, stepMonths: 1}). |
160 |
| - val( "" ).datepicker( "show" ). |
161 |
| - simulate( "keydown", {keyCode: $.ui.keyCode.ESCAPE}); |
162 |
| - equal(selectedThis, inp[0], "Callback close this" ); |
163 |
| - equal(selectedInst, $.data(inp[0], TestHelpers.datepicker.PROP_NAME), "Callback close inst" ); |
164 |
| - equal(selectedDate, "", "Callback close date - esc" ); |
165 |
| - inp.val( "" ).datepicker( "show" ). |
166 |
| - simulate( "keydown", {keyCode: $.ui.keyCode.ENTER}); |
167 |
| - equal(selectedDate, $.datepicker.formatDate( "mm/dd/yy", new Date()), |
168 |
| - "Callback close date - enter" ); |
169 |
| - inp.val( "02/04/2008" ).datepicker( "show" ). |
170 |
| - simulate( "keydown", {keyCode: $.ui.keyCode.ESCAPE}); |
171 |
| - equal(selectedDate, "02/04/2008", "Callback close date - preset" ); |
172 |
| - inp.val( "02/04/2008" ).datepicker( "show" ). |
173 |
| - simulate( "keydown", {ctrlKey: true, keyCode: $.ui.keyCode.END}); |
174 |
| - equal(selectedDate, "", "Callback close date - ctrl+end" ); |
175 |
| -
|
176 |
| - inp2 = TestHelpers.datepicker.init( "#inp2" ); |
177 |
| - inp2.datepicker().datepicker( "option", {onClose: callback}).datepicker( "show" ); |
178 |
| - inp.datepicker( "show" ); |
179 |
| - equal(selectedThis, inp2[0], "Callback close this" ); |
| 77 | +asyncTest( "select", function() { |
| 78 | + expect( 4 ); |
| 79 | + |
| 80 | + var input = TestHelpers.datepicker.init( "#datepicker", { |
| 81 | + select: function( event ) { |
| 82 | + ok( true, "select event fired " + message ); |
| 83 | + equal( |
| 84 | + event.originalEvent.type, |
| 85 | + "calendarselect", |
| 86 | + "select originalEvent " + message |
| 87 | + ); |
| 88 | + } |
| 89 | + }), |
| 90 | + widget = input.datepicker( "widget" ), |
| 91 | + message = ""; |
| 92 | + |
| 93 | + function step1() { |
| 94 | + message = "on calendar cell click"; |
| 95 | + input |
| 96 | + .simulate( "focus" ) |
| 97 | + .simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); |
| 98 | + setTimeout(function() { |
| 99 | + widget.find( "tbody tr:first a:first" ).simulate( "mousedown" ); |
| 100 | + input.datepicker( "close" ); |
| 101 | + step2(); |
| 102 | + }, 100 ); |
| 103 | + } |
| 104 | + |
| 105 | + function step2() { |
| 106 | + message = "on calendar cell enter"; |
| 107 | + input |
| 108 | + .simulate( "focus" ) |
| 109 | + .simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); |
| 110 | + setTimeout(function() { |
| 111 | + $( ":focus" ) |
| 112 | + .simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } ) |
| 113 | + .simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } ); |
| 114 | + input.datepicker( "close" ); |
| 115 | + step3(); |
| 116 | + }, 100 ); |
| 117 | + } |
| 118 | + |
| 119 | + function step3() { |
| 120 | + message = "on calendar escape (not expected)"; |
| 121 | + input |
| 122 | + .simulate( "focus" ) |
| 123 | + .simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); |
| 124 | + setTimeout(function() { |
| 125 | + $( ":focus" ).simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } ); |
| 126 | + input.datepicker( "close" ); |
| 127 | + start(); |
| 128 | + }, 100 ); |
| 129 | + } |
| 130 | + |
| 131 | + step1(); |
180 | 132 | });
|
181 | 133 |
|
182 | 134 | })( jQuery );
|
183 |
| - */ |
0 commit comments