1 <!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
2 "http://www.w3.org/TR/html4/loose.dtd">
6 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8">
7 <title>2D Transform Tests
</title>
8 <style type=
"text/css" media=
"screen">
13 outline:
1px solid black;
18 background-color: green;
19 transform: rotate(
90deg);
25 <script src=
"resources/transform-test-utils.js" type=
"text/javascript" charset=
"utf-8"></script>
26 <script type=
"text/javascript" charset=
"utf-8">
27 if (window.testRunner) {
28 testRunner.dumpAsText();
29 testRunner.waitUntilDone();
34 { 'transform' : 'none', 'result' : 'none' },
35 { 'transform' : '', 'result' : 'matrix(
5.96046e-08,
1, -
1,
5.96046e-08,
0,
0)' }, // this cancels the style - revert back to box
36 { 'transform' : 'inherit', 'result' : 'none' }, // parent element doesn't have transform
39 { 'transform' : 'translate(
80px,
90px)', 'result' : 'matrix(
1,
0,
0,
1,
80,
90)' },
40 { 'transform' : 'translate(
100%,
3em)', 'result' : 'matrix(
1,
0,
0,
1,
200,
48)' }, // depends on font size
41 { 'transform' : 'translate(
50px)', 'result' : 'matrix(
1,
0,
0,
1,
50,
0)' },
42 { 'transform' : 'translatex(-
20px)', 'result' : 'matrix(
1,
0,
0,
1, -
20,
0)' },
43 { 'transform' : 'translateX(-
20px)', 'result' : 'matrix(
1,
0,
0,
1, -
20,
0)' },
44 { 'transform' : 'translatey(
23px)', 'result' : 'matrix(
1,
0,
0,
1,
0,
23)' },
45 { 'transform' : 'translateY(-
3em)', 'result' : 'matrix(
1,
0,
0,
1,
0, -
48)' }, // depends on font size
48 { 'transform' : 'scale(
1.2)', 'result' : 'matrix(
1.2,
0,
0,
1.2,
0,
0)' },
49 { 'transform' : 'scalex(
1.5)', 'result' : 'matrix(
1.5,
0,
0,
1,
0,
0)' },
50 { 'transform' : 'scaleX(
1.5)', 'result' : 'matrix(
1.5,
0,
0,
1,
0,
0)' },
51 { 'transform' : 'scaley(
1.5)', 'result' : 'matrix(
1,
0,
0,
1.5,
0,
0)' },
52 { 'transform' : 'scaleY(
1.5)', 'result' : 'matrix(
1,
0,
0,
1.5,
0,
0)' },
53 { 'transform' : 'scale(
1.2,
0.8)', 'result' : 'matrix(
1.2,
0,
0,
0.8,
0,
0)' },
54 { 'transform' : 'scale(-
1.2, -
0.8)', 'result' : 'matrix(-
1.2, -
0, -
0, -
0.8,
0,
0)' },
57 { 'transform' : 'skew(-
0.7rad,
20deg)', 'result' : 'matrix(
1,
0.36397, -
0.842288,
1,
0,
0)' },
58 { 'transform' : 'skew(
12grad)', 'result' : 'matrix(
1,
0,
0.19076,
1,
0,
0)' },
59 { 'transform' : 'skewx(
12grad)', 'result' : 'matrix(
1,
0,
0.19076,
1,
0,
0)' },
60 { 'transform' : 'skewX(
12grad)', 'result' : 'matrix(
1,
0,
0.19076,
1,
0,
0)' },
61 { 'transform' : 'skewy(-
12grad)', 'result' : 'matrix(
1, -
0.19076,
0,
1,
0,
0)' },
62 { 'transform' : 'skewY(-
12grad)', 'result' : 'matrix(
1, -
0.19076,
0,
1,
0,
0)' },
63 { 'transform' : 'skewx(
0.1turn)', 'result' : 'matrix(
1,
0,
0.726543,
1,
0,
0)' },
66 { 'transform' : 'rotate(
45deg)', 'result' : 'matrix(
0.707107,
0.707107, -
0.707107,
0.707107,
0,
0)' },
67 { 'transform' : 'rotate(
90deg)', 'result' : 'matrix(-
4.37114e-08,
1, -
1, -
4.37114e-08,
0,
0)' },
68 { 'transform' : 'rotate(-
90deg)', 'result' : 'matrix(-
4.37114e-08, -
1,
1, -
4.37114e-08,
0,
0)' },
69 { 'transform' : 'rotate(
180deg)', 'result' : 'matrix(-
1, -
8.74228e-08,
8.74228e-08, -
1,
0,
0)' },
70 { 'transform' : 'rotate(
1.2rad)', 'result' : 'matrix(
0.362358,
0.932039, -
0.932039,
0.362358,
0,
0)' },
71 { 'transform' : 'rotate(
0.25turn)', 'result' : 'matrix(-
4.37114e-08,
1, -
1, -
4.37114e-08,
0,
0)' },
72 { 'transform' : 'rotate(
0.5turn)', 'result' : 'matrix(-
1, -
8.74228e-08,
8.74228e-08, -
1,
0,
0)' },
73 { 'transform' : 'rotate(
1.5turn)', 'result' : 'matrix(-
1, -
8.74228e-08,
8.74228e-08, -
1,
0,
0)' },
76 { 'transform' : 'matrix(
1,
0,
0,
1,
0,
0)', 'result' : 'matrix(
1,
0,
0,
1,
0,
0)' },
77 { 'transform' : 'matrix(
1, -
0.19076,
0,
1,
0,
0)', 'result' : 'matrix(
1, -
0.19076,
0,
1,
0,
0)' },
78 { 'transform' : 'matrix(
0.2,
0.3,
0.4,
1.1,
1.2,
1.3)', 'result' : 'matrix(
0.2,
0.3,
0.4,
1.1,
1.2,
1.3)' },
81 { 'transform' : ',rotate(
12deg)', 'result' : 'none' }, // has comma
82 { 'transform' : 'rotate(
12deg),', 'result' : 'none' }, // has comma
83 { 'transform' : 'rotate(
12deg) +', 'result' : 'none' }, // has plus
84 { 'transform' : '(translate(
50,
20))', 'result' : 'none' }, // bad syntax
85 { 'transform' : 'eggs(
10)', 'result' : 'none' }, // invalid function
88 { 'transform' : 'translate(
50,
20)', 'result' : 'none' }, // missing units
89 { 'transform' : 'translate()', 'result' : 'none' }, // no arguments
90 { 'transform' : 'translate(
10px,
20px,
30px)', 'result' : 'none' }, // too many arguments
91 { 'transform' : 'translate(
10px,
20px,
30px,
40px)', 'result' : 'none' }, // too many arguments
92 { 'transform' : 'translate(
10smidgens)', 'result' : 'none' }, // invalid units
93 { 'transform' : 'translate(
10px,
10smidgens)', 'result' : 'none' }, // invalid units
94 { 'transform' : 'translateX(
10px,
20px)', 'result' : 'none' }, // too many arguments
95 { 'transform' : 'translateX(
10px,
20px,
30px)', 'result' : 'none' }, // too many arguments
96 { 'transform' : 'translateX(
10smidgens)', 'result' : 'none' }, // invalid units
97 { 'transform' : 'translateX(
10px,
10smidgens)', 'result' : 'none' }, // invalid units
98 { 'transform' : 'translateY(
10px,
20px)', 'result' : 'none' }, // too many arguments
99 { 'transform' : 'translateY(
10px,
20px,
30px)', 'result' : 'none' }, // too many arguments
100 { 'transform' : 'translateY(
10smidgens)', 'result' : 'none' }, // invalid units
101 { 'transform' : 'translateY(
10px,
10smidgens)', 'result' : 'none' }, // invalid units
104 { 'transform' : 'scale(
2px,
2px)', 'result' : 'none' }, // has units
105 { 'transform' : 'scale(
2,
2px)', 'result' : 'none' }, // has units
106 { 'transform' : 'scale()', 'result' : 'none' }, // no arguments
107 { 'transform' : 'scale(
1,
2,
3)', 'result' : 'none' }, // too many arguments
108 { 'transform' : 'scale(
2smidgens)', 'result' : 'none' }, // invalid units
109 { 'transform' : 'scale(
2,
2smidgens)', 'result' : 'none' }, // invalid units
112 { 'transform' : 'rotate(
10)', 'result' : 'none' }, // no units
113 { 'transform' : 'rotate()', 'result' : 'none' }, // no arguments
114 { 'transform' : 'rotate(
10deg,
20deg)', 'result' : 'none' }, // too many arguments
115 { 'transform' : 'rotate(
2turns)', 'result' : 'none' }, // invalid units -- 'turn' not 'turns'
116 { 'transform' : 'rotate(
2spins)', 'result' : 'none' }, // invalid units
117 { 'transform' : 'rotate(
2,
2spins)', 'result' : 'none' }, // invalid units
120 { 'transform' : 'skew(
10)', 'result' : 'none' }, // no units
121 { 'transform' : 'skew()', 'result' : 'none' }, // no arguments
122 { 'transform' : 'skew(
10deg,
20deg,
30deg)', 'result' : 'none' }, // too many arguments
123 { 'transform' : 'skew(
2bits)', 'result' : 'none' }, // invalid units
124 { 'transform' : 'skew(
2,
2bits)', 'result' : 'none' }, // invalid units
125 { 'transform' : 'skewX(
10)', 'result' : 'none' }, // no units
126 { 'transform' : 'skewX()', 'result' : 'none' }, // no arguments
127 { 'transform' : 'skewX(
10deg,
20deg)', 'result' : 'none' }, // too many arguments
128 { 'transform' : 'skewX(
2bits)', 'result' : 'none' }, // invalid units
129 { 'transform' : 'skewY(
10)', 'result' : 'none' }, // no units
130 { 'transform' : 'skewY()', 'result' : 'none' }, // no arguments
131 { 'transform' : 'skewY(
10deg,
20deg)', 'result' : 'none' }, // too many arguments
132 { 'transform' : 'skewY(
2bits)', 'result' : 'none' }, // invalid units
135 { 'transform' : 'matrix()', 'result' : 'none' }, // no arguments
136 { 'transform' : 'matrix(
2,
0,
0,
2)', 'result' : 'none' }, // not enough arguments
137 { 'transform' : 'matrix(
0.978148,
0.207912, -
0.207912,
0.978148,
50,
20,
666)', 'result' : 'none' }, // too many arguments
138 { 'transform' : 'matrix(
1,
0,
0,
1,
20px,
50px)', 'result' : 'none' } // has units
146 if (window.testRunner)
147 testRunner.notifyDone();
151 <body onload=
"runTests()">
153 <div class=
"container">
154 <div id=
"test-box" class=
"box"></div>