REGRESSION (r167845): ASSERT(!m_renderView.needsLayout()) in svg/custom/bug79798...
[WebKit-https.git] / LayoutTests / http / tests / navigation / resources / keyboard-events-test.js
1 function runTest(window)
2 {
3     function eventHandler(event)
4     {
5         console.log(event.type + "event dispatched (isTrusted: " + event.isTrusted + ").");
6     }
7
8     window.addEventListener("keydown", eventHandler, true);
9     window.addEventListener("keypress", eventHandler, true);
10     window.addEventListener("keyup", eventHandler, true);
11     window.addEventListener("compositionstart", eventHandler, true);
12     window.addEventListener("compositionupdate", eventHandler, true);
13     window.addEventListener("compositionend", eventHandler, true);
14     window.addEventListener("textInput", eventHandler, true);
15     window.addEventListener("beforeinput", eventHandler, true);
16     window.addEventListener("input", eventHandler, true);
17
18     var document = window.document;
19
20     console.log("Dispatching untrusted keypress event.");
21     var keyPressEvent = new KeyboardEvent("keypress");
22     document.body.dispatchEvent(keyPressEvent);
23
24     var textInput = document.createElement("input");
25     textInput.type = "text";
26     document.body.appendChild(textInput);
27
28     console.log("Pressing tab.");
29     eventSender.keyDown("\t");
30     console.log("Active element after pressing tab: " + document.activeElement + ".");
31
32     console.log("Pressing \"a\".");
33     eventSender.keyDown("a");
34
35     console.log("Setting marked text to \"b\".");
36     textInputController.setMarkedText("b", 0, 1);
37
38     console.log("Inserting text \"c\".");
39     textInputController.insertText("c");
40
41     console.log("Input element value after text input events: \"" + textInput.value + "\".");
42 }
43
44 function waitForProvisionalNavigation(completionHandler)
45 {
46     // This exploits the fact that XHRs are cancelled when a location change begins.
47     var xhr = new XMLHttpRequest();
48     xhr.onreadystatechange = function() {
49         if (this.readyState === this.DONE)
50             window.setTimeout(completionHandler, 0);
51     };
52     xhr.open("GET", "resources/never-respond.php");
53     xhr.send();
54
55     window.location = "resources/never-respond.php";
56 }