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>
|