delete-at-end-boundary-of-div-followed-by-inline-element-containing-hidden-select-element-with-non-editable-node.html (1549B)
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>Delete at end boundary of div followed by inline element containing hidden 6 select element with non editable node</title> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 <script src="/resources/testdriver.js"></script> 10 <script src="/resources/testdriver-vendor.js"></script> 11 <script src="/resources/testdriver-actions.js"></script> 12 </head> 13 <body> 14 <div contenteditable="true" id="editableDiv"><div id="first">First block</div> 15 <span id="second">Second block<select style="visibility:hidden"></select></span></div> 16 <script> 17 "use strict"; 18 19 const kDeleteKey = "\uE017"; 20 21 function sendDeleteKey() { 22 return new test_driver.Actions() 23 .keyDown(kDeleteKey) 24 .keyUp(kDeleteKey) 25 .send(); 26 } 27 28 promise_test(async () => { 29 const firstDiv = document.getElementById("first"); 30 await new test_driver.click(document.querySelector('#first')); 31 const range = document.createRange(); 32 const selection = window.getSelection(); 33 range.setStart(firstDiv.firstChild, 11); 34 range.collapse(true); 35 selection.removeAllRanges(); 36 selection.addRange(range); 37 await sendDeleteKey(); 38 const expected= "<div id=\"first\">First blockSecond block</div>" 39 + "<span id=\"second\"><select style=\"visibility:hidden\"></select></span>"; 40 assert_equals( 41 editableDiv.innerHTML, 42 expected, 43 "The test should not crash and Second block should be merged with First block" 44 ); 45 }, "waiting for command to execute"); 46 </script> 47 </body> 48 </html>