blob: d1ce869468de5125031292838b0af37e22fb9adf [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../../resources/js-test-pre.js"></script>
<div id="detector"></div>
<style>
#detector { width: 100px; }
@media (-webkit-min-device-pixel-ratio: 1) { #detector { width: 10px; } }
@media print and (-webkit-min-device-pixel-ratio: 3) { #detector { width: 30px; } }
</style>
<script>
description("CSS3 media query test: -webkit-device-pixel-ratio combined with print.")
if (window.testRunner && window.internals) {
window.testRunner.dumpAsText();
function resolutionFromStyle() {
var width = getComputedStyle(document.getElementById("detector")).width;
switch (width) {
case "10px":
return 1;
case "30px":
return 3;
case "31px":
return 3.125;
default:
return undefined;
}
}
function appendMediaRule(rule) {
var lastStyleSheet = document.styleSheets[document.styleSheets.length - 1];
lastStyleSheet.insertRule(rule, lastStyleSheet.cssRules.length);
}
shouldBe("matchMedia('(-webkit-min-device-pixel-ratio: 1)').matches", "true");
shouldBe("resolutionFromStyle()", "1");
// Test printing.
window.internals.settings.setMediaTypeOverride("print");
shouldBe("matchMedia('(-webkit-min-device-pixel-ratio: 3)').matches", "true");
// Should match the one requiring 'print' media type.
shouldBe("resolutionFromStyle()", "3");
// As well as those matching 'all'.
appendMediaRule("@media (-webkit-min-device-pixel-ratio: 3.125) { #detector { width: 31px; } }");
shouldBe("resolutionFromStyle()", "3.125");
}
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>