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 ); |
| 35 }, '"compositionupdate" should fire before "input" and after "beforeinput".'); |
| 36 </script> |
OLD | NEW |