blob: c823f36eb7c09d9ca51a0b95ba3c485ce7c03a06 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<script src="../editing.js"></script>
<style>
.editing {
border: 2px solid red;
padding: 6px;
font-size: 18px;
}
</style>
</head>
<body>
<pre id="description"></pre>
<pre id="console"></pre>
<div id="container"></div>
<script>
description("The spellchecker should work correctly if unified spellcheck path is used.");
var container = document.getElementById('container');
function removeChildren(node) {
while (node.firstChild)
node.removeChild(node.firstChild);
}
if (window.internals)
internals.settings.setUnifiedTextCheckerEnabled(true);
var testData = [
{ text: 'zz', marked: ['zz'] },
{ text: 'apple,zz,orange', marked: ['zz'] },
{ text: 'zz,zz', marked: ['zz','zz'] },
{ text: 'zz zz zz', marked: ['zz', 'zz', 'zz'] },
{ text: ' zz zz zz ', marked: ['zz', 'zz', 'zz'] },
{ text: 'zz apple orange', marked: ['zz'] },
{ text: 'apple zz orange', marked: ['zz'] },
{ text: 'apple orange zz', marked: ['zz'] },
{ text: 'buzz', marked: [] },
{ text: 'I would like to sleep, buzz', marked: [] }
];
var numMarked;
var len;
var str;
var markedStr;
function performTest(id, data) {
removeChildren(container);
var e = document.createElement('div');
e.setAttribute("contentEditable", "true");
e.className = 'editing';
e.id = id;
container.appendChild(e);
e.focus();
for (var i = 0; i < data.text.length; ++i) {
typeCharacterCommand(data.text[i]);
}
typeCharacterCommand('.');
if (!window.internals)
return;
var e = document.getElementById(id);
numMarked = internals.markerCountForNode(e.firstChild, "spelling");
length = data.marked.length;
shouldBe('numMarked', 'length');
for (var i = 0; i < numMarked; ++i) {
var range = internals.markerRangeForNode(e.firstChild, "spelling", i);
str = range.toString();
markedStr = data.marked[i];
shouldBe('str', 'markedStr');
}
}
for (var i = 0; i < testData.length; ++i) {
performTest('test', testData[i]);
}
if (window.internals)
internals.settings.setUnifiedTextCheckerEnabled(false);
var successfullyParsed = true;
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>