delete-to-make-editing-host-empty.html (5207B)
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 <script src="/resources/testdriver.js"></script> 9 <script src="/resources/testdriver-vendor.js"></script> 10 <script src="/resources/testdriver-actions.js"></script> 11 <script src="../include/editor-test-utils.js"></script> 12 <script> 13 "use strict"; 14 15 addEventListener("load", () => { 16 const editingHost = document.querySelector("div[contenteditable]"); 17 const editingHostHeightWhenEmpty = editingHost.getBoundingClientRect().height; 18 editingHost.innerHTML = "<br>"; 19 const editingHostHeightWhenHasBR = editingHost.getBoundingClientRect().height; 20 test(() => { 21 assert_true( 22 Math.abs(editingHostHeightWhenHasBR - editingHostHeightWhenEmpty) <= 1, 23 `"<div contenteditable></div>" height: ${ 24 editingHostHeightWhenEmpty 25 }, "<div contenteditable><br></div>" height: ${editingHostHeightWhenHasBR}` 26 ); 27 }, `"<div contenteditable></div>" and "<div contenteditable><br></div>" should have almost same height`); 28 test(() => { 29 const editingHostHeightWhenHasChar = editingHost.getBoundingClientRect().height; 30 assert_true( 31 Math.abs(editingHostHeightWhenHasBR - editingHostHeightWhenHasChar) <= 1, 32 `"<div contenteditable><br></div>" height: ${ 33 editingHostHeightWhenHasBR 34 }, "<div contenteditable>a</div>" height: ${editingHostHeightWhenHasChar}` 35 ); 36 }, `"<div contenteditable><br></div>" and "<div contenteditable>a</div>" should have almost same height`); 37 editingHost.focus(); 38 const utils = new EditorTestUtils(editingHost); 39 promise_test(async () => { 40 utils.setupEditingHost("a[]"); 41 await utils.sendBackspaceKey(); 42 assert_equals(editingHost.innerHTML, "<br>", "Comparing innerHTML"); 43 const editingHostHeight = editingHost.getBoundingClientRect().height; 44 assert_equals(editingHostHeightWhenHasBR, editingHostHeight, "Comparing editing host height"); 45 }, `Backspace when "a[]"`); 46 promise_test(async () => { 47 utils.setupEditingHost("[]a"); 48 await utils.sendDeleteKey(); 49 assert_equals(editingHost.innerHTML, "<br>", "Comparing innerHTML"); 50 const editingHostHeight = editingHost.getBoundingClientRect().height; 51 assert_equals(editingHostHeightWhenHasBR, editingHostHeight, "Comparing editing host height"); 52 }, `Delete when "[]a"`); 53 promise_test(async () => { 54 utils.setupEditingHost("{a}"); 55 await utils.sendBackspaceKey(); 56 assert_equals(editingHost.innerHTML, "<br>", "Comparing innerHTML"); 57 const editingHostHeight = editingHost.getBoundingClientRect().height; 58 assert_equals(editingHostHeightWhenHasBR, editingHostHeight, "Comparing editing host height"); 59 }, `Backspace when "{a}"`); 60 promise_test(async () => { 61 utils.setupEditingHost("{a}"); 62 await utils.sendDeleteKey(); 63 assert_equals(editingHost.innerHTML, "<br>", "Comparing innerHTML"); 64 const editingHostHeight = editingHost.getBoundingClientRect().height; 65 assert_equals(editingHostHeightWhenHasBR, editingHostHeight, "Comparing editing host height"); 66 }, `Delete when "{a}"`); 67 promise_test(async () => { 68 utils.setupEditingHost("{a}"); 69 await utils.sendCutShortcutKey(); 70 assert_equals(editingHost.innerHTML, "<br>", "Comparing innerHTML"); 71 const editingHostHeight = editingHost.getBoundingClientRect().height; 72 assert_equals(editingHostHeightWhenHasBR, editingHostHeight, "Comparing editing host height"); 73 }, `Accel - x when "{a}"`); 74 promise_test(async () => { 75 utils.setupEditingHost("<span>a[]</span>"); 76 await utils.sendBackspaceKey(); 77 assert_equals(editingHost.innerHTML, "<br>", "Comparing innerHTML"); 78 const editingHostHeight = editingHost.getBoundingClientRect().height; 79 assert_equals(editingHostHeightWhenHasBR, editingHostHeight, "Comparing editing host height"); 80 }, `Backspace when "<span>a[]</span>"`); 81 promise_test(async () => { 82 utils.setupEditingHost("<span>[]a</span>"); 83 await utils.sendDeleteKey(); 84 assert_equals(editingHost.innerHTML, "<br>", "Comparing innerHTML"); 85 const editingHostHeight = editingHost.getBoundingClientRect().height; 86 assert_equals(editingHostHeightWhenHasBR, editingHostHeight, "Comparing editing host height"); 87 }, `Delete when "<span>[]a</span>"`); 88 promise_test(async () => { 89 utils.setupEditingHost("<span>{a}</span>"); 90 await utils.sendBackspaceKey(); 91 assert_equals(editingHost.innerHTML, "<br>", "Comparing innerHTML"); 92 const editingHostHeight = editingHost.getBoundingClientRect().height; 93 assert_equals(editingHostHeightWhenHasBR, editingHostHeight, "Comparing editing host height"); 94 }, `Backspace when "<span>{a}</span>"`); 95 promise_test(async () => { 96 utils.setupEditingHost("{}"); 97 await utils.sendBackspaceKey(); 98 assert_equals(editingHost.innerHTML, "", "Comparing innerHTML"); 99 }, `Backspace when "{}"`); 100 promise_test(async () => { 101 utils.setupEditingHost("{}"); 102 await utils.sendDeleteKey(); 103 assert_equals(editingHost.innerHTML, "", "Comparing innerHTML"); 104 }, `Delete when "{}"`); 105 }, {once: true}); 106 </script> 107 </head> 108 <body> 109 <div contenteditable></div> 110 </body> 111 </html>