summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/loading/preloader-link-media.tentative.html
blob: 93fc7d969fd75141189b4ce8499a270819520074 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!doctype html>
<meta charset="utf-8">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/dummy.js?pipe=trickle(d1)"></script>
<link rel="stylesheet" media="print" href="resources/dummy.css?print">
<link rel="stylesheet" href="resources/dummy.css?non-print">
<script>
  let t = async_test("Non-matching link media is not preloaded");
  window.addEventListener("load", t.step_func_done(function() {
    let entries = performance.getEntriesByType('resource');
    let found_print = null;
    let found_non_print = null;
    for (let entry of entries) {
      if (entry.name.includes("?print")) {
        assert_equals(found_print, null);
        found_print = entry.startTime;
      }
      if (entry.name.includes("?non-print")) {
        assert_equals(found_non_print, null);
        found_non_print = entry.startTime;
      }
    }
    assert_not_equals(found_print, null, "Should've loaded print sheet");
    assert_not_equals(found_non_print, null, "Should've loaded non-print sheet");
    // We can assert_greater_than (rather than greater_than_equal) because if
    // the non-print sheet has been preloaded but the print one hasn't, we have
    // the trickle mechanism to try to guarantee that enough time has passed
    // between one load and the next.
    assert_greater_than(found_print, found_non_print, "Non-print sheet should've started loading before print sheet")
  }));
</script>