OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/debug/trace_event_impl.h" | 6 #include "base/debug/trace_event_impl.h" |
7 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
9 #include "base/test/trace_event_analyzer.h" | 9 #include "base/test/trace_event_analyzer.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 | 68 |
69 const std::string video_constraint = | 69 const std::string video_constraint = |
70 "video: {optional: [{ sourceId:\"" + video_source_id + "\"}]}"; | 70 "video: {optional: [{ sourceId:\"" + video_source_id + "\"}]}"; |
71 return function_name + "({" + audio_constraint + video_constraint + "});"; | 71 return function_name + "({" + audio_constraint + video_constraint + "});"; |
72 } | 72 } |
73 | 73 |
74 } // namespace | 74 } // namespace |
75 | 75 |
76 namespace content { | 76 namespace content { |
77 | 77 |
78 class WebRtcGetUserMediaBrowserTest: public WebRtcContentBrowserTest, | 78 class WebRtcGetUserMediaBrowserTest: public WebRtcContentBrowserTest { |
79 public testing::WithParamInterface<bool> { | |
80 public: | 79 public: |
81 WebRtcGetUserMediaBrowserTest() : trace_log_(NULL) {} | 80 WebRtcGetUserMediaBrowserTest() : trace_log_(NULL) {} |
82 virtual ~WebRtcGetUserMediaBrowserTest() {} | 81 virtual ~WebRtcGetUserMediaBrowserTest() {} |
83 | 82 |
84 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | |
85 WebRtcContentBrowserTest::SetUpCommandLine(command_line); | |
86 | |
87 bool enable_audio_track_processing = GetParam(); | |
88 if (!enable_audio_track_processing) | |
89 command_line->AppendSwitch(switches::kDisableAudioTrackProcessing); | |
90 } | |
91 | |
92 void StartTracing() { | 83 void StartTracing() { |
93 CHECK(trace_log_ == NULL) << "Can only can start tracing once"; | 84 CHECK(trace_log_ == NULL) << "Can only can start tracing once"; |
94 trace_log_ = base::debug::TraceLog::GetInstance(); | 85 trace_log_ = base::debug::TraceLog::GetInstance(); |
95 trace_log_->SetEnabled(base::debug::CategoryFilter("video"), | 86 trace_log_->SetEnabled(base::debug::CategoryFilter("video"), |
96 base::debug::TraceLog::RECORDING_MODE, | 87 base::debug::TraceLog::RECORDING_MODE, |
97 base::debug::TraceLog::ENABLE_SAMPLING); | 88 base::debug::TraceLog::ENABLE_SAMPLING); |
98 // Check that we are indeed recording. | 89 // Check that we are indeed recording. |
99 EXPECT_EQ(trace_log_->GetNumTracesRecorded(), 1); | 90 EXPECT_EQ(trace_log_->GetNumTracesRecorded(), 1); |
100 } | 91 } |
101 | 92 |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 ASSERT_FALSE(audio_ids->empty()); | 226 ASSERT_FALSE(audio_ids->empty()); |
236 ASSERT_FALSE(video_ids->empty()); | 227 ASSERT_FALSE(video_ids->empty()); |
237 } | 228 } |
238 | 229 |
239 private: | 230 private: |
240 base::debug::TraceLog* trace_log_; | 231 base::debug::TraceLog* trace_log_; |
241 scoped_refptr<base::RefCountedString> recorded_trace_data_; | 232 scoped_refptr<base::RefCountedString> recorded_trace_data_; |
242 scoped_refptr<MessageLoopRunner> message_loop_runner_; | 233 scoped_refptr<MessageLoopRunner> message_loop_runner_; |
243 }; | 234 }; |
244 | 235 |
245 static const bool kRunTestsWithFlag[] = { false, true }; | |
246 INSTANTIATE_TEST_CASE_P(WebRtcGetUserMediaBrowserTests, | |
247 WebRtcGetUserMediaBrowserTest, | |
248 testing::ValuesIn(kRunTestsWithFlag)); | |
249 | |
250 // These tests will all make a getUserMedia call with different constraints and | 236 // These tests will all make a getUserMedia call with different constraints and |
251 // see that the success callback is called. If the error callback is called or | 237 // see that the success callback is called. If the error callback is called or |
252 // none of the callbacks are called the tests will simply time out and fail. | 238 // none of the callbacks are called the tests will simply time out and fail. |
253 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, GetVideoStreamAndStop) { | 239 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, GetVideoStreamAndStop) { |
254 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 240 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
255 | 241 |
256 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 242 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
257 NavigateToURL(shell(), url); | 243 NavigateToURL(shell(), url); |
258 | 244 |
259 ExecuteJavascriptAndWaitForOk( | 245 ExecuteJavascriptAndWaitForOk( |
260 base::StringPrintf("%s({video: true});", kGetUserMediaAndStop)); | 246 base::StringPrintf("%s({video: true});", kGetUserMediaAndStop)); |
261 } | 247 } |
262 | 248 |
263 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 249 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
264 RenderSameTrackMediastreamAndStop) { | 250 RenderSameTrackMediastreamAndStop) { |
265 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 251 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
266 | 252 |
267 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 253 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
268 NavigateToURL(shell(), url); | 254 NavigateToURL(shell(), url); |
269 | 255 |
270 ExecuteJavascriptAndWaitForOk( | 256 ExecuteJavascriptAndWaitForOk( |
271 base::StringPrintf("%s({video: true});", | 257 base::StringPrintf("%s({video: true});", |
272 kRenderSameTrackMediastreamAndStop)); | 258 kRenderSameTrackMediastreamAndStop)); |
273 } | 259 } |
274 | 260 |
275 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 261 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
276 RenderClonedMediastreamAndStop) { | 262 RenderClonedMediastreamAndStop) { |
277 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 263 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
278 | 264 |
279 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 265 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
280 NavigateToURL(shell(), url); | 266 NavigateToURL(shell(), url); |
281 | 267 |
282 | 268 |
283 ExecuteJavascriptAndWaitForOk( | 269 ExecuteJavascriptAndWaitForOk( |
284 base::StringPrintf("%s({video: true});", | 270 base::StringPrintf("%s({video: true});", |
285 kRenderClonedMediastreamAndStop)); | 271 kRenderClonedMediastreamAndStop)); |
286 } | 272 } |
287 | 273 |
288 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 274 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
289 kRenderClonedTrackMediastreamAndStop) { | 275 kRenderClonedTrackMediastreamAndStop) { |
290 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 276 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
291 | 277 |
292 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 278 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
293 NavigateToURL(shell(), url); | 279 NavigateToURL(shell(), url); |
294 | 280 |
295 ExecuteJavascriptAndWaitForOk( | 281 ExecuteJavascriptAndWaitForOk( |
296 base::StringPrintf("%s({video: true});", | 282 base::StringPrintf("%s({video: true});", |
297 kRenderClonedTrackMediastreamAndStop)); | 283 kRenderClonedTrackMediastreamAndStop)); |
298 } | 284 } |
299 | 285 |
300 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 286 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
301 kRenderDuplicatedMediastreamAndStop) { | 287 kRenderDuplicatedMediastreamAndStop) { |
302 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 288 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
303 | 289 |
304 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 290 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
305 NavigateToURL(shell(), url); | 291 NavigateToURL(shell(), url); |
306 | 292 |
307 ExecuteJavascriptAndWaitForOk( | 293 ExecuteJavascriptAndWaitForOk( |
308 base::StringPrintf("%s({video: true});", | 294 base::StringPrintf("%s({video: true});", |
309 kRenderDuplicatedMediastreamAndStop)); | 295 kRenderDuplicatedMediastreamAndStop)); |
310 } | 296 } |
311 | 297 |
312 // Flaky on Android. http://crbug.com/387895 | 298 // Flaky on Android. http://crbug.com/387895 |
313 #if defined(OS_ANDROID) | 299 #if defined(OS_ANDROID) |
314 #define MAYBE_GetAudioAndVideoStreamAndStop DISABLED_GetAudioAndVideoStreamAndSt
op | 300 #define MAYBE_GetAudioAndVideoStreamAndStop DISABLED_GetAudioAndVideoStreamAndSt
op |
315 #else | 301 #else |
316 #define MAYBE_GetAudioAndVideoStreamAndStop GetAudioAndVideoStreamAndStop | 302 #define MAYBE_GetAudioAndVideoStreamAndStop GetAudioAndVideoStreamAndStop |
317 #endif | 303 #endif |
318 | 304 |
319 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 305 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
320 MAYBE_GetAudioAndVideoStreamAndStop) { | 306 MAYBE_GetAudioAndVideoStreamAndStop) { |
321 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 307 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
322 | 308 |
323 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 309 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
324 NavigateToURL(shell(), url); | 310 NavigateToURL(shell(), url); |
325 | 311 |
326 ExecuteJavascriptAndWaitForOk(base::StringPrintf( | 312 ExecuteJavascriptAndWaitForOk(base::StringPrintf( |
327 "%s({video: true, audio: true});", kGetUserMediaAndStop)); | 313 "%s({video: true, audio: true});", kGetUserMediaAndStop)); |
328 } | 314 } |
329 | 315 |
330 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 316 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
331 GetAudioAndVideoStreamAndClone) { | 317 GetAudioAndVideoStreamAndClone) { |
332 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 318 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
333 | 319 |
334 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 320 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
335 NavigateToURL(shell(), url); | 321 NavigateToURL(shell(), url); |
336 | 322 |
337 ExecuteJavascriptAndWaitForOk("getUserMediaAndClone();"); | 323 ExecuteJavascriptAndWaitForOk("getUserMediaAndClone();"); |
338 } | 324 } |
339 | 325 |
340 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 326 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
341 RenderVideoTrackInMultipleTagsAndPause) { | 327 RenderVideoTrackInMultipleTagsAndPause) { |
342 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 328 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
343 | 329 |
344 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 330 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
345 NavigateToURL(shell(), url); | 331 NavigateToURL(shell(), url); |
346 | 332 |
347 ExecuteJavascriptAndWaitForOk("getUserMediaAndRenderInSeveralVideoTags();"); | 333 ExecuteJavascriptAndWaitForOk("getUserMediaAndRenderInSeveralVideoTags();"); |
348 } | 334 } |
349 | 335 |
350 | 336 |
351 | 337 |
352 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 338 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
353 GetUserMediaWithMandatorySourceID) { | 339 GetUserMediaWithMandatorySourceID) { |
354 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 340 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
355 | 341 |
356 std::vector<std::string> audio_ids; | 342 std::vector<std::string> audio_ids; |
357 std::vector<std::string> video_ids; | 343 std::vector<std::string> video_ids; |
358 GetInputDevices(&audio_ids, &video_ids); | 344 GetInputDevices(&audio_ids, &video_ids); |
359 | 345 |
360 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 346 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
361 | 347 |
362 // Test all combinations of mandatory sourceID; | 348 // Test all combinations of mandatory sourceID; |
363 for (std::vector<std::string>::const_iterator video_it = video_ids.begin(); | 349 for (std::vector<std::string>::const_iterator video_it = video_ids.begin(); |
364 video_it != video_ids.end(); ++video_it) { | 350 video_it != video_ids.end(); ++video_it) { |
365 for (std::vector<std::string>::const_iterator audio_it = audio_ids.begin(); | 351 for (std::vector<std::string>::const_iterator audio_it = audio_ids.begin(); |
366 audio_it != audio_ids.end(); ++audio_it) { | 352 audio_it != audio_ids.end(); ++audio_it) { |
367 NavigateToURL(shell(), url); | 353 NavigateToURL(shell(), url); |
368 EXPECT_EQ(kOK, ExecuteJavascriptAndReturnResult( | 354 EXPECT_EQ(kOK, ExecuteJavascriptAndReturnResult( |
369 GenerateGetUserMediaWithMandatorySourceID( | 355 GenerateGetUserMediaWithMandatorySourceID( |
370 kGetUserMediaAndStop, | 356 kGetUserMediaAndStop, |
371 *audio_it, | 357 *audio_it, |
372 *video_it))); | 358 *video_it))); |
373 } | 359 } |
374 } | 360 } |
375 } | 361 } |
376 | 362 |
377 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 363 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
378 GetUserMediaWithInvalidMandatorySourceID) { | 364 GetUserMediaWithInvalidMandatorySourceID) { |
379 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 365 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
380 | 366 |
381 std::vector<std::string> audio_ids; | 367 std::vector<std::string> audio_ids; |
382 std::vector<std::string> video_ids; | 368 std::vector<std::string> video_ids; |
383 GetInputDevices(&audio_ids, &video_ids); | 369 GetInputDevices(&audio_ids, &video_ids); |
384 | 370 |
385 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 371 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
386 | 372 |
387 // Test with invalid mandatory audio sourceID. | 373 // Test with invalid mandatory audio sourceID. |
(...skipping 12 matching lines...) Expand all Loading... |
400 "something invalid"))); | 386 "something invalid"))); |
401 | 387 |
402 // Test with empty mandatory audio sourceID. | 388 // Test with empty mandatory audio sourceID. |
403 EXPECT_EQ("DevicesNotFoundError", ExecuteJavascriptAndReturnResult( | 389 EXPECT_EQ("DevicesNotFoundError", ExecuteJavascriptAndReturnResult( |
404 GenerateGetUserMediaWithMandatorySourceID( | 390 GenerateGetUserMediaWithMandatorySourceID( |
405 kGetUserMediaAndExpectFailure, | 391 kGetUserMediaAndExpectFailure, |
406 "", | 392 "", |
407 video_ids[0]))); | 393 video_ids[0]))); |
408 } | 394 } |
409 | 395 |
410 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 396 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
411 GetUserMediaWithInvalidOptionalSourceID) { | 397 GetUserMediaWithInvalidOptionalSourceID) { |
412 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 398 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
413 | 399 |
414 std::vector<std::string> audio_ids; | 400 std::vector<std::string> audio_ids; |
415 std::vector<std::string> video_ids; | 401 std::vector<std::string> video_ids; |
416 GetInputDevices(&audio_ids, &video_ids); | 402 GetInputDevices(&audio_ids, &video_ids); |
417 | 403 |
418 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 404 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
419 | 405 |
420 // Test with invalid optional audio sourceID. | 406 // Test with invalid optional audio sourceID. |
(...skipping 12 matching lines...) Expand all Loading... |
433 "something invalid"))); | 419 "something invalid"))); |
434 | 420 |
435 // Test with empty optional audio sourceID. | 421 // Test with empty optional audio sourceID. |
436 EXPECT_EQ(kOK, ExecuteJavascriptAndReturnResult( | 422 EXPECT_EQ(kOK, ExecuteJavascriptAndReturnResult( |
437 GenerateGetUserMediaWithOptionalSourceID( | 423 GenerateGetUserMediaWithOptionalSourceID( |
438 kGetUserMediaAndStop, | 424 kGetUserMediaAndStop, |
439 "", | 425 "", |
440 video_ids[0]))); | 426 video_ids[0]))); |
441 } | 427 } |
442 | 428 |
443 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, TwoGetUserMediaAndStop) { | 429 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, TwoGetUserMediaAndStop) { |
444 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 430 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
445 | 431 |
446 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 432 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
447 NavigateToURL(shell(), url); | 433 NavigateToURL(shell(), url); |
448 | 434 |
449 ExecuteJavascriptAndWaitForOk( | 435 ExecuteJavascriptAndWaitForOk( |
450 "twoGetUserMediaAndStop({video: true, audio: true});"); | 436 "twoGetUserMediaAndStop({video: true, audio: true});"); |
451 } | 437 } |
452 | 438 |
453 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 439 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
454 TwoGetUserMediaWithEqualConstraints) { | 440 TwoGetUserMediaWithEqualConstraints) { |
455 std::string constraints1 = "{video: true, audio: true}"; | 441 std::string constraints1 = "{video: true, audio: true}"; |
456 const std::string& constraints2 = constraints1; | 442 const std::string& constraints2 = constraints1; |
457 std::string expected_result = "w=640:h=480-w=640:h=480"; | 443 std::string expected_result = "w=640:h=480-w=640:h=480"; |
458 | 444 |
459 RunTwoGetTwoGetUserMediaWithDifferentContraints(constraints1, constraints2, | 445 RunTwoGetTwoGetUserMediaWithDifferentContraints(constraints1, constraints2, |
460 expected_result); | 446 expected_result); |
461 } | 447 } |
462 | 448 |
463 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 449 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
464 TwoGetUserMediaWithSecondVideoCropped) { | 450 TwoGetUserMediaWithSecondVideoCropped) { |
465 std::string constraints1 = "{video: true}"; | 451 std::string constraints1 = "{video: true}"; |
466 std::string constraints2 = "{video: {mandatory: {maxHeight: 360}}}"; | 452 std::string constraints2 = "{video: {mandatory: {maxHeight: 360}}}"; |
467 std::string expected_result = "w=640:h=480-w=640:h=360"; | 453 std::string expected_result = "w=640:h=480-w=640:h=360"; |
468 RunTwoGetTwoGetUserMediaWithDifferentContraints(constraints1, constraints2, | 454 RunTwoGetTwoGetUserMediaWithDifferentContraints(constraints1, constraints2, |
469 expected_result); | 455 expected_result); |
470 } | 456 } |
471 | 457 |
472 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 458 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
473 TwoGetUserMediaWithFirstHdSecondVga) { | 459 TwoGetUserMediaWithFirstHdSecondVga) { |
474 std::string constraints1 = | 460 std::string constraints1 = |
475 "{video: {mandatory: {minWidth:1280 , minHeight: 720}}}"; | 461 "{video: {mandatory: {minWidth:1280 , minHeight: 720}}}"; |
476 std::string constraints2 = | 462 std::string constraints2 = |
477 "{video: {mandatory: {maxWidth:640 , maxHeight: 480}}}"; | 463 "{video: {mandatory: {maxWidth:640 , maxHeight: 480}}}"; |
478 std::string expected_result = "w=1280:h=720-w=640:h=480"; | 464 std::string expected_result = "w=1280:h=720-w=640:h=480"; |
479 RunTwoGetTwoGetUserMediaWithDifferentContraints(constraints1, constraints2, | 465 RunTwoGetTwoGetUserMediaWithDifferentContraints(constraints1, constraints2, |
480 expected_result); | 466 expected_result); |
481 } | 467 } |
482 | 468 |
483 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 469 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
484 TwoGetUserMediaAndVerifyFrameRate) { | 470 TwoGetUserMediaAndVerifyFrameRate) { |
485 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 471 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
486 | 472 |
487 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 473 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
488 NavigateToURL(shell(), url); | 474 NavigateToURL(shell(), url); |
489 | 475 |
490 std::string constraints1 = | 476 std::string constraints1 = |
491 "{video: {mandatory: {minWidth:640 , minHeight: 480, " | 477 "{video: {mandatory: {minWidth:640 , minHeight: 480, " |
492 "minFrameRate : 15, maxFrameRate : 15}}}"; | 478 "minFrameRate : 15, maxFrameRate : 15}}}"; |
493 std::string constraints2 = | 479 std::string constraints2 = |
494 "{video: {mandatory: {maxWidth:320 , maxHeight: 240," | 480 "{video: {mandatory: {maxWidth:320 , maxHeight: 240," |
495 "minFrameRate : 7, maxFrameRate : 7}}}"; | 481 "minFrameRate : 7, maxFrameRate : 7}}}"; |
496 | 482 |
497 std::string command = "twoGetUserMediaAndVerifyFrameRate(" + | 483 std::string command = "twoGetUserMediaAndVerifyFrameRate(" + |
498 constraints1 + ',' + constraints2 + ", 15, 7)"; | 484 constraints1 + ',' + constraints2 + ", 15, 7)"; |
499 ExecuteJavascriptAndWaitForOk(command); | 485 ExecuteJavascriptAndWaitForOk(command); |
500 } | 486 } |
501 | 487 |
502 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 488 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
503 GetUserMediaWithTooHighVideoConstraintsValues) { | 489 GetUserMediaWithTooHighVideoConstraintsValues) { |
504 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 490 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
505 | 491 |
506 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 492 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
507 | 493 |
508 int large_value = 99999; | 494 int large_value = 99999; |
509 std::string call = GenerateGetUserMediaCall(kGetUserMediaAndExpectFailure, | 495 std::string call = GenerateGetUserMediaCall(kGetUserMediaAndExpectFailure, |
510 large_value, | 496 large_value, |
511 large_value, | 497 large_value, |
512 large_value, | 498 large_value, |
513 large_value, | 499 large_value, |
514 large_value, | 500 large_value, |
515 large_value); | 501 large_value); |
516 NavigateToURL(shell(), url); | 502 NavigateToURL(shell(), url); |
517 | 503 |
518 // TODO(perkj): A proper error code should be returned by gUM. | 504 // TODO(perkj): A proper error code should be returned by gUM. |
519 EXPECT_EQ("TrackStartError", ExecuteJavascriptAndReturnResult(call)); | 505 EXPECT_EQ("TrackStartError", ExecuteJavascriptAndReturnResult(call)); |
520 } | 506 } |
521 | 507 |
522 // This test will make a simple getUserMedia page, verify that video is playing | 508 // This test will make a simple getUserMedia page, verify that video is playing |
523 // in a simple local <video>, and for a couple of seconds, collect some | 509 // in a simple local <video>, and for a couple of seconds, collect some |
524 // performance traces from VideoCaptureController colorspace conversion and | 510 // performance traces from VideoCaptureController colorspace conversion and |
525 // potential resizing. | 511 // potential resizing. |
526 IN_PROC_BROWSER_TEST_P( | 512 IN_PROC_BROWSER_TEST_F( |
527 WebRtcGetUserMediaBrowserTest, | 513 WebRtcGetUserMediaBrowserTest, |
528 TraceVideoCaptureControllerPerformanceDuringGetUserMedia) { | 514 TraceVideoCaptureControllerPerformanceDuringGetUserMedia) { |
529 RunGetUserMediaAndCollectMeasures( | 515 RunGetUserMediaAndCollectMeasures( |
530 10, | 516 10, |
531 "VideoCaptureController::OnIncomingCapturedData", | 517 "VideoCaptureController::OnIncomingCapturedData", |
532 "VideoCaptureController"); | 518 "VideoCaptureController"); |
533 } | 519 } |
534 | 520 |
535 // This test calls getUserMedia and checks for aspect ratio behavior. | 521 // This test calls getUserMedia and checks for aspect ratio behavior. |
536 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 522 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
537 TestGetUserMediaAspectRatio4To3) { | 523 TestGetUserMediaAspectRatio4To3) { |
538 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 524 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
539 | 525 |
540 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 526 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
541 | 527 |
542 std::string constraints_4_3 = GenerateGetUserMediaCall( | 528 std::string constraints_4_3 = GenerateGetUserMediaCall( |
543 kGetUserMediaAndAnalyseAndStop, 640, 640, 480, 480, 10, 30); | 529 kGetUserMediaAndAnalyseAndStop, 640, 640, 480, 480, 10, 30); |
544 | 530 |
545 NavigateToURL(shell(), url); | 531 NavigateToURL(shell(), url); |
546 ASSERT_EQ("w=640:h=480", | 532 ASSERT_EQ("w=640:h=480", |
547 ExecuteJavascriptAndReturnResult(constraints_4_3)); | 533 ExecuteJavascriptAndReturnResult(constraints_4_3)); |
548 } | 534 } |
549 | 535 |
550 // This test calls getUserMedia and checks for aspect ratio behavior. | 536 // This test calls getUserMedia and checks for aspect ratio behavior. |
551 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 537 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
552 TestGetUserMediaAspectRatio16To9) { | 538 TestGetUserMediaAspectRatio16To9) { |
553 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 539 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
554 | 540 |
555 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 541 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
556 | 542 |
557 std::string constraints_16_9 = GenerateGetUserMediaCall( | 543 std::string constraints_16_9 = GenerateGetUserMediaCall( |
558 kGetUserMediaAndAnalyseAndStop, 640, 640, 360, 360, 10, 30); | 544 kGetUserMediaAndAnalyseAndStop, 640, 640, 360, 360, 10, 30); |
559 | 545 |
560 NavigateToURL(shell(), url); | 546 NavigateToURL(shell(), url); |
561 ASSERT_EQ("w=640:h=360", | 547 ASSERT_EQ("w=640:h=360", |
562 ExecuteJavascriptAndReturnResult(constraints_16_9)); | 548 ExecuteJavascriptAndReturnResult(constraints_16_9)); |
563 } | 549 } |
564 | 550 |
565 // This test calls getUserMedia and checks for aspect ratio behavior. | 551 // This test calls getUserMedia and checks for aspect ratio behavior. |
566 IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, | 552 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
567 TestGetUserMediaAspectRatio1To1) { | 553 TestGetUserMediaAspectRatio1To1) { |
568 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 554 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
569 | 555 |
570 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 556 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
571 | 557 |
572 std::string constraints_1_1 = GenerateGetUserMediaCall( | 558 std::string constraints_1_1 = GenerateGetUserMediaCall( |
573 kGetUserMediaAndAnalyseAndStop, 320, 320, 320, 320, 10, 30); | 559 kGetUserMediaAndAnalyseAndStop, 320, 320, 320, 320, 10, 30); |
574 | 560 |
575 NavigateToURL(shell(), url); | 561 NavigateToURL(shell(), url); |
576 ASSERT_EQ("w=320:h=320", | 562 ASSERT_EQ("w=320:h=320", |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
625 {640, 640, 360, 360, 10, 30}, | 611 {640, 640, 360, 360, 10, 30}, |
626 {640, 640, 480, 480, 10, 30}, | 612 {640, 640, 480, 480, 10, 30}, |
627 {960, 960, 720, 720, 10, 30}, | 613 {960, 960, 720, 720, 10, 30}, |
628 {1280, 1280, 720, 720, 10, 30}}; | 614 {1280, 1280, 720, 720, 10, 30}}; |
629 | 615 |
630 INSTANTIATE_TEST_CASE_P(UserMedia, | 616 INSTANTIATE_TEST_CASE_P(UserMedia, |
631 WebRtcConstraintsBrowserTest, | 617 WebRtcConstraintsBrowserTest, |
632 testing::ValuesIn(kAllUserMediaSizes)); | 618 testing::ValuesIn(kAllUserMediaSizes)); |
633 | 619 |
634 } // namespace content | 620 } // namespace content |
OLD | NEW |