<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg xmlns="http://www.w3.org/2000/svg" onload="runTest()">

<script>
<![CDATA[
    function log(string) {
      var newDiv = document.createElementNS("http://www.w3.org/1999/xhtml", "div");
      newDiv.textContent = string;
      document.getElementById('log').appendChild(newDiv);
    }
    function runTest()
    {
        var rect = document.rootElement.lastChild.previousSibling;
        if (rect.getPresentationAttribute('fill') == null) {
            log("Failed getting the fill PA");
            return;
        }
        if (rect.getPresentationAttribute('color') != null) {
            log("There should be no color PA");
            return;
        }
        if (rect.getPresentationAttribute('border-top') != null) {
            log("There should be no border-top PA");
            return;
        }
        rect.setAttribute("fill", "green");
    }
    ]]>
</script>
This test tests that getPresentationAttribute succefully returns SVG presentation attributes, but not ones that are defined in the inline style and not non SVG css properties like border.
See <a href="http://bugs.webkit.org/show_bug.cgi?id=13976">Bug 13976</a>.
<foreignObject width="100%" height="100%">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <div id="log">
This test tests that getPresentationAttribute succesfully returns SVG presentation attributes, but not ones that are defined in the inline style and not non SVG css properties like border.
See <a href="http://bugs.webkit.org/show_bug.cgi?id=13976">Bug 13976</a>.
        </div>
    </html>
</foreignObject>

    <rect x="10" y="50" width="100" height="100" fill="red" style="color:yellow" border-top="10"/>
</svg>
