blob: 9e0d1f3a435301f00fe1669f24a5aaf495b6219d [file] [log] [blame]
<html>
<head>
<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
<script src="../../fast/js/resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script>
description("This tests the parser for preserve aspect ratio attribute values.");
var imageElement = document.createElementNS("http://www.w3.org/2000/svg", "image");
function parsePreserveAspectRatio(string, alignValue, meetOrSliceValue)
{
imageElement.setAttributeNS(null, "preserveAspectRatio", string);
debug("Test string: '" + string + "'");
shouldBe("imageElement.preserveAspectRatio.baseVal.align", "" + alignValue);
shouldBe("imageElement.preserveAspectRatio.baseVal.meetOrSlice", "" + meetOrSliceValue);
debug("");
}
parsePreserveAspectRatio("none", 1, 1);
parsePreserveAspectRatio("xMinYMin", 2, 1);
parsePreserveAspectRatio("xMidYMin", 3, 1);
parsePreserveAspectRatio("xMaxYMin", 4, 1);
parsePreserveAspectRatio("xMinYMid", 5, 1);
parsePreserveAspectRatio("xMidYMid", 6, 1);
parsePreserveAspectRatio("xMaxYMid", 7, 1);
parsePreserveAspectRatio("xMinYMax", 8, 1);
parsePreserveAspectRatio("xMidYMax", 9, 1);
parsePreserveAspectRatio("xMaxYMax", 10, 1);
parsePreserveAspectRatio("xMinYMin meet", 2, 1);
parsePreserveAspectRatio("xMidYMin meet", 3, 1);
parsePreserveAspectRatio("xMaxYMin meet", 4, 1);
parsePreserveAspectRatio("xMinYMid meet", 5, 1);
parsePreserveAspectRatio("xMidYMid meet", 6, 1);
parsePreserveAspectRatio("xMaxYMid meet", 7, 1);
parsePreserveAspectRatio("xMinYMax meet", 8, 1);
parsePreserveAspectRatio("xMidYMax meet", 9, 1);
parsePreserveAspectRatio("xMaxYMax meet", 10, 1);
parsePreserveAspectRatio("xMinYMin slice", 2, 2);
parsePreserveAspectRatio("xMidYMin slice", 3, 2);
parsePreserveAspectRatio("xMaxYMin slice", 4, 2);
parsePreserveAspectRatio("xMinYMid slice", 5, 2);
parsePreserveAspectRatio("xMidYMid slice", 6, 2);
parsePreserveAspectRatio("xMaxYMid slice", 7, 2);
parsePreserveAspectRatio("xMinYMax slice", 8, 2);
parsePreserveAspectRatio("xMidYMax slice", 9, 2);
parsePreserveAspectRatio("xMaxYMax slice", 10, 2);
parsePreserveAspectRatio("defer xMinYMin", 2, 1);
parsePreserveAspectRatio("defer xMidYMin", 3, 1);
parsePreserveAspectRatio("defer xMaxYMin", 4, 1);
parsePreserveAspectRatio("defer xMinYMid", 5, 1);
parsePreserveAspectRatio("defer xMidYMid", 6, 1);
parsePreserveAspectRatio("defer xMaxYMid", 7, 1);
parsePreserveAspectRatio("defer xMinYMax", 8, 1);
parsePreserveAspectRatio("defer xMidYMax", 9, 1);
parsePreserveAspectRatio("defer xMaxYMax", 10, 1);
parsePreserveAspectRatio("defer xMinYMin meet", 2, 1);
parsePreserveAspectRatio("defer xMidYMin meet", 3, 1);
parsePreserveAspectRatio("defer xMaxYMin meet", 4, 1);
parsePreserveAspectRatio("defer xMinYMid meet", 5, 1);
parsePreserveAspectRatio("defer xMidYMid meet", 6, 1);
parsePreserveAspectRatio("defer xMaxYMid meet", 7, 1);
parsePreserveAspectRatio("defer xMinYMax meet", 8, 1);
parsePreserveAspectRatio("defer xMidYMax meet", 9, 1);
parsePreserveAspectRatio("defer xMaxYMax meet", 10, 1);
parsePreserveAspectRatio("defer xMinYMin slice", 2, 2);
parsePreserveAspectRatio("defer xMidYMin slice", 3, 2);
parsePreserveAspectRatio("defer xMaxYMin slice", 4, 2);
parsePreserveAspectRatio("defer xMinYMid slice", 5, 2);
parsePreserveAspectRatio("defer xMidYMid slice", 6, 2);
parsePreserveAspectRatio("defer xMaxYMid slice", 7, 2);
parsePreserveAspectRatio("defer xMinYMax slice", 8, 2);
parsePreserveAspectRatio("defer xMidYMax slice", 9, 2);
parsePreserveAspectRatio("defer xMaxYMax slice", 10, 2);
debug('Tests for some whitespace cases.');
debug('');
parsePreserveAspectRatio(" xMinYMin", 2, 1);
parsePreserveAspectRatio("xMinYMin ", 2, 1);
parsePreserveAspectRatio(" xMinYMin ", 2, 1);
parsePreserveAspectRatio(" xMinYMin ", 2, 1);
parsePreserveAspectRatio("xMinYMin" + String.fromCharCode(9), 2, 1);
parsePreserveAspectRatio("xMinYMin" + String.fromCharCode(10), 2, 1);
parsePreserveAspectRatio("xMinYMin" + String.fromCharCode(13), 2, 1);
parsePreserveAspectRatio("xMinYMinslice", 2, 2);
parsePreserveAspectRatio("xMinYMin slice", 2, 2);
parsePreserveAspectRatio("xMinYMinslice ", 2, 2);
parsePreserveAspectRatio("xMinYMin slice ", 2, 2);
parsePreserveAspectRatio(" xMinYMinslice", 2, 2);
parsePreserveAspectRatio(" xMinYMin slice", 2, 2);
parsePreserveAspectRatio(" xMinYMinslice ", 2, 2);
parsePreserveAspectRatio(" xMinYMin slice ", 2, 2);
debug('Tests for bug where "slice" parsing was based on the old value rather than the parsed value.');
debug('');
parsePreserveAspectRatio("none", 1, 1);
parsePreserveAspectRatio("xMinYMin slice", 2, 2);
parsePreserveAspectRatio("xMinYMin", 2, 1);
parsePreserveAspectRatio("none slice", 1, 1);
parsePreserveAspectRatio("xMinYMin", 2, 1);
parsePreserveAspectRatio("slice", 1, 1);
debug('Strings that fail to parse, and hence parse as "none".');
debug('');
parsePreserveAspectRatio("", 1, 1);
parsePreserveAspectRatio("defer", 1, 1);
parsePreserveAspectRatio("meet", 1, 1);
parsePreserveAspectRatio("slice", 1, 1);
parsePreserveAspectRatio("xminymin", 1, 1);
parsePreserveAspectRatio("refer xMinYMin slice", 1, 1);
parsePreserveAspectRatio("xMinYMin defer", 1, 1);
parsePreserveAspectRatio("slice xMinYMin", 1, 1);
parsePreserveAspectRatio("xMinYMin" + String.fromCharCode(0xa0), 1, 1);
successfullyParsed = true;
</script>
<script src="../../fast/js/resources/js-test-post.js"></script>
</body>
</html>