Index: third_party/WebKit/LayoutTests/fast/mediacapturefromelement/HTMLMediaElementCapture-creation.html |
diff --git a/third_party/WebKit/LayoutTests/fast/mediacapturefromelement/HTMLMediaElementCapture-creation.html b/third_party/WebKit/LayoutTests/fast/mediacapturefromelement/HTMLMediaElementCapture-creation.html |
index d481fc8175e9bb75a93203da28b57129c4f93aa9..a9be5072c826e35625303b3bd260d4ed43b696bb 100644 |
--- a/third_party/WebKit/LayoutTests/fast/mediacapturefromelement/HTMLMediaElementCapture-creation.html |
+++ b/third_party/WebKit/LayoutTests/fast/mediacapturefromelement/HTMLMediaElementCapture-creation.html |
@@ -2,7 +2,8 @@ |
<script src=../../resources/testharness.js></script> |
<script src=../../resources/testharnessreport.js></script> |
<script> |
-// Run createStream() on <video>s and <audio>s. |
+ |
+// Run captureStream() on <video>/<audio>s and inspect the generated Stream. |
test(function() { |
var video = document.createElement('video'); |
@@ -16,49 +17,30 @@ test(function() { |
"captureStream() cannot be created out of a source-less <audio>" ); |
}, 'check that captureStream() raises an exception on an <audio> with no source.'); |
-test(function() { |
- var video = document.createElement('video'); |
- video.src = "file:///super_duper_videos/amazing_video.webm"; |
- video.onloadstart = function() { |
- var stream = video.captureStream(); |
- |
- assert_not_equals(stream, null); |
- assert_equals(1, stream.getVideoTracks().length); |
- assert_equals(0, stream.getAudioTracks().length); |
- } |
-}, 'check <video> captureStream().'); |
- |
-test(function() { |
- var audio = document.createElement('audio'); |
- audio.src = "file:///super_duper_videos/amazing_audio_file.webm"; |
- audio.onloadstart = function() { |
- var stream = audio.captureStream(); |
- |
- // TODO(mcasas): http://crbug.com/575492, implement <audio>.captureStream(). |
- assert_equals(stream, null); |
- }; |
-}, 'check <audio> captureStream().'); |
+var makeAsyncTest = function(filename, num_video_tracks, num_audio_tracks) { |
+ async_test(function() { |
+ var video = document.createElement('video'); |
+ video.src = "../../http/tests/media/resources/media-source/webm/" + filename; |
+ video.onerror = this.unreached_func("<video> error"); |
-test(function() { |
- var video = document.createElement('video'); |
+ video.onloadedmetadata = this.step_func_done(function() { |
+ assert_equals(video.audioTracks.length, num_audio_tracks); |
+ assert_equals(video.videoTracks.length, num_video_tracks); |
- const onEncrypted = this.step_func_done(); |
+ var stream = video.captureStream(); |
+ assert_not_equals(stream, null, "error generating stream"); |
- assert_equals(null, video.error); |
- assert_equals(null, video.mediaKeys); |
- video.onencrypted = onEncrypted; |
+ assert_equals(stream.getAudioTracks().length, num_audio_tracks); |
+ assert_equals(stream.getVideoTracks().length, num_video_tracks); |
+ }); |
- navigator.requestMediaKeySystemAccess('org.w3.clearkey', [{}]).then(function(access) { |
- return access.createMediaKeys(); |
- }).then(function(mediaKeys) { |
- return video.setMediaKeys(mediaKeys); |
- }).then(function(result) { |
- video.src = "../../media/content/test-encrypted.webm"; |
- assert_throws("NotSupportedError", |
- function() { var stream = video.captureStream(); }, |
- "Cannot create a captureStream() out of a protected <video>"); |
- }); |
+ video.load(); |
+ }), "<video>.captureStream()"; |
+}; |
-}, 'check <video> captureStream() fails on an encrypted/protected media'); |
+generate_tests(makeAsyncTest, |
+ [[ "video-only", "test-v-128k-320x240-24fps-8kfr.webm", 1, 0 ], |
+ [ "audio-only", "test-a-128k-44100Hz-1ch.webm", 0, 1 ], |
+ [ "video+audio", "test.webm", 1, 1 ]]); |
</script> |