[GTK][WPE] File and Directory Entries API is not enabled
[WebKit-https.git] / LayoutTests / fast / events / ime-compositionend-on-selection-change.html
1 <!DOCTYPE html>
2 <html>
3 <body>
4     <p>To manually test, start editing a composition in the input field and focus the contenteditable without committing
5     the composition. A compositionend event should be logged, with the event target being the input field. Next, insert
6     a pending composition in the contenteditable and focus the input. A compositionend should be logged, with the event
7     target being the contenteditable. Then insert a pending composition in the input field and focus the document. A
8     compositionend event should be logged with the target being the input field. Lastly, insert a pending composition in
9     the rich contenteditable and click and drag to select all the text in the contenteditable. A compositionend event
10     should be fired on the contenteditable.</p>
11     <input id="plain"></input>
12     <div id="rich" contenteditable style="border: 1px dashed"></div>
13     <div id="output"></div>
14     <script type="text/javascript">
15         let write = s => output.innerHTML += `${s}<br>`;
16         plain.addEventListener("compositionend", logCompositionEnd);
17         rich.addEventListener("compositionend", logCompositionEnd);
18         plain.focus();
19
20         if (window.testRunner && window.textInputController) {
21             testRunner.dumpAsText();
22
23             write("");
24             write("1. Editing the plain input field");
25             textInputController.setMarkedText("a", 1, 0);
26             write("   Focusing the rich contenteditable");
27             rich.focus();
28
29             write("");
30             write("2. Editing the rich contenteditable");
31             textInputController.setMarkedText("b", 1, 0);
32             write("   Focusing the plain input field");
33             plain.focus();
34
35             write("");
36             write("3. Editing the plain input field again");
37             textInputController.setMarkedText("c", 1, 0);
38             write("   Blurring the plain input field");
39             plain.blur();
40
41             write("");
42             write("4. Editing the rich contenteditable again");
43             rich.focus();
44             textInputController.setMarkedText("d", 1, 0);
45             textInputController.setMarkedText("de", 2, 0);
46             textInputController.setMarkedText("def", 3, 0);
47             write("   Changing selection within the rich contenteditable");
48             document.execCommand("SelectAll");
49         }
50
51         function logCompositionEnd(event)
52         {
53             write(`PASS: Dispatched compositionend on &lt;${event.target.tagName} id="${event.target.id}"&gt;`);
54         }
55     </script>
56 </body>
57 </html>