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

Unified Diff: LayoutTests/editing/spelling/inline_spelling_markers.html

Issue 49613006: Refactoring inline_spelling_markers.html to use async path for spellcheck (Closed) Base URL: https://chromium.googlesource.com/chromium/blink@master
Patch Set: Use resources/js-test.js and remove js-test-post.js 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 | « LayoutTests/TestExpectations ('k') | LayoutTests/editing/spelling/inline_spelling_markers-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: LayoutTests/editing/spelling/inline_spelling_markers.html
diff --git a/LayoutTests/editing/spelling/inline_spelling_markers.html b/LayoutTests/editing/spelling/inline_spelling_markers.html
index 3669155faa7fa8d440302c404eb0fc3a8b7ea77f..800eaad9c2b2b989fd718b8e403647080c9e8067 100644
--- a/LayoutTests/editing/spelling/inline_spelling_markers.html
+++ b/LayoutTests/editing/spelling/inline_spelling_markers.html
@@ -1,5 +1,7 @@
<html>
<head>
+<script src="../../resources/js-test.js"></script>
+<script src="../../editing/editing.js"></script>
<style>
.testDiv {
width: 200px;
@@ -20,56 +22,88 @@
</style>
+</head>
+<body>
<script>
-function moveCursorOverAllWords(divName, numWords) {
- div = document.getElementById(divName);
- div.focus();
- var selection = window.getSelection();
- // Move to start of text
- selection.modify("move", "backward", "line");
- // Move cursor over all words so inline spellchecking is activated for all
- for (var i = 0; i < 100; i++ ) {
- selection.modify("move", "forward", "word");
- }
- // Remove focus from the element, since the word under the cursor won't have a misspelling marker.
- div.blur();
-}
+description("This tests the correct placement of inline spelling and grammar "
+ + "markers in text. Spelling markers should line up exactly under misspelled "
+ + "words in all cases.");
-function startTest() {
- moveCursorOverAllWords('testLTR');
- moveCursorOverAllWords('testRTL');
- moveCursorOverAllWords('testLTREllipses');
- moveCursorOverAllWords('testRTLEllipses');
+jsTestIsAsync = true;
+if (window.internals) {
+ internals.settings.setUnifiedTextCheckerEnabled(true);
+ internals.settings.setAsynchronousSpellCheckingEnabled(true);
}
+
+if (window.testRunner)
+ testRunner.dumpAsTextWithPixelResults();
+
</script>
-</head>
-<body onload="startTest()">
-<p id="explanation">
-This tests the correct placement of inline spelling and grammar markers in text.<br>
-Spelling markers should line up exactly under misspelled words in all cases.
-</p>
LTR
-<div id="testLTR" class="testDiv" contenteditable="true">
-the the adlj adaasj sdklj. there there
-</div>
+<div id="testLTR" class="testDiv" contenteditable="true">the the adlj adaasj sdklj. there there</div>
RTL
-<div id="testRTL" class="testDiv forcertl" contenteditable="true">
-the the adlj adaasj sdklj. there there
-</div>
-
+<div id="testRTL" class="testDiv forcertl" contenteditable="true">the the adlj adaasj sdklj. there there</div>
LTR (text-overflow:ellipses):
-<div id="testLTREllipses" class="testDiv ellipses" contenteditable="true">
-the the adlj adaasj sdklj. there there
-</div>
+<div id="testLTREllipses" class="testDiv ellipses" contenteditable="true">the the adlj adaasj sdklj. there there</div>
RTL (text-overflow:ellipses):
-<div id="testRTLEllipses" class="testDiv forcertl ellipses" contenteditable="true">
-the the adlj adaasj sdklj. there there
-</div>
+<div id="testRTLEllipses" class="testDiv forcertl ellipses" contenteditable="true">the the adlj adaasj sdklj. there there</div>
+
+<script>
+function moveCursorOverAllWords(id)
+{
+ div = document.getElementById(id);
+ div.focus();
+
+ debug(id + ":");
+ // Move cursor over all words so inline spellchecking is activated for all.
+ for (var i = 0; i < div.innerHTML.length; i++)
+ moveSelectionForwardByWordCommand();
+ verifyMarkers();
+}
+
+function verifyMarkers()
+{
+ if (!window.internals)
+ return done();
+
+ // Take care of spelling markers first.
+ shouldBecomeEqual('internals.hasSpellingMarker(document, 8, 4)', 'true', function() { // Verifies 'adlj'.
+ shouldBecomeEqual('internals.hasSpellingMarker(document, 13, 6)', 'true', function() { // Verifies 'adaasj'.
+ shouldBecomeEqual('internals.hasSpellingMarker(document, 20, 5)', 'true', verifyGrammarMarkers) // Verifies 'sdklj'.
+ })
+ });
+
+ function verifyGrammarMarkers() {
+ shouldBecomeEqual('internals.hasGrammarMarker(document, 4, 3)', 'true', function() { // Verifies second 'the'.
+ shouldBecomeEqual('internals.hasGrammarMarker(document, 33, 5)', 'true', function() { // Verifies second 'there'.
+ // Markers of next element can not be found after modification selection without blur event.
+ div.blur();
+ done();
+ })
+ });
+ }
+}
+
+var tests = [ function() { moveCursorOverAllWords('testLTR'); },
+ function() { moveCursorOverAllWords('testRTL'); },
+ function() { moveCursorOverAllWords('testLTREllipses'); },
+ function() { moveCursorOverAllWords('testRTLEllipses'); } ];
+
+function done()
+{
+ var next = tests.shift();
+ if (next)
+ return window.setTimeout(next, 0);
+
+ finishJSTest();
+}
+done();
+</script>
</body>
</html>
« no previous file with comments | « LayoutTests/TestExpectations ('k') | LayoutTests/editing/spelling/inline_spelling_markers-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698