69 lines
2.3 KiB
HTML
69 lines
2.3 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<script>
|
|
var expectedTargetID = "foo";
|
|
|
|
function contentEditable()
|
|
{
|
|
return document.querySelector("#foo");
|
|
}
|
|
|
|
function plainText()
|
|
{
|
|
return document.querySelector("#bar");
|
|
}
|
|
|
|
function beginTest()
|
|
{
|
|
if (!window.eventSender || !window.internals || !window.testRunner)
|
|
return;
|
|
|
|
internals.settings.setInputEventsEnabled(true);
|
|
testRunner.dumpAsText();
|
|
contentEditable().focus();
|
|
eventSender.keyDown("a", []);
|
|
|
|
expectedTargetID = "bar";
|
|
plainText().focus();
|
|
eventSender.keyDown("b", []);
|
|
}
|
|
|
|
function checkInputEvent(event)
|
|
{
|
|
debug("Fired `oninput`!");
|
|
shouldBeDefined("event.__lookupGetter__('inputType')");
|
|
shouldBeDefined("event.__lookupGetter__('data')");
|
|
shouldBeDefined("event.__lookupGetter__('dataTransfer')");
|
|
shouldBeDefined("event.getTargetRanges");
|
|
shouldBe("event.target.id", "expectedTargetID");
|
|
shouldBe("event.bubbles", "true");
|
|
shouldBe("event.cancelable", "false");
|
|
shouldBe("event.composed", "true");
|
|
}
|
|
|
|
function checkBeforeInputEvent(event)
|
|
{
|
|
debug("Fired `onbeforeinput`!");
|
|
shouldBeDefined("event.__lookupGetter__('inputType')");
|
|
shouldBeDefined("event.__lookupGetter__('data')");
|
|
shouldBeDefined("event.__lookupGetter__('dataTransfer')");
|
|
shouldBeDefined("event.getTargetRanges");
|
|
shouldBe("event.target.id", "expectedTargetID");
|
|
shouldBe("event.bubbles", "true");
|
|
shouldBe("event.cancelable", "true");
|
|
shouldBe("event.composed", "true");
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body onload=beginTest()>
|
|
<div id="foo" contenteditable oninput=checkInputEvent(event) onbeforeinput=checkBeforeInputEvent(event)></div>
|
|
<input id="bar" oninput=checkInputEvent(event) onbeforeinput=checkBeforeInputEvent(event)></input>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
|
|
</html>
|