blob: 6e0c56ace10df8b9ad5b1604d4f046533140e639 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Test hit testing of left property while animating</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
#target {
position: absolute;
left: 100px;
height: 200px;
width: 200px;
background-color: red;
-webkit-animation-duration: 4s;
-webkit-animation-timing-function: linear;
}
@-webkit-keyframes "anim" {
from { left: 100px; }
to { left: 300px; }
}
.dot {
width: 10px;
height: 10px;
top: 100px;
background-color: yellow;
position:absolute;
}
</style>
<script type="text/javascript" charset="utf-8">
function checkResult(pos, isIn)
{
var elt = document.elementFromPoint(pos, 150);
var good = isIn ? "inside" : "outside";
var bad = isIn ? "outside" : "inside";
return (isIn == (elt.id == "target")) ?
"<span style='color:green'>PASS</span> - " + pos + "px was " + good + " as it should be" + "<br>" :
"<span style='color:red'>FAIL</span> - " + pos + "px was " + bad + " and should have been " + good + "<br>";
}
function checkResults()
{
// Test before (150), in (300) and after (450)
var result = "";
result += checkResult(150, false);
result += checkResult(300, true);
result += checkResult(450, false);
document.getElementById('result').innerHTML = result;
}
function doTest()
{
if (window.layoutTestController) {
if (!layoutTestController.pauseAnimationAtTimeOnElementWithId("anim", 2.0, "target"))
throw("Transition is not running");
checkResults();
layoutTestController.notifyDone();
}
else {
window.setTimeout("checkResults()", 2000);
}
}
function startTest()
{
if (window.layoutTestController) {
layoutTestController.dumpAsText();
layoutTestController.waitUntilDone();
}
document.getElementById("target").style.webkitAnimationName = "anim";
window.setTimeout(doTest, 0);
}
</script>
</head>
<body onload="startTest()">
<div>
This test starts an animation of the 'left' property and then does elementFromPoint calls
at the shown yellow dots to see if hit testing works
</div>
<div id="target"></div>
<div class="dot" style="left:150px"></div>
<div class="dot" style="left:300px"></div>
<div class="dot" style="left:450px"></div>
<div id="result" style="position:absolute; top:250px"></div>
</body>
</html>