blob: e9c1227c3b87ac59d26222ed3104dd6a1f3cc6a7 [file] [log] [blame]
wenson_hsieh@apple.com96830b22016-10-06 04:05:35 +00001<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2<html>
3
4<head>
5 <script src="../../resources/js-test-pre.js"></script>
6 <script>
7 var expectedTargetID = "foo";
8
9 function contentEditable()
10 {
11 return document.querySelector("#foo");
12 }
13
14 function plainText()
15 {
16 return document.querySelector("#bar");
17 }
18
19 function beginTest()
20 {
21 if (!window.eventSender || !window.internals || !window.testRunner)
22 return;
23
24 internals.settings.setInputEventsEnabled(true);
25 testRunner.dumpAsText();
26 contentEditable().focus();
27 eventSender.keyDown("a", []);
28
29 expectedTargetID = "bar";
30 plainText().focus();
31 eventSender.keyDown("b", []);
32 }
33
34 function checkInputEvent(event)
35 {
wenson_hsieh@apple.com2bebcde2016-10-07 23:47:18 +000036 debug("Fired `oninput`!");
wenson_hsieh@apple.com96830b22016-10-06 04:05:35 +000037 shouldBeDefined("event.__lookupGetter__('inputType')");
wenson_hsieh@apple.com3747aa52016-10-10 18:30:03 +000038 shouldBeDefined("event.__lookupGetter__('data')");
wenson_hsieh@apple.com6ed4b152016-10-21 15:51:28 +000039 shouldBeDefined("event.getTargetRanges");
wenson_hsieh@apple.com96830b22016-10-06 04:05:35 +000040 shouldBe("event.target.id", "expectedTargetID");
41 shouldBe("event.bubbles", "true");
42 shouldBe("event.cancelable", "false");
43 shouldBe("event.composed", "true");
44 }
wenson_hsieh@apple.com2bebcde2016-10-07 23:47:18 +000045
46 function checkBeforeInputEvent(event)
47 {
48 debug("Fired `onbeforeinput`!");
49 shouldBeDefined("event.__lookupGetter__('inputType')");
wenson_hsieh@apple.com3747aa52016-10-10 18:30:03 +000050 shouldBeDefined("event.__lookupGetter__('data')");
wenson_hsieh@apple.com6ed4b152016-10-21 15:51:28 +000051 shouldBeDefined("event.getTargetRanges");
wenson_hsieh@apple.com2bebcde2016-10-07 23:47:18 +000052 shouldBe("event.target.id", "expectedTargetID");
53 shouldBe("event.bubbles", "true");
54 shouldBe("event.cancelable", "true");
55 shouldBe("event.composed", "true");
56 }
wenson_hsieh@apple.com96830b22016-10-06 04:05:35 +000057 </script>
58</head>
59
60<body onload=beginTest()>
wenson_hsieh@apple.com2bebcde2016-10-07 23:47:18 +000061 <div id="foo" contenteditable oninput=checkInputEvent(event) onbeforeinput=checkBeforeInputEvent(event)></div>
62 <input id="bar" oninput=checkInputEvent(event) onbeforeinput=checkBeforeInputEvent(event)></input>
wenson_hsieh@apple.com96830b22016-10-06 04:05:35 +000063 <script src="../../resources/js-test-post.js"></script>
64</body>
65
66</html>