corrade-http-templates – Blame information for rev 62

Subversion Repositories:
Rev:
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&#xa0;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&#xa0;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&#xa0;2009</span>" ).text(), "After prev clicks" );
160 inp.datepicker( "hide" );
161 } );
162  
163 } );