<html> 
<head> 
<script>
if (window.testRunner)
    testRunner.dumpAsText();

function test() {
    var passed = window.getComputedStyle(document.getElementsByTagName('p')[2]).color === "rgb(0, 0, 0)";
    document.getElementsByTagName('div')[0].innerText = passed ? "PASS" : "FAIL";
}
</script>
<style> 
    p.foo + p { color: red; }
</style> 
</head> 
<body onload="test()"> 
    <p class="foo">This text should be black.</p> 
    <p>This text should be red.</p> 
    <p>This text should be black.</p>
    <div></div>
</body>
</html>
