diff options
Diffstat (limited to 'dom/base/test/test_meta_viewport6.html')
-rw-r--r-- | dom/base/test/test_meta_viewport6.html | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/dom/base/test/test_meta_viewport6.html b/dom/base/test/test_meta_viewport6.html new file mode 100644 index 000000000..b003ed2c0 --- /dev/null +++ b/dom/base/test/test_meta_viewport6.html @@ -0,0 +1,83 @@ +<!DOCTYPE HTML> +<html> +<head> + <meta charset="utf-8"> + <title>meta viewport test</title> + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> + <meta name="viewport" content="width=2000, minimum-scale=0.75"> + <script src="viewport_helpers.js"></script> +</head> +<body> + <p>width=2000, minimum-scale=0.75</p> + <script type="application/javascript;version=1.7"> + "use strict"; + + SimpleTest.waitForExplicitFinish(); + + let tests = []; + + tests.push(function test1() { + SpecialPowers.pushPrefEnv(scaleRatio(1.0), + function() { + let info = getViewportInfo(800, 480); + is(info.minZoom, 0.75, "minumum scale is set explicitly"); + is(info.defaultZoom, 0.75, "initial scale is bounded by the minimum scale"); + is(info.maxZoom, 10, "maximum scale defaults to the absolute maximum"); + is(info.width, 2000, "width is set explicitly"); + is(info.height, 1200, "height is proportional to displayHeight"); + is(info.autoSize, false, "autoSize is disabled by default"); + is(info.allowZoom, true, "zooming is enabled by default"); + + info = getViewportInfo(2000, 1000); + is(info.minZoom, 0.75, "minumum scale is still set explicitly"); + is(info.defaultZoom, 1, "initial scale fits the width"); + is(info.width, 2000, "width is set explicitly"); + is(info.height, 1000, "height is proportional to the new displayHeight"); + + nextTest(); + }); + }); + + tests.push(function test2() { + SpecialPowers.pushPrefEnv(scaleRatio(1.5), + function() { + let info = getViewportInfo(800, 480); + is(info.minZoom, 1.125, "minumum scale is converted to device pixel scale"); + is(info.defaultZoom, 1.125, "initial scale is bounded by the minimum scale"); + is(info.maxZoom, 15, "maximum scale defaults to the absolute maximum"); + is(info.width, 2000, "width is still set explicitly"); + is(info.height, 1200, "height is still proportional to displayHeight"); + + nextTest(); + }); + }); + + function getViewportInfo(aDisplayWidth, aDisplayHeight) { + let defaultZoom = {}, allowZoom = {}, minZoom = {}, maxZoom = {}, + width = {}, height = {}, autoSize = {}; + + let cwu = SpecialPowers.getDOMWindowUtils(window); + cwu.getViewportInfo(aDisplayWidth, aDisplayHeight, defaultZoom, allowZoom, + minZoom, maxZoom, width, height, autoSize); + return { + defaultZoom: defaultZoom.value, + minZoom: minZoom.value, + maxZoom: maxZoom.value, + width: width.value, + height: height.value, + autoSize: autoSize.value, + allowZoom: allowZoom.value + }; + } + + function nextTest() { + if (tests.length) + (tests.shift())(); + else + SimpleTest.finish(); + } + addEventListener("load", nextTest); + </script> +</body> +</html> |