| OLD | NEW |
| 1 description("This tests that the input events are dispatched when contentEditabl
e nodes are edited"); | 1 description("This tests that the input events are dispatched when contentEditabl
e nodes are edited"); |
| 2 | 2 |
| 3 var actualInputEventCount = 0; | 3 var actualInputEventCount = 0; |
| 4 var expectedInputEventCount = 0; | 4 var expectedInputEventCount = 0; |
| 5 | 5 |
| 6 function fired(evt, expectedId, expectedText) | 6 function fired(evt, expectedId, expectedText) |
| 7 { | 7 { |
| 8 actualInputEventCount++; | 8 actualInputEventCount++; |
| 9 shouldBe("event.target.id", "'" + expectedId + "'"); | 9 shouldBe("event.target.id", "'" + expectedId + "'"); |
| 10 shouldBe("event.target.innerHTML", "'" + expectedText + "'"); | 10 shouldBe("event.target.innerHTML", "'" + expectedText + "'"); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 var target1 = makeTestTarget('<p id="target1" contentEditable>Text should be ins
ert via script:</p>'); | 44 var target1 = makeTestTarget('<p id="target1" contentEditable>Text should be ins
ert via script:</p>'); |
| 45 target1.addEventListener("input", function(evt) { testFailed("should not be reac
hed"); }); | 45 target1.addEventListener("input", function(evt) { testFailed("should not be reac
hed"); }); |
| 46 target1.firstChild.data += "Text"; | 46 target1.firstChild.data += "Text"; |
| 47 | 47 |
| 48 // An event should be dispatched even if resulting DOM tree doesn't change after
the edit. (with replacing it) | 48 // An event should be dispatched even if resulting DOM tree doesn't change after
the edit. (with replacing it) |
| 49 var target2Text = "This text should not be changed."; | 49 var target2Text = "This text should not be changed."; |
| 50 var target2 = setupForFiringTest('<p id="target2" contentEditable>This text shou
ld not be changed.</p>', target2Text); | 50 var target2 = setupForFiringTest('<p id="target2" contentEditable>This text shou
ld not be changed.</p>', target2Text); |
| 51 document.execCommand("insertText", false, target2Text); | 51 document.execCommand("insertText", false, target2Text); |
| 52 | 52 |
| 53 // An "delete" command should dispatch an input event. | 53 // An "delete" command should dispatch an input event. |
| 54 var target3 = setupForFiringTest('<p id="target3" contentEditable>This text shou
ldn be deleted.</p>', ''); | 54 var target3 = setupForFiringTest('<p id="target3" contentEditable>This text shou
ldn be deleted.</p>', "<br>"); |
| 55 document.execCommand("delete", false); | 55 document.execCommand("delete", false); |
| 56 | 56 |
| 57 // A command other than text-editing should dispatch an input event. | 57 // A command other than text-editing should dispatch an input event. |
| 58 // Also note that createLink is a composite command, | 58 // Also note that createLink is a composite command, |
| 59 // so this test also ensures that even composite command dispatches the event on
ly once. | 59 // so this test also ensures that even composite command dispatches the event on
ly once. |
| 60 var target4 = setupForFiringTest('<p id="target4" contentEditable>This text shou
ld be a link.</p>', "<a href=\"http://www.example.com/\">This text should be a l
ink.</a>"); | 60 var target4 = setupForFiringTest('<p id="target4" contentEditable>This text shou
ld be a link.</p>', "<a href=\"http://www.example.com/\">This text should be a l
ink.</a>"); |
| 61 document.execCommand("createLink", false, "http://www.example.com/"); | 61 document.execCommand("createLink", false, "http://www.example.com/"); |
| 62 | 62 |
| 63 // An event shouldn't be dispatched to a 'display:none' node. | 63 // An event shouldn't be dispatched to a 'display:none' node. |
| 64 var target5 = makeTestTarget('<p id="target5" contentEditable>This will not be r
endered.</p>'); | 64 var target5 = makeTestTarget('<p id="target5" contentEditable>This will not be r
endered.</p>'); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 81 target6end.addEventListener("input", function(evt) { testFailed("should not be r
eached"); }); | 81 target6end.addEventListener("input", function(evt) { testFailed("should not be r
eached"); }); |
| 82 target6middle.addEventListener("input", function(evt) { fired(evt, "target6end",
""); }); | 82 target6middle.addEventListener("input", function(evt) { fired(evt, "target6end",
""); }); |
| 83 sel.selectAllChildren(target6parent); | 83 sel.selectAllChildren(target6parent); |
| 84 document.execCommand("createLink", false, "http://www.example.com/"); | 84 document.execCommand("createLink", false, "http://www.example.com/"); |
| 85 | 85 |
| 86 // Ensure key events can cause the event | 86 // Ensure key events can cause the event |
| 87 var target7 = setupForFiringTest('<p id="target7" contentEditable>Replaced</p>',
"X"); | 87 var target7 = setupForFiringTest('<p id="target7" contentEditable>Replaced</p>',
"X"); |
| 88 sel.selectAllChildren(target7); | 88 sel.selectAllChildren(target7); |
| 89 eventSender.keyDown('X'); | 89 eventSender.keyDown('X'); |
| 90 | 90 |
| 91 var target8 = setupForFiringTest('<p id="target8" contentEditable>Deleted</p>',
''); | 91 var target8 = setupForFiringTest('<p id="target8" contentEditable>Deleted</p>',
'<br>'); |
| 92 sel.selectAllChildren(target8); | 92 sel.selectAllChildren(target8); |
| 93 eventSender.keyDown('delete'); | 93 eventSender.keyDown('delete'); |
| 94 | 94 |
| 95 var target9parent = makeTestTarget('<div id="target9parent" contenteditable><div
id="target9child" contenteditable>foo</div></div>'); | 95 var target9parent = makeTestTarget('<div id="target9parent" contenteditable><div
id="target9child" contenteditable>foo</div></div>'); |
| 96 var target9child = document.getElementById('target9child'); | 96 var target9child = document.getElementById('target9child'); |
| 97 target9child.addEventListener("input", function(evt) { testFailed("should not be
reached"); }); | 97 target9child.addEventListener("input", function(evt) { testFailed("should not be
reached"); }); |
| 98 target9parent.addEventListener("input", function(evt) { fired(evt, target9parent
.id, '<div id="target9child" contenteditable="">Replacing</div>'); }); | 98 target9parent.addEventListener("input", function(evt) { fired(evt, target9parent
.id, '<div id="target9child" contenteditable="">Replacing</div>'); }); |
| 99 sel.selectAllChildren(target9child); | 99 sel.selectAllChildren(target9child); |
| 100 document.execCommand("insertText", false, "Replacing"); | 100 document.execCommand("insertText", false, "Replacing"); |
| 101 expectedInputEventCount++; | 101 expectedInputEventCount++; |
| 102 | 102 |
| 103 var target10parent = makeTestTarget('<div id="t10parent" contenteditable><div id
="t10child" contenteditable=false><div id="t10gch" contenteditable>foo</div></di
v></div>'); | 103 var target10parent = makeTestTarget('<div id="t10parent" contenteditable><div id
="t10child" contenteditable=false><div id="t10gch" contenteditable>foo</div></di
v></div>'); |
| 104 var target10child = document.getElementById("t10child"); | 104 var target10child = document.getElementById("t10child"); |
| 105 var target10gch = document.getElementById("t10gch"); | 105 var target10gch = document.getElementById("t10gch"); |
| 106 target10gch.addEventListener("input", function(evt) { fired(evt, target10gch.id,
'Replacing'); }); | 106 target10gch.addEventListener("input", function(evt) { fired(evt, target10gch.id,
'Replacing'); }); |
| 107 sel.selectAllChildren(target10gch); | 107 sel.selectAllChildren(target10gch); |
| 108 document.execCommand("insertText", false, "Replacing"); | 108 document.execCommand("insertText", false, "Replacing"); |
| 109 expectedInputEventCount++; | 109 expectedInputEventCount++; |
| 110 | 110 |
| 111 shouldBe("expectedInputEventCount", "actualInputEventCount"); | 111 shouldBe("expectedInputEventCount", "actualInputEventCount"); |
| 112 clearTestTarget(); | 112 clearTestTarget(); |
| OLD | NEW |