upload tizen1.0 source
[framework/web/webkit-efl.git] / LayoutTests / editing / execCommand / query-font-size.html
1 <body>
2 <script>
3
4 function addRow(table)
5 {
6     var tableRow = document.createElement("tr");
7     table.appendChild(tableRow);
8     return tableRow;
9 }
10
11 function addCellWithNodeContents(tableRow, contents)
12 {
13     var tableCell = document.createElement("td");
14     tableCell.appendChild(contents);
15     tableRow.appendChild(tableCell);
16     return tableCell;
17 }
18
19 function addCellWithTextContents(tableRow, contents)
20 {
21     return addCellWithNodeContents(tableRow, document.createTextNode(contents));
22 }
23
24 function addHeaderWithTextContents(tableRow, contents)
25 {
26     var tableCell = document.createElement("th");   
27     tableCell.appendChild(document.createTextNode(contents));
28     tableRow.appendChild(tableCell);
29     return tableCell;
30 }
31
32 function setFontSizeOnContent(size)
33 {
34     window.getSelection().selectAllChildren(editableDiv);
35     document.execCommand("FontSize", false, size);
36     return editableDiv.firstChild;
37 }
38
39 function setFontFamilyOnContent(fontFamily)
40 {
41     window.getSelection().selectAllChildren(editableDiv);
42     document.execCommand("FontName", false, fontFamily);
43     return editableDiv.firstChild;
44 }
45
46 function reportSizeForSpan(span, comment)
47 {
48     var tableRow = addRow(table);
49     addCellWithTextContents(tableRow, comment);
50     addCellWithTextContents(tableRow, span.parentNode.innerHTML); // sill FF has no outerHTML
51     window.getSelection().selectAllChildren(span.parentNode);
52     addCellWithTextContents(tableRow, "" + document.queryCommandValue("FontSize"));
53 }
54
55 function testExecCommandFontSize(size, fontFamily)
56 {
57     editableDiv.innerHTML = "test";
58     var sizedContent = setFontSizeOnContent(size);
59     if (fontFamily)
60         sizedContent = setFontFamilyOnContent(fontFamily);
61     var sizeString = (typeof(size) == "string") ? ("'" + size + "'") : size;
62     reportSizeForSpan(sizedContent, "execCommand('FontSize', " + sizeString + ")");
63 }
64
65 function testManualFontSize(size)
66 {
67     editableDiv.innerHTML = "<span style='font-size: " + size + "'>test</span>";
68     reportSizeForSpan(editableDiv.firstChild, "manual CSS font-size: " + size);
69 }
70
71 if (window.layoutTestController)
72     window.layoutTestController.dumpAsText();
73
74 var editableDiv = document.createElement("div");
75 editableDiv.contentEditable = true;
76 document.body.appendChild(editableDiv);
77
78 var table = document.createElement("table");
79 table.border = "1px";
80 table.width = "100%";
81 document.body.appendChild(table);
82
83 var tableRow = addRow(table);
84 addHeaderWithTextContents(tableRow, "test");
85 addHeaderWithTextContents(tableRow, "html");
86 addHeaderWithTextContents(tableRow, "queryCommandValue result");
87
88 for (var size = -2; size < 8; size++) {
89     testExecCommandFontSize(size);
90 }
91 testExecCommandFontSize("8px");
92 testExecCommandFontSize("2px");
93
94 testManualFontSize("3px");
95 testManualFontSize("0.2em");
96 testManualFontSize("17px");
97 testManualFontSize("31px");
98 testManualFontSize("50px");
99 testManualFontSize("5em");
100 testManualFontSize("10px");
101
102 tableRow = addRow(table);
103 addHeaderWithTextContents(tableRow, "monospace tests to ensure the bug 19161 does not affect queryCommandValue's values");
104
105 for (var size = -2; size < 8; size++) {
106     testExecCommandFontSize(size, 'monospace');
107 }
108
109 document.body.removeChild(editableDiv);
110
111 </script>