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

Side by Side Diff: LayoutTests/http/tests/media/media-source/mediasource-config-changes.js

Issue 17338002: Add LayoutTests for MediaSource codec config changes. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 6 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 function fetchManifestAndData(test, manifestFilename, callback)
2 {
3 var baseURL = '/media/resources/media-source/';
4 var manifestURL = baseURL + manifestFilename;
5 MediaSourceUtil.loadTextData(test, manifestURL, function(manifestText)
6 {
7 var manifest = JSON.parse(manifestText);
8
9 assert_true(MediaSource.isTypeSupported(manifest.type), manifest.type + " is supported.");
10
11 var mediaURL = baseURL + manifest.url;
12 MediaSourceUtil.loadBinaryData(test, mediaURL, function(mediaData)
13 {
14 callback(manifest.type, mediaData);
15 });
16 });
17 }
18
19 function appendBuffer(test, sourceBuffer, data)
20 {
21 test.expectEvent(sourceBuffer, "update");
22 test.expectEvent(sourceBuffer, "updateend");
23 sourceBuffer.appendBuffer(data);
24 }
25
26 mediasource_configchange_test = function(directory, idA, idB, description)
scherkus (not reviewing) 2013/06/18 01:22:09 any reason not to use a normal function declaratio
acolwell GONE FROM CHROMIUM 2013/06/18 16:33:45 Done. Not sure why I originally did this.
27 {
28 var manifestFilenameA = directory + "/test-" + idA + "-manifest.json";
29 var manifestFilenameB = directory + "/test-" + idB + "-manifest.json";
30 mediasource_test(function(test, mediaElement, mediaSource)
31 {
32 mediaElement.pause();
33 test.failOnEvent(mediaElement, 'error');
34 test.endOnEvent(mediaElement, 'ended');
35
36 fetchManifestAndData(test, manifestFilenameA, function(typeA, dataA)
37 {
38 fetchManifestAndData(test, manifestFilenameB, function(typeB, dataB)
39 {
40 assert_equals(typeA, typeB, "Media format types match");
41
42 var sourceBuffer = mediaSource.addSourceBuffer(typeA);
43
44 appendBuffer(test, sourceBuffer, dataA);
45
46 test.waitForExpectedEvents(function()
47 {
48 // Add the second buffer starting at 0.5 second.
49 sourceBuffer.timestampOffset = 0.5;
50 appendBuffer(test, sourceBuffer, dataB);
51 });
52
53 test.waitForExpectedEvents(function()
54 {
55 // Add the first buffer starting at 1 second.
56 sourceBuffer.timestampOffset = 1;
57 appendBuffer(test, sourceBuffer, dataA);
58 });
59
60 test.waitForExpectedEvents(function()
61 {
62 // Add the second buffer starting at 1.5 second.
63 sourceBuffer.timestampOffset = 1.5;
64 appendBuffer(test, sourceBuffer, dataB);
65 });
66
67 test.waitForExpectedEvents(function()
68 {
69 // Truncate the presentation to a duration of 2 seconds.
70 mediaSource.duration = 2;
71 mediaSource.endOfStream();
72
73 mediaElement.play();
74 });
75 });
76 });
77 }, description, { timeout: 10000} );
scherkus (not reviewing) 2013/06/18 01:22:09 space after 10000 also ... timeouts!? :(
acolwell GONE FROM CHROMIUM 2013/06/18 16:33:45 Done.
78 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698