OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <title>InputEvent: beforeinput for Cut and Paste</title> | 4 <title>InputEvent: beforeinput for Cut and Paste</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 </head> | 7 </head> |
8 <body> | 8 <body> |
9 <p id="editable" contenteditable></p> | 9 <p id="editable" contenteditable></p> |
10 <script> | 10 <script> |
(...skipping 22 matching lines...) Expand all Loading... |
33 testClipboardEventOrder('Paste', ['paste', 'beforeinput', 'input']); | 33 testClipboardEventOrder('Paste', ['paste', 'beforeinput', 'input']); |
34 }, 'Testing Cut and Paste ordering'); | 34 }, 'Testing Cut and Paste ordering'); |
35 | 35 |
36 test(function() { | 36 test(function() { |
37 assert_not_equals(window.eventSender, undefined, 'This test requires eventSe
nder.'); | 37 assert_not_equals(window.eventSender, undefined, 'This test requires eventSe
nder.'); |
38 var editable = document.getElementById('editable'); | 38 var editable = document.getElementById('editable'); |
39 | 39 |
40 var lastPlainTextData = ""; | 40 var lastPlainTextData = ""; |
41 var lastHTMLData = ""; | 41 var lastHTMLData = ""; |
42 editable.addEventListener('beforeinput', event => { | 42 editable.addEventListener('beforeinput', event => { |
43 assert_equals(event.data, null, 'Cut&Paste should have null |data| field
') | 43 assert_equals(event.data, "", 'Cut&Paste should have empty plain text |d
ata| field') |
44 lastPlainTextData = event.dataTransfer ? event.dataTransfer.getData('tex
t/plain') : null; | 44 lastPlainTextData = event.dataTransfer ? event.dataTransfer.getData('tex
t/plain') : null; |
45 lastHTMLData = event.dataTransfer ? event.dataTransfer.getData('text/htm
l') : null; | 45 lastHTMLData = event.dataTransfer ? event.dataTransfer.getData('text/htm
l') : null; |
46 }); | 46 }); |
47 function testClipboardDataTransfer(command, expectedPlainText, expectedHTML)
{ | 47 function testClipboardDataTransfer(command, expectedPlainText, expectedHTML)
{ |
48 lastPlainTextData = ""; | 48 lastPlainTextData = ""; |
49 lastHTMLData = ""; | 49 lastHTMLData = ""; |
50 eventSender.keyDown(command); | 50 eventSender.keyDown(command); |
51 assert_equals(lastPlainTextData, expectedPlainText, `Testing ${command}
getData('text/plain')`); | 51 assert_equals(lastPlainTextData, expectedPlainText, `Testing ${command}
getData('text/plain')`); |
52 if (expectedHTML && expectedHTML.test) { | 52 if (expectedHTML && expectedHTML.test) { |
53 assert_regexp_match(lastHTMLData, expectedHTML, `Testing ${command}
getData('text/html')`); | 53 assert_regexp_match(lastHTMLData, expectedHTML, `Testing ${command}
getData('text/html')`); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 selection.extend(editable, 1); | 85 selection.extend(editable, 1); |
86 // The text won't be removed but should still update Clipboard. | 86 // The text won't be removed but should still update Clipboard. |
87 eventSender.keyDown('Cut'); | 87 eventSender.keyDown('Cut'); |
88 selection.collapse(editable, 0); | 88 selection.collapse(editable, 0); |
89 eventSender.keyDown('Paste'); | 89 eventSender.keyDown('Paste'); |
90 assert_equals(editable.innerHTML, 'abcabc', 'Testing Cut.preventDefault() an
d Paste.') | 90 assert_equals(editable.innerHTML, 'abcabc', 'Testing Cut.preventDefault() an
d Paste.') |
91 }, 'Testing Cut and Paste preventDefault()'); | 91 }, 'Testing Cut and Paste preventDefault()'); |
92 </script> | 92 </script> |
93 </body> | 93 </body> |
94 </html> | 94 </html> |
OLD | NEW |