Range-intersectsNode-2.html (1476B)
1 <!doctype html> 2 <title>Range.intersectsNode</title> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <div id="div"><span id="s0">s0</span><span id="s1">s1</span><span id="s2">s2</span></div> 6 <script> 7 // Taken from Chromium bug: http://crbug.com/822510 8 test(() => { 9 const range = new Range(); 10 const div = document.getElementById('div'); 11 const s0 = document.getElementById('s0'); 12 const s1 = document.getElementById('s1'); 13 const s2 = document.getElementById('s2'); 14 15 // Range encloses s0 16 range.setStart(div, 0); 17 range.setEnd(div, 1); 18 assert_true(range.intersectsNode(s0), '[s0] range.intersectsNode(s0)'); 19 assert_false(range.intersectsNode(s1), '[s0] range.intersectsNode(s1)'); 20 assert_false(range.intersectsNode(s2), '[s0] range.intersectsNode(s2)'); 21 22 // Range encloses s1 23 range.setStart(div, 1); 24 range.setEnd(div, 2); 25 assert_false(range.intersectsNode(s0), '[s1] range.intersectsNode(s0)'); 26 assert_true(range.intersectsNode(s1), '[s1] range.intersectsNode(s1)'); 27 assert_false(range.intersectsNode(s2), '[s1] range.intersectsNode(s2)'); 28 29 // Range encloses s2 30 range.setStart(div, 2); 31 range.setEnd(div, 3); 32 assert_false(range.intersectsNode(s0), '[s2] range.intersectsNode(s0)'); 33 assert_false(range.intersectsNode(s1), '[s2] range.intersectsNode(s1)'); 34 assert_true(range.intersectsNode(s2), '[s2] range.intersectsNode(s2)'); 35 }, 'Range.intersectsNode() simple cases'); 36 </script>