<html>
	<head>
		<title>Test - Bug #124777: Fix hover area for divs with a hierarchy of css transformed and non-transformed elements</title>
		<style>
			#transformed {
				-webkit-transform: translateY(50px) rotateX(20deg) rotateZ(10deg);
				border: solid 5px rgba(128,128,128,0.5);
				padding: 10px;
				margin: 15px;
			}
			#transformed, #parent {
				width: 600px;
				height: 150px;
			}
			#child1 {
				-webkit-transform: rotateX(45deg) rotateZ(45deg) translateZ(-500px) translateX(-300px) translateY(-180px);
				border: solid 5px rgba(128,128,128,0.5);
				background-color: Lime;
			}
			#child2 {
				-webkit-transform: translateZ(-500px) rotateX(-45deg) rotateZ(-45deg) translateX(50px) translateY(-130px);
				border: solid 5px rgba(128,128,128,0.5);
				background-color: Cyan;
			}
			html {
				font-size: 16px;
				line-height: 16px;
				font-family: Verdana;
			}
			#parent:hover, #transformed:hover, #child1:hover, #child2:hover {
				box-shadow: 0px 0px 0px 10px rgba(0,128,0,0.5);
			}
			#parent {
				outline: dotted 1px #888;
			}
		</style>

		<script src="resources/hit-test-utils.js"></script>
		<script>
			var hitTestData = [
				{ 'point': [70, 70], 'target' : 'transformed' },
				{ 'point': [630, 130], 'target' : 'transformed' },
				{ 'point': [40, 130], 'target' : 'transformed' },
				{ 'point': [620, 270], 'target' : 'transformed' },
				{ 'point': [130, 100], 'target' : 'child1' },
				{ 'point': [200, 110], 'target' : 'child2' }
			];

			window.addEventListener('load', runTest, false);
		  </script>
	</head>
	<body id="body">
		<div id="parent">
			<div id="transformed">transformed
				<div id="child1">child 1</div>
				<div id="nonTransformedChild">non transformed child</div>
				<div id="child2">child 2</div>
			</div>
		</div>

		<p>Test passes if the hover state of a transformed div is activated even if there's a non transformed element behind it.</p>

		<div id="results"></div>
	</body>
</html>
