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

Side by Side Diff: content/browser/media/webrtc/webrtc_browsertest.cc

Issue 2167133002: Separates the WebRTC browser tests that deal with audio detection. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removes unnecessary tags. Created 4 years, 5 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 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/files/file_util.h" 6 #include "base/files/file_util.h"
7 #include "base/threading/platform_thread.h" 7 #include "base/threading/platform_thread.h"
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 #include "content/browser/web_contents/web_contents_impl.h" 9 #include "content/browser/web_contents/web_contents_impl.h"
10 #include "content/public/common/content_switches.h" 10 #include "content/public/common/content_switches.h"
(...skipping 27 matching lines...) Expand all
38 // Automatically grant device permission. 38 // Automatically grant device permission.
39 AppendUseFakeUIForMediaStreamFlag(); 39 AppendUseFakeUIForMediaStreamFlag();
40 } 40 }
41 41
42 protected: 42 protected:
43 // Convenience function since most peerconnection-call.html tests just load 43 // Convenience function since most peerconnection-call.html tests just load
44 // the page, kick off some javascript and wait for the title to change to OK. 44 // the page, kick off some javascript and wait for the title to change to OK.
45 void MakeTypicalPeerConnectionCall(const std::string& javascript) { 45 void MakeTypicalPeerConnectionCall(const std::string& javascript) {
46 MakeTypicalCall(javascript, "/media/peerconnection-call.html"); 46 MakeTypicalCall(javascript, "/media/peerconnection-call.html");
47 } 47 }
48
49 // Convenience method for making calls that detect if audio os playing (which
50 // has some special prerequisites, such that there needs to be an audio output
51 // device on the executing machine).
52 void MakeAudioDetectingPeerConnectionCall(const std::string& javascript) {
53 if (!media::AudioManager::Get()->HasAudioOutputDevices()) {
54 // Bots with no output devices will force the audio code into a state
55 // where it doesn't manage to set either the low or high latency path.
56 // This test will compute useless values in that case, so skip running on
57 // such bots (see crbug.com/326338).
58 LOG(INFO) << "Missing output devices: skipping test...";
59 return;
60 }
61
62 ASSERT_TRUE(base::CommandLine::ForCurrentProcess()->HasSwitch(
63 switches::kUseFakeDeviceForMediaStream))
64 << "Must run with fake devices since the test will explicitly look "
65 << "for the fake device signal.";
66
67 MakeTypicalPeerConnectionCall(javascript);
68 }
69 }; 48 };
70 49
71 // These tests will make a complete PeerConnection-based call and verify that 50 // These tests will make a complete PeerConnection-based call and verify that
72 // video is playing for the call. 51 // video is playing for the call.
73 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest, 52 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest,
74 CanSetupDefaultVideoCall) { 53 CanSetupDefaultVideoCall) {
75 MakeTypicalPeerConnectionCall( 54 MakeTypicalPeerConnectionCall(
76 "callAndExpectResolution({video: true}, 640, 480);"); 55 "callAndExpectResolution({video: true}, 640, 480);");
77 } 56 }
78 57
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 } 114 }
136 115
137 // Causes asserts in libjingle: http://crbug.com/484826. 116 // Causes asserts in libjingle: http://crbug.com/484826.
138 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest, 117 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest,
139 DISABLED_CanMakeAudioCallAndThenRenegotiateToVideo) { 118 DISABLED_CanMakeAudioCallAndThenRenegotiateToVideo) {
140 const char* kJavascript = 119 const char* kJavascript =
141 "callAndRenegotiateToVideo({audio: true}, {audio: true, video:true});"; 120 "callAndRenegotiateToVideo({audio: true}, {audio: true, video:true});";
142 MakeTypicalPeerConnectionCall(kJavascript); 121 MakeTypicalPeerConnectionCall(kJavascript);
143 } 122 }
144 123
145 // Causes asserts in libjingle: http://crbug.com/484826.
146 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest,
147 DISABLED_CanMakeVideoCallAndThenRenegotiateToAudio) {
148 MakeAudioDetectingPeerConnectionCall(
149 "callAndRenegotiateToAudio({audio: true, video:true}, {audio: true});");
150 }
151
152 // This test makes a call between pc1 and pc2 where a video only stream is sent 124 // This test makes a call between pc1 and pc2 where a video only stream is sent
153 // from pc1 to pc2. The stream sent from pc1 to pc2 is cloned from the stream 125 // from pc1 to pc2. The stream sent from pc1 to pc2 is cloned from the stream
154 // received on pc2 to test that cloning of remote video and audio tracks works 126 // received on pc2 to test that cloning of remote video and audio tracks works
155 // as intended and is sent back to pc1. 127 // as intended and is sent back to pc1.
156 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest, CanForwardRemoteStream) { 128 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest, CanForwardRemoteStream) {
157 #if defined (OS_ANDROID) 129 #if defined (OS_ANDROID)
158 // This test fails on Nexus 5 devices. 130 // This test fails on Nexus 5 devices.
159 // TODO(henrika): see http://crbug.com/362437 and http://crbug.com/359389 131 // TODO(henrika): see http://crbug.com/362437 and http://crbug.com/359389
160 // for details. 132 // for details.
161 base::CommandLine::ForCurrentProcess()->AppendSwitch( 133 base::CommandLine::ForCurrentProcess()->AppendSwitch(
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 // AudioTrack is added instead. 184 // AudioTrack is added instead.
213 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest, CallAndModifyStream) { 185 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest, CallAndModifyStream) {
214 MakeTypicalPeerConnectionCall( 186 MakeTypicalPeerConnectionCall(
215 "callWithNewVideoMediaStreamLaterSwitchToAudio();"); 187 "callWithNewVideoMediaStreamLaterSwitchToAudio();");
216 } 188 }
217 189
218 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest, AddTwoMediaStreamsToOnePC) { 190 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest, AddTwoMediaStreamsToOnePC) {
219 MakeTypicalPeerConnectionCall("addTwoMediaStreamsToOneConnection();"); 191 MakeTypicalPeerConnectionCall("addTwoMediaStreamsToOneConnection();");
220 } 192 }
221 193
222 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest,
223 EstablishAudioVideoCallAndEnsureAudioIsPlaying) {
224 MakeAudioDetectingPeerConnectionCall(
225 "callAndEnsureAudioIsPlaying({audio:true, video:true});");
226 }
227
228 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest,
229 EstablishAudioOnlyCallAndEnsureAudioIsPlaying) {
230 MakeAudioDetectingPeerConnectionCall(
231 "callAndEnsureAudioIsPlaying({audio:true});");
232 }
233
234 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest,
235 EstablishIsac16KCallAndEnsureAudioIsPlaying) {
236 MakeAudioDetectingPeerConnectionCall(
237 "callWithIsac16KAndEnsureAudioIsPlaying({audio:true});");
238 }
239
240 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest,
241 EstablishAudioVideoCallAndVerifyRemoteMutingWorks) {
242 MakeAudioDetectingPeerConnectionCall(
243 "callAndEnsureRemoteAudioTrackMutingWorks();");
244 }
245
246 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest,
247 EstablishAudioVideoCallAndVerifyLocalMutingWorks) {
248 MakeAudioDetectingPeerConnectionCall(
249 "callAndEnsureLocalAudioTrackMutingWorks();");
250 }
251
252 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest,
253 EnsureLocalVideoMuteDoesntMuteAudio) {
254 MakeAudioDetectingPeerConnectionCall(
255 "callAndEnsureLocalVideoMutingDoesntMuteAudio();");
256 }
257
258 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest,
259 EnsureRemoteVideoMuteDoesntMuteAudio) {
260 MakeAudioDetectingPeerConnectionCall(
261 "callAndEnsureRemoteVideoMutingDoesntMuteAudio();");
262 }
263
264 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest,
265 EstablishAudioVideoCallAndVerifyUnmutingWorks) {
266 MakeAudioDetectingPeerConnectionCall(
267 "callAndEnsureAudioTrackUnmutingWorks();");
268 }
269
270 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest, CallAndVerifyVideoMutingWorks) { 194 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest, CallAndVerifyVideoMutingWorks) {
271 MakeTypicalPeerConnectionCall("callAndEnsureVideoTrackMutingWorks();"); 195 MakeTypicalPeerConnectionCall("callAndEnsureVideoTrackMutingWorks();");
272 } 196 }
273 197
274 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest, CreateOfferWithOfferOptions) { 198 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest, CreateOfferWithOfferOptions) {
275 MakeTypicalPeerConnectionCall("testCreateOfferOptions();"); 199 MakeTypicalPeerConnectionCall("testCreateOfferOptions();");
276 } 200 }
277 201
278 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest, CallInsideIframe) { 202 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcBrowserTest, CallInsideIframe) {
279 MakeTypicalPeerConnectionCall("callInsideIframe({video: true, audio:true});"); 203 MakeTypicalPeerConnectionCall("callInsideIframe({video: true, audio:true});");
280 } 204 }
281 205
282 } // namespace content 206 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698