| OLD | NEW |
| 1 <html> | 1 <!DOCTYPE html> |
| 2 <head> | 2 <title>Test that an invalid "src" fires an error event and changing "src" to a v
alid one triggers media load.</title> |
| 3 <!-- TODO(foolip): Convert test to testharness.js. crbug.com/588956 | 3 <script src="../resources/testharness.js"></script> |
| 4 (Please avoid writing new tests using video-test.js) --> | 4 <script src="../resources/testharnessreport.js"></script> |
| 5 <script src=video-test.js></script> | 5 <script src="media-file.js"></script> |
| 6 <script src=media-file.js></script> | 6 <video></video> |
| 7 <script> | 7 <script> |
| 8 var mediaFile; | 8 // 1. Test that an invalid src attribute fires an error when the file fails to l
oad. |
| 9 var loadedCount = 0; | 9 // 2. Test that changing src attribute triggers load after a load fails. |
| 10 var errorCount = 0; | 10 // 3. Test that changing src triggers load once a file is known to be valid. |
| 11 async_test(function(t) { |
| 12 var mediaFile; |
| 13 var loadedCount = 0; |
| 14 var video = document.querySelector("video"); |
| 11 | 15 |
| 12 function errorEvent() | 16 video.onloadedmetadata = t.step_func(function() { |
| 13 { | 17 var url = video.currentSrc; |
| 14 testExpected("relativeURL(video.currentSrc)", "bogus"); | 18 assert_equals(url.substr(url.lastIndexOf("/media/")+7), mediaFile); |
| 15 testExpected("video.networkState", HTMLMediaElement.NETWORK_NO_S
OURCE); | 19 assert_false(isNaN(video.duration)); |
| 16 testExpected("video.error.code", MediaError.MEDIA_ERR_SRC_NOT_SU
PPORTED); | |
| 17 consoleWrite(""); | |
| 18 | 20 |
| 19 // Prevent runaway tests when unexpected errors happen. | 21 if (++loadedCount == 2) { |
| 20 if (++errorCount > 1) | 22 t.done(); |
| 21 endTest(); | 23 return; |
| 24 } |
| 22 | 25 |
| 23 setSrcAttribure(findMediaFile("video", "content/test")); | 26 mediaFile = findMediaFile("video", "content/counting"); |
| 24 consoleWrite(""); | 27 video.src = mediaFile; |
| 25 } | 28 }); |
| 26 | 29 |
| 27 function loadedmetadata() | 30 video.onerror = t.step_func(function() { |
| 28 { | 31 assert_equals(loadedCount, 0); |
| 29 testExpected("stripExtension(relativeURL(video.currentSrc))", st
ripExtension(mediaFile)); | 32 var url = video.currentSrc; |
| 30 testExpected("isNaN(video.duration)", false); | 33 assert_equals(url.substr(url.lastIndexOf("/media/")+7), "bogus"); |
| 31 consoleWrite(""); | 34 assert_equals(video.networkState, HTMLMediaElement.NETWORK_NO_SOURCE); |
| 35 assert_equals(video.error.code, MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED); |
| 36 mediaFile = findMediaFile("video", "content/test"); |
| 37 video.src = mediaFile; |
| 38 }); |
| 32 | 39 |
| 33 if (++loadedCount >= 2) { | 40 mediaFile = "bogus"; |
| 34 mediaElement.removeEventListener('loadedmetadata', loadedmet
adata); | 41 video.src = mediaFile; |
| 35 endTest(); | 42 }); |
| 36 return; | 43 </script> |
| 37 } | |
| 38 | |
| 39 setSrcAttribure(findMediaFile("video", "content/counting")); | |
| 40 consoleWrite(""); | |
| 41 } | |
| 42 | |
| 43 function setSrcAttribure(src) | |
| 44 { | |
| 45 mediaFile = src; | |
| 46 video.setAttribute('src', src); | |
| 47 } | |
| 48 | |
| 49 function setup() | |
| 50 { | |
| 51 findMediaElement(); | |
| 52 waitForEvent('loadedmetadata', loadedmetadata); | |
| 53 waitForEvent('error', errorEvent); | |
| 54 setSrcAttribure("bogus"); | |
| 55 consoleWrite(""); | |
| 56 } | |
| 57 </script> | |
| 58 </head> | |
| 59 | |
| 60 <body onload="setup()"> | |
| 61 | |
| 62 <video controls" ></video> | |
| 63 | |
| 64 <p> | |
| 65 1. Test that an invalid src attribute fires an error when the file fails to
load.<br> | |
| 66 2. Test that changing src attribute triggers load after a load fails.<br> | |
| 67 3. Test that changing src triggers load once a file is known to be valid. | |
| 68 </p> | |
| 69 | |
| 70 </body> | |
| 71 </html> | |
| OLD | NEW |