| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |  | 
| 2 <html> |  | 
| 3 <head> |  | 
| 4 <script src="../../resources/js-test.js"></script> |  | 
| 5 </head> |  | 
| 6 <body> |  | 
| 7 <p id="description"></p> |  | 
| 8 <div id="console"></div> |  | 
| 9 <script> |  | 
| 10 |  | 
| 11 description('For bug cr571988: Spell checking for pasted mixed content.'); |  | 
| 12 |  | 
| 13 jsTestIsAsync = true; |  | 
| 14 if (window.testRunner) |  | 
| 15     testRunner.setMockSpellCheckerEnabled(true); |  | 
| 16 |  | 
| 17 var testRoot = document.createElement("div"); |  | 
| 18 document.body.insertBefore(testRoot, document.body.firstChild); |  | 
| 19 |  | 
| 20 var testEditable = document.createElement("div"); |  | 
| 21 testEditable.setAttribute("contentEditable", "true"); |  | 
| 22 testRoot.appendChild(testEditable); |  | 
| 23 |  | 
| 24 var testSourceDecorated = document.createElement("div"); |  | 
| 25 testSourceDecorated.innerHTML = "<img src='../resources/abe.png'> zz zz."; |  | 
| 26 testRoot.appendChild(testSourceDecorated); |  | 
| 27 |  | 
| 28 var sel = window.getSelection(); |  | 
| 29 |  | 
| 30 var tests = []; |  | 
| 31 |  | 
| 32 function done() |  | 
| 33 { |  | 
| 34     var next = tests.shift(); |  | 
| 35     if (next) |  | 
| 36         return window.setTimeout(next, 0); |  | 
| 37     testRoot.style.display = "none"; |  | 
| 38     finishJSTest(); |  | 
| 39 } |  | 
| 40 |  | 
| 41 function verifyMarker(node, expectedMarked) |  | 
| 42 { |  | 
| 43     if (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement)
     { |  | 
| 44         node.focus(); |  | 
| 45     } else { |  | 
| 46         sel.selectAllChildren(node); |  | 
| 47     } |  | 
| 48 |  | 
| 49     var count = 0; |  | 
| 50     for (var i = 0; i < node.childNodes.length; ++i) |  | 
| 51         count += internals.markerCountForNode(node.childNodes[i], 'spelling'); |  | 
| 52 |  | 
| 53     if (count == expectedMarked) { |  | 
| 54         var nodeContent = node instanceof HTMLInputElement || node instanceof HT
    MLTextAreaElement ? node.value : node.innerHTML; |  | 
| 55         testPassed(node.tagName + " has " + expectedMarked + " markers on '" + n
    odeContent + "'"); |  | 
| 56     } |  | 
| 57 |  | 
| 58     return count == expectedMarked; |  | 
| 59 } |  | 
| 60 |  | 
| 61 var destination = null; |  | 
| 62 var misspelledCount = null; |  | 
| 63 function pasteAndVerify(source, dest, expectedMarked) |  | 
| 64 { |  | 
| 65     sel.selectAllChildren(source); |  | 
| 66     document.execCommand("Copy"); |  | 
| 67     if (dest instanceof HTMLInputElement || dest instanceof HTMLTextAreaElement)
     { |  | 
| 68         dest.value = ""; |  | 
| 69         dest.focus(); |  | 
| 70     } else { |  | 
| 71         dest.innerHTML = ""; |  | 
| 72         sel.selectAllChildren(dest); |  | 
| 73     } |  | 
| 74     document.execCommand("Paste"); |  | 
| 75 |  | 
| 76     if (window.internals) { |  | 
| 77         destination = dest; |  | 
| 78         misspelledCount = expectedMarked; |  | 
| 79         shouldBecomeEqual('verifyMarker(destination, misspelledCount)', 'true', 
    done); |  | 
| 80     } |  | 
| 81 }; |  | 
| 82 |  | 
| 83 tests.push(function() { pasteAndVerify(testSourceDecorated, testEditable, testSo
    urceDecorated.innerHTML.match(/zz/g).length); }); |  | 
| 84 done(); |  | 
| 85 |  | 
| 86 var successfullyParsed = true; |  | 
| 87 </script> |  | 
| 88 </body> |  | 
| 89 </html> |  | 
| OLD | NEW | 
|---|