blob: 2b073f77d07291ba35bad2a742c9f7abe3c600d8 [file] [log] [blame]
<!doctype html>
<html>
<head>
<title>Test for Bug 24742 - CSS tokenizer allows color in 6 hex digit notation to be followed by the next token without separation</title>
<style>
div {
margin-bottom:11px;
}
</style>
<script>
if (window.testRunner)
testRunner.dumpAsText();
function test()
{
var test_defs = [
/* description, expected style, test style */
["Invalid: 0 hexadecimal digits", "", "border-bottom: solid #"],
["Invalid: 1 hexadecimal digits", "", "border-bottom: solid #1"],
["Invalid: 2 hexadecimal digits", "", "border-bottom: solid #11"],
["Valid: 3 hexadecimal digits", "border-bottom: solid rgb(17,17,17)", "border-bottom: solid #111"],
["Valid: 4 hexadecimal digits", "border-bottom: solid rgba(17,17,17,255)", "border-bottom: solid #111f"],
["Invalid: 5 hexadecimal digits", "", "border-bottom: solid #11111"],
["Valid: 6 hexadecimal digits", "border-bottom: solid rgb(17,17,17)", "border-bottom: solid #111111"],
["Invalid: 7 hexadecimal digits", "", "border-bottom: solid #1111111"],
["Valid: 8 hexadecimal digits", "border-bottom: solid rgba(17,17,17,255)", "border-bottom: solid #111111ff"],
["Invalid: 0 hexadecimal digits concatenated with 'px'", "", "border-bottom: solid #px"],
["Invalid: 1 hexadecimal digits concatenated with 'px'", "", "border-bottom: solid #1px"],
["Invalid: 2 hexadecimal digits concatenated with 'px'", "", "border-bottom: solid #11px"],
["Invalid: 3 hexadecimal digits concatenated with 'px'", "", "border-bottom: solid #111px"],
["Invalid: 4 hexadecimal digits concatenated with 'px'", "", "border-bottom: solid #1111px"],
["Invalid: 5 hexadecimal digits concatenated with 'px'", "", "border-bottom: solid #11111px"],
["Invalid: 6 hexadecimal digits concatenated with 'px'", "", "border-bottom: solid #111111px"],
["Invalid: 7 hexadecimal digits concatenated with 'px'", "", "border-bottom: solid #1111111px"],
["Invalid: 8 hexadecimal digits concatenated with 'px'", "", "border-bottom: solid #11111111px"],
];
var testHtml = "";
for (var i = 0; i < test_defs.length; i++) {
var test_def = test_defs[i];
testHtml += "<div>Test " + i + " (" + test_def[0] + ")" +
"<span id='expected_" + i + "' style='" + test_def[1] + "'> [EXPECTED] </span>" +
"<span id='actual_" + i + "' style='" + test_def[2] + "'> [ACTUAL] </span>" +
"<span id='result_" + i + "'></span></div>";
}
document.getElementById('tests').innerHTML = testHtml;
for (var i = 0; i < test_defs.length; i++) {
var expected = document.getElementById("expected_" + i).style.borderBottomColor;
var actual = document.getElementById("actual_" + i).style.borderBottomColor;
var message;
var color;
if (actual == expected) {
message = "PASS";
color = "green";
} else {
message = "FAIL: expected:'" + expected + "' actual:'" + actual + "'";
color = "red";
}
var result = document.getElementById("result_" + i);
result.innerHTML = message;
result.style.color = color;
}
}
</script>
</head>
<body onload="test()">
<div id='tests'>Test didn't run</div>
</html>