1<!DOCTYPE html>
2<html>
3<head>
4<script src="../../fast/js/resources/js-test-pre.js"></script>
5<script src="../editing.js"></script>
6</head>
7<body>
8<div id=editor contenteditable></div>
9<script>
10 shouldBeTrue("document.queryCommandEnabled('DefaultParagraphSeparator')");
11 shouldBeEqualToString("document.queryCommandValue('DefaultParagraphSeparator')", "div"); // Default is div.
12 evalAndLog("document.execCommand('DefaultParagraphSeparator', false, 'p')");
13 shouldBeEqualToString("document.queryCommandValue('DefaultParagraphSeparator')", "p");
14 evalAndLog("document.execCommand('DefaultParagraphSeparator', false, 'br')");
15 shouldBeEqualToString("document.queryCommandValue('DefaultParagraphSeparator')", "p");
16 evalAndLog("document.execCommand('DefaultParagraphSeparator', false, 'invalid')");
17 shouldBeEqualToString("document.queryCommandValue('DefaultParagraphSeparator')", "p");
18
19 debug("\nCreating paragraphs in the normal way.");
20 var div = document.querySelector("#editor");
21 div.focus();
22 evalAndLog("document.execCommand('InsertText', false, 'a')");
23 shouldBeEqualToString("div.innerHTML", "a");
24 evalAndLog("document.execCommand('InsertText', false, '\\n')");
25 shouldBeEqualToString("div.innerHTML", "a<p><br></p>");
26 evalAndLog("document.execCommand('InsertText', false, 'b')");
27 shouldBeEqualToString("div.innerHTML", "a<p>b</p>");
28 evalAndLog("document.execCommand('InsertText', false, '\\n')");
29 shouldBeEqualToString("div.innerHTML", "a<p>b</p><p><br></p>");
30 evalAndLog("document.execCommand('Delete')");
31 shouldBeEqualToString("div.innerHTML", "a<p>b</p>");
32 evalAndLog("document.execCommand('Delete')");
33 shouldBeEqualToString("div.innerHTML", "a<p><br></p>");
34 evalAndLog("document.execCommand('Delete')");
35 shouldBeEqualToString("div.innerHTML", "a");
36 evalAndLog("document.execCommand('DefaultParagraphSeparator', false, 'div')");
37 evalAndLog("document.execCommand('InsertParagraph')");
38 shouldBeEqualToString("div.innerHTML", "a<div><br></div>");
39 evalAndLog("div.innerHTML = ''");
40
41 debug("\nUsing the previous block as template for the new one.");
42 evalAndLog("document.execCommand('DefaultParagraphSeparator', false, 'p')");
43 debug('document.execCommand("InsertHTML", false, "<pre>a</pre>");');
44 document.execCommand("InsertHTML", false, "<pre>a</pre>");
45 shouldBeEqualToString("div.innerHTML", "<pre>a</pre>");
46 evalAndLog("document.execCommand('InsertText', false, 'b')");
47 shouldBeEqualToString("div.innerHTML", "<pre>ab</pre>");
48 evalAndLog("document.execCommand('InsertText', false, '\\n')");
49 shouldBeEqualToString("div.innerHTML", "<pre>ab</pre><pre><br></pre>");
50 evalAndLog("document.execCommand('InsertText', false, 'c')");
51 shouldBeEqualToString("div.innerHTML", "<pre>ab</pre><pre>c</pre>");
52 evalAndLog("document.execCommand('DefaultParagraphSeparator', false, 'div')");
53 evalAndLog("document.execCommand('InsertText', false, '\\n')");
54 shouldBeEqualToString("div.innerHTML", "<pre>ab</pre><pre>c</pre><pre><br></pre>");
55 evalAndLog("document.execCommand('Delete')");
56 evalAndLog("document.execCommand('InsertParagraph')");
57 shouldBeEqualToString("div.innerHTML", "<pre>ab</pre><pre>c</pre><pre><br></pre>");
58
59 debug("\nBreaking out of lists.");
60 evalAndLog("div.innerHTML = ''");
61 evalAndLog("document.execCommand('DefaultParagraphSeparator', false, 'p')");
62 debug('document.execCommand("InsertHTML", false, "<ul><li>a</li></ul>")');
63 document.execCommand("InsertHTML", false, "<ul><li>a</li></ul>");
64 shouldBeEqualToString("div.innerHTML", "<ul><li>a</li></ul>");
65 evalAndLog("document.execCommand('InsertParagraph')");
66 evalAndLog("document.execCommand('InsertParagraph')");
67 shouldBeEqualToString("div.innerHTML", "<ul><li>a</li></ul><p><br></p>");
68
69 debug("\nBreaking up nested elements.");
70 evalAndLog("div.innerHTML = ''");
71 debug('document.execCommand("InsertHTML", false, "<cite>a<cite>bc</cite></cite>")');
72 document.execCommand("InsertHTML", false, "<cite>a<cite>bc</cite></cite>");
73 evalAndLog('selection.modify("move", "backward", "character")');
74 evalAndLog("document.execCommand('InsertParagraph')");
75 shouldBeEqualToString("div.innerHTML", "<cite>a<cite>b</cite></cite><p><cite><cite>c</cite></cite></p>");
76
77 div.innerHTML = "";
78</script>
79<script src="../../fast/js/resources/js-test-post.js"></script>
80</body>
81</html>