blob: 8eb820ff2439963c3a0736beff2db36140d60dce [file] [log] [blame]
<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
<html>
<meta name="viewport" content="width=device-width">
<head>
<script src="../../../resources/js-test.js"></script>
<script src="../../../resources/ui-helper.js"></script>
<style>
body, html {
margin: 0;
width: 100%;
height: 100%;
position: absolute;
}
select {
width: 100%;
height: 80px;
display: block;
}
</style>
<script>
jsTestIsAsync = true;
function selectOptionAtIndexAndWaitForKeyboardToHide(index) {
return new Promise(resolve => {
UIHelper.waitForKeyboardToHide().then(resolve);
UIHelper.selectFormAccessoryPickerRow(index);
});
}
async function runTest() {
// First, tap on the top select and choose the second option. Changing the value of the select causes the
// bottom select to be focused.
await UIHelper.activateAndWaitForInputSessionAt(50, 40);
output.innerHTML += "Choosing second option in top select...<br>";
await selectOptionAtIndexAndWaitForKeyboardToHide(1);
output.innerHTML += `Option two should be selected: ${two.selected}<br>`;
// Now tap on the bottom select and choose the second option. Changing the value of this select causes the
// select to blur, dismissing the input view.
await UIHelper.activateAndWaitForInputSessionAt(50, 120);
output.innerHTML += "Choosing second option in bottom select...<br>";
await selectOptionAtIndexAndWaitForKeyboardToHide(1);
output.innerHTML += `Option four should be selected: ${four.selected}<br>`;
finishJSTest();
}
</script>
</head>
<body onload="runTest()">
<select id="top" onchange="document.getElementById('bottom').focus()">
<option selected>One</option>
<option id="two">Two</option>
</select>
<select id="bottom" onchange="this.blur()">
<option selected>Three</option>
<option id="four">Four</option>
</select>
<pre id="output"></pre>
</body>
</html>