removeAllRanges.html (2327B)
1 <!doctype html> 2 <title>Selection.removeAllRanges()/empty() tests</title> 3 <div id=log></div> 4 <script src=/resources/testharness.js></script> 5 <script src=/resources/testharnessreport.js></script> 6 <script src=common.js></script> 7 <script> 8 "use strict"; 9 10 // Also test a selection with no ranges 11 testRanges.unshift("[]"); 12 13 var range = rangeFromEndpoints([paras[0].firstChild, 0, paras[0].firstChild, 1]); 14 15 function testRange(rangeDesc, method) { 16 var endpoints = eval(testRanges[i]); 17 if (endpoints.length && (!isSelectableNode(endpoints[0]) || 18 !isSelectableNode(endpoints[2]))) { 19 return; 20 } 21 test(function() { 22 setSelectionForwards(endpoints); 23 selection[method](); 24 assert_equals(selection.rangeCount, 0, 25 "After " + method + "(), rangeCount must be 0"); 26 // Test that it's forwards 27 selection.addRange(range); 28 assert_equals(selection.anchorOffset, selection.getRangeAt(0).startOffset, 29 "After " + method + "(), addRange() must be forwards, so anchorOffset must equal startOffset rather than endOffset"); 30 assert_equals(selection.focusOffset, selection.getRangeAt(0).endOffset, 31 "After " + method + "(), addRange() must be forwards, so focusOffset must equal endOffset rather than startOffset"); 32 }, method + " on " + rangeDesc + " forwards"); 33 34 // Copy-pasted from above 35 test(function() { 36 setSelectionBackwards(endpoints); 37 selection[method](); 38 assert_equals(selection.rangeCount, 0, 39 "After " + method + "(), rangeCount must be 0"); 40 // Test that it's forwards 41 selection.addRange(range); 42 assert_equals(selection.anchorOffset, selection.getRangeAt(0).startOffset, 43 "After " + method + "(), addRange() must be forwards, so anchorOffset must equal startOffset rather than endOffset"); 44 assert_equals(selection.focusOffset, selection.getRangeAt(0).endOffset, 45 "After " + method + "(), addRange() must be forwards, so focusOffset must equal endOffset rather than startOffset"); 46 }, method + " on " + rangeDesc + " backwards"); 47 } 48 49 for (var i = 0; i < testRanges.length; i++) { 50 testRange(testRanges[i], "removeAllRanges"); 51 testRange(testRanges[i], "empty"); 52 } 53 54 testDiv.style.display = "none"; 55 </script>