| <head> |
| <script src="../../../resources/js-test-pre.js"></script> |
| <script> |
| var nrmouseclicks = 0; // small hack to distinguish between clicks |
| var ev; |
| function mouseev(event) { |
| if (nrmouseclicks == 0) { |
| shouldBe("event.clientX", "50"); |
| shouldBe("event.clientY", "50"); |
| shouldBe("event.pageX", "50"); |
| shouldBe("event.pageY", "50"); |
| shouldBe("event.layerX", "50"); |
| shouldBe("event.layerY", "50"); |
| shouldBe("event.offsetX", "42"); |
| shouldBe("event.offsetY", "42"); |
| nrmouseclicks++; |
| } else if (nrmouseclicks == 1) { |
| shouldBe("event.clientX", "50"); |
| shouldBe("event.clientY", "50"); |
| shouldBe("event.pageX", "50"); |
| shouldBe("event.pageY", "550"); |
| shouldBe("event.layerX", "50"); |
| shouldBe("event.layerY", "550"); |
| shouldBe("event.offsetX", "42"); |
| shouldBe("event.offsetY", "542"); |
| nrmouseclicks++; |
| } else if (nrmouseclicks == 2) { |
| shouldBe("event.clientX", "50"); |
| shouldBe("event.clientY", "50"); |
| shouldBe("event.pageX", "550"); |
| shouldBe("event.pageY", "50"); |
| shouldBe("event.layerX", "550"); |
| shouldBe("event.layerY", "50"); |
| shouldBe("event.offsetX", "542"); |
| shouldBe("event.offsetY", "42"); |
| nrmouseclicks++; |
| |
| // test initMouseEvent |
| window.scrollTo(500, 500); |
| ev = document.createEvent("MouseEvent"); |
| ev.initMouseEvent("mousedown", true, true, document.defaultView, 1, 50, 50, 50, 50, false, false, false, false, 0, document); |
| var child = document.getElementById('target'); |
| child.dispatchEvent(ev); |
| } else { |
| shouldBe("ev.clientX", "50"); |
| shouldBe("ev.clientY", "50"); |
| shouldBe("ev.pageX", "550"); |
| shouldBe("ev.pageY", "550"); |
| shouldBe("ev.layerX", "550"); |
| shouldBe("ev.layerY", "550"); |
| shouldBe("ev.offsetX", "542"); |
| shouldBe("ev.offsetY", "542"); |
| } |
| } |
| function test() { |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| // test a normal mouse to |
| eventSender.mouseMoveTo(50, 50); |
| eventSender.mouseDown(); |
| eventSender.mouseUp(); |
| |
| // now scroll a bit down and verify that clientY does not change |
| window.scrollTo(0, 500); |
| eventSender.mouseDown(); |
| eventSender.mouseUp(); |
| |
| // now scroll a bit to the right and verify that clientX does not change |
| window.scrollTo(500, 0); |
| eventSender.mouseDown(); |
| eventSender.mouseUp(); |
| } |
| } |
| </script> |
| </head> |
| <body onload="test()"> |
| <div id="target" style="background: red; width:2000px; height: 2000px" onmousedown="mouseev(event)"> |
| </div> |
| <div id="console"></div> |
| </body> |