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

Unified Diff: LayoutTests/editing/spelling/markers-input-type-text.html

Issue 60663005: Refactoring markers-input-type-text.html to use async path for spellcheck (Closed) Base URL: https://chromium.googlesource.com/chromium/blink@master
Patch Set: Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | LayoutTests/editing/spelling/markers-input-type-text-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: LayoutTests/editing/spelling/markers-input-type-text.html
diff --git a/LayoutTests/editing/spelling/markers-input-type-text.html b/LayoutTests/editing/spelling/markers-input-type-text.html
index 9c58585e3d46b95837db51ad3b02f6dac727660a..122585a51609d4894cc9fd49765ea0964a37f6d5 100644
--- a/LayoutTests/editing/spelling/markers-input-type-text.html
+++ b/LayoutTests/editing/spelling/markers-input-type-text.html
@@ -13,44 +13,65 @@
<script src="../../resources/js-test.js"></script>
</head>
<body>
-<pre id="console"></pre>
<textarea id="testTextArea"></textarea><br/>
<input type="text" id="testInput" /><br/>
<br/>
<textarea id="aux"></textarea>
<script>
-description("Markers in text inputs should only be visible if an input is being edited " +
-"but removing markers from the input must not touch other markers." +
-"When testing manually type something misspelled in the first textarea, " +
-"focus the text input and type something with misspellings there too." +
-"Then focus the second text area. Mispelling marks should be removed from the input" +
-"but not for the first textarea. Focus the input again - misspelling marks should be restored.");
+description("Misspelling markers in text inputs should only be visible if an input is being edited "
+ + "but removing markers from the input must not touch other markers. "
+ + "To test manually, focus the text input, then focus the second text area. "
+ + "The test succeed if misspellings were removed from the input "
+ + "but not for the first textarea. Focus the input again - misspelling markers should be restored.");
-var testTextArea = document.getElementById("testTextArea");
-var testInput = document.getElementById("testInput");
-
-if (!window.internals) {
- log("Test manually. See the description for steps.");
- return;
+if (window.internals) {
+ internals.settings.setUnifiedTextCheckerEnabled(true);
+ internals.settings.setAsynchronousSpellCheckingEnabled(true);
}
-internals.settings.setUnifiedTextCheckerEnabled(true);
+jsTestIsAsync = true;
+
+var testTextArea = document.getElementById("testTextArea");
+var testInput = document.getElementById("testInput");
+var auxTextArea = document.getElementById("aux");
typeText(testTextArea, 'zz. ');
-shouldBe('internals.markerCountForNode(findFirstTextNode(testTextArea), "spelling")', '1');
+typeText(testInput, 'zz. ');
-typeText(testInput, 'zz zz zz zz. ');
-shouldBe('internals.markerCountForNode(findFirstTextNode(testInput), "spelling")', '4');
+function verifyMisspellings(e, shouldBeMarked) {
+ if (!window.internals)
+ return;
-document.getElementById("aux").focus();
+ element = e;
+ expectedMarkerCount = shouldBeMarked ? 1 : 0;
+ shouldBecomeEqual('internals.markerCountForNode(findFirstTextNode(element), "spelling")', 'expectedMarkerCount', done);
+}
-shouldBe('internals.markerCountForNode(findFirstTextNode(testInput), "spelling")', '0');
-shouldBe('internals.markerCountForNode(findFirstTextNode(testTextArea), "spelling")', '1');
+function setFocus(e) {
+ e.focus();
+ done();
+}
-testInput.focus();
+var tests = [
+ function() { verifyMisspellings(testInput, true); },
+ function() { verifyMisspellings(testTextArea, true); },
+ function() { setFocus(auxTextArea);}, // Focusing text area should remove markers of input element.
+ function() { verifyMisspellings(testInput, false); },
+ function() { verifyMisspellings(testTextArea, true); },
+ function() { setFocus(testInput); }, // Focusing input element should preserve markers of text area.
+ function() { verifyMisspellings(testInput, true); },
+ function() { verifyMisspellings(testTextArea, true); }
+];
-shouldBe('internals.markerCountForNode(findFirstTextNode(testInput), "spelling")', '4');
-shouldBe('internals.markerCountForNode(findFirstTextNode(testTextArea), "spelling")', '1');
+function done()
+{
+ var next = tests.shift();
+ if (next)
+ return window.setTimeout(next, 0);
+
+ finishJSTest();
+}
+done();
</script>
</body>
</html>
« no previous file with comments | « no previous file | LayoutTests/editing/spelling/markers-input-type-text-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698