<!DOCTYPE HTML>
<script src="../../../../resources/js-test.js"></script>
<style>
html, body {
margin: 0;
}
body {
height: 1000px;
}
#target {
width: 50px;
height: 50px;
margin: 5px 0px 0px 5px;
}
</style>
<iframe frameborder=0 id="target" src="resources/event-delegator.html"></iframe>
<div id=console></div>
<script>
var event;
var windowScrollOffset = {
x: 0,
y: 3
};
var frameScrollOffset = {
x: 2,
y: 7
};
window.scrollTo(windowScrollOffset.x, windowScrollOffset.y);
var frameRect = target.getBoundingClientRect();
var pointInFrame = {
x: frameRect.width / 2,
y: frameRect.height / 2
};
var pointInWindow = {
x: frameRect.left + pointInFrame.x,
y: frameRect.top + pointInFrame.y
};
var eventReceived = {};
function onEventInFrame(e) {
debug("Received " + e.type + " in child frame");
event = e;
eventReceived[e.type] = true;
shouldBe("event.screenX", "pointInWindow.x");
shouldBe("event.screenY", "pointInWindow.y");
shouldBe("event.clientX", "pointInFrame.x");
shouldBe("event.clientY", "pointInFrame.y");
shouldBe("event.pageX", "pointInFrame.x + frameScrollOffset.x");
shouldBe("event.pageY", "pointInFrame.y + frameScrollOffset.y");
}
description("Verifies that a tap occurring in a scrolled iframe has the correct co-ordinates");
if (window.eventSender) {
jsTestIsAsync = true;
target.onload = function() {
target.contentWindow.scrollTo(frameScrollOffset.x, frameScrollOffset.y);
debug("Sending GestureTapDown to " + pointInWindow.x + "," + pointInWindow.y);
eventSender.gestureTapDown(pointInWindow.x, pointInWindow.y);
debug("Sending GestureShowPress");
eventSender.gestureShowPress(pointInWindow.x, pointInWindow.y);
debug("Sending GestureTap");
eventSender.gestureTap(pointInWindow.x, pointInWindow.y);
shouldBeTrue("eventReceived.mousemove");
shouldBeTrue("eventReceived.mousedown");
shouldBeTrue("eventReceived.mouseup");
shouldBeTrue("eventReceived.click");
setTimeout(finishJSTest, 0);
}
} else {
debug("This test requires eventSender");
}
</script>