Landing updated (improved) results for this test. The results changed in...
[WebKit-https.git] / LayoutTests / svg / css / glyph-orientation-rounding-test.xhtml
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <link rel="stylesheet" href="../../fast/js/resources/js-test-style.css"/>
4 <script src="../../fast/js/resources/js-test-pre.js"/>
5 </head>
6 <body>
7 <svg display="none" xmlns="http://www.w3.org/2000/svg"><text id="text"/></svg>
8 <p id="description"></p>
9 <div id="console"/>
10 <script>
11 var textElement = document.getElementById("text");
12 var computedStyle;
13
14 function parseGlyphOrientationHelper(property, angleValue, expectedValue)
15 {
16     textElement.setAttributeNS(null, property, angleValue);
17     computedStyle = textElement.ownerDocument.defaultView.getComputedStyle(textElement);
18
19     debug("Test angleValue: '" + angleValue + "'");
20
21     if (expectedValue == "auto") {
22         shouldBe("computedStyle.getPropertyValue('" + property + "')", '"auto"');
23     } else {
24         shouldBe("computedStyle.getPropertyCSSValue('" + property + "').getFloatValue(CSSPrimitiveValue.CSS_DEG)", "" + expectedValue);
25     }
26
27     debug("");
28 }
29
30 function parseGlyphOrientation(angleValue, expectedValue)
31 {
32     if (expectedValue == undefined) {
33         parseGlyphOrientationHelper("glyph-orientation-horizontal", angleValue, 0.0);
34         parseGlyphOrientationHelper("glyph-orientation-vertical", angleValue, "auto");
35     } else {
36         parseGlyphOrientationHelper("glyph-orientation-horizontal", angleValue, expectedValue);
37         parseGlyphOrientationHelper("glyph-orientation-vertical", angleValue, expectedValue);
38     }
39 }
40
41 description('Stress test glyph-orientation SVG CSS properties');
42 debug('');
43
44 debug('Strings that fail to parse, and hence parse as "0" for horziontal and "auto" as vertical.');
45 debug('');
46
47 parseGlyphOrientation(" 0,1");
48 parseGlyphOrientation("  0,00000.1");
49 parseGlyphOrientation("  0 1");
50 parseGlyphOrientation("0.1 0.2");
51
52 parseGlyphOrientation(" 270,1");
53 parseGlyphOrientation("  270,00000.1");
54 parseGlyphOrientation("  270 1");
55 parseGlyphOrientation("270.1 0.2");
56
57
58 debug('This tests the rounding of glyph orientation values to the only allowed values 0, 90, 180, 270.');
59 debug('');
60
61 parseGlyphOrientation("-0.0", 0.0);
62 parseGlyphOrientation("-10.0", 0.0);
63 parseGlyphOrientation("-45.0", 0.0);
64 parseGlyphOrientation("0.0", 0.0);
65 parseGlyphOrientation("10.0", 0.0);
66 parseGlyphOrientation("45.0", 0.0);
67
68 parseGlyphOrientation("-90.0", 90.0);
69 parseGlyphOrientation("-100.0", 90.0);
70 parseGlyphOrientation("-135.0", 90.0);
71 parseGlyphOrientation("90.0", 90.0);
72 parseGlyphOrientation("100.0", 90.0);
73 parseGlyphOrientation("135.0", 90.0);
74
75 parseGlyphOrientation("-180.0", 180.0);
76 parseGlyphOrientation("-190.0", 180.0);
77 parseGlyphOrientation("-225.0", 180.0);
78 parseGlyphOrientation("180.0", 180.0);
79 parseGlyphOrientation("190.0", 180.0);
80 parseGlyphOrientation("225.0", 180.0);
81
82 parseGlyphOrientation("-270.0", 270.0);
83 parseGlyphOrientation("-280.0", 270.0);
84 parseGlyphOrientation("-305.0", 270.0);
85 parseGlyphOrientation("270.0", 270.0);
86 parseGlyphOrientation("280.0", 270.0);
87 parseGlyphOrientation("305.0", 270.0);
88
89 debug('Tests angles bigger than 360.');
90 debug('');
91
92 parseGlyphOrientation("449.0", 90.0);
93 parseGlyphOrientation("450.0", 90.0);
94 parseGlyphOrientation("451.0", 90.0);
95
96 parseGlyphOrientation("539.0", 180.0);
97 parseGlyphOrientation("540.0", 180.0);
98 parseGlyphOrientation("541.0", 180.0);
99
100 parseGlyphOrientation("629.0", 270.0);
101 parseGlyphOrientation("630.0", 270.0);
102 parseGlyphOrientation("631.0", 270.0);
103
104 debug('Tests whitespace before/after angle value.');
105 debug('');
106
107 parseGlyphOrientation("  .0 ", 0.0);
108 parseGlyphOrientation("   0  ", 0.0);
109 parseGlyphOrientation(" 90.0 ", 90.0);
110 parseGlyphOrientation(" 180.0    ", 180.0);
111 parseGlyphOrientation("  270.0 ", 270.0);
112
113 debug('Tests rounding of fractional angle values.');
114 debug('');
115
116 parseGlyphOrientation("45.0000", 0.0);
117 parseGlyphOrientation("45.0001", 90.0);
118 parseGlyphOrientation("135.000", 90.0);
119 parseGlyphOrientation("135.001", 180.0);
120
121 successfullyParsed = true;
122
123 </script>
124 <script src="../../fast/js/resources/js-test-post.js"></script>
125
126 </body>
127 </html>