| <!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> |