Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / svg / css / glyph-orientation-rounding-test.xhtml
blob92939a06b5f1c2f02f6d9771aa754c8a5f1cfb6c
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <script src="../../resources/js-test.js"/>
4 </head>
5 <body>
6 <svg display="none" xmlns="http://www.w3.org/2000/svg"><text id="text"/></svg>
7 <p id="description"></p>
8 <div id="console"/>
9 <script>
10 var textElement = document.getElementById("text");
11 var computedStyle;
13 function parseGlyphOrientationHelper(property, angleValue, expectedValue)
15 textElement.setAttributeNS(null, property, angleValue);
16 computedStyle = textElement.ownerDocument.defaultView.getComputedStyle(textElement);
18 debug("Test angleValue: '" + angleValue + "'");
20 if (expectedValue == "auto") {
21 shouldBe("computedStyle.getPropertyValue('" + property + "')", '"auto"');
22 } else {
23 shouldBe("parseFloat(computedStyle.getPropertyValue('" + property + "'))", "" + expectedValue);
26 debug("");
29 function parseGlyphOrientation(angleValue, expectedValue)
31 if (expectedValue == undefined) {
32 parseGlyphOrientationHelper("glyph-orientation-horizontal", angleValue, 0.0);
33 parseGlyphOrientationHelper("glyph-orientation-vertical", angleValue, "auto");
34 } else {
35 parseGlyphOrientationHelper("glyph-orientation-horizontal", angleValue, expectedValue);
36 parseGlyphOrientationHelper("glyph-orientation-vertical", angleValue, expectedValue);
40 description('Stress test glyph-orientation SVG CSS properties');
41 debug('');
43 debug('Strings that fail to parse, and hence parse as "0" for horziontal and "auto" as vertical.');
44 debug('');
46 parseGlyphOrientation(" 0,1");
47 parseGlyphOrientation(" 0,00000.1");
48 parseGlyphOrientation(" 0 1");
49 parseGlyphOrientation("0.1 0.2");
51 parseGlyphOrientation(" 270,1");
52 parseGlyphOrientation(" 270,00000.1");
53 parseGlyphOrientation(" 270 1");
54 parseGlyphOrientation("270.1 0.2");
57 debug('This tests the rounding of glyph orientation values to the only allowed values 0, 90, 180, 270.');
58 debug('');
60 parseGlyphOrientation("-0.0", 0.0);
61 parseGlyphOrientation("-10.0", 0.0);
62 parseGlyphOrientation("-45.0", 0.0);
63 parseGlyphOrientation("0.0", 0.0);
64 parseGlyphOrientation("10.0", 0.0);
65 parseGlyphOrientation("45.0", 0.0);
67 parseGlyphOrientation("-90.0", 90.0);
68 parseGlyphOrientation("-100.0", 90.0);
69 parseGlyphOrientation("-135.0", 90.0);
70 parseGlyphOrientation("90.0", 90.0);
71 parseGlyphOrientation("100.0", 90.0);
72 parseGlyphOrientation("135.0", 90.0);
74 parseGlyphOrientation("-180.0", 180.0);
75 parseGlyphOrientation("-190.0", 180.0);
76 parseGlyphOrientation("-225.0", 180.0);
77 parseGlyphOrientation("180.0", 180.0);
78 parseGlyphOrientation("190.0", 180.0);
79 parseGlyphOrientation("225.0", 180.0);
81 parseGlyphOrientation("-270.0", 270.0);
82 parseGlyphOrientation("-280.0", 270.0);
83 parseGlyphOrientation("-305.0", 270.0);
84 parseGlyphOrientation("270.0", 270.0);
85 parseGlyphOrientation("280.0", 270.0);
86 parseGlyphOrientation("305.0", 270.0);
88 debug('Tests angles bigger than 360.');
89 debug('');
91 parseGlyphOrientation("449.0", 90.0);
92 parseGlyphOrientation("450.0", 90.0);
93 parseGlyphOrientation("451.0", 90.0);
95 parseGlyphOrientation("539.0", 180.0);
96 parseGlyphOrientation("540.0", 180.0);
97 parseGlyphOrientation("541.0", 180.0);
99 parseGlyphOrientation("629.0", 270.0);
100 parseGlyphOrientation("630.0", 270.0);
101 parseGlyphOrientation("631.0", 270.0);
103 debug('Tests whitespace before/after angle value.');
104 debug('');
106 parseGlyphOrientation(" .0 ", 0.0);
107 parseGlyphOrientation(" 0 ", 0.0);
108 parseGlyphOrientation(" 90.0 ", 90.0);
109 parseGlyphOrientation(" 180.0 ", 180.0);
110 parseGlyphOrientation(" 270.0 ", 270.0);
112 debug('Tests rounding of fractional angle values.');
113 debug('');
115 parseGlyphOrientation("45.0000", 0.0);
116 parseGlyphOrientation("45.0001", 90.0);
117 parseGlyphOrientation("135.000", 90.0);
118 parseGlyphOrientation("135.001", 180.0);
121 </script>
123 </body>
124 </html>