<!DOCTYPE html>
<style type="text/css">
div { border: 2px solid red; }
div[attr1="LOWER"] { border-top-color: yellow }
div[attr1="lower"] { border-top-color: green }
div[attr2="upper"] { border-right-color: yellow }
div[attr2="UPPER"] { border-right-color: green }
div[attr3="lower" i] { border-bottom-color: green }
div[attr4="UPPER" I] { border-left-color: green }
div[attr4="UPPER" \0130] { border-left-color: yellow }
div[attr4="UPPER" \0131] { border-left-color: yellow }
div[attr4="UPPER" i\0i] { border-left-color: yellow }
div[attr-list~="BaR" i] { border: 2px solid green; }
div[attr-hyphen|="FoO" i] { border: 2px solid green; }
div[attr-begin^="FoO" i] { border: 2px solid green; }
div[attr-end$="BaR" i] { border: 2px solid green; }
div[attr-contain*="OoB" i] { border: 2px solid green; }
</style>
<div id="element-exact" attr1="lower" attr2="UPPER" attr3="LOWER" attr4="upper"></div>
<div id="element-list" attr-list="foo bar"></div>
<div id="element-hyphen" attr-hyphen="foo-bar"></div>
<div id="element-begin" attr-begin="foobar"></div>
<div id="element-end" attr-end="foobar"></div>
<div id="element-contains" attr-end="foobar"></div>
<p>
PASS if all elements borders are all green, not red.
</p>
<script src="../../resources/js-test.js"></script>
<script>
if (window.testRunner)
testRunner.dumpAsText();
function checkBorders(elementId) {
debug("Testing " + elementId.split('-')[1] + " attribute selector.");
element = document.getElementById(elementId);
shouldBe("window.getComputedStyle(element).borderTopColor", "'rgb(0, 128, 0)'");
shouldBe("window.getComputedStyle(element).borderRightColor", "'rgb(0, 128, 0)'");
shouldBe("window.getComputedStyle(element).borderBottomColor", "'rgb(0, 128, 0)'");
shouldBe("window.getComputedStyle(element).borderLeftColor", "'rgb(0, 128, 0)'");
}
checkBorders("element-exact");
checkBorders("element-list");
checkBorders("element-hyphen");
checkBorders("element-begin");
checkBorders("element-end");
checkBorders("element-contains");
</script>