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

Side by Side Diff: LayoutTests/editing/spelling/script-tests/spellcheck-paste.js

Issue 23534071: Use shouldBecomeEqual in asynchronous spellchecking tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink@master
Patch Set: Apply Tony's review and use asynchronous spellchecking in two tests Created 7 years, 3 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
OLDNEW
1 1
2 description('For Bug 40092: Spell checking for pasted text.'); 2 description('For Bug 40092: Spell checking for pasted text.');
3 3
4 jsTestIsAsync = true; 4 jsTestIsAsync = true;
5 5
6 var testRoot = document.createElement("div"); 6 var testRoot = document.createElement("div");
7 document.body.insertBefore(testRoot, document.body.firstChild); 7 document.body.insertBefore(testRoot, document.body.firstChild);
8 8
9 var testTextArea = document.createElement("textarea"); 9 var testTextArea = document.createElement("textarea");
10 testRoot.appendChild(testTextArea); 10 testRoot.appendChild(testTextArea);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 { 46 {
47 if (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement) { 47 if (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement) {
48 node.focus(); 48 node.focus();
49 } else { 49 } else {
50 sel.selectAllChildren(node); 50 sel.selectAllChildren(node);
51 } 51 }
52 52
53 var ok = true; 53 var ok = true;
54 for (var i = 0; ok && i < expectedMarked.length; ++i) 54 for (var i = 0; ok && i < expectedMarked.length; ++i)
55 ok = internals.hasSpellingMarker(document, expectedMarked[i][0], expecte dMarked[i][1]); 55 ok = internals.hasSpellingMarker(document, expectedMarked[i][0], expecte dMarked[i][1]);
56
57 if (ok) {
58 var nodeContent = node instanceof HTMLInputElement || node instanceof HT MLTextAreaElement ? node.value : node.innerHTML;
59 testPassed(node.tagName + " has a marker on '" + nodeContent + "'");
60 }
61
56 return ok; 62 return ok;
57 } 63 }
58 64
65 var destination = null;
66 var misspelledLocations = null;
59 function pasteAndVerify(source, dest, expectedMarked) 67 function pasteAndVerify(source, dest, expectedMarked)
60 { 68 {
61 sel.selectAllChildren(source); 69 sel.selectAllChildren(source);
62 document.execCommand("Copy"); 70 document.execCommand("Copy");
63 if (dest instanceof HTMLInputElement || dest instanceof HTMLTextAreaElement) { 71 if (dest instanceof HTMLInputElement || dest instanceof HTMLTextAreaElement) {
64 dest.value = ""; 72 dest.value = "";
65 dest.focus(); 73 dest.focus();
66 } else { 74 } else {
67 dest.innerHTML = ""; 75 dest.innerHTML = "";
68 sel.selectAllChildren(dest); 76 sel.selectAllChildren(dest);
69 } 77 }
70 document.execCommand("Paste"); 78 document.execCommand("Paste");
71 79
72 var nretry = 10; 80 if (window.internals) {
73 var nsleep = 1; 81 destination = dest;
74 function trial() { 82 misspelledLocations = expectedMarked;
75 var verified = verifyMarker(dest, expectedMarked); 83 shouldBecomeEqual('verifyMarker(destination, misspelledLocations)', 'tru e', done);
76 if (verified) { 84 }
77 testPassed(dest.tagName + " has a marker on '" + source.innerHTML + "'");
78 done();
79 return;
80 }
81
82 nretry--;
83 if (0 == nretry) {
84 testFailed(dest.tagName + " should have a marker on '" + source.inne rHTML + "'");
85 done();
86 return;
87 }
88
89 nsleep *= 2;
90 window.setTimeout(trial, nsleep);
91 };
92 trial();
93 }; 85 };
94 86
95 if (window.internals) 87 if (window.internals)
96 internals.settings.setAsynchronousSpellCheckingEnabled(true); 88 internals.settings.setAsynchronousSpellCheckingEnabled(true);
97 89
98 tests.push(function() { pasteAndVerify(testSourcePlain, testInput, [[0, 2]]); }) ; 90 tests.push(function() { pasteAndVerify(testSourcePlain, testInput, [[0, 2]]); }) ;
99 tests.push(function() { pasteAndVerify(testSourceDecorated, testInput, [[0, 2]]) ; }); 91 tests.push(function() { pasteAndVerify(testSourceDecorated, testInput, [[0, 2]]) ; });
100 tests.push(function() { pasteAndVerify(testSourceMulti, testInput, [[0, 2], [3, 2]]); }); 92 tests.push(function() { pasteAndVerify(testSourceMulti, testInput, [[0, 2], [3, 2]]); });
101 93
102 tests.push(function() { pasteAndVerify(testSourcePlain, testTextArea, [[0, 2]]); }); 94 tests.push(function() { pasteAndVerify(testSourcePlain, testTextArea, [[0, 2]]); });
103 tests.push(function() { pasteAndVerify(testSourceDecorated, testTextArea, [[0, 2 ]]); }); 95 tests.push(function() { pasteAndVerify(testSourceDecorated, testTextArea, [[0, 2 ]]); });
104 tests.push(function() { pasteAndVerify(testSourceMulti, testTextArea, [[0, 2], [ 3, 2]]); }); 96 tests.push(function() { pasteAndVerify(testSourceMulti, testTextArea, [[0, 2], [ 3, 2]]); });
105 97
106 tests.push(function() { pasteAndVerify(testSourcePlain, testEditable, [[0, 2]]); }); 98 tests.push(function() { pasteAndVerify(testSourcePlain, testEditable, [[0, 2]]); });
107 tests.push(function() { pasteAndVerify(testSourceDecorated, testEditable, [[0, 1 ]]); }); // To check "fo" part of foo. 99 tests.push(function() { pasteAndVerify(testSourceDecorated, testEditable, [[0, 1 ]]); }); // To check "fo" part of foo.
108 tests.push(function() { pasteAndVerify(testSourceMulti, testEditable, [[0, 2], [ 3, 2]]); }); 100 tests.push(function() { pasteAndVerify(testSourceMulti, testEditable, [[0, 2], [ 3, 2]]); });
109 done(); 101 done();
110 102
111 var successfullyParsed = true; 103 var successfullyParsed = true;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698