test_bug366946.html (2464B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=366946 5 --> 6 <head> 7 <title>Test for Bug 366946</title> 8 <script src="/tests/SimpleTest/SimpleTest.js"></script> 9 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 10 </head> 11 <body> 12 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=366946">Mozilla Bug 366946</a> 13 <p id="display"></p> 14 <div id="content" style="display: none"> 15 <div id="1"></div> 16 <div id="2"></div> 17 <div id="3"></div> 18 </div> 19 <pre id="test"> 20 <script class="testbody" type="text/javascript"> 21 /** Test for Bug 366946 */ 22 SimpleTest.waitForExplicitFinish(); 23 24 addLoadEvent(function() { 25 var doc1 = document; 26 27 // Set up a new document. 28 var doc2 = document.implementation.createDocument('', '', null); 29 30 // Copy some nodes into doc2 31 var node1 = doc2.importNode(doc1.getElementById('1'), false); 32 var node2 = doc2.importNode(doc1.getElementById('1'), false); 33 node1.appendChild(node2); 34 doc2.appendChild(node1); 35 36 // Create two ranges in doc1 to compare. 37 var range1 = doc1.createRange(); 38 range1.setStart(doc1.getElementById('1'), 0); 39 range1.setEnd(doc1.getElementById('2'), 0); 40 41 var range2 = doc1.createRange(); 42 range2.setStart(doc1.getElementById('2'), 0); 43 range2.setEnd(doc1.getElementById('3'), 0); 44 45 // Create a range in doc2. 46 var range3 = doc2.createRange(); 47 range3.setStart(node1, 0); 48 range3.setEnd(node2, 0); 49 50 // Compare range1 and range2: Should return 1. 51 try { 52 var result1 = range2.compareBoundaryPoints(Range.START_TO_START, range1); 53 } 54 catch (ex) { 55 } 56 ok(result1 === 1, "range1 and range2 are compared correctly."); 57 58 // Compare range1 and range3: Should throw DOMException WRONG_DOCUMENT_ERR. 59 try { 60 var result2 = range3.compareBoundaryPoints(Range.START_TO_START, range1); 61 } 62 catch (ex) { 63 var error = ex.name; 64 var errorCode = ex.code; 65 } 66 67 ok(error == "WrongDocumentError", 68 "The WrongDocumentError exception thrown when comparing ranges from " + 69 "different documents "); 70 ok(errorCode == DOMException.WRONG_DOCUMENT_ERR, 71 "The exception thrown when comparing ranges from different documents " + 72 "has the code DOMException.WRONG_DOCUMENT_ERR"); 73 ok(result2 === undefined, "range1 and range3 couldn't be compared as expected."); 74 SimpleTest.finish(); 75 }); 76 </script> 77 </pre> 78 </body> 79 </html>