1 <html xmlns=
"http://www.w3.org/1999/xhtml">
3 <script src=
"../../resources/js-test.js"/>
6 <svg display=
"none" xmlns=
"http://www.w3.org/2000/svg"><text id=
"text"/></svg>
7 <p id=
"description"></p>
10 var textElement
= document
.getElementById("text");
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"');
23 shouldBe("parseFloat(computedStyle.getPropertyValue('" + property
+ "'))", "" + expectedValue
);
29 function parseGlyphOrientation(angleValue
, expectedValue
)
31 if (expectedValue
== undefined) {
32 parseGlyphOrientationHelper("glyph-orientation-horizontal", angleValue
, 0.0);
33 parseGlyphOrientationHelper("glyph-orientation-vertical", angleValue
, "auto");
35 parseGlyphOrientationHelper("glyph-orientation-horizontal", angleValue
, expectedValue
);
36 parseGlyphOrientationHelper("glyph-orientation-vertical", angleValue
, expectedValue
);
40 description('Stress test glyph-orientation SVG CSS properties');
43 debug('Strings that fail to parse, and hence parse as "0" for horziontal and "auto" as vertical.');
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.');
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.');
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.');
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.');
115 parseGlyphOrientation("45.0000", 0.0);
116 parseGlyphOrientation("45.0001", 90.0);
117 parseGlyphOrientation("135.000", 90.0);
118 parseGlyphOrientation("135.001", 180.0);