1 description('Spelling markers should remain while merging two lines.');
5 if (window
.internals
) {
6 internals
.settings
.setUnifiedTextCheckerEnabled(true);
7 internals
.settings
.setAsynchronousSpellCheckingEnabled(true);
10 var testRoot
= document
.createElement("div");
11 document
.body
.insertBefore(testRoot
, document
.body
.firstChild
);
13 function setup(targetName
)
15 var div
= document
.createElement("div");
17 div
.contentEditable
= true;
18 div
.innerHTML
= "<div>OK</div><div>OK zz OK</div>";
19 testRoot
.appendChild(div
);
22 return document
.getSelection();
25 function firstLineText(targetName
)
27 var div
= document
.getElementById(targetName
);
28 return div
.firstChild
.innerText
.trim();
31 function testTwoLinesMisspellings()
33 window
.sel
= setup("two-lines"); // ^OK
35 sel
.modify("move", "forward", "line"); // ^OK zz OK
36 for (var i
= 0; i
< 3; i
++)
37 sel
.modify("move", "forward", "word");
39 shouldBeEqualToString("firstLineText('two-lines')", "OK");
40 shouldBeEqualToString("sel.anchorNode.data", "OK zz OK");
42 shouldBecomeEqual("internals.hasSpellingMarker(document, 3, 2)", "true", done
);
47 function testMisspellingsAfterLineMergeUsingDelete()
49 window
.sel
= setup("merged-lines-delete-command"); // ^OK
51 sel
.modify("move", "forward", "line"); // ^OK zz OK
52 document
.execCommand("Delete", false); // OK^OK zz OK
53 sel
.modify("move", "right", "line"); // OKOK zz OK^
55 shouldBeEqualToString("firstLineText('merged-lines-delete-command')", "OKOK zz OK");
56 shouldBeEqualToString("sel.anchorNode.data", "OKOK zz OK");
58 shouldBecomeEqual("internals.hasSpellingMarker(document, 5, 2)", "true", done
);
63 function testMisspellingsAfterLineMergeUsingForwardDelete()
65 window
.sel
= setup("merged-lines-forward-delete-command"); // ^OK
67 sel
.modify("move", "forward", "character"); // O^K
68 sel
.modify("move", "forward", "character"); // OK^
69 document
.execCommand("ForwardDelete", false); // OK^OK zz OK
70 sel
.modify("move", "right", "line"); // OKOK zz OK^
72 shouldBeEqualToString("firstLineText('merged-lines-forward-delete-command')", "OKOK zz OK");
73 shouldBeEqualToString("sel.anchorNode.data", "OKOK zz OK");
75 shouldBecomeEqual("internals.hasSpellingMarker(document, 5, 2)", "true", done
);
81 function() { testTwoLinesMisspellings(); },
82 function() { testMisspellingsAfterLineMergeUsingDelete(); },
83 function() { testMisspellingsAfterLineMergeUsingForwardDelete(); }
88 var next
= tests
.shift();
90 return setTimeout(next
, 0);
93 testRoot
.style
.display
= "none";
99 var successfullyParsed
= true;