onerror-event.html (3183B)
1 <!DOCTYPE html> 2 <html> 3 <title>Makes sure that preloaded resources trigger the onerror event</title> 4 <meta name="timeout" content="long"> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <script src="/preload/resources/preload_helper.js"></script> 8 <script> 9 var scriptFailed = false; 10 var styleFailed = false; 11 var imageFailed = false; 12 var fontFailed = false; 13 var videoFailed = false; 14 var audioFailed = false; 15 var trackFailed = false; 16 var gibberishFailed = false; 17 var fetchFailed = false; 18 </script> 19 <link rel=preload href="http://invalid/dummy.js" as=script onerror="scriptFailed = true;"> 20 <link rel=preload href="http://invalid/dummy.css" as=style onerror="styleFailed = true;"> 21 <link rel=preload href="http://invalid/square.png" as=image onerror="imageFailed = true;"> 22 <link rel=preload href="http://invalid/Ahem.ttf" as=font crossorigin onerror="fontFailed = true;"> 23 <link rel=preload href="http://invalid/test.mp4" as=video onerror="videoFailed = true;"> 24 <link rel=preload href="http://invalid/test.oga" as=audio onerror="audioFailed = true;"> 25 <link rel=preload href="http://invalid/security/captions.vtt" as=track onerror="trackFailed = true;"> 26 <link rel=preload href="http://invalid/dummy.xml?fetch" as=fetch onerror="fetchFailed = true;"> 27 <link rel=preload href="http://invalid/dummy.xml?foo" as=foobarxmlthing onerror="assert_unreached('invalid as value should not fire error event')"> 28 <link rel=preload href="http://invalid/dummy.xml?empty" onerror="assert_unreached('empty as value should not fire error event')"> 29 <link rel=preload href="http://invalid/dummy.xml?media" as=style media=print onerror="assert_unreached('non-matching media should not fire error event')"> 30 <link rel=preload href="http://invalid/dummy.xml?media" as=style type='text/html' onerror="assert_unreached('invalid mime type should not fire error event')"> 31 <body> 32 <script> 33 setup({single_test: true}); 34 35 var iterations = 0; 36 37 function check_finished() { 38 if (styleFailed && scriptFailed && imageFailed && fontFailed && videoFailed && audioFailed && 39 trackFailed && fetchFailed) { 40 done(); 41 } 42 iterations++; 43 if (iterations == 10) { 44 // At least one is expected to fail, but this should give details to the exact failure(s). 45 assert_true(styleFailed, "style triggered error event"); 46 assert_true(scriptFailed, "script triggered error event"); 47 assert_true(imageFailed, "image triggered error event"); 48 assert_true(fontFailed, "font triggered error event"); 49 assert_true(videoFailed, "video triggered error event"); 50 assert_true(audioFailed, "audio triggered error event"); 51 assert_true(trackFailed, "track triggered error event"); 52 assert_true(fetchFailed, "fetch as triggered error event"); 53 done(); 54 } else { 55 step_timeout(check_finished, 500); 56 } 57 } 58 59 window.addEventListener("load", function() { 60 verifyPreloadAndRTSupport(); 61 step_timeout(check_finished, 500); 62 }); 63 </script> 64 </body> 65 </html>