| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <title>InputEvent: cancelable</title> | 4 <title>InputEvent: cancelable</title> |
| 5 <script src="../../../resources/testharness.js"></script> | 5 <script src="../../../resources/testharness.js"></script> |
| 6 <script src="../../../resources/testharnessreport.js"></script> | 6 <script src="../../../resources/testharnessreport.js"></script> |
| 7 <style> | 7 <style> |
| 8 div { | 8 div { |
| 9 width: 100px; | 9 width: 100px; |
| 10 height: 100px; | 10 height: 100px; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 assert_not_equals(internals, undefined, 'This test requires internals.'); | 40 assert_not_equals(internals, undefined, 'This test requires internals.'); |
| 41 assert_not_equals(textInputController, undefined, 'This test requires textIn
putController.'); | 41 assert_not_equals(textInputController, undefined, 'This test requires textIn
putController.'); |
| 42 | 42 |
| 43 const editable = document.getElementById('editable'); | 43 const editable = document.getElementById('editable'); |
| 44 const editable1 = document.getElementById('editable1'); | 44 const editable1 = document.getElementById('editable1'); |
| 45 const editable2 = document.getElementById('editable2'); | 45 const editable2 = document.getElementById('editable2'); |
| 46 const kNoncancelableInputTypes = [ | 46 const kNoncancelableInputTypes = [ |
| 47 'insertText', 'insertLineBreak', 'insertParagraph', | 47 'insertText', 'insertLineBreak', 'insertParagraph', |
| 48 'insertCompositionText', 'insertReplacementText', | 48 'insertCompositionText', 'insertReplacementText', |
| 49 'deleteWordBackward', 'deleteWordForward', | 49 'deleteWordBackward', 'deleteWordForward', |
| 50 'deleteLineBackward', 'deleteLineForward', | 50 'deleteSoftLineBackward', 'deleteSoftLineForward', |
| 51 'deleteHardLineBackward', 'deleteHardLineForward', |
| 51 'deleteContentBackward', 'deleteContentForward', | 52 'deleteContentBackward', 'deleteContentForward', |
| 52 ]; | 53 ]; |
| 53 | 54 |
| 54 let lastBeforeInputType = ''; | 55 let lastBeforeInputType = ''; |
| 55 document.addEventListener('beforeinput', t.step_func(event => { | 56 document.addEventListener('beforeinput', t.step_func(event => { |
| 56 lastBeforeInputType = event.inputType; | 57 lastBeforeInputType = event.inputType; |
| 57 assert_equals(kNoncancelableInputTypes.indexOf(event.inputType) === -1,
event.cancelable); | 58 assert_equals(kNoncancelableInputTypes.indexOf(event.inputType) === -1,
event.cancelable); |
| 58 })); | 59 })); |
| 59 | 60 |
| 60 function testKeyDown(key, modifiers, inputType) { | 61 function testKeyDown(key, modifiers, inputType) { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 81 // Deletion | 82 // Deletion |
| 82 const isMacOS = navigator.platform.indexOf('Mac') === 0; | 83 const isMacOS = navigator.platform.indexOf('Mac') === 0; |
| 83 const deleteWordModifier = isMacOS ? 'altKey' : 'ctrlKey'; | 84 const deleteWordModifier = isMacOS ? 'altKey' : 'ctrlKey'; |
| 84 editable.innerHTML = 'abc def</br>123 456'; | 85 editable.innerHTML = 'abc def</br>123 456'; |
| 85 const selection = window.getSelection(); | 86 const selection = window.getSelection(); |
| 86 selection.collapse(editable, 1); // End of first line. | 87 selection.collapse(editable, 1); // End of first line. |
| 87 testKeyDown('Backspace', [], 'deleteContentBackward'); | 88 testKeyDown('Backspace', [], 'deleteContentBackward'); |
| 88 testKeyDown('Delete', [], 'deleteContentForward'); | 89 testKeyDown('Delete', [], 'deleteContentForward'); |
| 89 testKeyDown('Backspace', [deleteWordModifier], 'deleteWordBackward'); | 90 testKeyDown('Backspace', [deleteWordModifier], 'deleteWordBackward'); |
| 90 testKeyDown('Delete', [deleteWordModifier], 'deleteWordForward'); | 91 testKeyDown('Delete', [deleteWordModifier], 'deleteWordForward'); |
| 92 testCommand('deleteToBeginningOfLine', 'deleteSoftLineBackward'); |
| 93 testCommand('deleteToEndOfLine', 'deleteSoftLineForward'); |
| 94 testCommand('deleteToBeginningOfParagraph', 'deleteHardLineBackward'); |
| 95 testCommand('deleteToEndOfParagraph', 'deleteHardLineForward'); |
| 91 | 96 |
| 92 // Format | 97 // Format |
| 93 editable.innerHTML = 'abc'; | 98 editable.innerHTML = 'abc'; |
| 94 selection.collapse(editable, 0); | 99 selection.collapse(editable, 0); |
| 95 selection.extend(editable, 1); | 100 selection.extend(editable, 1); |
| 96 testCommand('bold', 'formatBold'); | 101 testCommand('bold', 'formatBold'); |
| 97 testCommand('italic', 'formatItalic'); | 102 testCommand('italic', 'formatItalic'); |
| 98 testCommand('underline', 'formatUnderline'); | 103 testCommand('underline', 'formatUnderline'); |
| 99 testCommand('strikeThrough', 'formatStrikeThrough'); | 104 testCommand('strikeThrough', 'formatStrikeThrough'); |
| 100 testCommand('superscript', 'formatSuperscript'); | 105 testCommand('superscript', 'formatSuperscript'); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 129 selection.extend(editable, 1); | 134 selection.extend(editable, 1); |
| 130 textInputController.setComposition('word'); | 135 textInputController.setComposition('word'); |
| 131 assert_equals('insertCompositionText', lastBeforeInputType); | 136 assert_equals('insertCompositionText', lastBeforeInputType); |
| 132 | 137 |
| 133 t.done(); | 138 t.done(); |
| 134 }, 'Text input and IME related input types are non-cancelable.'); | 139 }, 'Text input and IME related input types are non-cancelable.'); |
| 135 | 140 |
| 136 </script> | 141 </script> |
| 137 </body> | 142 </body> |
| 138 </html> | 143 </html> |
| OLD | NEW |