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