Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 <!DOCTYPE html>
2 <!--
3 https://bugzilla.mozilla.org/show_bug.cgi?id=480647
4 -->
5 <title>Test for Bug 480647</title>
6 <script src="/tests/SimpleTest/SimpleTest.js"></script>
7 <link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
8 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=480647">Mozilla Bug 480647</a>
9 <div contenteditable></div>
10 <script>
11 /** Test for Bug 480647 **/
13 var div = document.querySelector("div");
15 function parseFontSize(input, expected) {
16 parseFontSizeInner(input, expected, is);
17 }
19 function parseFontSizeTodo(input, expected) {
20 parseFontSizeInner(input, expected, todo_is);
21 }
23 function parseFontSizeInner(input, expected, fn) {
24 div.innerHTML = "foo";
25 getSelection().selectAllChildren(div);
26 document.execCommand("fontSize", false, input);
27 if (expected === null) {
28 fn(div.innerHTML, "foo",
29 'execCommand("fontSize", false, "' + input + '") should be no-op');
30 } else {
31 fn(div.innerHTML, '<font size="' + expected + '">foo</font>',
32 'execCommand("fontSize", false, "' + input + '") should parse to ' +
33 expected);
34 }
35 }
37 // Parse errors
38 parseFontSize("", null);
39 parseFontSize("abc", null);
40 parseFontSize("larger", null);
41 parseFontSize("smaller", null);
42 parseFontSize("xx-small", null);
43 parseFontSize("x-small", null);
44 parseFontSize("small", null);
45 parseFontSize("medium", null);
46 parseFontSize("large", null);
47 parseFontSize("x-large", null);
48 parseFontSize("xx-large", null);
49 parseFontSize("xxx-large", null);
50 // Bug 747879
51 parseFontSizeTodo("1.2em", null);
52 parseFontSizeTodo("8px", null);
53 parseFontSizeTodo("-1.2em", null);
54 parseFontSizeTodo("-8px", null);
55 parseFontSizeTodo("+1.2em", null);
56 parseFontSizeTodo("+8px", null);
58 // Numbers
59 parseFontSize("0", 1);
60 parseFontSize("1", 1);
61 parseFontSize("2", 2);
62 parseFontSize("3", 3);
63 parseFontSize("4", 4);
64 parseFontSize("5", 5);
65 parseFontSize("6", 6);
66 parseFontSize("7", 7);
67 parseFontSize("8", 7);
68 parseFontSize("9", 7);
69 parseFontSize("10", 7);
70 parseFontSize("1000000000000000000000", 7);
71 parseFontSize("2.72", 2);
72 parseFontSize("2.72e9", 2);
74 // Minus sign
75 parseFontSize("-0", 3);
76 parseFontSize("-1", 2);
77 parseFontSize("-2", 1);
78 parseFontSize("-3", 1);
79 parseFontSize("-4", 1);
80 parseFontSize("-5", 1);
81 parseFontSize("-6", 1);
82 parseFontSize("-7", 1);
83 parseFontSize("-8", 1);
84 parseFontSize("-9", 1);
85 parseFontSize("-10", 1);
86 parseFontSize("-1000000000000000000000", 1);
87 parseFontSize("-1.72", 2);
88 parseFontSize("-1.72e9", 2);
90 // Plus sign
91 parseFontSize("+0", 3);
92 parseFontSize("+1", 4);
93 parseFontSize("+2", 5);
94 parseFontSize("+3", 6);
95 parseFontSize("+4", 7);
96 parseFontSize("+5", 7);
97 parseFontSize("+6", 7);
98 parseFontSize("+7", 7);
99 parseFontSize("+8", 7);
100 parseFontSize("+9", 7);
101 parseFontSize("+10", 7);
102 parseFontSize("+1000000000000000000000", 7);
103 parseFontSize("+1.72", 4);
104 parseFontSize("+1.72e9", 4);
106 // Whitespace
107 parseFontSize(" \t\n\r\f5 \t\n\r\f", 5);
108 parseFontSize("\u00a05", null);
109 parseFontSize("\b5", null);
110 </script>