blob: efcf02e3157973ecebc2ea0b183d98cdf720c821 [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=datetime-local id=datetime-local value="2012-11-22T00:00" step="3600" list=suggestions>
<datalist id=suggestions>
<option>2012-11-22T01:00</option>
<option>2012-11-22T01:00:01</option>
<option>2012-11-22T01:00:01.001</option>
<option>2012-11-22T01:00:01.010</option>
<option>2012-11-22T01:01</option>
<option>2012-11-22T02:00</option>
<option>2012-11-22T02:01</option>
</datalist>
<script>
description('Tests that step attribute filter out suggestions as expected.');
debug('Check that page popup doesn\'t exist at first.');
shouldBeNull('document.getElementById("mock-page-popup")');
var datetimeLocalElement = document.getElementById('datetime-local');
window.onload = function() {
openPicker(datetimeLocalElement, test1);
};
function test1() {
popupWindow.focus();
shouldBe('entryValues().length', '3');
shouldBeEqualToString('entryValues()[0]', '2012-11-22T01:00');
shouldBeEqualToString('entryValues()[1]', '2012-11-22T02:00');
shouldBeEqualToString('entryValues()[2]', '@openCalendarPicker');
eventSender.keyDown('Escape'); // Close picker.
waitUntilClosing(test1AfterClosing);
}
function test1AfterClosing() {
datetimeLocalElement.step = 60;
openPicker(datetimeLocalElement, test2);
}
function test2() {
popupWindow.focus();
shouldBe('entryValues().length', '5');
shouldBeEqualToString('entryValues()[0]', '2012-11-22T01:00');
shouldBeEqualToString('entryValues()[1]', '2012-11-22T01:01');
shouldBeEqualToString('entryValues()[2]', '2012-11-22T02:00');
shouldBeEqualToString('entryValues()[3]', '2012-11-22T02:01');
shouldBeEqualToString('entryValues()[4]', '@openCalendarPicker');
eventSender.keyDown('Escape'); // Close picker.
waitUntilClosing(test2AfterClosing);
}
function test2AfterClosing() {
datetimeLocalElement.step = 1;
openPicker(datetimeLocalElement, test3);
}
function test3() {
popupWindow.focus();
shouldBe('entryValues().length', '6');
shouldBeEqualToString('entryValues()[0]', '2012-11-22T01:00');
shouldBeEqualToString('entryValues()[1]', '2012-11-22T01:00:01');
shouldBeEqualToString('entryValues()[2]', '2012-11-22T01:01');
shouldBeEqualToString('entryValues()[3]', '2012-11-22T02:00');
shouldBeEqualToString('entryValues()[4]', '2012-11-22T02:01');
shouldBeEqualToString('entryValues()[5]', '@openCalendarPicker');
eventSender.keyDown('Escape'); // Close picker.
waitUntilClosing(test3AfterClosing);
}
function test3AfterClosing() {
datetimeLocalElement.step = 0.001;
openPicker(datetimeLocalElement, test4);
}
function test4() {
popupWindow.focus();
shouldBe('entryValues().length', '8');
shouldBeEqualToString('entryValues()[0]', '2012-11-22T01:00');
shouldBeEqualToString('entryValues()[1]', '2012-11-22T01:00:01');
shouldBeEqualToString('entryValues()[2]', '2012-11-22T01:00:01.001');
shouldBeEqualToString('entryValues()[3]', '2012-11-22T01:00:01.010');
shouldBeEqualToString('entryValues()[4]', '2012-11-22T01:01');
shouldBeEqualToString('entryValues()[5]', '2012-11-22T02:00');
shouldBeEqualToString('entryValues()[6]', '2012-11-22T02:01');
shouldBeEqualToString('entryValues()[7]', '@openCalendarPicker');
finishJSTest();
}
</script>
</body>
</html>