blob: 026280d6b8c252c8c9486977d31a32d6d211f701 [file] [log] [blame]
Aryeh Gregorcee936a2011-10-24 20:28:531<!doctype html>
Aryeh Gregor270dbb62017-04-25 12:42:192<title>Selection.removeAllRanges()/empty() tests</title>
Aryeh Gregorcee936a2011-10-24 20:28:533<div id=log></div>
Aryeh Gregor33fcf012015-08-09 12:21:104<script src=/resources/testharness.js></script>
5<script src=/resources/testharnessreport.js></script>
Aryeh Gregorcee936a2011-10-24 20:28:536<script src=common.js></script>
7<script>
8"use strict";
9
10// Also test a selection with no ranges
11testRanges.unshift("[]");
12
13var range = rangeFromEndpoints([paras[0].firstChild, 0, paras[0].firstChild, 1]);
14
Aryeh Gregor270dbb62017-04-25 12:42:1915function testRange(rangeDesc, method) {
Aryeh Gregorbc069112017-08-31 15:55:2016 var endpoints = eval(testRanges[i]);
17 if (endpoints.length && (!isSelectableNode(endpoints[0]) ||
18 !isSelectableNode(endpoints[2]))) {
19 return;
20 }
Aryeh Gregor01a11722015-08-09 13:04:2521 test(function() {
Aryeh Gregorbc069112017-08-31 15:55:2022 setSelectionForwards(endpoints);
Aryeh Gregor270dbb62017-04-25 12:42:1923 selection[method]();
Aryeh Gregor01a11722015-08-09 13:04:2524 assert_equals(selection.rangeCount, 0,
Aryeh Gregor270dbb62017-04-25 12:42:1925 "After " + method + "(), rangeCount must be 0");
Aryeh Gregor01a11722015-08-09 13:04:2526 // Test that it's forwards
27 selection.addRange(range);
28 assert_equals(selection.anchorOffset, selection.getRangeAt(0).startOffset,
Aryeh Gregor270dbb62017-04-25 12:42:1929 "After " + method + "(), addRange() must be forwards, so anchorOffset must equal startOffset rather than endOffset");
Aryeh Gregor01a11722015-08-09 13:04:2530 assert_equals(selection.focusOffset, selection.getRangeAt(0).endOffset,
Aryeh Gregor270dbb62017-04-25 12:42:1931 "After " + method + "(), addRange() must be forwards, so focusOffset must equal endOffset rather than startOffset");
32 }, method + " on " + rangeDesc + " forwards");
Aryeh Gregorcee936a2011-10-24 20:28:5333
Aryeh Gregor01a11722015-08-09 13:04:2534 // Copy-pasted from above
35 test(function() {
Aryeh Gregorbc069112017-08-31 15:55:2036 setSelectionBackwards(endpoints);
Aryeh Gregor270dbb62017-04-25 12:42:1937 selection[method]();
Aryeh Gregor01a11722015-08-09 13:04:2538 assert_equals(selection.rangeCount, 0,
Aryeh Gregor270dbb62017-04-25 12:42:1939 "After " + method + "(), rangeCount must be 0");
Aryeh Gregor01a11722015-08-09 13:04:2540 // Test that it's forwards
41 selection.addRange(range);
42 assert_equals(selection.anchorOffset, selection.getRangeAt(0).startOffset,
Aryeh Gregor270dbb62017-04-25 12:42:1943 "After " + method + "(), addRange() must be forwards, so anchorOffset must equal startOffset rather than endOffset");
Aryeh Gregor01a11722015-08-09 13:04:2544 assert_equals(selection.focusOffset, selection.getRangeAt(0).endOffset,
Aryeh Gregor270dbb62017-04-25 12:42:1945 "After " + method + "(), addRange() must be forwards, so focusOffset must equal endOffset rather than startOffset");
46 }, method + " on " + rangeDesc + " backwards");
47}
48
49for (var i = 0; i < testRanges.length; i++) {
50 testRange(testRanges[i], "removeAllRanges");
51 testRange(testRanges[i], "empty");
Aryeh Gregorcee936a2011-10-24 20:28:5352}
53
54testDiv.style.display = "none";
55</script>