<?xml version="1.0" encoding="utf-8"?>
<!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.layoutTestController)
	           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="http://bugzilla.opendarwin.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>
