blob: a00a9c06cb6347a386ff06fcffb2ec4f436b4d42 [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>
<script>
doneCount = 0;
lastInputEvent = null;
jsTestIsAsync = true;
function enterTextAndWaitForKeyboardToHide(text) {
return new Promise(async resolve => {
await UIHelper.activateAndWaitForInputSessionAt(100, 100);
UIHelper.waitForKeyboardToHide().then(resolve);
UIHelper.enterText(text);
});
}
async function runTest() {
if (!window.testRunner) {
description(`This test requires WebKitTestRunner.`);
return;
}
await enterTextAndWaitForKeyboardToHide("testing");
inputEventAfterInsertingText = lastInputEvent;
valueAfterInsertingText = field.value;
await enterTextAndWaitForKeyboardToHide("");
inputEventAfterDeletingText = lastInputEvent;
valueAfterDeletingText = field.value;
shouldBe("inputEventAfterInsertingText.type", "'input'");
shouldBe("inputEventAfterInsertingText.inputType", "'insertText'");
shouldBe("inputEventAfterInsertingText.data", "'testing'");
shouldBe("valueAfterInsertingText", "'testing'");
shouldBe("inputEventAfterDeletingText.type", "'input'");
shouldBe("inputEventAfterDeletingText.inputType", "'deleteContent'");
shouldBe("inputEventAfterDeletingText.data", "null");
shouldBe("valueAfterDeletingText", "''");
checkDone();
}
function handleInput(event) {
lastInputEvent = event;
}
function checkDone() {
if (++doneCount === 3)
finishJSTest();
}
</script>
</head>
<body onload="runTest()">
<input id="field" style="width: 320px; height: 568px;" oninput="handleInput(event)" onblur="checkDone()"></input>
</body>
</html>