| <!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> |