| 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 |