collapse.html (1327B)
1 <!DOCTYPE HTML> 2 <meta charset=utf-8> 3 <title>Selection across multiple contenteditable</title> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <button id="button"></button> 7 <div contenteditable id="host1"></div> 8 <div contenteditable id="host2"></div> 9 <div contenteditable id="host3"> 10 <div contenteditable="false"> 11 <div contenteditable id="host4"></div> 12 </div> 13 </div> 14 <script> 15 function clearFocus() { 16 // Move focus from editable host to a button to remove selection limiter 17 button.focus(); 18 } 19 test(() => { 20 clearFocus(); 21 getSelection().collapse(host1); 22 assert_equals(document.activeElement, host1); 23 getSelection().collapse(host2); 24 assert_equals(document.activeElement, host2); 25 }, "Selection.collapse() must succeed across siblings"); 26 27 test(() => { 28 clearFocus(); 29 getSelection().collapse(host4); 30 assert_equals(document.activeElement, host4); 31 getSelection().collapse(host3); 32 assert_equals(document.activeElement, host3); 33 }, "Selection.collapse() must succeed for the ancestor"); 34 35 36 test(() => { 37 clearFocus(); 38 getSelection().collapse(host3); 39 assert_equals(document.activeElement, host3); 40 getSelection().collapse(host4); 41 assert_equals(document.activeElement, host4); 42 }, "Selection.collapse() must succeed for the descendant"); 43 </script>