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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-requestData.html

Issue 1448203002: Add layout tests for the audio component of MediaStream Recording. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: format Created 5 years, 1 month 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
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <script src=../../resources/testharness.js></script> 2 <script src=../../resources/testharness.js></script>
3 <script src=../../resources/testharnessreport.js></script> 3 <script src=../../resources/testharnessreport.js></script>
4 <script> 4 <script>
5 5
Peter Beverloo 2015/11/20 14:05:02 dito re: comment
ajose 2015/11/20 21:37:06 Done.
6 var test = async_test('checks requestData() for video-only MediaRecorder API.'); 6 var checkStreamTracks = function(stream, has_video, has_audio) {
7 var recorder; 7 if (has_video) {
8 8 assert_equals(stream.getVideoTracks().length, 1);
9 recorderOnDataAvailable = test.step_func(function(event) { 9 assert_equals(stream.getVideoTracks()[0].readyState, 'live');
10 assert_equals(event.data.size, 0, 'Recorded data size should be == 0'); 10 } else {
11 test.done(); 11 assert_equals(stream.getVideoTracks().length, 0);
12 });
13
14 recorderOnStop = test.step_func(function() {
15 assert_unreached('Recording stopped.');
16 });
17
18 recorderOnError = test.step_func(function() {
19 assert_unreached('Recording error.');
20 });
21
22 gotStream = test.step_func(function(stream) {
23 assert_equals(stream.getAudioTracks().length, 0);
24 assert_equals(stream.getVideoTracks().length, 1);
25 assert_equals(stream.getVideoTracks()[0].readyState, 'live');
26
27 try {
28 recorder = new MediaRecorder(stream);
29 } catch (e) {
30 assert_unreached('Exception while creating MediaRecorder: ' + e);
31 }
32 assert_equals(recorder.state, "inactive");
33
34 try {
35 recorder.requestData();
36 assert_unreached();
37 } catch (e) {
38 assert_equals(e.name, "InvalidStateError");
39 } 12 }
40 13
41 recorder.ondataavailable = recorderOnDataAvailable; 14 if (has_audio) {
42 recorder.onstop = recorderOnStop; 15 assert_equals(stream.getAudioTracks().length, 1);
43 recorder.onerror = recorderOnError; 16 assert_equals(stream.getAudioTracks()[0].readyState, 'live');
44 recorder.start(); 17 } else {
18 assert_equals(stream.getAudioTracks().length, 0);
19 }
20 };
45 21
46 assert_equals(recorder.state, "recording"); 22 var makeAsyncTest = function(value, expected) {
47 recorder.requestData(); 23 var recorder;
48 }); 24 var has_video = value['video'] || false;
25 var has_audio = value['audio'] || false;
49 26
50 onError = test.step_func(function() { 27 async_test(function() {
51 assert_unreached('Error creating MediaRecorder.'); 28 recorderOnDataAvailable = this.step_func_done(function(event) {
Peter Beverloo 2015/11/20 14:05:02 dito re: constness
ajose 2015/11/20 21:37:06 Done.
52 }); 29 assert_equals(event.data.size, 0,
30 'Recorded data size should be == 0');
31 });
53 32
54 try { 33 recorderOnStop = this.step_func(function() {
55 navigator.webkitGetUserMedia({video:true}, gotStream, onError); 34 assert_unreached('Recording stopped.');
56 } catch(e) { 35 });
57 assert_unreached('Exception launching getUserMedia(): ' + e); 36
58 } 37 recorderOnError = this.step_func(function() {
38 assert_unreached('Recording error.');
39 });
40
41 gotStream = this.step_func_done(function(stream) {
42 checkStreamTracks(stream, has_video, has_audio)
43
44 try {
45 recorder = new MediaRecorder(stream);
46 } catch (e) {
47 assert_unreached('Exception while creating MediaRecorder: '
48 + e);
49 }
50
51 try {
52 recorder.requestData();
53 assert_unreached();
54 } catch (e) {
55 assert_equals(e.name, "InvalidStateError");
56 }
57
58 recorder.ondataavailable = recorderOnDataAvailable;
59 recorder.onstop = recorderOnStop;
60 recorder.onerror = recorderOnError;
61 recorder.start();
62
63 assert_equals(recorder.state, "recording");
64 recorder.requestData();
65 });
66
67 onError = this.step_func(function() {
68 assert_unreached('Error creating MediaRecorder.');
69 });
70
71 try {
72 navigator.webkitGetUserMedia(value, gotStream, onError);
73 } catch(e) {
74 assert_unreached('Exception launching getUserMedia(): ' + e);
75 }
76 });
77 };
78
79 generate_tests(makeAsyncTest,
80 [["video-only", {video:true}],
Peter Beverloo 2015/11/20 14:05:02 dito re: values
ajose 2015/11/20 21:37:07 Done.
81 ["audio-only", {audio:true}],
82 ["audio-video", {video:true, audio:true}]]);
59 83
60 </script> 84 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698