Index: LayoutTests/fast/images/image-click-scale-restore-zoomed-image.html |
diff --git a/LayoutTests/fast/images/image-click-scale-restore-zoomed-image.html b/LayoutTests/fast/images/image-click-scale-restore-zoomed-image.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ae5b8899e099fbad5e2838986e9ed83aa82310d7 |
--- /dev/null |
+++ b/LayoutTests/fast/images/image-click-scale-restore-zoomed-image.html |
@@ -0,0 +1,88 @@ |
+<!DOCTYPE html> |
+ |
+<script> |
+var clicked = false; |
+var count = 0; |
+var requestId = 0; |
+ |
+if (window.testRunner) { |
+ testRunner.dumpAsText(); |
+ testRunner.setCanOpenWindows(); |
+ testRunner.waitUntilDone(); |
+} |
+ |
+function log(message) |
+{ |
+ var console = document.getElementById("console"); |
+ console.appendChild(document.createTextNode(message + "\n")); |
+} |
+ |
+function click(newwindow, image) |
+{ |
+ var e = newwindow.document.createEvent("MouseEvent"); |
+ e.initMouseEvent("click", true, true, newwindow, 1, 1, 1, 1, 1, false, false, false, false, 0, newwindow.document); |
+ image.dispatchEvent(e); |
+} |
+ |
+window.onload = function() |
+{ |
+ var newwindow = window.open("resources/flowchart.jpg"); |
+ if (window.testRunner) |
+ testRunner.useUnfortunateSynchronousResizeMode(); |
+ newwindow.onload = function() { |
+ |
+ newwindow.onresize = function() { |
+ var image = newwindow.document.querySelector("img"); |
+ if (image.clientWidth == 0) { |
+ // On GTK+, sometimes the resize callback fires before the GTK |
+ // window has finished resizing. If that happens, try to resize |
+ // again. |
+ requestId = newWindow.requestAnimationFrame(function() { |
+ newwindow.resizeTo(100, 100); |
+ if (requestId) |
+ newwindow.cancelAnimationFrame(requestId); |
+ requestId = 0; |
+ }); |
+ return; |
+ } |
+ |
+ if (window.eventSender) { |
+ if (!clicked) { |
+ // Zoom in level 1 |
+ eventSender.zoomPageIn(); |
+ var w = Math.round(image.clientWidth); |
+ var h = Math.round(image.clientHeight); |
+ log("Size at zoomed in level : " + w + " x " + h); |
+ clicked = true; |
+ count++; |
+ click(newwindow, image); |
+ } else { |
+ var w = Math.round(image.clientWidth); |
+ var h = Math.round(image.clientHeight); |
+ log("Size at zoomed level after scale up click " + count + " : " + w + " x " + h); |
+ if (count == 3) |
+ testRunner.notifyDone(); |
+ |
+ // Restore the image size |
+ click(newwindow, image); |
+ count++; |
+ // Brings to normal zoom |
+ eventSender.zoomPageOut(); |
+ // Zoom out level 1 |
+ eventSender.zoomPageOut(); |
+ // Restore the image size |
+ var w = Math.round(image.clientWidth); |
+ var h = Math.round(image.clientHeight); |
+ log("Size at zoomed out level after click " + count + " (Image restored): " + w + " x " + h); |
+ count++; |
+ click(newwindow, image); |
+ } |
+ } |
+ }; |
+ |
+ newwindow.resizeTo(100, 100); |
+ }; |
+} |
+</script> |
+<p>This tests that on a zoomed page, click to scale up / down works fine. This test requires testRunner to run. To test manually, open <a href="resources/dice.png">this image</a> in a browser window, resize the window to 100px tall and zoom out and click on the image to scale it up.</p> |
+<pre id="console"></pre> |