<svg xmlns="http://www.w3.org/2000/svg">
<style type="text/css"><![CDATA[
    #foo {
        fill: red;
    }
]]></style>
<rect width="50" height="50" id="foo"/>
<script>
    function expectsException(col, value) {
        try {
            col.setRGBColor(value);
        } catch(ex) {
            return ex.code == 1;
        }
        return false;
    }
    function expectsValid(col, value, expectedvalue) {
        try {
            col.setRGBColor(value);
            if (col.cssText == expectedvalue) {
                return true;
            }
        } catch(ex) {
        }
        col.setRGBColor("red");
        return false;
    }

    /* test that incorrect color strings throw an exception */
    var col = document.styleSheets[0].cssRules[0].style.getPropertyCSSValue("fill");
    if (!expectsException(col, "rgb(100%,100%,0%")) return;
    if (!expectsException(col, "rgba(100%,100%,0%")) return;
    if (!expectsException(col, "rgb(100%,100%,r)")) return;
    if (!expectsException(col, "rgb (100%,100%,r)")) return;
    if (!expectsException(col, "hsl(100%,100%,100%)")) return;
    if (!expectsException(col, "yello")) return;
    if (!expectsException(col, "!#fff")) return;
    if (!expectsException(col, "#sdf")) return;
    if (!expectsException(col, "#")) return;
    if (!expectsException(col, "#f")) return;
    if (!expectsException(col, "#ff")) return;
    if (!expectsException(col, "#ffff")) return;
    if (!expectsException(col, "#fffff")) return;
    if (!expectsException(col, "#fffffff")) return;
    if (!expectsException(col, "green,")) return;
    if (!expectsValid(col, "rgb(0, 10, 20%)", "#000A33")) return;
    if (!expectsValid(col, "rgb(0, 10, 20)", "#000A14")) return;
    if (!expectsValid(col, "#FFF", "#FFFFFF")) return;
    if (!expectsValid(col, "#FFFFFF", "#FFFFFF")) return;
    if (!expectsValid(col, " green", "#008000")) return;
    if (!expectsValid(col, "green ", "#008000")) return;
    if (!expectsValid(col, "green", "#008000")) return;
</script>   
</svg>
