Chromium Code Reviews| Index: LayoutTests/http/tests/media/media-source/mediasource-config-changes.js |
| diff --git a/LayoutTests/http/tests/media/media-source/mediasource-config-changes.js b/LayoutTests/http/tests/media/media-source/mediasource-config-changes.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c4738d18625b8fee14b5903d95b2fc745f6aa190 |
| --- /dev/null |
| +++ b/LayoutTests/http/tests/media/media-source/mediasource-config-changes.js |
| @@ -0,0 +1,78 @@ |
| +function fetchManifestAndData(test, manifestFilename, callback) |
| +{ |
| + var baseURL = '/media/resources/media-source/'; |
| + var manifestURL = baseURL + manifestFilename; |
| + MediaSourceUtil.loadTextData(test, manifestURL, function(manifestText) |
| + { |
| + var manifest = JSON.parse(manifestText); |
| + |
| + assert_true(MediaSource.isTypeSupported(manifest.type), manifest.type + " is supported."); |
| + |
| + var mediaURL = baseURL + manifest.url; |
| + MediaSourceUtil.loadBinaryData(test, mediaURL, function(mediaData) |
| + { |
| + callback(manifest.type, mediaData); |
| + }); |
| + }); |
| +} |
| + |
| +function appendBuffer(test, sourceBuffer, data) |
| +{ |
| + test.expectEvent(sourceBuffer, "update"); |
| + test.expectEvent(sourceBuffer, "updateend"); |
| + sourceBuffer.appendBuffer(data); |
| +} |
| + |
| +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.
|
| +{ |
| + var manifestFilenameA = directory + "/test-" + idA + "-manifest.json"; |
| + var manifestFilenameB = directory + "/test-" + idB + "-manifest.json"; |
| + mediasource_test(function(test, mediaElement, mediaSource) |
| + { |
| + mediaElement.pause(); |
| + test.failOnEvent(mediaElement, 'error'); |
| + test.endOnEvent(mediaElement, 'ended'); |
| + |
| + fetchManifestAndData(test, manifestFilenameA, function(typeA, dataA) |
| + { |
| + fetchManifestAndData(test, manifestFilenameB, function(typeB, dataB) |
| + { |
| + assert_equals(typeA, typeB, "Media format types match"); |
| + |
| + var sourceBuffer = mediaSource.addSourceBuffer(typeA); |
| + |
| + appendBuffer(test, sourceBuffer, dataA); |
| + |
| + test.waitForExpectedEvents(function() |
| + { |
| + // Add the second buffer starting at 0.5 second. |
| + sourceBuffer.timestampOffset = 0.5; |
| + appendBuffer(test, sourceBuffer, dataB); |
| + }); |
| + |
| + test.waitForExpectedEvents(function() |
| + { |
| + // Add the first buffer starting at 1 second. |
| + sourceBuffer.timestampOffset = 1; |
| + appendBuffer(test, sourceBuffer, dataA); |
| + }); |
| + |
| + test.waitForExpectedEvents(function() |
| + { |
| + // Add the second buffer starting at 1.5 second. |
| + sourceBuffer.timestampOffset = 1.5; |
| + appendBuffer(test, sourceBuffer, dataB); |
| + }); |
| + |
| + test.waitForExpectedEvents(function() |
| + { |
| + // Truncate the presentation to a duration of 2 seconds. |
| + mediaSource.duration = 2; |
| + mediaSource.endOfStream(); |
| + |
| + mediaElement.play(); |
| + }); |
| + }); |
| + }); |
| + }, 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.
|
| +}; |