<html>
<head>
    <title> CSS Background Border Test: "border-image-repeat:repeat-x;height:200px;width:200px;border-image-source:none;border-image-width:50px" on test div</title>
    <link rel="author" title="Intel" href="http://www.intel.com" />
    <link rel="help" href="http://www.w3.org/TR/css3-background/#the-border-image-repeat" />
    <meta name="assert" content="Check if 'border-image-repeat:repeat-x;height:200px;width:200px;border-image-source:none;border-image-width:50px' work on div" />
    <script type="text/javascript" src="/resources/testharness.js"></script>
    <script type="text/javascript" src="/resources/testharnessreport.js"></script>
    <style>
        #test{
            height: 30px;
            width: 80px;
            padding: 5px;
            border: 5px solid black;
            margin: 5px;
            background: blue;
        }
    </style>
</head>
<body>
    <div id="log"></div>
    <div id="test"></div>
    <script type="text/javascript">
        var div = document.querySelector("#test");
        var t = async_test();
        t.step(function () {
            div.style[headProp("border-image-repeat")] = "repeat-x";
            div.style[headProp("height")] = "200px";
            div.style[headProp("width")] = "200px";
            div.style[headProp("border-image-source")] = "none";
            div.style[headProp("border-image-width")] = "50px";
            var propvalue = GetCurrentStyle("border-image-repeat");
            var prop = propvalue.indexOf("repeat-x")!=-1;
            assert_false(prop, "The element border-image-repeat can be repeat-x")
            var height = GetCurrentStyle("height");
            prop = height.indexOf("200px")!=-1;
            assert_true(prop, "The element height should be 200px");
            var width = GetCurrentStyle("width");
            prop = width.indexOf("200px")!=-1;
            assert_true(prop, "The element width should be 200px");
            var borderImageSource = GetCurrentStyle("border-image-source");
            prop = borderImageSource.indexOf("none")!=-1;
            assert_true(prop, "The element border-image-source should be none");
            var borderImageWidth = GetCurrentStyle("border-image-width");
            prop = borderImageWidth.indexOf("50px")!=-1;
            assert_true(prop, "The element border-image-width should be 50px");
        });
        t.done();

		function GetCurrentStyle(prop) {
        try
        {
            var div = document.querySelector("#test");   //object
            prop = prop.replace(/([-][a-z])/g, function ($1) { return $1.toUpperCase().replace("-","") });
            var headprop = headProp(prop);
            var fixprop = getComputedStyle(div)[headprop];
            if (!fixprop)
            {return "";}
            return fixprop;
        }
        catch(e)
        {
                return "";
        }
}

//
function headProp(s) {
    var div = document.querySelector("#test");
    if (s in div.style) {
        return s;
    }
    s = s.replace(/([-][a-z])/g, function ($1) { return $1.toUpperCase().replace("-", "") });
    if (s in div.style) {
        return s;
    }
    s = s[0].toUpperCase() + s.slice(1);
    var prefixes = ["ms", "Moz", "moz", "webkit", "O"];
    for (var i = 0; i < prefixes.length; i++) {
        if ((prefixes[i] + s) in div.style) {
            return prefixes[i] + s;
        }
    }
    return s;
}

    </script>
</body>
