Chromium Code Reviews| 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 |