Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(426)

Side by Side Diff: LayoutTests/fast/events/script-tests/event-input-contentEditable.js

Issue 14969020: Avoid adding placeholder when deleting last text in root (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fixed bad TestExpectations behavior and unnecessary results churn. Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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>', "<br>"); 54 var target3 = setupForFiringTest('<p id="target3" contentEditable>This text shou ldn be deleted.</p>', '');
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
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>', '<br>'); 91 var target8 = setupForFiringTest('<p id="target8" contentEditable>Deleted</p>', '');
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();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698