chromium/third_party/blink/web_tests/fast/css/invalid-hex-color.html

<!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>