OLD | NEW |
1 (function(window) { | 1 (function(window) { |
2 // Set the testharness.js timeout to 120 seconds so that it is higher than | 2 // Set the testharness.js timeout to 120 seconds so that it is higher than |
3 // the LayoutTest timeout. This prevents testharness.js from prematurely | 3 // the LayoutTest timeout. This prevents testharness.js from prematurely |
4 // terminating tests and allows the LayoutTest runner to control when to | 4 // terminating tests and allows the LayoutTest runner to control when to |
5 // timeout the test. | 5 // timeout the test. |
6 setup({ explicit_timeout: 120000 }); | 6 setup({ explicit_timeout: 120000 }); |
7 | 7 |
8 var SEGMENT_INFO_LIST = [ | 8 var SEGMENT_INFO_LIST = [ |
9 { | 9 { |
10 url: '/media/resources/media-source/webm/test.webm', | 10 url: '/media/resources/media-source/webm/test.webm', |
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 test.done = function() | 318 test.done = function() |
319 { | 319 { |
320 if (test.status == test.PASS) { | 320 if (test.status == test.PASS) { |
321 assert_false(test.eventExpectations_.expectingEvents(), "No pend
ing event expectations."); | 321 assert_false(test.eventExpectations_.expectingEvents(), "No pend
ing event expectations."); |
322 } | 322 } |
323 oldTestDone(); | 323 oldTestDone(); |
324 }; | 324 }; |
325 }; | 325 }; |
326 | 326 |
327 window['MediaSourceUtil'] = MediaSourceUtil; | 327 window['MediaSourceUtil'] = MediaSourceUtil; |
328 window['media_test'] = function(testFunction, description, options) | 328 window['media_test'] = function(testFunction, description, properties) |
329 { | 329 { |
330 options = options || {}; | 330 properties = properties || {}; |
331 return async_test(function(test) | 331 return async_test(function(test) |
332 { | 332 { |
333 addExtraTestMethods(test); | 333 addExtraTestMethods(test); |
334 testFunction(test); | 334 testFunction(test); |
335 }, description, options); | 335 }, description, properties); |
336 }; | 336 }; |
337 window['mediasource_test'] = function(testFunction, description, options) | 337 window['mediasource_test'] = function(testFunction, description, properties) |
338 { | 338 { |
339 return media_test(function(test) | 339 return media_test(function(test) |
340 { | 340 { |
341 var mediaTag = document.createElement("video"); | 341 var mediaTag = document.createElement("video"); |
342 document.body.appendChild(mediaTag); | 342 document.body.appendChild(mediaTag); |
343 | 343 |
344 // Overload done() so that element added to the document can be remo
ved. | 344 // Overload done() so that element added to the document can be remo
ved. |
345 test.removeMediaElement_ = true; | 345 test.removeMediaElement_ = true; |
346 var oldTestDone = test.done.bind(test); | 346 var oldTestDone = test.done.bind(test); |
347 test.done = function() | 347 test.done = function() |
348 { | 348 { |
349 if (test.removeMediaElement_) { | 349 if (test.removeMediaElement_) { |
350 document.body.removeChild(mediaTag); | 350 document.body.removeChild(mediaTag); |
351 test.removeMediaElement_ = false; | 351 test.removeMediaElement_ = false; |
352 } | 352 } |
353 oldTestDone(); | 353 oldTestDone(); |
354 }; | 354 }; |
355 | 355 |
356 openMediaSource_(test, mediaTag, function(mediaSource) | 356 openMediaSource_(test, mediaTag, function(mediaSource) |
357 { | 357 { |
358 testFunction(test, mediaTag, mediaSource); | 358 testFunction(test, mediaTag, mediaSource); |
359 }); | 359 }); |
360 }, description, options); | 360 }, description, properties); |
361 }; | 361 }; |
362 | 362 |
363 window['mediasource_testafterdataloaded'] = function(testFunction, descripti
on, options) | 363 // In addition to test harness's async_test() properties parameter, this |
| 364 // function recognizes the property allow_media_element_error. |
| 365 window['mediasource_testafterdataloaded'] = function(testFunction, descripti
on, properties) |
364 { | 366 { |
365 mediasource_test(function(test, mediaElement, mediaSource) | 367 mediasource_test(function(test, mediaElement, mediaSource) |
366 { | 368 { |
367 var segmentInfo = MediaSourceUtil.SEGMENT_INFO; | 369 var segmentInfo = MediaSourceUtil.SEGMENT_INFO; |
368 | 370 |
369 if (!segmentInfo) { | 371 if (!segmentInfo) { |
370 assert_unreached("No segment info compatible with this MediaSour
ce implementation."); | 372 assert_unreached("No segment info compatible with this MediaSour
ce implementation."); |
371 return; | 373 return; |
372 } | 374 } |
373 | 375 |
374 test.failOnEvent(mediaElement, 'error'); | 376 if (properties == null || properties.allow_media_element_error == nu
ll || !properties.allow_media_element_error) |
| 377 test.failOnEvent(mediaElement, 'error'); |
375 | 378 |
376 var sourceBuffer = mediaSource.addSourceBuffer(segmentInfo.type); | 379 var sourceBuffer = mediaSource.addSourceBuffer(segmentInfo.type); |
377 MediaSourceUtil.loadBinaryData(test, segmentInfo.url, function(media
Data) | 380 MediaSourceUtil.loadBinaryData(test, segmentInfo.url, function(media
Data) |
378 { | 381 { |
379 testFunction(test, mediaElement, mediaSource, segmentInfo, sourc
eBuffer, mediaData); | 382 testFunction(test, mediaElement, mediaSource, segmentInfo, sourc
eBuffer, mediaData); |
380 }); | 383 }); |
381 }, description, options); | 384 }, description, properties); |
382 } | 385 }; |
383 | 386 |
384 function timeRangesToString(ranges) | 387 function timeRangesToString(ranges) |
385 { | 388 { |
386 var s = "{"; | 389 var s = "{"; |
387 for (var i = 0; i < ranges.length; ++i) { | 390 for (var i = 0; i < ranges.length; ++i) { |
388 s += " [" + ranges.start(i).toFixed(3) + ", " + ranges.end(i).toFixe
d(3) + ")"; | 391 s += " [" + ranges.start(i).toFixed(3) + ", " + ranges.end(i).toFixe
d(3) + ")"; |
389 } | 392 } |
390 return s + " }"; | 393 return s + " }"; |
391 } | 394 } |
392 | 395 |
393 window['assertBufferedEquals'] = function(obj, expected, description) | 396 window['assertBufferedEquals'] = function(obj, expected, description) |
394 { | 397 { |
395 var actual = timeRangesToString(obj.buffered); | 398 var actual = timeRangesToString(obj.buffered); |
396 assert_equals(actual, expected, description); | 399 assert_equals(actual, expected, description); |
397 }; | 400 }; |
398 | 401 |
399 })(window); | 402 })(window); |
OLD | NEW |