| <!doctype htlml> |
| <title>Range.intersectsNode</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <div id="div"><span id="s0">s0</span><span id="s1">s1</span><span id="s2">s2</span></div> |
| <script> |
| // Taken from Chromium bug: http://crbug.com/822510 |
| test(() => { |
| const range = new Range(); |
| const div = document.getElementById('div'); |
| const s0 = document.getElementById('s0'); |
| const s1 = document.getElementById('s1'); |
| const s2 = document.getElementById('s2'); |
| |
| // Range encloses s0 |
| range.setStart(div, 0); |
| range.setEnd(div, 1); |
| assert_true(range.intersectsNode(s0), '[s0] range.intersectsNode(s0)'); |
| assert_false(range.intersectsNode(s1), '[s0] range.intersectsNode(s1)'); |
| assert_false(range.intersectsNode(s2), '[s0] range.intersectsNode(s2)'); |
| |
| // Range encloses s1 |
| range.setStart(div, 1); |
| range.setEnd(div, 2); |
| assert_false(range.intersectsNode(s0), '[s1] range.intersectsNode(s0)'); |
| assert_true(range.intersectsNode(s1), '[s1] range.intersectsNode(s1)'); |
| assert_false(range.intersectsNode(s2), '[s1] range.intersectsNode(s2)'); |
| |
| // Range encloses s2 |
| range.setStart(div, 2); |
| range.setEnd(div, 3); |
| assert_false(range.intersectsNode(s0), '[s2] range.intersectsNode(s0)'); |
| assert_false(range.intersectsNode(s1), '[s2] range.intersectsNode(s1)'); |
| assert_true(range.intersectsNode(s2), '[s2] range.intersectsNode(s2)'); |
| }, 'Range.intersectsNode() simple cases'); |
| </script> |