| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../fast/js/resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <div id="source" contenteditable="true" spellcheck="false">You has the right.</div> |
| <div id="target" contenteditable="true" spellcheck="true"></div> |
| |
| <script> |
| description('This tests whether WebKit can render grammar markers when pasting text if it has a grammar-checker. To test manually, copy the text in the first div element and paste it to the second div element. This test succeeds when WebKit renders a grammar marker under a word "has".'); |
| |
| jsTestIsAsync = true; |
| |
| if (window.internals) |
| internals.settings.setAsynchronousSpellCheckingEnabled(true); |
| |
| var retryCount = 10; |
| var sleepPeriod = 1; |
| var ungrammaticalPhrase = 'has'; |
| var hasMarker; |
| function verifyMarker() { |
| hasMarker = internals.hasGrammarMarker(document, target.innerHTML.indexOf(ungrammaticalPhrase), ungrammaticalPhrase.length); |
| if (!hasMarker && --retryCount > 0) { |
| sleepPeriod *= 2; |
| window.setTimeout(verifyMarker, sleepPeriod); |
| return; |
| } |
| |
| shouldBeTrue('hasMarker'); |
| finishJSTest(); |
| }; |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(true); |
| testRunner.setBackingScaleFactor(2, function () { |
| verifyMarker(); |
| }); |
| } |
| |
| var source = document.getElementById('source'); |
| window.getSelection().selectAllChildren(source); |
| document.execCommand('Copy'); |
| var target = document.getElementById('target'); |
| window.getSelection().selectAllChildren(target); |
| document.execCommand('Paste'); |
| |
| </script> |
| <script src="../../fast/js/resources/js-test-post.js"></script> |
| </body> |
| </html> |