| OLD | NEW |
| (Empty) |
| 1 <!DOCTYPE html> | |
| 2 <html> | |
| 3 <head> | |
| 4 <script src="../../../../../fast/js/resources/js-test-pre.js"></script> | |
| 5 <script src="../../../../../fast/forms/resources/picker-common.js"></script> | |
| 6 <script src="resources/calendar-picker-common.js"></script> | |
| 7 </head> | |
| 8 <body> | |
| 9 <p id="description"></p> | |
| 10 <div id="console"></div> | |
| 11 <input type=week id=week value="2000-W01"> | |
| 12 <script> | |
| 13 description("Tests if month picker key bindings work as expected."); | |
| 14 | |
| 15 debug('Check that page popup doesn\'t exist at first.'); | |
| 16 shouldBeNull('document.getElementById("mock-page-popup")'); | |
| 17 | |
| 18 openPicker(document.getElementById('week'), test1); | |
| 19 | |
| 20 function test1() { | |
| 21 debug('Check that page popup exists.'); | |
| 22 shouldBe('popupWindow.pagePopupController.toString()', '"[object PagePopupCo
ntroller]"'); | |
| 23 | |
| 24 shouldBeFalse('isCalendarTableScrollingWithAnimation()'); | |
| 25 shouldBeEqualToString('currentMonth()', '2000-01'); | |
| 26 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 27 shouldBeEqualToString('selectedDayCells()', '2000-01-03,2000-01-04,2000-01-0
5,2000-01-06,2000-01-07,2000-01-08,2000-01-09'); | |
| 28 shouldBeEqualToString('highlightedValue()', '2000-W01'); | |
| 29 shouldBeEqualToString('highlightedDayCells()', '2000-01-03,2000-01-04,2000-0
1-05,2000-01-06,2000-01-07,2000-01-08,2000-01-09'); | |
| 30 | |
| 31 debug('Check that arrow keys work properly.'); | |
| 32 | |
| 33 debug("press up"); | |
| 34 eventSender.keyDown('upArrow'); | |
| 35 shouldBeEqualToString('currentMonth()', '2000-01'); | |
| 36 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 37 shouldBeEqualToString('selectedDayCells()', '2000-01-03,2000-01-04,2000-01-0
5,2000-01-06,2000-01-07,2000-01-08,2000-01-09'); | |
| 38 shouldBeEqualToString('highlightedValue()', '1999-W52'); | |
| 39 shouldBeEqualToString('highlightedDayCells()', '1999-12-27,1999-12-28,1999-1
2-29,1999-12-30,1999-12-31,2000-01-01,2000-01-02'); | |
| 40 | |
| 41 debug("press up"); | |
| 42 eventSender.keyDown('upArrow'); | |
| 43 shouldBeTrue('isCalendarTableScrollingWithAnimation()'); | |
| 44 shouldBeEqualToString('currentMonth()', '1999-12'); | |
| 45 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 46 shouldBeEqualToString('selectedDayCells()', ''); | |
| 47 shouldBeEqualToString('highlightedValue()', '1999-W51'); | |
| 48 shouldBeEqualToString('highlightedDayCells()', '1999-12-20,1999-12-21,1999-1
2-22,1999-12-23,1999-12-24,1999-12-25,1999-12-26'); | |
| 49 | |
| 50 debug("press down"); | |
| 51 eventSender.keyDown('downArrow'); | |
| 52 shouldBeEqualToString('currentMonth()', '1999-12'); | |
| 53 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 54 shouldBeEqualToString('selectedDayCells()', ''); | |
| 55 shouldBeEqualToString('highlightedValue()', '1999-W52'); | |
| 56 shouldBeEqualToString('highlightedDayCells()', '1999-12-27,1999-12-28,1999-1
2-29,1999-12-30,1999-12-31,2000-01-01'); | |
| 57 | |
| 58 debug("press down"); | |
| 59 eventSender.keyDown('downArrow'); | |
| 60 shouldBeTrue('isCalendarTableScrollingWithAnimation()'); | |
| 61 shouldBeEqualToString('currentMonth()', '2000-01'); | |
| 62 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 63 shouldBeEqualToString('selectedDayCells()', '2000-01-03,2000-01-04,2000-01-0
5,2000-01-06,2000-01-07,2000-01-08,2000-01-09'); | |
| 64 shouldBeEqualToString('highlightedValue()', '2000-W01'); | |
| 65 shouldBeEqualToString('highlightedDayCells()', '2000-01-03,2000-01-04,2000-0
1-05,2000-01-06,2000-01-07,2000-01-08,2000-01-09'); | |
| 66 | |
| 67 debug("press down"); | |
| 68 eventSender.keyDown('downArrow'); | |
| 69 shouldBeEqualToString('currentMonth()', '2000-01'); | |
| 70 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 71 shouldBeEqualToString('selectedDayCells()', '2000-01-03,2000-01-04,2000-01-0
5,2000-01-06,2000-01-07,2000-01-08,2000-01-09'); | |
| 72 shouldBeEqualToString('highlightedValue()', '2000-W02'); | |
| 73 shouldBeEqualToString('highlightedDayCells()', '2000-01-10,2000-01-11,2000-0
1-12,2000-01-13,2000-01-14,2000-01-15,2000-01-16'); | |
| 74 | |
| 75 debug("press left"); | |
| 76 eventSender.keyDown('leftArrow'); | |
| 77 shouldBeEqualToString('currentMonth()', '2000-01'); | |
| 78 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 79 shouldBeEqualToString('selectedDayCells()', '2000-01-03,2000-01-04,2000-01-0
5,2000-01-06,2000-01-07,2000-01-08,2000-01-09'); | |
| 80 shouldBeEqualToString('highlightedValue()', '2000-W01'); | |
| 81 shouldBeEqualToString('highlightedDayCells()', '2000-01-03,2000-01-04,2000-0
1-05,2000-01-06,2000-01-07,2000-01-08,2000-01-09'); | |
| 82 | |
| 83 debug("press right"); | |
| 84 eventSender.keyDown('rightArrow'); | |
| 85 shouldBeEqualToString('currentMonth()', '2000-01'); | |
| 86 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 87 shouldBeEqualToString('selectedDayCells()', '2000-01-03,2000-01-04,2000-01-0
5,2000-01-06,2000-01-07,2000-01-08,2000-01-09'); | |
| 88 shouldBeEqualToString('highlightedValue()', '2000-W02'); | |
| 89 shouldBeEqualToString('highlightedDayCells()', '2000-01-10,2000-01-11,2000-0
1-12,2000-01-13,2000-01-14,2000-01-15,2000-01-16'); | |
| 90 | |
| 91 debug("press pageDown"); | |
| 92 eventSender.keyDown('pageDown'); | |
| 93 shouldBeEqualToString('currentMonth()', '2000-02'); | |
| 94 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 95 shouldBeEqualToString('selectedDayCells()', ''); | |
| 96 shouldBeEqualToString('highlightedValue()', '2000-W02'); | |
| 97 shouldBeEqualToString('highlightedDayCells()', ''); | |
| 98 | |
| 99 debug("press pageUp"); | |
| 100 eventSender.keyDown('pageUp'); | |
| 101 shouldBeEqualToString('currentMonth()', '2000-01'); | |
| 102 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 103 shouldBeEqualToString('selectedDayCells()', '2000-01-03,2000-01-04,2000-01-0
5,2000-01-06,2000-01-07,2000-01-08,2000-01-09'); | |
| 104 shouldBeEqualToString('highlightedValue()', '2000-W02'); | |
| 105 shouldBeEqualToString('highlightedDayCells()', '2000-01-10,2000-01-11,2000-0
1-12,2000-01-13,2000-01-14,2000-01-15,2000-01-16'); | |
| 106 | |
| 107 debug("press m"); | |
| 108 eventSender.keyDown('m'); | |
| 109 shouldBeTrue('isCalendarTableScrollingWithAnimation()'); | |
| 110 shouldBeEqualToString('currentMonth()', '2000-02'); | |
| 111 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 112 shouldBeEqualToString('selectedDayCells()', ''); | |
| 113 shouldBeEqualToString('highlightedValue()', '2000-W07'); | |
| 114 shouldBeEqualToString('highlightedDayCells()', '2000-02-14,2000-02-15,2000-0
2-16,2000-02-17,2000-02-18,2000-02-19,2000-02-20'); | |
| 115 | |
| 116 debug("press shift + m"); | |
| 117 eventSender.keyDown('M'); | |
| 118 shouldBeTrue('isCalendarTableScrollingWithAnimation()'); | |
| 119 shouldBeEqualToString('currentMonth()', '2000-01'); | |
| 120 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 121 shouldBeEqualToString('selectedDayCells()', '2000-01-03,2000-01-04,2000-01-0
5,2000-01-06,2000-01-07,2000-01-08,2000-01-09'); | |
| 122 shouldBeEqualToString('highlightedValue()', '2000-W02'); | |
| 123 shouldBeEqualToString('highlightedDayCells()', '2000-01-10,2000-01-11,2000-0
1-12,2000-01-13,2000-01-14,2000-01-15,2000-01-16'); | |
| 124 | |
| 125 debug("press y"); | |
| 126 eventSender.keyDown('y'); | |
| 127 shouldBeTrue('isCalendarTableScrollingWithAnimation()'); | |
| 128 shouldBeEqualToString('currentMonth()', '2001-01'); | |
| 129 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 130 shouldBeEqualToString('selectedDayCells()', ''); | |
| 131 shouldBeEqualToString('highlightedValue()', '2001-W03'); | |
| 132 shouldBeEqualToString('highlightedDayCells()', '2001-01-15,2001-01-16,2001-0
1-17,2001-01-18,2001-01-19,2001-01-20,2001-01-21'); | |
| 133 | |
| 134 debug("press shift + y"); | |
| 135 eventSender.keyDown('Y'); | |
| 136 shouldBeTrue('isCalendarTableScrollingWithAnimation()'); | |
| 137 shouldBeEqualToString('currentMonth()', '2000-01'); | |
| 138 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 139 shouldBeEqualToString('selectedDayCells()', '2000-01-03,2000-01-04,2000-01-0
5,2000-01-06,2000-01-07,2000-01-08,2000-01-09'); | |
| 140 shouldBeEqualToString('highlightedValue()', '2000-W02'); | |
| 141 shouldBeEqualToString('highlightedDayCells()', '2000-01-10,2000-01-11,2000-0
1-12,2000-01-13,2000-01-14,2000-01-15,2000-01-16'); | |
| 142 | |
| 143 debug("press d"); | |
| 144 eventSender.keyDown('d'); | |
| 145 shouldBeTrue('isCalendarTableScrollingWithAnimation()'); | |
| 146 shouldBeEqualToString('currentMonth()', '2010-01'); | |
| 147 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 148 shouldBeEqualToString('selectedDayCells()', ''); | |
| 149 shouldBeEqualToString('highlightedValue()', '2010-W02'); | |
| 150 shouldBeEqualToString('highlightedDayCells()', '2010-01-11,2010-01-12,2010-0
1-13,2010-01-14,2010-01-15,2010-01-16,2010-01-17'); | |
| 151 | |
| 152 debug("press shift + d"); | |
| 153 eventSender.keyDown('D'); | |
| 154 shouldBeTrue('isCalendarTableScrollingWithAnimation()'); | |
| 155 shouldBeEqualToString('currentMonth()', '2000-01'); | |
| 156 shouldBeEqualToString('selectedValue()', '2000-W01'); | |
| 157 shouldBeEqualToString('selectedDayCells()', '2000-01-03,2000-01-04,2000-01-0
5,2000-01-06,2000-01-07,2000-01-08,2000-01-09'); | |
| 158 shouldBeEqualToString('highlightedValue()', '2000-W02'); | |
| 159 shouldBeEqualToString('highlightedDayCells()', '2000-01-10,2000-01-11,2000-0
1-12,2000-01-13,2000-01-14,2000-01-15,2000-01-16'); | |
| 160 | |
| 161 debug("press enter"); | |
| 162 eventSender.keyDown('\n'); | |
| 163 shouldBeEqualToString('currentMonth()', '2000-01'); | |
| 164 shouldBeEqualToString('selectedValue()', '2000-W02'); | |
| 165 shouldBeEqualToString('selectedDayCells()', '2000-01-10,2000-01-11,2000-01-1
2,2000-01-13,2000-01-14,2000-01-15,2000-01-16'); | |
| 166 shouldBeEqualToString('highlightedValue()', '2000-W02'); | |
| 167 shouldBeEqualToString('highlightedDayCells()', '2000-01-10,2000-01-11,2000-0
1-12,2000-01-13,2000-01-14,2000-01-15,2000-01-16'); | |
| 168 shouldBe('document.getElementById("week").value', '"2000-W02"'); | |
| 169 | |
| 170 debug('Check if tabbing works.'); | |
| 171 shouldBe('focusedElement()', '".list-view calendar-table-view"'); | |
| 172 eventSender.keyDown('\t', ['shiftKey']); | |
| 173 shouldBe('focusedElement()', '".calendar-navigation-button"'); | |
| 174 eventSender.keyDown('\t', ['shiftKey']); | |
| 175 shouldBe('focusedElement()', '".calendar-navigation-button today-button"'); | |
| 176 eventSender.keyDown('\t', ['shiftKey']); | |
| 177 shouldBe('focusedElement()', '".calendar-navigation-button"'); | |
| 178 eventSender.keyDown('\t', ['shiftKey']); | |
| 179 shouldBe('focusedElement()', '".month-popup-button"'); | |
| 180 | |
| 181 debug('open the month popup'); | |
| 182 eventSender.keyDown('\n'); | |
| 183 shouldBeTrue('popupWindow.global.picker.monthPopupView.isVisible'); | |
| 184 shouldBeEqualToString('highlightedMonthButton()', '2000-01'); | |
| 185 | |
| 186 debug("press down"); | |
| 187 eventSender.keyDown('downArrow'); | |
| 188 shouldBeEqualToString('highlightedMonthButton()', '2000-05'); | |
| 189 | |
| 190 debug("press right"); | |
| 191 eventSender.keyDown('rightArrow'); | |
| 192 shouldBeEqualToString('highlightedMonthButton()', '2000-06'); | |
| 193 | |
| 194 debug("press right"); | |
| 195 eventSender.keyDown('rightArrow'); | |
| 196 shouldBeEqualToString('highlightedMonthButton()', '2000-07'); | |
| 197 | |
| 198 debug("press right"); | |
| 199 eventSender.keyDown('rightArrow'); | |
| 200 shouldBeEqualToString('highlightedMonthButton()', '2000-08'); | |
| 201 | |
| 202 debug("press right"); | |
| 203 eventSender.keyDown('rightArrow'); | |
| 204 shouldBeEqualToString('highlightedMonthButton()', '2000-09'); | |
| 205 | |
| 206 debug("press right"); | |
| 207 eventSender.keyDown('rightArrow'); | |
| 208 shouldBeEqualToString('highlightedMonthButton()', '2000-10'); | |
| 209 | |
| 210 debug("press left"); | |
| 211 eventSender.keyDown('leftArrow'); | |
| 212 shouldBeEqualToString('highlightedMonthButton()', '2000-09'); | |
| 213 | |
| 214 debug("press up"); | |
| 215 eventSender.keyDown('upArrow'); | |
| 216 shouldBeEqualToString('highlightedMonthButton()', '2000-05'); | |
| 217 | |
| 218 debug("press pageDown"); | |
| 219 eventSender.keyDown('pageDown'); | |
| 220 shouldBeEqualToString('highlightedMonthButton()', '2001-05'); | |
| 221 | |
| 222 debug("press pageUp"); | |
| 223 eventSender.keyDown('pageUp'); | |
| 224 shouldBeEqualToString('highlightedMonthButton()', '2000-05'); | |
| 225 | |
| 226 debug('select month in the month popup'); | |
| 227 eventSender.keyDown('\n'); | |
| 228 shouldBeFalse('popupWindow.global.picker.monthPopupView.isVisible'); | |
| 229 shouldBeEqualToString('currentMonth()', '2000-05'); | |
| 230 shouldBeEqualToString('selectedValue()', '2000-W02'); | |
| 231 shouldBeEqualToString('selectedDayCells()', ''); | |
| 232 shouldBeEqualToString('highlightedValue()', '2000-W02'); | |
| 233 shouldBeEqualToString('highlightedDayCells()', ''); | |
| 234 | |
| 235 debug("focus calendar table"); | |
| 236 popupWindow.global.picker.calendarTableView.element.focus(); | |
| 237 | |
| 238 // Test twice in case midnight. | |
| 239 debug("press t"); | |
| 240 shouldBeTrue('testToday() || testToday()'); | |
| 241 | |
| 242 debug("press esc"); | |
| 243 eventSender.keyDown('\x1B'); | |
| 244 waitUntilClosing(test2AfterClosing); | |
| 245 } | |
| 246 | |
| 247 function test2AfterClosing() { | |
| 248 shouldBeNull('document.getElementById("mock-page-popup")'); | |
| 249 | |
| 250 finishJSTest(); | |
| 251 } | |
| 252 | |
| 253 function testToday() { | |
| 254 eventSender.keyDown('t'); | |
| 255 shouldBeTrue('isCalendarTableScrollingWithAnimation()', true /* quiet */); | |
| 256 var now = new Date(); | |
| 257 var expectedWeek = popupWindow.Week.createFromToday().toString(); | |
| 258 return selectedValue() === expectedWeek && highlightedValue() === expectedWe
ek; | |
| 259 } | |
| 260 | |
| 261 function focusedElement() { | |
| 262 var element = popupWindow.document.activeElement; | |
| 263 if (!element) | |
| 264 return null; | |
| 265 var identifier = "." + element.className; | |
| 266 if (element.value) | |
| 267 identifier += "[value=" + element.value + "]"; | |
| 268 return identifier; | |
| 269 } | |
| 270 | |
| 271 </script> | |
| 272 <script src="../../../../../fast/js/resources/js-test-post.js"></script> | |
| 273 </body> | |
| 274 </html> | |
| OLD | NEW |