<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
	<title></title>
	<style type="text/css">
		div:after {
			content: "and generated content";
			}
		div:hover:after {
			content: "and generated hover content";
			}
	</style>
	<script type="text/javascript">
	   function test()
	   {
	       if (!window.testRunner)
	           return;
	       eventSender.mouseMoveTo(12, 12);    // hover
	       eventSender.mouseDown();    // get noticed
	       eventSender.mouseUp();
	   }
	</script>
</head>
<body onload="test()">
	<div>
		This is a test
	</div>
	<hr>
	<p>
        Test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=6431">http://bugzilla.opendarwin.org/show_bug.cgi?id=6431</a>
        REGRESSION: style change where :hover changes only an :after style doesn't work</i>.
	</p>
	<p>
        The line at the top of the page should read &ldquo;This is a test and generated content&rdquo;
        or &ldquo;This is a test and generated hover content&rdquo; depending on whether it is
        hovered.
	</p>
        <p>
        To reproduce the bug outside of DumpRenderTree, mouse over the div several times, and the style change won't update every time
        like it should.
        </p>
</body>
</html>
