tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>