Chromium Code Reviews| Index: LayoutTests/editing/spelling/script-tests/spelling-attribute-at-child.js | 
| diff --git a/LayoutTests/editing/spelling/script-tests/spelling-attribute-at-child.js b/LayoutTests/editing/spelling/script-tests/spelling-attribute-at-child.js | 
| index 1810c2897f53e956c422caf56936cb3f6f4ba499..23b9d473ddf00585f27e5388f58bfc1271c2be00 100644 | 
| --- a/LayoutTests/editing/spelling/script-tests/spelling-attribute-at-child.js | 
| +++ b/LayoutTests/editing/spelling/script-tests/spelling-attribute-at-child.js | 
| @@ -1,29 +1,58 @@ | 
| description('Tests if the spellchecker behavior change after the spellcheck attribute changed by the script.'); | 
| +jsTestIsAsync = true; | 
| + | 
| +if (window.internals) { | 
| + internals.settings.setUnifiedTextCheckerEnabled(true); | 
| + internals.settings.setAsynchronousSpellCheckingEnabled(true); | 
| +} | 
| + | 
| var root = document.createElement("div"); | 
| document.body.appendChild(root); | 
| -function childHasSpellingMarker(markup) | 
| +function verifyChildSpellingMarker(markup, expectation) | 
| { | 
| - root.innerHTML = markup; | 
| - var text = document.getElementById("child").firstChild; | 
| - document.getSelection().setPosition(text, 1); | 
| + var testElement = document.createElement("div"); | 
| + testElement.innerHTML = markup; | 
| + root.appendChild(testElement); | 
| + | 
| + var childText = testElement.firstChild.childNodes[1].firstChild; | 
| + document.getSelection().setPosition(childText, 1); // [^] | 
| 
 
tony
2014/03/10 17:07:56
I don't understand the comment. Either write out a
 
grzegorz
2014/03/11 13:24:32
My intention here was to show caret position at th
 
 | 
| document.execCommand("InsertText", false, 'z'); | 
| document.execCommand("InsertText", false, 'z'); | 
| document.execCommand("InsertText", false, ' '); | 
| - var marked = internals.hasSpellingMarker(document, 1, 2); | 
| - root.innerHTML = ""; | 
| - return marked; | 
| + | 
| + if (window.testRunner) { | 
| + debug(escapeHTML(testElement.innerHTML)); | 
| + | 
| + shouldBecomeEqual('internals.hasSpellingMarker(document, 1, 2)', expectation ? "true" : "false", function() { | 
| + debug(""); | 
| + done(); | 
| + }); | 
| + } else | 
| + done(); | 
| } | 
| -shouldBeFalse("childHasSpellingMarker(\"<div contentEditable>Foo <span spellcheck='false' id='child'>[]</span> Baz</div>\")"); | 
| -shouldBeTrue("childHasSpellingMarker(\"<div contentEditable>Foo <span id='child'>[]</span> Baz</div>\")"); | 
| -shouldBeTrue("childHasSpellingMarker(\"<div contentEditable>Foo <span spellcheck='true' id='child'>[]</span> Baz</div>\")"); | 
| -shouldBeFalse("childHasSpellingMarker(\"<div spellcheck='false' contentEditable>Foo <span spellcheck='false' id='child'>[]</span> Baz</div>\")"); | 
| -shouldBeFalse("childHasSpellingMarker(\"<div spellcheck='false' contentEditable>Foo <span id='child'>[]</span> Baz</div>\")"); | 
| -shouldBeTrue("childHasSpellingMarker(\"<div spellcheck='false' contentEditable>Foo <span spellcheck='true' id='child'>[]</span> Baz</div>\")"); | 
| -shouldBeFalse("childHasSpellingMarker(\"<div spellcheck='true' contentEditable>Foo <span spellcheck='false' id='child'>[]</span> Baz</div>\")"); | 
| -shouldBeTrue("childHasSpellingMarker(\"<div spellcheck='true' contentEditable>Foo <span id='child'>[]</span> Baz</div>\")"); | 
| -shouldBeTrue("childHasSpellingMarker(\"<div spellcheck='true' contentEditable>Foo <span spellcheck='true' id='child'>[]</span> Baz</div>\")"); | 
| +var tests = [ | 
| + function() { verifyChildSpellingMarker("<div contentEditable>Foo <span spellcheck='false' id='child'>[]</span> Baz</div>", false); }, | 
| 
 
tony
2014/03/10 17:07:56
This is fine, but it might be easier to refactor o
 
grzegorz
2014/03/11 13:24:32
Thanks. I am not sure if I understood it correctly
 
 | 
| + function() { verifyChildSpellingMarker("<div contentEditable>Foo <span id='child'>[]</span> Baz</div>", true); }, | 
| + function() { verifyChildSpellingMarker("<div contentEditable>Foo <span spellcheck='true' id='child'>[]</span> Baz</div>", true); }, | 
| + function() { verifyChildSpellingMarker("<div spellcheck='false' contentEditable>Foo <span spellcheck='false' id='child'>[]</span> Baz</div>", false); }, | 
| + function() { verifyChildSpellingMarker("<div spellcheck='false' contentEditable>Foo <span id='child'>[]</span> Baz</div>", false); }, | 
| + function() { verifyChildSpellingMarker("<div spellcheck='false' contentEditable>Foo <span spellcheck='true' id='child'>[]</span> Baz</div>", true); }, | 
| + function() { verifyChildSpellingMarker("<div spellcheck='true' contentEditable>Foo <span spellcheck='false' id='child'>[]</span> Baz</div>", false); }, | 
| + function() { verifyChildSpellingMarker("<div spellcheck='true' contentEditable>Foo <span id='child'>[]</span> Baz</div>", true); }, | 
| + function() { verifyChildSpellingMarker("<div spellcheck='true' contentEditable>Foo <span spellcheck='true' id='child'>[]</span> Baz</div>", true); } | 
| +]; | 
| + | 
| +function done() | 
| +{ | 
| + var next = tests.shift(); | 
| + if (next) | 
| + return setTimeout(next, 0); | 
| + | 
| + finishJSTest(); | 
| +} | 
| +done(); | 
| var successfullyParsed = true; |