OLD | NEW |
---|---|
(Empty) | |
1 <title>InputEvent order WRT 'compositionupdate'</title> | |
2 <script src="../../../resources/testharness.js"></script> | |
3 <script src="../../../resources/testharnessreport.js"></script> | |
4 <p id="editable" contenteditable></p> | |
5 <script> | |
6 test(function() { | |
7 assert_not_equals(textInputController, undefined, 'This test requires textIn putController.'); | |
8 | |
9 var eventOrderRecorder = []; | |
10 const editable = document.getElementById('editable'); | |
11 ['beforeinput', 'input', 'compositionstart', 'compositionupdate', 'compositi onend'].forEach( | |
12 eventType => document.addEventListener(eventType, function(event) { | |
13 eventOrderRecorder.push(`${eventType}:${event.inputType}-${event.dat a}-${editable.innerHTML}`); | |
14 }) | |
15 ); | |
16 | |
17 editable.focus(); | |
18 textInputController.setComposition("w"); | |
19 textInputController.setComposition("wo"); | |
20 textInputController.insertText("work"); | |
21 console.log(eventOrderRecorder); | |
22 assert_array_equals(eventOrderRecorder, | |
23 ['compositionstart:undefined--', | |
24 'beforeinput:insertText-w-', | |
25 'compositionupdate:undefined-w-', | |
26 'input:insertText-w-w', | |
27 'beforeinput:insertText-wo-w', | |
28 'compositionupdate:undefined-wo-w', | |
29 'input:insertText-wo-wo', | |
30 'beforeinput:insertText-work-wo', | |
31 'compositionupdate:undefined-work-wo', | |
32 'input:insertText-work-work', | |
33 'compositionend:undefined-work-work'] | |
34 ); | |
chongz
2016/12/20 04:48:59
Added this test to keep track of event order.
| |
35 }, '"compositionupdate" should fire before "input" and after "beforeinput".'); | |
36 </script> | |
OLD | NEW |