summaryrefslogtreecommitdiffstats
path: root/gfx/layers/apz/test/mochitest/helper_zoomToFocusedInput_nozoom_bug1738696.html
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/layers/apz/test/mochitest/helper_zoomToFocusedInput_nozoom_bug1738696.html')
-rw-r--r--gfx/layers/apz/test/mochitest/helper_zoomToFocusedInput_nozoom_bug1738696.html51
1 files changed, 51 insertions, 0 deletions
diff --git a/gfx/layers/apz/test/mochitest/helper_zoomToFocusedInput_nozoom_bug1738696.html b/gfx/layers/apz/test/mochitest/helper_zoomToFocusedInput_nozoom_bug1738696.html
new file mode 100644
index 0000000000..4320e391b7
--- /dev/null
+++ b/gfx/layers/apz/test/mochitest/helper_zoomToFocusedInput_nozoom_bug1738696.html
@@ -0,0 +1,51 @@
+<!DOCTYPE>
+<html>
+ <head>
+ <title>Checking zoomToFocusedInput does not zoom is meta viewport does not allow it</title>
+ <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1, maximum-scale=1, user-scalable=no" />
+ <script type="application/javascript" src="apz_test_utils.js"></script>
+ <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
+ <script src="/tests/SimpleTest/paint_listener.js"></script>
+ </head>
+<body>
+<input id="input1" type="text" style="width:100%; height: 200px; border: 5px solid black"/>
+<script type="application/javascript">
+/* This test does not always exercise the bug it was written for, in the sense
+ that the test would fail without the corresponding patch. It seems as though
+ when hitting bug 1743602 the test does not exercise the bug. If bug 1743602
+ gets fixed hopefully this test will end up exercising the bug. A dev pixel
+ ratio of 1 seems to make it hard (but not impossible) for the test to
+ exercise the bug. This is what you get when running the emulator locally or
+ in our CI infrastructure. A dev pixel ratio of ~2.6 (23 appunits = 1 dev
+ pixel) seems to make it easier (but not 100%) for the test to exercise the
+ bug. This is what I got when running the test on a real phone locally (pixel 2).
+*/
+async function test() {
+ let utils = SpecialPowers.getDOMWindowUtils(window);
+
+ let resolution = await getResolution();
+ ok(resolution > 0,
+ "The initial_resolution is " + resolution + ", which is some sane value");
+
+ document.getElementById('input1').focus();
+ await waitToClearOutAnyPotentialScrolls(window);
+ await promiseApzFlushedRepaints();
+ let prev_resolution = resolution;
+ resolution = await getResolution();
+ ok(resolution == prev_resolution, "focusing input did not change resolution " + resolution);
+
+ let transformEndPromise = promiseTransformEnd();
+ utils.zoomToFocusedInput();
+ await waitToClearOutAnyPotentialScrolls(window);
+ await transformEndPromise;
+ await promiseApzFlushedRepaints();
+ resolution = await getResolution();
+ ok(resolution == prev_resolution, "zoomToFocusedInput input did not change resolution " + resolution);
+}
+
+SpecialPowers.getDOMWindowUtils(window).setDynamicToolbarMaxHeight(300);
+
+waitUntilApzStable().then(test).then(subtestDone, subtestFailed);
+</script>
+</body>
+</html>