| To manually test this, insert text via IME and observe the resulting debug messages. |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| |
| * * * First case: typing a new composition * * * |
| beforeinput(inputType = 'insertCompositionText', data = 'a', cancelable = false) |
| input(inputType = 'insertCompositionText', data = 'a', cancelable = false) |
| beforeinput(inputType = 'insertCompositionText', data = 'ab', cancelable = false) |
| input(inputType = 'insertCompositionText', data = 'ab', cancelable = false) |
| beforeinput(inputType = 'insertCompositionText', data = 'abc', cancelable = false) |
| input(inputType = 'insertCompositionText', data = 'abc', cancelable = false) |
| beforeinput(inputType = 'deleteCompositionText', data = 'null', cancelable = false) |
| input(inputType = 'deleteCompositionText', data = 'null', cancelable = false) |
| beforeinput(inputType = 'insertFromComposition', data = 'abc', cancelable = true) |
| input(inputType = 'insertFromComposition', data = 'abc', cancelable = false) |
| compositionend(data = 'abc') |
| * * * Second case: canceling a new composition * * * |
| beforeinput(inputType = 'insertCompositionText', data = 'a', cancelable = false) |
| input(inputType = 'insertCompositionText', data = 'a', cancelable = false) |
| beforeinput(inputType = 'insertCompositionText', data = 'ab', cancelable = false) |
| input(inputType = 'insertCompositionText', data = 'ab', cancelable = false) |
| beforeinput(inputType = 'insertCompositionText', data = ' ', cancelable = false) |
| input(inputType = 'insertCompositionText', data = ' ', cancelable = false) |
| beforeinput(inputType = 'deleteCompositionText', data = 'null', cancelable = false) |
| input(inputType = 'deleteCompositionText', data = 'null', cancelable = false) |
| compositionend(data = '') |
| * * * Third case: replacing a composition * * * |
| beforeinput(inputType = 'insertCompositionText', data = 'a', cancelable = false) |
| input(inputType = 'insertCompositionText', data = 'a', cancelable = false) |
| beforeinput(inputType = 'insertCompositionText', data = 'ab', cancelable = false) |
| input(inputType = 'insertCompositionText', data = 'ab', cancelable = false) |
| beforeinput(inputType = 'insertCompositionText', data = 'cde', cancelable = false) |
| input(inputType = 'insertCompositionText', data = 'cde', cancelable = false) |
| beforeinput(inputType = 'insertCompositionText', data = 'fg', cancelable = false) |
| input(inputType = 'insertCompositionText', data = 'fg', cancelable = false) |
| beforeinput(inputType = 'deleteCompositionText', data = 'null', cancelable = false) |
| input(inputType = 'deleteCompositionText', data = 'null', cancelable = false) |
| beforeinput(inputType = 'insertFromComposition', data = 'fg', cancelable = true) |
| input(inputType = 'insertFromComposition', data = 'fg', cancelable = false) |
| compositionend(data = 'fg') |
| * * * Fourth case: partially committing a composition * * * |
| beforeinput(inputType = 'insertCompositionText', data = 'a', cancelable = false) |
| input(inputType = 'insertCompositionText', data = 'a', cancelable = false) |
| beforeinput(inputType = 'insertCompositionText', data = 'aa', cancelable = false) |
| input(inputType = 'insertCompositionText', data = 'aa', cancelable = false) |
| beforeinput(inputType = 'insertCompositionText', data = 'aaa', cancelable = false) |
| input(inputType = 'insertCompositionText', data = 'aaa', cancelable = false) |
| beforeinput(inputType = 'deleteCompositionText', data = 'null', cancelable = false) |
| input(inputType = 'deleteCompositionText', data = 'null', cancelable = false) |
| beforeinput(inputType = 'insertFromComposition', data = 'a', cancelable = true) |
| input(inputType = 'insertFromComposition', data = 'a', cancelable = false) |
| compositionend(data = 'a') |
| beforeinput(inputType = 'insertCompositionText', data = 'aa', cancelable = false) |
| input(inputType = 'insertCompositionText', data = 'aa', cancelable = false) |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |