| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| <script src="resources/util.js"></script> |
| </head> |
| <body> |
| <div id="container"> |
| <div id="destination" contentEditable></div> |
| </div> |
| |
| <script> |
| |
| description("WebKit should not crash after the text has changed and results are served from cache." |
| + " To test manually, type 'Spell wellcome. Is it broken?', delete the words 'Is it broken?'." |
| + " The test succeeds when WebKit does not crash and 'wellcome' has spelling marker."); |
| |
| initSpellTest("destination", "Spell wellcome. Is it broken?", function(textNode) { |
| misspellingString = () => { |
| const range = internals.markerRangeForNode(textNode, "spelling", 0); |
| return range ? range.toString() : null; |
| }; |
| // Select the text "Is it broken?". |
| var deleteRange = document.createRange(); |
| deleteRange.setStart(textNode, 15); |
| deleteRange.setEnd(textNode, 29); |
| window.getSelection().removeAllRanges(); |
| window.getSelection().addRange(deleteRange); |
| shouldBeEqualToString("window.getSelection().toString()", " Is it broken?"); |
| // Del key to delete the text "Is it broken?". |
| eventSender.keyDown(String.fromCharCode(0x007F), null); |
| shouldBecomeEqualToString("misspellingString()", "wellcome", function() { |
| document.getElementById("destination").innerHTML = ""; |
| finishJSTest(); |
| }); |
| }); |
| |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |