<!doctype html> <title>Selection.removeAllRanges()/empty() tests</title> <div id=log></div> <script src=/resources/testharness.js></script> <script src=/resources/testharnessreport.js></script> <script src=common.js></script> <script> "use strict"; // Also test a selection with no ranges testRanges.unshift("[]"); var range = rangeFromEndpoints([paras[0].firstChild, 0, paras[0].firstChild, 1]); function testRange(rangeDesc, method) { var endpoints = eval(testRanges[i]); if (endpoints.length && (!isSelectableNode(endpoints[0]) || !isSelectableNode(endpoints[2]))) { return; } test(function() { setSelectionForwards(endpoints); selection[method](); assert_equals(selection.rangeCount, 0, "After " + method + "(), rangeCount must be 0"); // Test that it's forwards selection.addRange(range); assert_equals(selection.anchorOffset, selection.getRangeAt(0).startOffset, "After " + method + "(), addRange() must be forwards, so anchorOffset must equal startOffset rather than endOffset"); assert_equals(selection.focusOffset, selection.getRangeAt(0).endOffset, "After " + method + "(), addRange() must be forwards, so focusOffset must equal endOffset rather than startOffset"); }, method + " on " + rangeDesc + " forwards"); // Copy-pasted from above test(function() { setSelectionBackwards(endpoints); selection[method](); assert_equals(selection.rangeCount, 0, "After " + method + "(), rangeCount must be 0"); // Test that it's forwards selection.addRange(range); assert_equals(selection.anchorOffset, selection.getRangeAt(0).startOffset, "After " + method + "(), addRange() must be forwards, so anchorOffset must equal startOffset rather than endOffset"); assert_equals(selection.focusOffset, selection.getRangeAt(0).endOffset, "After " + method + "(), addRange() must be forwards, so focusOffset must equal endOffset rather than startOffset"); }, method + " on " + rangeDesc + " backwards"); } for (var i = 0; i < testRanges.length; i++) { testRange(testRanges[i], "removeAllRanges"); testRange(testRanges[i], "empty"); } testDiv.style.display = "none"; </script>