blob: 5544307273d2e83156d7b3200667a688a191b525 [file] [log] [blame]
<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
<html>
<head>
<meta name="viewport" content="width=device-width">
<script src="../../../resources/js-test.js"></script>
<script src="../form-validation.js"></script>
<script>
jsTestIsAsync = true;
function getTapAtPointUIScript(x, y)
{
return `
(function() {
uiController.singleTapAtPoint(${x}, ${y}, function() {
uiController.uiScriptComplete('');
});
})();`
}
function doTap()
{
return new Promise((resolve) => {
testRunner.runUIScript(getTapAtPointUIScript(70, 70), function() {
resolve();
});
});
}
function tapUntilBubbleIsDismissed()
{
// There is a small amount of time after we ask to show the popover before the popover is actually shown on screen.
// During this period, clicks are eaten and not reported to the view. For this reason, we keep tapping until the
// popup is dismissed.
return new Promise((resolve) => {
doTap().then(() => {
getValidationMessage().then((message) => {
if (message === "") {
resolve();
return;
}
tapUntilBubbleIsDismissed().then(resolve);
});
});
});
}
function doTest()
{
if (!testRunner.runUIScript)
return;
description("Tests that tapping the view dismisses the HTML form validation popover.");
document.getElementById("testSubmitButton").click();
getValidationMessage().then((_message) => {
if (_message !== "Select this checkbox")
testFailed("Unexpected validation message: " + _message);
tapUntilBubbleIsDismissed().then(() => {
testPassed("Validation bubble was dismissed on tap");
finishJSTest();
});
});
}
window.addEventListener('load', doTest, false);
</script>
</head>
<body>
<form>
<input type="checkbox" id="testInput" required><input type="submit" id="testSubmitButton">
</form>
</body>
</html>