summaryrefslogtreecommitdiffstats
path: root/gfx/layers/apz/test/mochitest/helper_zoomToFocusedInput_touch-action.html
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/layers/apz/test/mochitest/helper_zoomToFocusedInput_touch-action.html')
-rw-r--r--gfx/layers/apz/test/mochitest/helper_zoomToFocusedInput_touch-action.html67
1 files changed, 67 insertions, 0 deletions
diff --git a/gfx/layers/apz/test/mochitest/helper_zoomToFocusedInput_touch-action.html b/gfx/layers/apz/test/mochitest/helper_zoomToFocusedInput_touch-action.html
new file mode 100644
index 0000000000..bdb49f4b84
--- /dev/null
+++ b/gfx/layers/apz/test/mochitest/helper_zoomToFocusedInput_touch-action.html
@@ -0,0 +1,67 @@
+<!DOCTYPE>
+<html>
+ <head>
+ <title>Checking zoomToFocusedInput zooms if touch-action allows it</title>
+ <meta name="viewport" content="width=device-width, height=device-height, initial-scale=0.5 minimum-scale=0.5, maximum-scale=1" />
+ <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>
+ <style type="text/css">
+ .touch-none {
+ touch-action: none;
+ }
+ .touch-auto {
+ touch-action: auto;
+ }
+ </style>
+<body>
+ <div class="touch-none">
+ <input id="input1" type="text" style="border: 5px solid black">
+ </div>
+ <br>
+ <div class="touch-auto">
+ <input id="input2" type="text" style="border: 5px solid black">
+ </div>
+<script type="application/javascript">
+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 input1 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 input1 did not change resolution " + resolution);
+
+ document.getElementById('input2').focus();
+ await waitToClearOutAnyPotentialScrolls(window);
+ await promiseApzFlushedRepaints();
+ resolution = await getResolution();
+ ok(resolution == prev_resolution, "focusing input2 did not change resolution " + resolution);
+
+ transformEndPromise = promiseTransformEnd();
+ utils.zoomToFocusedInput();
+ await waitToClearOutAnyPotentialScrolls(window);
+ await transformEndPromise;
+ await promiseApzFlushedRepaints();
+ resolution = await getResolution();
+ ok(resolution != prev_resolution, "zoomToFocusedInput input2 changed resolution " + resolution);
+}
+
+waitUntilApzStable().then(test).then(subtestDone, subtestFailed);
+</script>
+</body>
+</html>