| 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 |