blob: 8825ffaaa52025484be848b1a6f73d91da210a47 [file] [log] [blame]
Yoav Weisse8172dd2016-12-19 08:42:181<!DOCTYPE html>
Rob Buis7bcd4d02019-05-15 09:19:362<title>Makes sure that preloaded resources trigger the onload event</title>
Yoav Weisse8172dd2016-12-19 08:42:183<script src="/resources/testharness.js"></script>
4<script src="/resources/testharnessreport.js"></script>
Yoav Weiss82ed3072017-02-08 13:51:585<script src="/preload/resources/preload_helper.js"></script>
Yoav Weisse8172dd2016-12-19 08:42:186<script>
Rob Buisb1ef6ae2019-05-16 13:44:467 var scriptLoaded = false;
8 var styleLoaded = false;
9 var imageLoaded = false;
10 var fontLoaded = false;
11 var videoLoaded = false;
12 var audioLoaded = false;
13 var trackLoaded = false;
14 var gibberishLoaded = false;
15 var gibberishErrored = false;
16 var noTypeLoaded = false;
17 var fetchLoaded = false;
Yoav Weisse8172dd2016-12-19 08:42:1818</script>
19<link rel=preload href="resources/dummy.js" as=script onload="scriptLoaded = true;">
20<link rel=preload href="resources/dummy.css" as=style onload="styleLoaded = true;">
21<link rel=preload href="resources/square.png" as=image onload="imageLoaded = true;">
Geoffrey Sneddond56bf782018-03-15 16:41:4422<link rel=preload href="/fonts/CanvasTest.ttf" as=font crossorigin onload="fontLoaded = true;">
Dragana Damjanovice7327c52017-08-02 10:55:4723<link rel=preload href="resources/white.mp4" as=video onload="videoLoaded = true;">
24<link rel=preload href="resources/sound_5.oga" as=audio onload="audioLoaded = true;">
25<link rel=preload href="resources/foo.vtt" as=track onload="trackLoaded = true;">
Yoav Weisse8172dd2016-12-19 08:42:1826<link rel=preload href="resources/dummy.xml?foo=bar" as=foobarxmlthing onload="gibberishLoaded = true;" onerror="gibberishErrored = true;">
yoav4839a0a2017-06-03 00:31:0627<link rel=preload href="resources/dummy.xml?fetch" as=fetch onload="fetchLoaded = true;">
Yoav Weisse8172dd2016-12-19 08:42:1828<link rel=preload href="resources/dummy.xml" onload="noTypeLoaded = true;">
29<body>
Yoav Weisse8172dd2016-12-19 08:42:1830<script>
jugglinmike306dc502019-10-26 07:19:2631 setup({single_test: true});
Rob Buis7bcd4d02019-05-15 09:19:3632
Rob Buisb1ef6ae2019-05-16 13:44:4633 var iterations = 0;
Rob Buis7bcd4d02019-05-15 09:19:3634
Rob Buisb1ef6ae2019-05-16 13:44:4635 function check_finished() {
36 if (styleLoaded && scriptLoaded && imageLoaded && fontLoaded && videoLoaded && audioLoaded &&
37 trackLoaded && !gibberishLoaded && !gibberishErrored && fetchLoaded && !noTypeLoaded) {
38 done();
39 }
40 iterations++;
41 if (iterations == 10) {
42 // At least one is expected to fail, but this should give details to the exact failure(s).
43 assert_true(styleLoaded, "style triggered load event");
44 assert_true(scriptLoaded, "script triggered load event");
45 assert_true(imageLoaded, "image triggered load event");
46 assert_true(fontLoaded, "font triggered load event");
47 assert_true(videoLoaded, "video triggered load event");
48 assert_true(audioLoaded, "audio triggered load event");
49 assert_true(trackLoaded, "track triggered load event");
50 assert_false(gibberishLoaded, "gibberish as value triggered load event");
51 assert_false(gibberishErrored, "gibberish as value triggered error event");
52 assert_true(fetchLoaded, "fetch as value triggered load event");
53 assert_false(noTypeLoaded, "empty as triggered load event");
54 done();
55 } else {
56 step_timeout(check_finished, 500);
57 }
Rob Buis7bcd4d02019-05-15 09:19:3658 }
Rob Buisb1ef6ae2019-05-16 13:44:4659
60 window.addEventListener("load", function() {
61 verifyPreloadAndRTSupport();
Rob Buis7bcd4d02019-05-15 09:19:3662 step_timeout(check_finished, 500);
Rob Buisb1ef6ae2019-05-16 13:44:4663 });
Yoav Weisse8172dd2016-12-19 08:42:1864</script>
65</body>