118 lines
3.5 KiB
HTML
118 lines
3.5 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
<script>
|
|
description("Test the parsing of the cursor property.");
|
|
|
|
var style;
|
|
|
|
function makeCursorRule(rule)
|
|
{
|
|
return "cursor: " + rule + ";";
|
|
}
|
|
|
|
function testCursorRule(rule)
|
|
{
|
|
var cssText = makeCursorRule(rule);
|
|
style = roundtripCssRule(cssText);
|
|
shouldBeEqualToString('style.cssText', cssText);
|
|
}
|
|
|
|
function testInvalidCursorRule(rule)
|
|
{
|
|
shouldBeEqualToString('roundtripCssRule("' + makeCursorRule(rule) + '").cssText', '');
|
|
}
|
|
|
|
function roundtripCssRule(cssText)
|
|
{
|
|
var div = document.createElement("div");
|
|
div.setAttribute("style", cssText);
|
|
document.body.appendChild(div);
|
|
var result = div.style;
|
|
document.body.removeChild(div);
|
|
return result;
|
|
}
|
|
|
|
// Note that any absolute URL will suffice for these tests (can't use relative URLs
|
|
// since they'll be converted to absolute form in the output). I chose file URLs just
|
|
// to avoid triggering any network activity.
|
|
|
|
debug('Test a bunch of cursor rules which should round-trip exactly.');
|
|
|
|
testCursorRule('auto');
|
|
testCursorRule('default');
|
|
testCursorRule('none');
|
|
testCursorRule('context-menu');
|
|
testCursorRule('help');
|
|
testCursorRule('pointer');
|
|
testCursorRule('progress');
|
|
testCursorRule('wait');
|
|
testCursorRule('cell');
|
|
testCursorRule('crosshair');
|
|
testCursorRule('text');
|
|
testCursorRule('vertical-text');
|
|
testCursorRule('alias');
|
|
testCursorRule('copy');
|
|
testCursorRule('move');
|
|
testCursorRule('no-drop');
|
|
testCursorRule('not-allowed');
|
|
testCursorRule('grab');
|
|
testCursorRule('grabbing');
|
|
testCursorRule('e-resize');
|
|
testCursorRule('n-resize');
|
|
testCursorRule('ne-resize');
|
|
testCursorRule('nw-resize');
|
|
testCursorRule('s-resize');
|
|
testCursorRule('se-resize');
|
|
testCursorRule('sw-resize');
|
|
testCursorRule('w-resize');
|
|
testCursorRule('ew-resize');
|
|
testCursorRule('ns-resize');
|
|
testCursorRule('nesw-resize');
|
|
testCursorRule('nwse-resize');
|
|
testCursorRule('col-resize');
|
|
testCursorRule('row-resize');
|
|
testCursorRule('all-scroll');
|
|
testCursorRule('zoom-in');
|
|
testCursorRule('zoom-out');
|
|
testCursorRule('-webkit-grab');
|
|
testCursorRule('-webkit-grabbing');
|
|
testCursorRule('-webkit-zoom-in');
|
|
testCursorRule('-webkit-zoom-out');
|
|
|
|
testCursorRule('url("file:///foo.png"), crosshair');
|
|
testCursorRule('url("file:///foo.png"), url("file:///foo2.png"), pointer');
|
|
testCursorRule('url("file:///foo.png") 12 3, pointer');
|
|
testCursorRule('url("file:///foo.png") 0 0, pointer');
|
|
testCursorRule('url("file:///foo.png") 12 3, url("file:///foo2.png"), url("file:///foo3.png") 6 7, crosshair');
|
|
testCursorRule('url("file:///foo.png") -2 3, pointer');
|
|
testCursorRule('url("file:///foo.png") 2 -3, pointer');
|
|
testCursorRule('url("file:///foo.png") -1 -1, pointer');
|
|
|
|
debug('');
|
|
debug('Test a bunch of invalid cursor rules which shouldn\'t parse at all.');
|
|
testInvalidCursorRule('nonexistent');
|
|
testInvalidCursorRule('ltr');
|
|
testInvalidCursorRule('inline');
|
|
testInvalidCursorRule('url(file:///foo.png), url(file:///foo2.png)');
|
|
testInvalidCursorRule('url(file:///foo.png) 12');
|
|
testInvalidCursorRule('url(file:///foo.png) 12 3 5');
|
|
testInvalidCursorRule('url(file:///foo.png) x y');
|
|
testInvalidCursorRule('url(file:///foo.png) auto');
|
|
|
|
debug('');
|
|
debug('Test a bunch of cursor rules with generated images.');
|
|
testInvalidCursorRule('linear-gradient(red, white) -1 -1, pointer');
|
|
testInvalidCursorRule('image-set(linear-gradient(red, white) 1x) -1 -1, pointer');
|
|
|
|
successfullyParsed = true;
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|