| <!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> |