blob: ec232315dde93739882794213fe07c9ba2a0017f [file] [log] [blame]
<?php
header("Link: <http://127.0.0.1:8000/resources/square100.png?timer>;rel=preload;as=image;\"", false);
header("Link: <http://127.0.0.1:8000/resources/square100.png?control>;rel=preload;as=image;\"", false);
header("Link: <http://127.0.0.1:8000/resources/square100.png?large>;rel=preload;as=image;media=\"(min-width: 300px)\"", false);
header("Link: <http://127.0.0.1:8000/resources/square100.png?small>;rel=preload;as=image;media=\"(max-width: 299px)\"", false);
?>
<!DOCTYPE html>
<meta name="viewport" content="width=160">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
var t = async_test('Makes sure that Link headers support the media attribute and respond to <meta content=viewport>');
var img = new Image();
var counter = 20;
var timeout = 50;
img.addEventListener("load", t.step_func(function(){
var test = function() {
var entries = performance.getEntriesByType("resource");
var controlLoaded = false;
var smallLoaded = false;
var largeLoaded = false;
for (var i = 0; i < entries.length; ++i) {
if (entries[i].name.indexOf("control") != -1)
controlLoaded = true;
else if (entries[i].name.indexOf("large") != -1)
largeLoaded = true;
else if (entries[i].name.indexOf("small") != -1)
smallLoaded = true;
}
// It's possible that due to network variance, these resource downloads didn't yet finish.
// If so, wait a bit longer (up to 1 second).
if (!(controlLoaded || smallLoaded) && counter) {
--counter;
t.step_timeout(test, timeout);
}
assert_true(controlLoaded, "The control element should be loaded");
assert_false(largeLoaded, "The large element should not be loaded");
assert_true(smallLoaded, "The small element should be loaded");
t.done();
};
t.step_timeout(test, timeout);
}));
img.src = "http://127.0.0.1:8000/resources/square100.png?timer";
</script>