Unprefix CSS cursor values grab and grabbing
[WebKit-https.git] / LayoutTests / fast / css / cursor-parsing.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <html>
3 <head>
4 <script src="../../resources/js-test-pre.js"></script>
5 </head>
6 <body>
7 <p id="description"></p>
8 <div id="console"></div>
9 <script>
10 description("Test the parsing of the cursor property.");
11
12 function makeCursorRule(rule)
13 {
14     return "cursor: " + rule + ";";
15 }
16
17 function testCursorRule(rule)
18 {
19     var cssText = makeCursorRule(rule);
20     shouldBeEqualToString('roundtripCssRule("' + cssText + '")', cssText);
21 }
22
23 function testInvalidCursorRule(rule)
24 {
25     shouldBeEqualToString('roundtripCssRule("' + makeCursorRule(rule) + '")', '');
26 }
27
28 function roundtripCssRule(cssText)
29 {
30     var div = document.createElement("div");
31     div.setAttribute("style", cssText);
32     document.body.appendChild(div);
33     var result = div.style.cssText;
34     document.body.removeChild(div);
35     return result;
36 }
37
38 // Note that any absolute URL will suffice for these tests (can't use relative URLs
39 // since they'll be converted to absolute form in the output).  I chose file URLs just
40 // to avoid triggering any network activity.
41
42 debug('Test a bunch of cursor rules which should round-trip exactly.');
43
44 testCursorRule('auto');
45 testCursorRule('default');
46 testCursorRule('none');
47 testCursorRule('context-menu');
48 testCursorRule('help');
49 testCursorRule('pointer');
50 testCursorRule('progress');
51 testCursorRule('wait');
52 testCursorRule('cell');
53 testCursorRule('crosshair');
54 testCursorRule('text');
55 testCursorRule('vertical-text');
56 testCursorRule('alias');
57 testCursorRule('copy');
58 testCursorRule('move');
59 testCursorRule('no-drop');
60 testCursorRule('not-allowed');
61 testCursorRule('grab');
62 testCursorRule('grabbing');
63 testCursorRule('e-resize');
64 testCursorRule('n-resize');
65 testCursorRule('ne-resize');
66 testCursorRule('nw-resize');
67 testCursorRule('s-resize');
68 testCursorRule('se-resize');
69 testCursorRule('sw-resize');
70 testCursorRule('w-resize');
71 testCursorRule('ew-resize');
72 testCursorRule('ns-resize');
73 testCursorRule('nesw-resize');
74 testCursorRule('nwse-resize');
75 testCursorRule('col-resize');
76 testCursorRule('row-resize');
77 testCursorRule('all-scroll');
78 testCursorRule('zoom-in');
79 testCursorRule('zoom-out');
80 testCursorRule('-webkit-grab');
81 testCursorRule('-webkit-grabbing');
82 testCursorRule('-webkit-zoom-in');
83 testCursorRule('-webkit-zoom-out');
84
85 testCursorRule('url(file:///foo.png), crosshair');
86 testCursorRule('url(file:///foo.png), url(file:///foo2.png), pointer');
87 testCursorRule('url(file:///foo.png) 12 3, pointer');
88 testCursorRule('url(file:///foo.png) 0 0, pointer');
89 testCursorRule('url(file:///foo.png) 12 3, url(file:///foo2.png), url(file:///foo3.png) 6 7, crosshair');
90 testCursorRule('url(file:///foo.png) -2 3, pointer');
91 testCursorRule('url(file:///foo.png) 2 -3, pointer');
92 testCursorRule('url(file:///foo.png) -1 -1, pointer');
93
94 debug('');
95 debug('Test a bunch of invalid cursor rules which shouldn\'t parse at all.');
96 testInvalidCursorRule('nonexistent');
97 testInvalidCursorRule('ltr');
98 testInvalidCursorRule('inline');
99 testInvalidCursorRule('url(file:///foo.png), url(file:///foo2.png)');
100 testInvalidCursorRule('url(file:///foo.png) 12');
101 testInvalidCursorRule('url(file:///foo.png) 12 3 5');
102 testInvalidCursorRule('url(file:///foo.png) x y');
103 testInvalidCursorRule('url(file:///foo.png) auto');
104
105 successfullyParsed = true;
106 </script>
107 <script src="../../resources/js-test-post.js"></script>
108 </body>
109 </html>