Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(189)

Side by Side Diff: LayoutTests/http/tests/media/media-source/mediasource-sourcebuffer-mode.html

Issue 130523002: Preliminary work for unprefixed MSE SourceBuffer.mode manipulation (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Add WebSourceBuffer::setMode interface method, restrict mode attribute to experimental web platform… Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <script src="/w3c/resources/testharness.js"></script>
5 <script src="/w3c/resources/testharnessreport.js"></script>
6 <script src="mediasource-util.js"></script>
7 <script src="/media/resources/media-source/webm/segment-info.js"></scrip t>
8
9 <link rel='stylesheet' href='/w3c/resources/testharness.css'>
10 </head>
11 <body>
12 <div id="log"></div>
13 <script>
14 mediasource_testafterdataloaded(function(test, mediaElement, mediaSour ce, segmentInfo, sourceBuffer, mediaData)
15 {
16 assert_true(sourceBuffer.mode == 'segments');
17 test.done();
18 }, 'Test initial value of SourceBuffer.mode is "segments"');
19
20 mediasource_testafterdataloaded(function(test, mediaElement, mediaSour ce, segmentInfo, sourceBuffer, mediaData)
21 {
22 sourceBuffer.mode = 'sequence';
23 assert_true(sourceBuffer.mode == 'sequence');
24 sourceBuffer.mode = 'segments';
25 assert_true(sourceBuffer.mode == 'segments');
26 assert_throws('InvalidAccessError',
27 function() { sourceBuffer.mode = 'invalidmode'; },
28 'Setting invalid sourceBuffer.mode threw InvalidAccessError.') ;
29 test.done();
30 }, 'Test setting SourceBuffer.mode');
31
32 mediasource_testafterdataloaded(function(test, mediaElement, mediaSour ce, segmentInfo, sourceBuffer, mediaData)
33 {
34 mediaSource.removeSourceBuffer(sourceBuffer);
35 assert_throws('InvalidStateError',
36 function() { sourceBuffer.mode = 'segments'; },
37 'Setting valid sourceBuffer.mode on removed SourceBuffer threw InvalidStateError.');
38 test.done();
39 }, 'Test setting a removed SourceBuffer\'s mode');
40
41 mediasource_testafterdataloaded(function(test, mediaElement, mediaSour ce, segmentInfo, sourceBuffer, mediaData)
42 {
43 sourceBuffer.appendBuffer(mediaData);
44 assert_true(sourceBuffer.updating, 'updating attribute is true');
45 assert_throws('InvalidStateError',
46 function() { sourceBuffer.mode = 'segments'; },
47 'Setting valid sourceBuffer.mode on updating SourceBuffer thre w InvalidStateError.');
48 test.done();
49 }, 'Test setting SourceBuffer.mode while still updating');
50
51 mediasource_testafterdataloaded(function(test, mediaElement, mediaSour ce, segmentInfo, sourceBuffer, mediaData)
52 {
53 test.expectEvent(sourceBuffer, 'updateend', 'Append ended.');
54 sourceBuffer.appendBuffer(mediaData);
55
56 test.waitForExpectedEvents(function()
57 {
58 assert_false(sourceBuffer.updating, 'updating attribute is fal se');
59
60 test.expectEvent(mediaSource, 'sourceended', 'MediaSource sour ceended event');
61 mediaSource.endOfStream();
62 assert_equals(mediaSource.readyState, 'ended', 'MediaSource re adyState is \'ended\'');
63 });
64
65 test.waitForExpectedEvents(function()
66 {
67 assert_equals(mediaSource.readyState, 'ended', 'MediaSource re adyState is \'ended\'');
68
69 test.expectEvent(mediaSource, 'sourceopen', 'MediaSource sourc eopen event');
70 sourceBuffer.mode = 'segments';
71
72 assert_equals(mediaSource.readyState, 'open', 'MediaSource rea dyState is \'open\'');
73 });
74
75 test.waitForExpectedEvents(function()
76 {
77 assert_equals(mediaSource.readyState, 'open', 'MediaSource rea dyState is \'open\'');
78 test.done();
79 });
80 }, 'Test setting SourceBuffer.mode triggers parent MediaSource \'ended \' to \'open\' transition.');
81
82 // FIXME: Once Chromium implementation lands, add tests for at least c onfirming exception if append
83 // state is PARSING_MEDIA_SEGMENT (per 3.1 setting mode steps 6-7). Se e http://crbug.com/249422.
84 </script>
85 </body>
86 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698