e01e516e82a8dfb06f451193f8954d17fe75a6fb
[WebKit-https.git] / LayoutTests / fast / events / script-tests / page-scaled-mouse-click.js
1 description("This tests that page scaling does not affect mouse event pageX and pageY coordinates.");
2
3 var div = document.createElement("div");
4 div.style.width = "100px";
5 div.style.height = "100px";
6 div.style.backgroundColor = "blue";
7
8 var eventLog = "";
9
10 function appendEventLog() {
11     var msg = event.type + "(" + event.pageX + ", " + event.pageY + ")";
12
13     if (window.eventSender) {
14         eventLog += msg;
15     } else {
16         debug(msg);
17     }
18 }
19
20 function clearEventLog() {
21     eventLog = "";
22 }
23
24 div.addEventListener("click", appendEventLog, false);
25 document.body.insertBefore(div, document.body.firstChild);
26
27 function sendEvents(button) {
28     if (!window.eventSender) {
29         debug("This test requires DumpRenderTree.  Click on the blue rect with the left mouse button to log the mouse coordinates.")
30         return;
31     }
32     eventSender.mouseDown(button);
33     eventSender.mouseUp(button);
34 }
35
36 function testEvents(button, expectedString) {
37     sendEvents(button);
38     shouldBeEqualToString("eventLog", expectedString);
39     clearEventLog();
40 }
41
42 if (window.eventSender) {
43     eventSender.mouseMoveTo(10, 10);
44     testEvents(0, "click(10, 10)");
45
46     eventSender.scalePageBy(0.5, 0, 0);
47
48     // We are clicking in the same position on screen, but we have scaled the page out by 50%,
49     // we therefore expect the page-relative coordinates of the mouse event (pageX, pageY)
50     // to be doubled.
51     testEvents(0, "click(20, 20)");
52 }
53
54 var successfullyParsed = true;