| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../editing.js"></script> |
| <script src="resources/util.js"></script> |
| <script src="../../resources/js-test.js"></script> |
| </head> |
| <body> |
| <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; |
| |
| function findFirstTextNodeOf(id) { |
| return findFirstTextNode(document.getElementById(id)); |
| } |
| |
| var expectedNumberOfMarkers = "0"; |
| function checkMarkersFor(elementID, doFocus, continuation) { |
| var element = document.getElementById(elementID); |
| if (doFocus) |
| element.focus(); |
| shouldBecomeEqual('internals.markerCountForNode(findFirstTextNodeOf("' + elementID + '"), "spelling")', expectedNumberOfMarkers, continuation); |
| } |
| |
| function verifySpellingMarkers(doFocus, doneCallback) { |
| checkMarkersFor('test_editable', doFocus, function () { |
| checkMarkersFor('test_textarea', doFocus, function () { |
| checkMarkersFor('test_textfield', doFocus, function () { |
| doneCallback && doneCallback(); |
| // After focusing the editable elements, check whether they have spelling markers. |
| expectedNumberOfMarkers = "3"; |
| verifySpellingMarkers(true, 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(false); |
| } |
| test(); |
| </script> |
| </body> |
| </html> |