<html>
<head>
	<title>Test - Bug #124777: Fix hover area for divs with a hierarchy of css transformed and non-transformed elements</title>
	<style type="text/css">
		.container
		{
			position: absolute;
			height: 200px;
			width:200px;
			background-color: gray;
		}

		.nopreserve {
			top: 0;
			left: 0;
		}

		.preserve {
			top: 250px;
			left: 0;
			-webkit-transform-style: preserve-3d;
			-moz-transform-style: preserve-3d;
		}

		.box {
				width: 100%;
				position: absolute;
				height: 100%;
				top: 0;
		}

		.red {
			background-color: red;
			-webkit-transform: perspective( 600px ) rotateY( 45deg );
			-moz-transform: perspective( 600px ) rotateY( 45deg );
			transform: perspective( 600px ) rotateY( 45deg );
		}

		.blue {
			background-color: blue;
			-webkit-transform: perspective( 600px ) rotateY( -45deg );
			-moz-transform: perspective( 600px ) rotateY( -45deg );
			transform: perspective( 600px ) rotateY( -45deg );
		}

		/* target1 contain points with negative z-offsets */
		#target
		{
			position: relative;
			height: 160px;
			width: 160px;
			margin: 20px;
			background-color: #DDD;
			-webkit-transform: rotate3d(0, 1, 0, -45deg);
			-webkit-transform-origin: right;
		}

		#results {
			margin-top: 460px;
		}
	</style>
	<script src="resources/hit-test-utils.js"></script>
	<script>
		var hitTestData = [

			{ 'point': [10, 100], 'target' : 'container-nopreserve' },
			{ 'point': [20, 100], 'target' : 'target2' },
			{ 'point': [80, 100], 'target' : 'target1' },
			{ 'point': [100, 100], 'target' : 'target1' },
			{ 'point': [120, 100], 'target' : 'target1' },
			{ 'point': [180, 100], 'target' : 'target1' },
			{ 'point': [190, 100], 'target' : 'container-nopreserve' },

			{ 'point': [10, 250], 'target' : 'container-preserve' },
			{ 'point': [20, 250], 'target' : 'target4' },
			{ 'point': [80, 250], 'target' : 'target4' },
			{ 'point': [100, 250], 'target' : 'target4' },
			{ 'point': [120, 250], 'target' : 'target3' },
			{ 'point': [180, 250], 'target' : 'target3' },
			{ 'point': [190, 250], 'target' : 'container-preserve' },

		];

		window.addEventListener('load', runTest, false);
	</script>
</head>
<body>

	<div id="container-nopreserve" class="container nopreserve">
		<div id="target2" class="box red">
		</div>
		<div id="target1" class="box blue">
		</div>
	</div>

	<div id="container-preserve" class="container preserve">
		<div id="target3" class="box blue">
		</div>
		<div id="target4" class="box red">
		</div>
	</div>

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

</body>
</html>
