haikuwebkit/LayoutTests/fast/forms/ios/input-peripherals-with-vali...

68 lines
2.1 KiB
HTML

<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
<html>
<meta name="viewport" content="width=device-width, initial-scale=1">
<head>
<script src="../../../resources/js-test.js"></script>
<script src="../../../resources/ui-helper.js"></script>
</head>
<body>
<form>
<input type="date" id="date" required>
<br>
<input type="text" id="text" required>
<br>
<input type="submit" id="submit">
</form>
<script>
jsTestIsAsync = true;
description("Test that input peripherals are not presented when focusing form controls with a validation message.");
addEventListener("load", async () => {
if (!window.testRunner)
return;
debug("Tap on submit button with an empty required date input.");
await UIHelper.activateElementAndWaitForInputSession(submit);
shouldBe("document.activeElement", "date");
isShowingValidationMessage = await UIHelper.isShowingPopover();
shouldBeTrue("isShowingValidationMessage");
hasInputSession = await UIHelper.hasInputSession();
shouldBeFalse("hasInputSession");
debug("\nDismiss validation bubble and tap on date input.");
await UIHelper.tapAt(1, 1);
await UIHelper.waitForPopoverToDismiss();
await UIHelper.activateElementAndWaitForInputSession(date);
shouldBe("document.activeElement", "date");
isShowingValidationMessage = await UIHelper.isShowingPopover();
shouldBeFalse("isShowingValidationMessage");
hasInputSession = await UIHelper.hasInputSession();
shouldBeTrue("hasInputSession");
await UIHelper.tapAt(1, 1);
await UIHelper.waitForContextMenuToHide();
// Fill date, so that the text input receives the validation message on submit.
date.value = "2020-10-20";
debug("\nTap on submit button with an empty required text input.");
await UIHelper.activateElementAndWaitForInputSession(submit);
shouldBe("document.activeElement", "text");
isShowingValidationMessage = await UIHelper.isShowingPopover();
shouldBeTrue("isShowingValidationMessage");
hasInputSession = await UIHelper.hasInputSession();
shouldBeTrue("hasInputSession");
finishJSTest();
});
</script>
</body>
</html>