<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', function() {
            shouldBecomeDifferent('firstStyle.backgroundColor', 'secondStyle.backgroundColor', finishJSTest);
        });
    }
}
</script>
<style>
:link { color: green; background-color: white }
:visited { color: orange; background-color: black }
</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>
<a href="http://madeup.site.com" id="one">One</a> 
<a href="resources/dummy.html" id="two">Two</a><br>
</p>
<div id=console></div>
</body>
<script src="../../resources/js-test-post.js"></script>
</html>
