Make -webkit-transition-* and -webkit-animation-* properties be pure aliases of the...
[WebKit-https.git] / LayoutTests / svg / css / parse-length.html
1 <!DOCTYPE html>
2 <html>
3 <style>
4 * { font-size: 16px; }
5 svg, rect { font-family: 'Ahem'; }
6 div { font-size: 8px; } 
7 </style>
8 <html>
9 <svg id="svg" width="0" height="0"></svg>
10 <script src="../../resources/js-test-pre.js"></script>
11 <script>
12 description("Test that 'width' presentation attribute is parsed with CSS presentation rules.");
13
14 function computedStyle(property, value) {
15     var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
16     document.getElementById('svg').appendChild(rect);
17     rect.setAttribute(property, value);
18     var computedValue = getComputedStyle(rect).getPropertyValue(property);
19     document.getElementById('svg').removeChild(rect);
20     return computedValue;
21 }
22
23 function testComputed(property, value, expected) {
24     shouldBeEqualToString('computedStyle("' + property + '", "' + value + '")', expected);
25 }
26
27 function negativeTest(property, value) {
28     testComputed(property, value, "auto");
29 }
30
31 function negativeTestZero(property, value) {
32     testComputed(property, value, "0px");
33 }
34
35 // Test 'cx'.
36 testComputed("cx", "  100", "100px");
37 testComputed("cx", "100   ", "100px");
38 testComputed("cx", "100px", "100px");
39 testComputed("cx", "1em", "16px");
40 testComputed("cx", "1ex", "12.800000190734863px");
41 testComputed("cx", "20%", "20%");
42 testComputed("cx", "-200px", "-200px");
43
44 // Test 'cx'.
45 testComputed("cy", "  100", "100px");
46 testComputed("cy", "100   ", "100px");
47 testComputed("cy", "100px", "100px");
48 testComputed("cy", "1em", "16px");
49 testComputed("cy", "1ex", "12.800000190734863px");
50 testComputed("cy", "20%", "20%");
51 testComputed("cy", "-200px", "-200px");
52
53 // Test 'r'.
54 testComputed("r", "  100", "100px");
55 testComputed("r", "100   ", "100px");
56 testComputed("r", "100px", "100px");
57 testComputed("r", "1em", "16px");
58 testComputed("r", "1ex", "12.800000190734863px");
59 testComputed("r", "20%", "20%");
60 testComputed("r", "-200px", "-200px");
61
62 // Test 'rx'.
63 testComputed("rx", "  100", "100px");
64 testComputed("rx", "100   ", "100px");
65 testComputed("rx", "100px", "100px");
66 testComputed("rx", "1em", "16px");
67 testComputed("rx", "1ex", "12.800000190734863px");
68 testComputed("rx", "20%", "20%");
69 testComputed("rx", "-200px", "-200px");
70
71 // Test 'ry'.
72 testComputed("ry", "  100", "100px");
73 testComputed("ry", "100   ", "100px");
74 testComputed("ry", "100px", "100px");
75 testComputed("ry", "1em", "16px");
76 testComputed("ry", "1ex", "12.800000190734863px");
77 testComputed("ry", "20%", "20%");
78 testComputed("ry", "-200px", "-200px");
79
80 // Test 'width'.
81 testComputed("width", "auto", "auto");
82 testComputed("width", "  100", "100px");
83 testComputed("width", "100   ", "100px");
84 testComputed("width", "100px", "100px");
85 testComputed("width", "1em", "16px");
86 testComputed("width", "1ex", "12.800000190734863px");
87 testComputed("width", "20%", "20%");
88 // FIXME: Vieport units not implemented for SVG at the moment.
89 // testComputed("width", "1vh", "7.869999885559082px");
90 // testComputed("width", "1vw", "14.029999732971191px");
91
92 // Test 'x'.
93 testComputed("x", "  100", "100px");
94 testComputed("x", "100   ", "100px");
95 testComputed("x", "100px", "100px");
96 testComputed("x", "1em", "16px");
97 testComputed("x", "1ex", "12.800000190734863px");
98 testComputed("x", "20%", "20%");
99 testComputed("x", "-200px", "-200px");
100
101 // Test 'y'.
102 testComputed("y", "  100", "100px");
103 testComputed("y", "100   ", "100px");
104 testComputed("y", "100px", "100px");
105 testComputed("y", "1em", "16px");
106 testComputed("y", "1ex", "12.800000190734863px");
107 testComputed("y", "20%", "20%");
108 testComputed("y", "-200px", "-200px");
109
110 // Negative tests for 'cx'.
111 negativeTestZero("cx", "auto", "auto");
112 negativeTestZero("cx", "100   px");
113 negativeTestZero("cx", "100px;");
114 negativeTestZero("cx", "100px !important");
115 negativeTestZero("cx", "{ 100px }");
116
117 // Negative tests for 'cy'.
118 negativeTestZero("cy", "auto");
119 negativeTestZero("cy", "100   px");
120 negativeTestZero("cy", "100px;");
121 negativeTestZero("cy", "100px !important");
122 negativeTestZero("cy", "{ 100px }");
123
124 // Negative tests for 'r'.
125 negativeTestZero("r", "auto", "auto");
126 negativeTestZero("r", "100   px");
127 negativeTestZero("r", "100px;");
128 negativeTestZero("r", "100px !important");
129 negativeTestZero("r", "{ 100px }");
130
131 // Negative tests for 'rx'.
132 negativeTestZero("rx", "auto", "auto");
133 negativeTestZero("rx", "100   px");
134 negativeTestZero("rx", "100px;");
135 negativeTestZero("rx", "100px !important");
136 negativeTestZero("rx", "{ 100px }");
137
138 // Negative tests for 'ry'.
139 negativeTestZero("ry", "auto");
140 negativeTestZero("ry", "100   px");
141 negativeTestZero("ry", "100px;");
142 negativeTestZero("ry", "100px !important");
143 negativeTestZero("ry", "{ 100px }");
144
145 // Negative tests for 'width'.
146 negativeTest("width", "100   px");
147 negativeTest("width", "100px;");
148 negativeTest("width", "100px !important");
149 negativeTest("width", "{ 100px }");
150 negativeTest("width", "-100px");
151
152 // Negative tests for 'x'.
153 negativeTestZero("x", "auto", "auto");
154 negativeTestZero("x", "100   px");
155 negativeTestZero("x", "100px;");
156 negativeTestZero("x", "100px !important");
157 negativeTestZero("x", "{ 100px }");
158
159 // Negative tests for 'y'.
160 negativeTestZero("y", "auto");
161 negativeTestZero("y", "100   px");
162 negativeTestZero("y", "100px;");
163 negativeTestZero("y", "100px !important");
164 negativeTestZero("y", "{ 100px }");
165 </script>
166 <script src="../../resources/js-test-post.js"></script>
167 </body>
168 </html>