<html>
<head>
<script>
// Uncomment to make this an automated test
//if (window.testRunner) {
//    testRunner.waitUntilDone();
//    testRunner.keepWebHistory();
//}
function runTest() {
// Uncomment to make this an automated test
//    // Uses window.history hack; see http://bugs.webkit.org/show_bug.cgi?id=7135
//    if (!window.history[99999]) {
//        var element = document.getElementById("mylink");
//        var event = document.createEvent("MouseEvent");
//        event.initEvent("click", true, true);
//        element.dispatchEvent(event);
//    }
//    else {
//        if (window.testRunner) {
//            testRunner.notifyDone();
//        }
//    }
}
</script>
</head>
<body onload="runTest();">
<div><a href="http://bugs.webkit.org/show_bug.cgi?id=8079">Bug 8079 REGRESSION: Redraw from page cache does not show visited links</a></div>
<ol>
<li>The link in Step 2 should be rendered in an unvisited link color first.
<li><a id="mylink" href="./resources/redraw-page-cache-visited-links-2.html">Click This Link Once</a><br><br>
<li value="4">The test passes if the link in Step 2 is rendered in a visited link color after the click.
</ol>
</body>
</html>
