| OLD | NEW |
| (Empty) |
| 1 <!doctype html> | |
| 2 <title>Range.intersectsNode() tests</title> | |
| 3 <link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name> | |
| 4 <meta name=timeout content=long> | |
| 5 <div id=log></div> | |
| 6 <script src=../../../../resources/testharness.js></script> | |
| 7 <script src=../../../../resources/testharnessreport.js></script> | |
| 8 <script src=../common.js></script> | |
| 9 <script> | |
| 10 "use strict"; | |
| 11 | |
| 12 // Will be filled in on the first run for that range | |
| 13 var testRangesCached = []; | |
| 14 | |
| 15 for (var i = 0; i < testNodes.length; i++) { | |
| 16 var node = eval(testNodes[i]); | |
| 17 | |
| 18 for (var j = 0; j < testRanges.length; j++) { | |
| 19 test(function() { | |
| 20 if (testRangesCached[j] === undefined) { | |
| 21 try { | |
| 22 testRangesCached[j] = rangeFromEndpoints(eval(testRanges[i])); | |
| 23 } catch(e) { | |
| 24 testRangesCached[j] = null; | |
| 25 } | |
| 26 } | |
| 27 assert_not_equals(testRangesCached[j], null, | |
| 28 "Setting up the range failed"); | |
| 29 | |
| 30 var range = testRangesCached[j].cloneRange(); | |
| 31 | |
| 32 // "If node's root is different from the context object's root, | |
| 33 // return false and terminate these steps." | |
| 34 if (furthestAncestor(node) !== furthestAncestor(range.startContainer)) { | |
| 35 assert_equals(range.intersectsNode(node), false, | |
| 36 "Must return false if node and range have different roots"); | |
| 37 return; | |
| 38 } | |
| 39 | |
| 40 // "Let parent be node's parent." | |
| 41 var parent_ = node.parentNode; | |
| 42 | |
| 43 // "If parent is null, return true and terminate these steps." | |
| 44 if (!parent_) { | |
| 45 assert_equals(range.intersectsNode(node), true, | |
| 46 "Must return true if node's parent is null"); | |
| 47 return; | |
| 48 } | |
| 49 | |
| 50 // "Let offset be node's index." | |
| 51 var offset = indexOf(node); | |
| 52 | |
| 53 // "If (parent, offset) is before end and (parent, offset + 1) is | |
| 54 // after start, return true and terminate these steps." | |
| 55 if (getPosition(parent_, offset, range.endContainer, range.endOffset) ===
"before" | |
| 56 && getPosition(parent_, offset + 1, range.startContainer, range.startOffse
t) === "after") { | |
| 57 assert_equals(range.intersectsNode(node), true, | |
| 58 "Must return true if (parent, offset) is before range end and (parent,
offset + 1) is after range start"); | |
| 59 return; | |
| 60 } | |
| 61 | |
| 62 // "Return false." | |
| 63 assert_equals(range.intersectsNode(node), false, | |
| 64 "Must return false if (parent, offset) is not before range end or (paren
t, offset + 1) is not after range start"); | |
| 65 }, "Node " + i + " " + testNodes[i] + ", range " + j + " " + testRanges[j]); | |
| 66 } | |
| 67 } | |
| 68 | |
| 69 testDiv.style.display = "none"; | |
| 70 </script> | |
| OLD | NEW |