blob: d49f42c37a1e2be8ca9b8b617dee69fe7fac67c0 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../editing.js"></script>
<script src="resources/util.js"></script>
<script src="../../resources/js-test.js"></script>
</head>
<body onload="test();">
<div id="container">
<div id="test_editable" contentEditable>zz zz zz.</div>
<textarea id="test_textarea">zz zz zz.</textarea>
<input type="text" id="test_textfield" value="zz zz zz."></input>
</div>
<script>
description("Spell checking should be triggered on focus of an editable. "
+ "To test manually, set focus on above elements. The test succeed if "
+ "misspellings are marked.");
jsTestIsAsync = true;
var testEditable = document.getElementById('test_editable');
var testTextArea = document.getElementById('test_textarea');
var testTextField = document.getElementById('test_textfield');
function triggerSpellingForEditables() {
testEditable.focus();
testTextArea.focus();
testTextField.focus();
}
var expectedNumberOfMarkers;
var textNode;
function verifySpellingMarkers(expectation, doneCallback) {
expectedNumberOfMarkers = expectation;
shouldBecomeEqual('internals.markerCountForNode(findFirstTextNode(testEditable), "spelling")', 'expectedNumberOfMarkers', function() {
shouldBecomeEqual('internals.markerCountForNode(findFirstTextNode(testTextArea), "spelling")', 'expectedNumberOfMarkers', function() {
shouldBecomeEqual('internals.markerCountForNode(findFirstTextNode(testTextField), "spelling")', 'expectedNumberOfMarkers', function() {
doneCallback();
// After focusing the editable elements, check whether they have spelling markers.
verifySpellingMarkers(3, finishJSTest);
});
});
});
}
function test() {
if (!window.internals) {
debug("Automatic testing impossible. Test manually.");
return;
}
internals.settings.setUnifiedTextCheckerEnabled(true);
// Check whether non-focused elements do not have spelling markers, then
// verify them when they get focused.
verifySpellingMarkers(0, triggerSpellingForEditables);
}
</script>
</body>
</html>