blob: 1b43100232a978b6923ac194c67fd31f06837b45 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../../resources/js-test.js"></script>
<script src="../../forms/resources/picker-common.js"></script>
<script src="resources/suggestion-picker-common.js"></script>
</head>
<body style="background-color: #bbbbbb;">
<p id="description"></p>
<div id="console"></div>
<input type=time id=time value="01:00" list=suggestions>
<datalist id=suggestions>
<option label="Now">01:01</option>
<option>01:02</option>
<option>01:03</option>
<option>01:04</option>
<option>01:05</option>
<option>01:06</option>
<option>01:07</option>
<option>01:08</option>
<option>01:09</option>
<option>01:10</option>
<option>01:11</option>
<option>01:12</option>
<option>01:13</option>
<option>01:14</option>
<option>01:15</option>
<option>01:16</option>
<option>01:17</option>
<option>01:18</option>
<option>01:19</option>
<option>01:20</option>
<option>01:21</option>
<option>01:22</option>
<option>01:23</option>
<option>01:24</option>
<option>01:25</option>
<option>01:26</option>
<option>01:27</option>
<option>01:28</option>
<option>01:29</option>
<option>01:30</option>
<option>01:31</option>
<option>01:32</option>
<option>01:33</option>
<option>01:34</option>
<option>01:35</option>
<option>01:36</option>
<option>01:37</option>
<option>01:38</option>
<option>01:39</option>
<option>01:40</option>
<option>01:41</option>
<option>01:42</option>
<option>01:43</option>
<option>01:44</option>
<option>01:45</option>
<option>01:46</option>
<option>01:47</option>
<option>01:48</option>
<option>01:49</option>
<option>01:50</option>
<option>01:51</option>
<option>01:52</option>
<option>01:53</option>
<option>01:54</option>
<option>01:55</option>
<option>01:56</option>
<option>01:57</option>
<option>01:58</option>
<option>01:59</option>
<option>02:00</option>
<option>02:01</option>
<option>02:02</option>
<option>02:03</option>
<option>02:04</option>
<option>02:05</option>
<option>02:06</option>
<option>02:07</option>
<option>02:08</option>
</datalist>
<script>
debug('Check that page popup doesn\'t exist at first.');
shouldBeNull('document.getElementById("mock-page-popup")');
openPicker(document.getElementById('time'), test1);
shouldBeEqualToString('popupWindow.pagePopupController.toString()', '[object PagePopupController]');
function test1() {
debug('Check that page popup exists.');
shouldBeEqualToString('popupWindow.pagePopupController.toString()', '[object PagePopupController]');
popupWindow.focus();
popupWindow.removeEventListener("resize", test1, false);
debug('Check that up/down arrow keys work.');
shouldBeNull('highlightedEntry()');
eventSender.keyDown('downArrow');
shouldBeEqualToString('highlightedEntry()', '01:01');
eventSender.keyDown('downArrow');
shouldBeEqualToString('highlightedEntry()', '01:02');
eventSender.keyDown('upArrow');
shouldBeEqualToString('highlightedEntry()', '01:01');
debug('Check that up arrow key at top of list does nothing.');
eventSender.keyDown('upArrow');
shouldBeEqualToString('highlightedEntry()', '01:01');
eventSender.keyDown('downArrow');
shouldBeEqualToString('highlightedEntry()', '01:02');
debug('Check that page up/down arrow keys work.');
eventSender.keyDown('pageDown');
shouldBeEqualToString('highlightedEntry()', '01:40');
eventSender.keyDown('pageDown');
shouldBeEqualToString('highlightedEntry()', '02:00');
eventSender.keyDown('pageUp');
shouldBeEqualToString('highlightedEntry()', '01:21');
eventSender.keyDown('pageDown');
shouldBeEqualToString('highlightedEntry()', '02:00');
eventSender.keyDown('pageDown');
shouldBeEqualToString('highlightedEntry()', '02:08');
debug('Check that down arrow key at bottom of list does nothing.');
eventSender.keyDown('downArrow');
shouldBeEqualToString('highlightedEntry()', '02:08');
debug('Check that enter key sets the highlighted value.');
eventSender.keyDown('upArrow');
shouldBeEqualToString('highlightedEntry()', '02:07');
eventSender.keyDown("\n");
waitUntilClosing(test1AfterClosing);
}
function test1AfterClosing() {
shouldBeNull('document.getElementById("mock-page-popup")');
shouldBeEqualToString('document.getElementById("time").value', '02:07');
debug('Reopen popup.');
openPicker(document.getElementById('time'));
popupWindow.addEventListener("resize", test2, false);
}
function test2() {
popupWindow.removeEventListener("resize", test2, false);
popupWindow.focus();
debug('Check that escape key closes the popup.');
eventSender.keyDown('escape');
waitUntilClosing(test2AfterClosing);
}
function test2AfterClosing() {
shouldBeNull('document.getElementById("mock-page-popup")');
shouldBeEqualToString('document.getElementById("time").value', '02:07');
eventSender.keyDown('F4');
if (document.getElementById('mock-page-popup'))
testPassed("F4 opened picker.");
finishJSTest();
}
</script>
</body>
</html>