<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<script>
jsTestIsAsync = true;

if (window.testRunner)
    window.testRunner.keepWebHistory();

function compareStyles()
{
    if (window.internals) {
        firstStyle = internals.computedStyleIncludingVisitedInfo(document.getElementById('one'));
        secondStyle = internals.computedStyleIncludingVisitedInfo(document.getElementById('two'));
        shouldBecomeDifferent('firstStyle.color', 'secondStyle.color', finishJSTest);
    }
}
</script>
<style>
:link { color: orange }
:visited + :link.ok { color: green }
:visited { color: green }
</style>
</head>
<body onload="compareStyles()">
<iframe src="resources/dummy.html" style="display:none"></iframe>

<p>These two links should be different colors (green and orange):</p>
<p style="color:green">
<a href="resources/dummy.html" class="ok" id="one">One</a>
<a href="http://madeup.site.com" class="ok" id="two">Two</a>
</p>
<div id=console></div>
</body>
<script src="../../resources/js-test-post.js"></script>
</html>
