| <!DOCTYPE html> |
| <style> |
| #test { |
| font-size: 5vh; |
| width: 50vw; |
| } |
| #testpseudo:after { |
| margin-left: 20vmin; |
| content: ''; |
| } |
| </style> |
| <script src="../../resources/js-test.js"></script> |
| |
| This test of viewport units and resizing depends on window.resizeTo. |
| |
| <div id="test"></div> |
| <div id="testpseudo"></div> |
| <div id="host"></div> |
| |
| <script> |
| if (window.testRunner) { |
| testRunner.useUnfortunateSynchronousResizeMode(); |
| testRunner.dumpAsText(); |
| } |
| |
| var sizes = [[800, 600], [900, 600], [900, 640], [500, 640], [800, 600]] |
| var root = host.attachShadow({mode: 'open'}); |
| testshadow = document.createElement("div"); |
| testshadow.id = "testshadow"; |
| root.innerHTML = "<style> #testshadow { border: 10vmax solid green; } </style>"; |
| root.appendChild(testshadow); |
| |
| for (var i = 0; i < sizes.length; ++i) { |
| var width = sizes[i][0]; |
| var height = sizes[i][1]; |
| var min = Math.min(width, height); |
| var max = Math.max(width, height); |
| window.resizeTo(width, height); |
| shouldBe("window.innerWidth", "" + width); |
| shouldBe("window.innerHeight", "" + height); |
| shouldBe("getComputedStyle(test).fontSize", "'" + height/20 + "px'"); |
| shouldBe("getComputedStyle(test).width", "'" + width/2 + "px'"); |
| shouldBe("getComputedStyle(testpseudo, ':after').marginLeft", "'" + min/5 + "px'"); |
| shouldBe("getComputedStyle(testshadow).borderRightWidth", "'" + max/10 + "px'"); |
| } |
| </script> |