summaryrefslogtreecommitdiffstats
path: root/editor/libeditor/tests/test_defaultParagraphSeparatorBR_between_blocks.html
blob: fdb673a6e18cb173c3a2f883d3e622fe4789378d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <title>Test for insertParagraph when defaultParagraphSeparator is br and between blocks</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
  <script>
    "use strict";
    SimpleTest.waitForExplicitFinish();
    SimpleTest.waitForFocus(() => {
      const editor = document.createElement("div");
      editor.setAttribute("contenteditable", "");
      editor.innerHTML = "<div>abc</div><div>def</div>";
      document.body.appendChild(editor);
      editor.focus();
      document.execCommand("defaultParagraphSeparator", false, "br");
      getSelection().collapse(editor, 1);  // put caret between the <div>s
      ok(
        document.execCommand("insertParagraph"),
        'execCommand("insertParagraph") should return true'
      )
      is(
        editor.innerHTML,
        "<div>abc</div><br><div>def</div>",
        "<br> element should be inserted between the <div> elements"
      );
      ok(
        getSelection().isCollapsed,
        "Selection should be collapsed after insertParagraph"
      );
      is(
        getSelection().focusNode,
        editor,
        "Caret should be in the editing host"
      );
      is(
        getSelection().focusOffset,
        1,
        "Caret should be around the <br> element"
      );
      is(
        SpecialPowers.wrap(getSelection()).interlinePosition,
        true,
        "Caret should be painted at start of the new line"
      );
      document.execCommand("insertText", false, "X");
      todo_is(
        editor.innerHTML,
        "<div>abc</div><br>X<div>def</div>",
        '"X" should be inserted after the inserted <br> element'
      );
      SimpleTest.finish();
    });
  </script>
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test"></pre>
</body>
</html>