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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/mediastream/MediaStreamConstructor.html

Issue 2365883002: Expose the MediaStream interface (Closed)
Patch Set: drop TODO Created 4 years, 2 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
OLDNEW
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <html> 2 <html>
3 <head> 3 <head>
4 <script src="../../resources/js-test.js"></script> 4 <script src="../../resources/js-test.js"></script>
5 </head> 5 </head>
6 <body> 6 <body>
7 <p id="description"></p> 7 <p id="description"></p>
8 <div id="console"></div> 8 <div id="console"></div>
9 <script> 9 <script>
10 description("Tests webkitMediaStream."); 10 description("Tests MediaStream constructor.");
11 11
12 var undefined; 12 var undefined;
13 var stream; 13 var stream;
14 var newStream; 14 var newStream;
15 var nAudio; 15 var nAudio;
16 var nVideo; 16 var nVideo;
17 var idArray = new Array(); 17 var idArray = new Array();
18 18
19 function checkIdAttribute(id) { 19 function checkIdAttribute(id) {
20 if (id.length != 36) 20 if (id.length != 36)
(...skipping 17 matching lines...) Expand all
38 idArray.push(id); 38 idArray.push(id);
39 39
40 return true; 40 return true;
41 } 41 }
42 42
43 function error() { 43 function error() {
44 testFailed('Stream generation failed.'); 44 testFailed('Stream generation failed.');
45 finishJSTest(); 45 finishJSTest();
46 } 46 }
47 47
48 function testInterfaces() {
49 debug('Interface tests.');
50 shouldBe('typeof MediaStream', "'function'");
51 shouldBe('MediaStream.length', '0');
52 shouldBe('MediaStream.name', "'MediaStream'");
53 shouldBe('Object.getPrototypeOf(MediaStream.prototype)', 'EventTarget.prototyp e');
54 // webkitMediaStream is an alias of MediaStream
55 shouldBe('window.MediaStream', 'window.webkitMediaStream');
56 }
57
48 function getUserMedia(dictionary, callback) { 58 function getUserMedia(dictionary, callback) {
49 try { 59 try {
50 navigator.webkitGetUserMedia(dictionary, callback, error); 60 navigator.webkitGetUserMedia(dictionary, callback, error);
51 } catch (e) { 61 } catch (e) {
52 testFailed('webkitGetUserMedia threw exception :' + e); 62 testFailed('webkitGetUserMedia threw exception :' + e);
53 finishJSTest(); 63 finishJSTest();
54 } 64 }
55 } 65 }
56 66
57 function gotStream(s) { 67 function gotStream(s) {
58 localStream = s; 68 localStream = s;
59 testPassed('Got local stream.'); 69 debug('Got local stream.');
60 shouldBe('localStream.getAudioTracks().length', '1'); 70 shouldBe('localStream.getAudioTracks().length', '1');
61 shouldBe('localStream.getVideoTracks().length', '1'); 71 shouldBe('localStream.getVideoTracks().length', '1');
62 72
63 shouldBeTrue("typeof webkitMediaStream === 'function'");
64 shouldBeTrue('checkIdAttribute(localStream.id)'); 73 shouldBeTrue('checkIdAttribute(localStream.id)');
65 testConstructor(localStream); 74 testConstructor(localStream);
66 } 75 }
67 76
68 function testConstructor(s) { 77 function testConstructor(s) {
69 stream = s; 78 stream = s;
70 shouldThrow('new webkitMediaStream(document)'); 79 shouldThrow('new MediaStream(document)');
71 shouldThrow('new webkitMediaStream([document])'); 80 shouldThrow('new MediaStream([document])');
72 shouldThrow('new webkitMediaStream([stream.getAudioTracks()[0], document])') ; 81 shouldThrow('new MediaStream([stream.getAudioTracks()[0], document])');
73 shouldThrow('new webkitMediaStream([null])'); 82 shouldThrow('new MediaStream([null])');
74 shouldThrow('new webkitMediaStream([undefined])'); 83 shouldThrow('new MediaStream([undefined])');
75 shouldThrow('new webkitMediaStream(null)'); 84 shouldThrow('new MediaStream(null)');
76 shouldThrow('new webkitMediaStream(undefined)'); 85 shouldThrow('new MediaStream(undefined)');
77 86
78 verifyStream(new webkitMediaStream(), 0, 0); 87 verifyStream(new MediaStream(), 0, 0);
79 verifyStream(new webkitMediaStream([]), 0, 0); 88 verifyStream(new MediaStream([]), 0, 0);
80 89
81 verifyStream(new webkitMediaStream(s), s.getAudioTracks().length, s.getVideo Tracks().length); 90 verifyStream(new MediaStream(s), s.getAudioTracks().length, s.getVideoTracks ().length);
82 91
83 verifyStream(new webkitMediaStream([s.getAudioTracks()[0]]), 1, 0); 92 verifyStream(new MediaStream([s.getAudioTracks()[0]]), 1, 0);
84 verifyStream(new webkitMediaStream([s.getVideoTracks()[0]]), 0, 1); 93 verifyStream(new MediaStream([s.getVideoTracks()[0]]), 0, 1);
85 verifyStream(new webkitMediaStream([s.getAudioTracks()[0], s.getVideoTracks( )[0]]), 1, 1); 94 verifyStream(new MediaStream([s.getAudioTracks()[0], s.getVideoTracks()[0]]) , 1, 1);
86 verifyStream(new webkitMediaStream([s.getVideoTracks()[0], s.getAudioTracks( )[0], s.getVideoTracks()[0]]), 1, 1); 95 verifyStream(new MediaStream([s.getVideoTracks()[0], s.getAudioTracks()[0], s.getVideoTracks()[0]]), 1, 1);
87 96
88 s.oninactive = function () { 97 s.oninactive = function () {
89 verifyStream(new webkitMediaStream([s.getAudioTracks()[0]]), 0, 0); 98 verifyStream(new MediaStream([s.getAudioTracks()[0]]), 0, 0);
90 verifyStream(new webkitMediaStream([s.getVideoTracks()[0]]), 0, 0); 99 verifyStream(new MediaStream([s.getVideoTracks()[0]]), 0, 0);
91 verifyStream(new webkitMediaStream([s.getAudioTracks()[0], s.getVideoTra cks()[0]]), 0, 0); 100 verifyStream(new MediaStream([s.getAudioTracks()[0], s.getVideoTracks()[ 0]]), 0, 0);
92 verifyStream(new webkitMediaStream(s), 0, 0); 101 verifyStream(new MediaStream(s), 0, 0);
93 102
94 finishJSTest(); 103 finishJSTest();
95 }; 104 };
96 105
97 s.getAudioTracks()[0].stop(); 106 s.getAudioTracks()[0].stop();
98 s.getVideoTracks()[0].stop(); 107 s.getVideoTracks()[0].stop();
99 } 108 }
100 109
101 function verifyStream(s, numAudioTracks, numVideoTracks) { 110 function verifyStream(s, numAudioTracks, numVideoTracks) {
102 newStream = s; 111 newStream = s;
103 nAudio = numAudioTracks; 112 nAudio = numAudioTracks;
104 nVideo = numVideoTracks; 113 nVideo = numVideoTracks;
105 114
106 testPassed('Stream constructed'); 115 debug('Stream constructed');
107 shouldBeNonNull(newStream); 116 shouldBeNonNull(newStream);
108 shouldBeDefined(newStream); 117 shouldBeDefined(newStream);
109 shouldBe("newStream.constructor.name", "'MediaStream'"); 118 shouldBe('newStream.constructor.name', "'MediaStream'");
110 shouldBe('newStream.getAudioTracks().length', 'nAudio'); 119 shouldBe('newStream.getAudioTracks().length', 'nAudio');
111 shouldBe('newStream.getVideoTracks().length', 'nVideo'); 120 shouldBe('newStream.getVideoTracks().length', 'nVideo');
112 121
113 if (!nAudio && !nVideo) 122 if (!nAudio && !nVideo)
114 shouldBe('newStream.active', 'false'); 123 shouldBe('newStream.active', 'false');
115 else 124 else
116 shouldBe('newStream.active', 'true'); 125 shouldBe('newStream.active', 'true');
117 126
118 shouldBeTrue('checkIdAttribute(newStream.id)'); 127 shouldBeTrue('checkIdAttribute(newStream.id)');
119 } 128 }
120 129
130 testInterfaces();
121 getUserMedia({video:true, audio:true}, gotStream); 131 getUserMedia({video:true, audio:true}, gotStream);
122 132
123 window.jsTestIsAsync = true; 133 window.jsTestIsAsync = true;
124 window.successfullyParsed = true; 134 window.successfullyParsed = true;
125 </script> 135 </script>
126 </body> 136 </body>
127 </html> 137 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698