<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="../../../resources/js-test-pre.js"></script>
</head>
<body>
<script>

description("Test to make sure border-width property returns CSSValueList properly.")

var testContainer = document.createElement("div");
testContainer.contentEditable = true;
document.body.appendChild(testContainer);

testContainer.innerHTML = '<div id="test" style="border-width: 10px 5px 4px 3px; border-style: solid solid;">hello</div>';

e = document.getElementById('test');
computedStyle = window.getComputedStyle(e, null);

shouldBe("computedStyle.getPropertyValue('border-width')", "'10px 5px 4px 3px'");
shouldBe("computedStyle.getPropertyCSSValue('border-width').toString()", "'[object CSSValueList]'");
shouldBe("computedStyle.getPropertyCSSValue('border-width').cssText", "'10px 5px 4px 3px'");
shouldBe("computedStyle.getPropertyCSSValue('border-width').length", "4");
shouldBe("computedStyle.getPropertyCSSValue('border-width').item(0).getFloatValue(CSSPrimitiveValue.CSS_PX)", "10");
shouldBe("computedStyle.getPropertyCSSValue('border-width').item(1).getFloatValue(CSSPrimitiveValue.CSS_PX)", "5");
shouldBe("computedStyle.getPropertyCSSValue('border-width').item(2).getFloatValue(CSSPrimitiveValue.CSS_PX)", "4");
shouldBe("computedStyle.getPropertyCSSValue('border-width').item(3).getFloatValue(CSSPrimitiveValue.CSS_PX)", "3");

e.style.borderWidth="20em 10em 4em 5em";
shouldBe("computedStyle.getPropertyValue('border-width')", "'320px 160px 64px 80px'");
shouldBe("computedStyle.getPropertyCSSValue('border-width').toString()", "'[object CSSValueList]'");
shouldBe("computedStyle.getPropertyCSSValue('border-width').cssText", "'320px 160px 64px 80px'");
shouldBe("computedStyle.getPropertyCSSValue('border-width').length", "4");
shouldBe("computedStyle.getPropertyCSSValue('border-width').item(0).getFloatValue(CSSPrimitiveValue.CSS_PX)", "320");
shouldBe("computedStyle.getPropertyCSSValue('border-width').item(1).getFloatValue(CSSPrimitiveValue.CSS_PX)", "160");
shouldBe("computedStyle.getPropertyCSSValue('border-width').item(2).getFloatValue(CSSPrimitiveValue.CSS_PX)", "64");
shouldBe("computedStyle.getPropertyCSSValue('border-width').item(3).getFloatValue(CSSPrimitiveValue.CSS_PX)", "80");

e.style.borderWidth=""
e.style.borderStyle=""
e.style.borderTop = "10px solid"
shouldBe("computedStyle.getPropertyValue('border-width')", "'10px 0px 0px'");
shouldBe("computedStyle.getPropertyCSSValue('border-width').toString()", "'[object CSSValueList]'");
shouldBe("computedStyle.getPropertyCSSValue('border-width').cssText", "'10px 0px 0px'");
shouldBe("computedStyle.getPropertyCSSValue('border-width').length", "3");
shouldBe("computedStyle.getPropertyCSSValue('border-width').item(0).getFloatValue(CSSPrimitiveValue.CSS_PX)", "10");
shouldBe("computedStyle.getPropertyCSSValue('border-width').item(1).getFloatValue(CSSPrimitiveValue.CSS_PX)", "0");
shouldBe("computedStyle.getPropertyCSSValue('border-width').item(2).getFloatValue(CSSPrimitiveValue.CSS_PX)", "0");

e.style.borderTop=""
e.style.borderWidth="10px 5px 4px 3px"
e.style.borderStyle="none";
shouldBe("computedStyle.getPropertyValue('border-width')", "'0px'");
shouldBe("computedStyle.getPropertyCSSValue('border-width').toString()", "'[object CSSValueList]'");
shouldBe("computedStyle.getPropertyCSSValue('border-width').cssText", "'0px'");
shouldBe("computedStyle.getPropertyCSSValue('border-width').length", "1");
shouldBe("computedStyle.getPropertyCSSValue('border-width').item(0).getFloatValue(CSSPrimitiveValue.CSS_PX)", "0");

e.style.borderStyle="hidden";
shouldBe("computedStyle.getPropertyValue('border-width')", "'0px'");
shouldBe("computedStyle.getPropertyCSSValue('border-width').toString()", "'[object CSSValueList]'");
shouldBe("computedStyle.getPropertyCSSValue('border-width').cssText", "'0px'");
shouldBe("computedStyle.getPropertyCSSValue('border-width').length", "1");
shouldBe("computedStyle.getPropertyCSSValue('border-width').item(0).getFloatValue(CSSPrimitiveValue.CSS_PX)", "0");

document.body.removeChild(testContainer);

</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>
