Bug 1539614 [wpt PR 16077] - HTML: move textarea tests together, a=testonly
[gecko.git] / testing / web-platform / tests / media-source / mediasource-detach.html
blobb25b5c6f02f6e6abdb32de0902438c0b24d1f1c4
1 <!DOCTYPE html>
2 <!-- Copyright © 2016 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
3 <meta charset="utf-8">
4 <script src="/resources/testharness.js"></script>
5 <script src="/resources/testharnessreport.js"></script>
6 <script src="mediasource-util.js"></script>
7 <script>
8 function mediasource_detach_test(testFunction, description)
10 mediasource_test(function(test, mediaElement, mediaSource)
12 var segmentInfo = MediaSourceUtil.SEGMENT_INFO;
13 var sourceBuffer = mediaSource.addSourceBuffer(segmentInfo.type);
15 assert_equals(mediaElement.readyState, HTMLMediaElement.HAVE_NOTHING);
16 assert_equals(mediaSource.readyState, 'open');
18 mediaSource.addEventListener('sourceclose', test.step_func(function (event)
20 assert_equals(mediaSource.sourceBuffers.length, 0, 'sourceBuffers is empty');
21 assert_equals(mediaSource.activeSourceBuffers.length, 0, 'activeSourceBuffers is empty');
22 assert_equals(mediaSource.readyState, 'closed', 'readyState is "closed"');
23 assert_true(Number.isNaN(mediaSource.duration), 'duration is NaN');
24 test.done();
25 }));
27 MediaSourceUtil.loadBinaryData(test, segmentInfo.url, function(mediaData)
29 testFunction(test, mediaElement, mediaSource, sourceBuffer, mediaData);
30 });
31 }, description);
34 mediasource_detach_test(function(test, mediaElement, mediaSource, sourceBuffer, mediaData)
36 mediaElement.load();
37 }, 'Test media.load() before appending data will trigger MediaSource detaching from a media element.');
39 mediasource_detach_test(function(test, mediaElement, mediaSource, sourceBuffer, mediaData)
41 sourceBuffer.addEventListener('updateend', test.step_func(function (event)
43 assert_greater_than(mediaElement.readyState, HTMLMediaElement.HAVE_NOTHING, 'media readyState is greater than "HAVE_NOTHING"')
44 assert_false(sourceBuffer.updating, 'updating attribute is false');
45 mediaElement.load();
46 }));
48 sourceBuffer.appendBuffer(mediaData);
49 }, 'Test media.load() after appending data will trigger MediaSource detaching from a media element.');
50 </script>