| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <script src="../../fast/js/resources/js-test-pre.js"></script> | 4 <script src="../../fast/js/resources/js-test-pre.js"></script> |
| 5 </head> | 5 </head> |
| 6 <body> | 6 <body> |
| 7 <div id="source" contenteditable="true" spellcheck="false">You has the right.</d
iv> | 7 <div id="source" contenteditable="true" spellcheck="false">You has the right.</d
iv> |
| 8 <div id="target" contenteditable="true" spellcheck="true"></div> | 8 <div id="target" contenteditable="true" spellcheck="true"></div> |
| 9 | 9 |
| 10 <script> | 10 <script> |
| 11 description('This tests whether WebKit can render grammar markers when pasting t
ext if it has a grammar-checker. To test manually, copy the text in the first di
v element and paste it to the second div element. This test succeeds when WebKit
renders a grammar marker under a word "has".'); | 11 description('This tests whether WebKit can render grammar markers when pasting t
ext if it has a grammar-checker. To test manually, copy the text in the first di
v element and paste it to the second div element. This test succeeds when WebKit
renders a grammar marker under a word "has".'); |
| 12 | 12 |
| 13 jsTestIsAsync = true; | 13 jsTestIsAsync = true; |
| 14 | 14 |
| 15 if (window.internals) | 15 if (window.internals) |
| 16 internals.settings.setAsynchronousSpellCheckingEnabled(true); | 16 internals.settings.setAsynchronousSpellCheckingEnabled(true); |
| 17 | 17 |
| 18 var retryCount = 10; | 18 function verifyGrammarMarker(destination, ungrammaticalPhrase) |
| 19 var sleepPeriod = 1; | 19 { |
| 20 var ungrammaticalPhrase = 'has'; | 20 if (internals.hasGrammarMarker(document, destination.innerHTML.indexOf(ungra
mmaticalPhrase), ungrammaticalPhrase.length)) { |
| 21 var hasMarker; | 21 testPassed("ungrammatical phrase '" + ungrammaticalPhrase + "' on '" + d
estination.innerHTML + "'"); |
| 22 function verifyMarker() { | 22 return true; |
| 23 hasMarker = internals.hasGrammarMarker(document, target.innerHTML.indexOf(un
grammaticalPhrase), ungrammaticalPhrase.length); | 23 } else |
| 24 if (!hasMarker && --retryCount > 0) { | 24 return false; |
| 25 sleepPeriod *= 2; | 25 } |
| 26 window.setTimeout(verifyMarker, sleepPeriod); | |
| 27 return; | |
| 28 } | |
| 29 | |
| 30 shouldBeTrue('hasMarker'); | |
| 31 finishJSTest(); | |
| 32 }; | |
| 33 | 26 |
| 34 if (window.testRunner) { | 27 if (window.testRunner) { |
| 35 testRunner.dumpAsText(true); | 28 testRunner.dumpAsText(true); |
| 36 testRunner.setBackingScaleFactor(2, function () { | 29 testRunner.setBackingScaleFactor(2, function () { |
| 37 verifyMarker(); | 30 shouldBecomeEqual('verifyGrammarMarker(target, "has")', 'true', finishJS
Test); |
| 38 }); | 31 }); |
| 39 } | 32 } |
| 40 | 33 |
| 41 var source = document.getElementById('source'); | 34 var source = document.getElementById('source'); |
| 42 window.getSelection().selectAllChildren(source); | 35 window.getSelection().selectAllChildren(source); |
| 43 document.execCommand('Copy'); | 36 document.execCommand('Copy'); |
| 44 var target = document.getElementById('target'); | 37 var target = document.getElementById('target'); |
| 45 window.getSelection().selectAllChildren(target); | 38 window.getSelection().selectAllChildren(target); |
| 46 document.execCommand('Paste'); | 39 document.execCommand('Paste'); |
| 47 | 40 |
| 48 </script> | 41 </script> |
| 49 <script src="../../fast/js/resources/js-test-post.js"></script> | 42 <script src="../../fast/js/resources/js-test-post.js"></script> |
| 50 </body> | 43 </body> |
| 51 </html> | 44 </html> |
| OLD | NEW |