blob: 1531a922a0c613c118211248c27a51565a3a61bc [file] [log] [blame]
<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
<html>
<meta name="viewport" id="meta">
<head>
<script src="../../../resources/js-test.js"></script>
<script src="../../../resources/ui-helper.js"></script>
<style>
body, html {
margin: 0;
width: 100%;
height: 100%;
}
</style>
<script>
jsTestIsAsync = true;
function logWindowDimensionsAfterSettingViewportContent(content) {
return new Promise(async resolve => {
meta.setAttribute("content", content);
await UIHelper.ensurePresentationUpdate();
debug(`[${meta.getAttribute("content")}] (${innerWidth}, ${innerHeight})`);
resolve();
});
}
async function runTest() {
if (!window.testRunner) {
description("Please use WebKitTestRunner to run this test.");
return;
}
debug("1. Initial min-device-width");
await logWindowDimensionsAfterSettingViewportContent("width=150");
await logWindowDimensionsAfterSettingViewportContent("width=device-width");
scaleAtDeviceWidthForInitialMinDeviceWidth = parseFloat(await UIHelper.zoomScale()).toFixed(3);
await logWindowDimensionsAfterSettingViewportContent("width=600");
debug("\n2. min-device-width=0");
await logWindowDimensionsAfterSettingViewportContent("width=150, min-device-width=0");
await logWindowDimensionsAfterSettingViewportContent("width=device-width, min-device-width=0");
scaleAtDeviceWidthForMinDeviceWidth0 = parseFloat(await UIHelper.zoomScale()).toFixed(3);
await logWindowDimensionsAfterSettingViewportContent("width=600, min-device-width=0");
debug("\n3. min-device-width=500");
await logWindowDimensionsAfterSettingViewportContent("width=150, min-device-width=500");
await logWindowDimensionsAfterSettingViewportContent("width=device-width, min-device-width=500");
scaleAtDeviceWidthForMinDeviceWidth500 = parseFloat(await UIHelper.zoomScale()).toFixed(3);
await logWindowDimensionsAfterSettingViewportContent("width=600, min-device-width=500");
shouldBe("scaleAtDeviceWidthForInitialMinDeviceWidth", "'0.488'");
shouldBe("scaleAtDeviceWidthForMinDeviceWidth0", "'1.000'");
shouldBe("scaleAtDeviceWidthForMinDeviceWidth500", "'0.312'");
finishJSTest();
}
</script>
</head>
<body onload="runTest()">
</body>
</html>