| 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/json/json_reader.h" | 6 #include "base/json/json_reader.h" |
| 7 #include "base/strings/stringprintf.h" | 7 #include "base/strings/stringprintf.h" |
| 8 #include "base/test/trace_event_analyzer.h" | 8 #include "base/test/trace_event_analyzer.h" |
| 9 #include "base/trace_event/trace_event_impl.h" | 9 #include "base/trace_event/trace_event_impl.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 114 message_loop_runner_->Quit(); | 114 message_loop_runner_->Quit(); |
| 115 } | 115 } |
| 116 | 116 |
| 117 TraceAnalyzer* CreateTraceAnalyzer() { | 117 TraceAnalyzer* CreateTraceAnalyzer() { |
| 118 return TraceAnalyzer::Create("[" + recorded_trace_data_->data() + "]"); | 118 return TraceAnalyzer::Create("[" + recorded_trace_data_->data() + "]"); |
| 119 } | 119 } |
| 120 | 120 |
| 121 void RunGetUserMediaAndCollectMeasures(const int time_to_sample_secs, | 121 void RunGetUserMediaAndCollectMeasures(const int time_to_sample_secs, |
| 122 const std::string& measure_filter, | 122 const std::string& measure_filter, |
| 123 const std::string& graph_name) { | 123 const std::string& graph_name) { |
| 124 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 124 ASSERT_TRUE(embedded_test_server()->Start()); |
| 125 | 125 |
| 126 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 126 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 127 NavigateToURL(shell(), url); | 127 NavigateToURL(shell(), url); |
| 128 | 128 |
| 129 // Put getUserMedia to work and let it run for a couple of seconds. | 129 // Put getUserMedia to work and let it run for a couple of seconds. |
| 130 DCHECK(time_to_sample_secs); | 130 DCHECK(time_to_sample_secs); |
| 131 ExecuteJavascriptAndWaitForOk( | 131 ExecuteJavascriptAndWaitForOk( |
| 132 base::StringPrintf("%s({video: true}, 'myStreamName');", | 132 base::StringPrintf("%s({video: true}, 'myStreamName');", |
| 133 kGetUserMediaAndGetStreamUp)); | 133 kGetUserMediaAndGetStreamUp)); |
| 134 | 134 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 | 172 |
| 173 perf_test::PrintResultList( | 173 perf_test::PrintResultList( |
| 174 graph_name, "", "interarrival_time", interarrival_us, "us", true); | 174 graph_name, "", "interarrival_time", interarrival_us, "us", true); |
| 175 } | 175 } |
| 176 | 176 |
| 177 // Runs the JavaScript twoGetUserMedia with |constraints1| and |constraint2|. | 177 // Runs the JavaScript twoGetUserMedia with |constraints1| and |constraint2|. |
| 178 void RunTwoGetTwoGetUserMediaWithDifferentContraints( | 178 void RunTwoGetTwoGetUserMediaWithDifferentContraints( |
| 179 const std::string& constraints1, | 179 const std::string& constraints1, |
| 180 const std::string& constraints2, | 180 const std::string& constraints2, |
| 181 const std::string& expected_result) { | 181 const std::string& expected_result) { |
| 182 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 182 ASSERT_TRUE(embedded_test_server()->Start()); |
| 183 | 183 |
| 184 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 184 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 185 NavigateToURL(shell(), url); | 185 NavigateToURL(shell(), url); |
| 186 | 186 |
| 187 std::string command = "twoGetUserMedia(" + constraints1 + ',' + | 187 std::string command = "twoGetUserMedia(" + constraints1 + ',' + |
| 188 constraints2 + ')'; | 188 constraints2 + ')'; |
| 189 | 189 |
| 190 EXPECT_EQ(expected_result, ExecuteJavascriptAndReturnResult(command)); | 190 EXPECT_EQ(expected_result, ExecuteJavascriptAndReturnResult(command)); |
| 191 } | 191 } |
| 192 | 192 |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 242 // none of the callbacks are called the tests will simply time out and fail. | 242 // none of the callbacks are called the tests will simply time out and fail. |
| 243 | 243 |
| 244 // Test fails under MSan, http://crbug.com/445745 | 244 // Test fails under MSan, http://crbug.com/445745 |
| 245 #if defined(MEMORY_SANITIZER) | 245 #if defined(MEMORY_SANITIZER) |
| 246 #define MAYBE_GetVideoStreamAndStop DISABLED_GetVideoStreamAndStop | 246 #define MAYBE_GetVideoStreamAndStop DISABLED_GetVideoStreamAndStop |
| 247 #else | 247 #else |
| 248 #define MAYBE_GetVideoStreamAndStop GetVideoStreamAndStop | 248 #define MAYBE_GetVideoStreamAndStop GetVideoStreamAndStop |
| 249 #endif | 249 #endif |
| 250 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 250 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 251 MAYBE_GetVideoStreamAndStop) { | 251 MAYBE_GetVideoStreamAndStop) { |
| 252 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 252 ASSERT_TRUE(embedded_test_server()->Start()); |
| 253 | 253 |
| 254 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 254 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 255 NavigateToURL(shell(), url); | 255 NavigateToURL(shell(), url); |
| 256 | 256 |
| 257 ExecuteJavascriptAndWaitForOk( | 257 ExecuteJavascriptAndWaitForOk( |
| 258 base::StringPrintf("%s({video: true});", kGetUserMediaAndStop)); | 258 base::StringPrintf("%s({video: true});", kGetUserMediaAndStop)); |
| 259 } | 259 } |
| 260 | 260 |
| 261 // Test fails under MSan, http://crbug.com/445745 | 261 // Test fails under MSan, http://crbug.com/445745 |
| 262 #if defined(MEMORY_SANITIZER) | 262 #if defined(MEMORY_SANITIZER) |
| 263 #define MAYBE_RenderSameTrackMediastreamAndStop \ | 263 #define MAYBE_RenderSameTrackMediastreamAndStop \ |
| 264 DISABLED_RenderSameTrackMediastreamAndStop | 264 DISABLED_RenderSameTrackMediastreamAndStop |
| 265 #else | 265 #else |
| 266 #define MAYBE_RenderSameTrackMediastreamAndStop \ | 266 #define MAYBE_RenderSameTrackMediastreamAndStop \ |
| 267 RenderSameTrackMediastreamAndStop | 267 RenderSameTrackMediastreamAndStop |
| 268 #endif | 268 #endif |
| 269 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 269 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 270 MAYBE_RenderSameTrackMediastreamAndStop) { | 270 MAYBE_RenderSameTrackMediastreamAndStop) { |
| 271 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 271 ASSERT_TRUE(embedded_test_server()->Start()); |
| 272 | 272 |
| 273 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 273 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 274 NavigateToURL(shell(), url); | 274 NavigateToURL(shell(), url); |
| 275 | 275 |
| 276 ExecuteJavascriptAndWaitForOk( | 276 ExecuteJavascriptAndWaitForOk( |
| 277 base::StringPrintf("%s({video: true});", | 277 base::StringPrintf("%s({video: true});", |
| 278 kRenderSameTrackMediastreamAndStop)); | 278 kRenderSameTrackMediastreamAndStop)); |
| 279 } | 279 } |
| 280 | 280 |
| 281 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 281 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 282 RenderClonedMediastreamAndStop) { | 282 RenderClonedMediastreamAndStop) { |
| 283 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 283 ASSERT_TRUE(embedded_test_server()->Start()); |
| 284 | 284 |
| 285 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 285 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 286 NavigateToURL(shell(), url); | 286 NavigateToURL(shell(), url); |
| 287 | 287 |
| 288 | 288 |
| 289 ExecuteJavascriptAndWaitForOk( | 289 ExecuteJavascriptAndWaitForOk( |
| 290 base::StringPrintf("%s({video: true});", | 290 base::StringPrintf("%s({video: true});", |
| 291 kRenderClonedMediastreamAndStop)); | 291 kRenderClonedMediastreamAndStop)); |
| 292 } | 292 } |
| 293 | 293 |
| 294 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 294 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 295 kRenderClonedTrackMediastreamAndStop) { | 295 kRenderClonedTrackMediastreamAndStop) { |
| 296 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 296 ASSERT_TRUE(embedded_test_server()->Start()); |
| 297 | 297 |
| 298 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 298 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 299 NavigateToURL(shell(), url); | 299 NavigateToURL(shell(), url); |
| 300 | 300 |
| 301 ExecuteJavascriptAndWaitForOk( | 301 ExecuteJavascriptAndWaitForOk( |
| 302 base::StringPrintf("%s({video: true});", | 302 base::StringPrintf("%s({video: true});", |
| 303 kRenderClonedTrackMediastreamAndStop)); | 303 kRenderClonedTrackMediastreamAndStop)); |
| 304 } | 304 } |
| 305 | 305 |
| 306 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 306 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 307 kRenderDuplicatedMediastreamAndStop) { | 307 kRenderDuplicatedMediastreamAndStop) { |
| 308 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 308 ASSERT_TRUE(embedded_test_server()->Start()); |
| 309 | 309 |
| 310 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 310 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 311 NavigateToURL(shell(), url); | 311 NavigateToURL(shell(), url); |
| 312 | 312 |
| 313 ExecuteJavascriptAndWaitForOk( | 313 ExecuteJavascriptAndWaitForOk( |
| 314 base::StringPrintf("%s({video: true});", | 314 base::StringPrintf("%s({video: true});", |
| 315 kRenderDuplicatedMediastreamAndStop)); | 315 kRenderDuplicatedMediastreamAndStop)); |
| 316 } | 316 } |
| 317 | 317 |
| 318 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 318 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 319 GetAudioAndVideoStreamAndStop) { | 319 GetAudioAndVideoStreamAndStop) { |
| 320 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 320 ASSERT_TRUE(embedded_test_server()->Start()); |
| 321 | 321 |
| 322 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 322 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 323 NavigateToURL(shell(), url); | 323 NavigateToURL(shell(), url); |
| 324 | 324 |
| 325 ExecuteJavascriptAndWaitForOk(base::StringPrintf( | 325 ExecuteJavascriptAndWaitForOk(base::StringPrintf( |
| 326 "%s({video: true, audio: true});", kGetUserMediaAndStop)); | 326 "%s({video: true, audio: true});", kGetUserMediaAndStop)); |
| 327 } | 327 } |
| 328 | 328 |
| 329 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 329 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 330 GetAudioAndVideoStreamAndClone) { | 330 GetAudioAndVideoStreamAndClone) { |
| 331 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 331 ASSERT_TRUE(embedded_test_server()->Start()); |
| 332 | 332 |
| 333 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 333 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 334 NavigateToURL(shell(), url); | 334 NavigateToURL(shell(), url); |
| 335 | 335 |
| 336 ExecuteJavascriptAndWaitForOk("getUserMediaAndClone();"); | 336 ExecuteJavascriptAndWaitForOk("getUserMediaAndClone();"); |
| 337 } | 337 } |
| 338 | 338 |
| 339 // Test fails under Android, http://crbug.com/524388 | 339 // Test fails under Android, http://crbug.com/524388 |
| 340 // Test fails under MSan | 340 // Test fails under MSan |
| 341 // Flaky everywhere else: http://crbug.com/523152 | 341 // Flaky everywhere else: http://crbug.com/523152 |
| 342 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 342 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 343 DISABLED_RenderVideoTrackInMultipleTagsAndPause) { | 343 DISABLED_RenderVideoTrackInMultipleTagsAndPause) { |
| 344 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 344 ASSERT_TRUE(embedded_test_server()->Start()); |
| 345 | 345 |
| 346 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 346 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 347 NavigateToURL(shell(), url); | 347 NavigateToURL(shell(), url); |
| 348 | 348 |
| 349 ExecuteJavascriptAndWaitForOk("getUserMediaAndRenderInSeveralVideoTags();"); | 349 ExecuteJavascriptAndWaitForOk("getUserMediaAndRenderInSeveralVideoTags();"); |
| 350 } | 350 } |
| 351 | 351 |
| 352 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 352 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 353 GetUserMediaWithMandatorySourceID) { | 353 GetUserMediaWithMandatorySourceID) { |
| 354 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 354 ASSERT_TRUE(embedded_test_server()->Start()); |
| 355 | 355 |
| 356 std::vector<std::string> audio_ids; | 356 std::vector<std::string> audio_ids; |
| 357 std::vector<std::string> video_ids; | 357 std::vector<std::string> video_ids; |
| 358 GetInputDevices(&audio_ids, &video_ids); | 358 GetInputDevices(&audio_ids, &video_ids); |
| 359 | 359 |
| 360 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 360 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 361 | 361 |
| 362 // Test all combinations of mandatory sourceID; | 362 // Test all combinations of mandatory sourceID; |
| 363 for (std::vector<std::string>::const_iterator video_it = video_ids.begin(); | 363 for (std::vector<std::string>::const_iterator video_it = video_ids.begin(); |
| 364 video_it != video_ids.end(); ++video_it) { | 364 video_it != video_ids.end(); ++video_it) { |
| 365 for (std::vector<std::string>::const_iterator audio_it = audio_ids.begin(); | 365 for (std::vector<std::string>::const_iterator audio_it = audio_ids.begin(); |
| 366 audio_it != audio_ids.end(); ++audio_it) { | 366 audio_it != audio_ids.end(); ++audio_it) { |
| 367 NavigateToURL(shell(), url); | 367 NavigateToURL(shell(), url); |
| 368 EXPECT_EQ(kOK, ExecuteJavascriptAndReturnResult( | 368 EXPECT_EQ(kOK, ExecuteJavascriptAndReturnResult( |
| 369 GenerateGetUserMediaWithMandatorySourceID( | 369 GenerateGetUserMediaWithMandatorySourceID( |
| 370 kGetUserMediaAndStop, | 370 kGetUserMediaAndStop, |
| 371 *audio_it, | 371 *audio_it, |
| 372 *video_it))); | 372 *video_it))); |
| 373 } | 373 } |
| 374 } | 374 } |
| 375 } | 375 } |
| 376 | 376 |
| 377 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 377 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 378 GetUserMediaWithInvalidMandatorySourceID) { | 378 GetUserMediaWithInvalidMandatorySourceID) { |
| 379 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 379 ASSERT_TRUE(embedded_test_server()->Start()); |
| 380 | 380 |
| 381 std::vector<std::string> audio_ids; | 381 std::vector<std::string> audio_ids; |
| 382 std::vector<std::string> video_ids; | 382 std::vector<std::string> video_ids; |
| 383 GetInputDevices(&audio_ids, &video_ids); | 383 GetInputDevices(&audio_ids, &video_ids); |
| 384 | 384 |
| 385 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 385 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 386 | 386 |
| 387 // Test with invalid mandatory audio sourceID. | 387 // Test with invalid mandatory audio sourceID. |
| 388 NavigateToURL(shell(), url); | 388 NavigateToURL(shell(), url); |
| 389 EXPECT_EQ("DevicesNotFoundError", ExecuteJavascriptAndReturnResult( | 389 EXPECT_EQ("DevicesNotFoundError", ExecuteJavascriptAndReturnResult( |
| (...skipping 12 matching lines...) Expand all Loading... |
| 402 // Test with empty mandatory audio sourceID. | 402 // Test with empty mandatory audio sourceID. |
| 403 EXPECT_EQ("DevicesNotFoundError", ExecuteJavascriptAndReturnResult( | 403 EXPECT_EQ("DevicesNotFoundError", ExecuteJavascriptAndReturnResult( |
| 404 GenerateGetUserMediaWithMandatorySourceID( | 404 GenerateGetUserMediaWithMandatorySourceID( |
| 405 kGetUserMediaAndExpectFailure, | 405 kGetUserMediaAndExpectFailure, |
| 406 "", | 406 "", |
| 407 video_ids[0]))); | 407 video_ids[0]))); |
| 408 } | 408 } |
| 409 | 409 |
| 410 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 410 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 411 GetUserMediaWithInvalidOptionalSourceID) { | 411 GetUserMediaWithInvalidOptionalSourceID) { |
| 412 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 412 ASSERT_TRUE(embedded_test_server()->Start()); |
| 413 | 413 |
| 414 std::vector<std::string> audio_ids; | 414 std::vector<std::string> audio_ids; |
| 415 std::vector<std::string> video_ids; | 415 std::vector<std::string> video_ids; |
| 416 GetInputDevices(&audio_ids, &video_ids); | 416 GetInputDevices(&audio_ids, &video_ids); |
| 417 | 417 |
| 418 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 418 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 419 | 419 |
| 420 // Test with invalid optional audio sourceID. | 420 // Test with invalid optional audio sourceID. |
| 421 NavigateToURL(shell(), url); | 421 NavigateToURL(shell(), url); |
| 422 EXPECT_EQ(kOK, ExecuteJavascriptAndReturnResult( | 422 EXPECT_EQ(kOK, ExecuteJavascriptAndReturnResult( |
| (...skipping 12 matching lines...) Expand all Loading... |
| 435 // Test with empty optional audio sourceID. | 435 // Test with empty optional audio sourceID. |
| 436 EXPECT_EQ(kOK, ExecuteJavascriptAndReturnResult( | 436 EXPECT_EQ(kOK, ExecuteJavascriptAndReturnResult( |
| 437 GenerateGetUserMediaWithOptionalSourceID( | 437 GenerateGetUserMediaWithOptionalSourceID( |
| 438 kGetUserMediaAndStop, | 438 kGetUserMediaAndStop, |
| 439 "", | 439 "", |
| 440 video_ids[0]))); | 440 video_ids[0]))); |
| 441 } | 441 } |
| 442 | 442 |
| 443 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 443 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 444 TwoGetUserMediaAndStop) { | 444 TwoGetUserMediaAndStop) { |
| 445 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 445 ASSERT_TRUE(embedded_test_server()->Start()); |
| 446 | 446 |
| 447 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 447 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 448 NavigateToURL(shell(), url); | 448 NavigateToURL(shell(), url); |
| 449 | 449 |
| 450 ExecuteJavascriptAndWaitForOk( | 450 ExecuteJavascriptAndWaitForOk( |
| 451 "twoGetUserMediaAndStop({video: true, audio: true});"); | 451 "twoGetUserMediaAndStop({video: true, audio: true});"); |
| 452 } | 452 } |
| 453 | 453 |
| 454 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 454 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 455 TwoGetUserMediaWithEqualConstraints) { | 455 TwoGetUserMediaWithEqualConstraints) { |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 514 // Test fails under MSan, http://crbug.com/445745 | 514 // Test fails under MSan, http://crbug.com/445745 |
| 515 #if defined(MEMORY_SANITIZER) | 515 #if defined(MEMORY_SANITIZER) |
| 516 #define MAYBE_TwoGetUserMediaAndVerifyFrameRate \ | 516 #define MAYBE_TwoGetUserMediaAndVerifyFrameRate \ |
| 517 DISABLED_TwoGetUserMediaAndVerifyFrameRate | 517 DISABLED_TwoGetUserMediaAndVerifyFrameRate |
| 518 #else | 518 #else |
| 519 #define MAYBE_TwoGetUserMediaAndVerifyFrameRate \ | 519 #define MAYBE_TwoGetUserMediaAndVerifyFrameRate \ |
| 520 TwoGetUserMediaAndVerifyFrameRate | 520 TwoGetUserMediaAndVerifyFrameRate |
| 521 #endif | 521 #endif |
| 522 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 522 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 523 MAYBE_TwoGetUserMediaAndVerifyFrameRate) { | 523 MAYBE_TwoGetUserMediaAndVerifyFrameRate) { |
| 524 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 524 ASSERT_TRUE(embedded_test_server()->Start()); |
| 525 | 525 |
| 526 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 526 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 527 NavigateToURL(shell(), url); | 527 NavigateToURL(shell(), url); |
| 528 | 528 |
| 529 std::string constraints1 = | 529 std::string constraints1 = |
| 530 "{video: {mandatory: {minWidth:640 , minHeight: 480, " | 530 "{video: {mandatory: {minWidth:640 , minHeight: 480, " |
| 531 "minFrameRate : 15, maxFrameRate : 15}}}"; | 531 "minFrameRate : 15, maxFrameRate : 15}}}"; |
| 532 std::string constraints2 = | 532 std::string constraints2 = |
| 533 "{video: {mandatory: {maxWidth:320 , maxHeight: 240," | 533 "{video: {mandatory: {maxWidth:320 , maxHeight: 240," |
| 534 "minFrameRate : 7, maxFrameRate : 7}}}"; | 534 "minFrameRate : 7, maxFrameRate : 7}}}"; |
| 535 | 535 |
| 536 std::string command = "twoGetUserMediaAndVerifyFrameRate(" + | 536 std::string command = "twoGetUserMediaAndVerifyFrameRate(" + |
| 537 constraints1 + ',' + constraints2 + ", 15, 7)"; | 537 constraints1 + ',' + constraints2 + ", 15, 7)"; |
| 538 ExecuteJavascriptAndWaitForOk(command); | 538 ExecuteJavascriptAndWaitForOk(command); |
| 539 } | 539 } |
| 540 | 540 |
| 541 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 541 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 542 GetUserMediaWithTooHighVideoConstraintsValues) { | 542 GetUserMediaWithTooHighVideoConstraintsValues) { |
| 543 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 543 ASSERT_TRUE(embedded_test_server()->Start()); |
| 544 | 544 |
| 545 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 545 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 546 | 546 |
| 547 int large_value = 99999; | 547 int large_value = 99999; |
| 548 std::string call = GenerateGetUserMediaCall(kGetUserMediaAndExpectFailure, | 548 std::string call = GenerateGetUserMediaCall(kGetUserMediaAndExpectFailure, |
| 549 large_value, | 549 large_value, |
| 550 large_value, | 550 large_value, |
| 551 large_value, | 551 large_value, |
| 552 large_value, | 552 large_value, |
| 553 large_value, | 553 large_value, |
| 554 large_value); | 554 large_value); |
| 555 NavigateToURL(shell(), url); | 555 NavigateToURL(shell(), url); |
| 556 | 556 |
| 557 EXPECT_EQ("ConstraintNotSatisfiedError", | 557 EXPECT_EQ("ConstraintNotSatisfiedError", |
| 558 ExecuteJavascriptAndReturnResult(call)); | 558 ExecuteJavascriptAndReturnResult(call)); |
| 559 } | 559 } |
| 560 | 560 |
| 561 // This test makes two getUserMedia requests, one with impossible constraints | 561 // This test makes two getUserMedia requests, one with impossible constraints |
| 562 // that should trigger an error, and one with valid constraints. The test | 562 // that should trigger an error, and one with valid constraints. The test |
| 563 // verifies getUserMedia can succeed after being given impossible constraints. | 563 // verifies getUserMedia can succeed after being given impossible constraints. |
| 564 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 564 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 565 TwoGetUserMediaAndCheckCallbackAfterFailure) { | 565 TwoGetUserMediaAndCheckCallbackAfterFailure) { |
| 566 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 566 ASSERT_TRUE(embedded_test_server()->Start()); |
| 567 | 567 |
| 568 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 568 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 569 NavigateToURL(shell(), url); | 569 NavigateToURL(shell(), url); |
| 570 | 570 |
| 571 int large_value = 99999; | 571 int large_value = 99999; |
| 572 const std::string gum_with_impossible_constraints = | 572 const std::string gum_with_impossible_constraints = |
| 573 GenerateGetUserMediaCall(kGetUserMediaAndExpectFailure, | 573 GenerateGetUserMediaCall(kGetUserMediaAndExpectFailure, |
| 574 large_value, | 574 large_value, |
| 575 large_value, | 575 large_value, |
| 576 large_value, | 576 large_value, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 604 // Test fails under MSan, http://crbug.com/445745 | 604 // Test fails under MSan, http://crbug.com/445745 |
| 605 #if defined(MEMORY_SANITIZER) | 605 #if defined(MEMORY_SANITIZER) |
| 606 #define MAYBE_TestGetUserMediaAspectRatio4To3 \ | 606 #define MAYBE_TestGetUserMediaAspectRatio4To3 \ |
| 607 DISABLED_TestGetUserMediaAspectRatio4To3 | 607 DISABLED_TestGetUserMediaAspectRatio4To3 |
| 608 #else | 608 #else |
| 609 #define MAYBE_TestGetUserMediaAspectRatio4To3 TestGetUserMediaAspectRatio4To3 | 609 #define MAYBE_TestGetUserMediaAspectRatio4To3 TestGetUserMediaAspectRatio4To3 |
| 610 #endif | 610 #endif |
| 611 // This test calls getUserMedia and checks for aspect ratio behavior. | 611 // This test calls getUserMedia and checks for aspect ratio behavior. |
| 612 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 612 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 613 MAYBE_TestGetUserMediaAspectRatio4To3) { | 613 MAYBE_TestGetUserMediaAspectRatio4To3) { |
| 614 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 614 ASSERT_TRUE(embedded_test_server()->Start()); |
| 615 | 615 |
| 616 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 616 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 617 | 617 |
| 618 std::string constraints_4_3 = GenerateGetUserMediaCall( | 618 std::string constraints_4_3 = GenerateGetUserMediaCall( |
| 619 kGetUserMediaAndAnalyseAndStop, 640, 640, 480, 480, 10, 30); | 619 kGetUserMediaAndAnalyseAndStop, 640, 640, 480, 480, 10, 30); |
| 620 | 620 |
| 621 NavigateToURL(shell(), url); | 621 NavigateToURL(shell(), url); |
| 622 ASSERT_EQ("w=640:h=480", | 622 ASSERT_EQ("w=640:h=480", |
| 623 ExecuteJavascriptAndReturnResult(constraints_4_3)); | 623 ExecuteJavascriptAndReturnResult(constraints_4_3)); |
| 624 } | 624 } |
| 625 | 625 |
| 626 // Test fails under MSan, http://crbug.com/445745 | 626 // Test fails under MSan, http://crbug.com/445745 |
| 627 #if defined(MEMORY_SANITIZER) | 627 #if defined(MEMORY_SANITIZER) |
| 628 #define MAYBE_TestGetUserMediaAspectRatio16To9 \ | 628 #define MAYBE_TestGetUserMediaAspectRatio16To9 \ |
| 629 DISABLED_TestGetUserMediaAspectRatio16To9 | 629 DISABLED_TestGetUserMediaAspectRatio16To9 |
| 630 #else | 630 #else |
| 631 #define MAYBE_TestGetUserMediaAspectRatio16To9 TestGetUserMediaAspectRatio16To9 | 631 #define MAYBE_TestGetUserMediaAspectRatio16To9 TestGetUserMediaAspectRatio16To9 |
| 632 #endif | 632 #endif |
| 633 // This test calls getUserMedia and checks for aspect ratio behavior. | 633 // This test calls getUserMedia and checks for aspect ratio behavior. |
| 634 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 634 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 635 MAYBE_TestGetUserMediaAspectRatio16To9) { | 635 MAYBE_TestGetUserMediaAspectRatio16To9) { |
| 636 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 636 ASSERT_TRUE(embedded_test_server()->Start()); |
| 637 | 637 |
| 638 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 638 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 639 | 639 |
| 640 std::string constraints_16_9 = GenerateGetUserMediaCall( | 640 std::string constraints_16_9 = GenerateGetUserMediaCall( |
| 641 kGetUserMediaAndAnalyseAndStop, 640, 640, 360, 360, 10, 30); | 641 kGetUserMediaAndAnalyseAndStop, 640, 640, 360, 360, 10, 30); |
| 642 | 642 |
| 643 NavigateToURL(shell(), url); | 643 NavigateToURL(shell(), url); |
| 644 ASSERT_EQ("w=640:h=360", | 644 ASSERT_EQ("w=640:h=360", |
| 645 ExecuteJavascriptAndReturnResult(constraints_16_9)); | 645 ExecuteJavascriptAndReturnResult(constraints_16_9)); |
| 646 } | 646 } |
| 647 | 647 |
| 648 // Test fails under MSan, http://crbug.com/445745 | 648 // Test fails under MSan, http://crbug.com/445745 |
| 649 #if defined(MEMORY_SANITIZER) | 649 #if defined(MEMORY_SANITIZER) |
| 650 #define MAYBE_TestGetUserMediaAspectRatio1To1 \ | 650 #define MAYBE_TestGetUserMediaAspectRatio1To1 \ |
| 651 DISABLED_TestGetUserMediaAspectRatio1To1 | 651 DISABLED_TestGetUserMediaAspectRatio1To1 |
| 652 #else | 652 #else |
| 653 #define MAYBE_TestGetUserMediaAspectRatio1To1 TestGetUserMediaAspectRatio1To1 | 653 #define MAYBE_TestGetUserMediaAspectRatio1To1 TestGetUserMediaAspectRatio1To1 |
| 654 #endif | 654 #endif |
| 655 // This test calls getUserMedia and checks for aspect ratio behavior. | 655 // This test calls getUserMedia and checks for aspect ratio behavior. |
| 656 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 656 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 657 MAYBE_TestGetUserMediaAspectRatio1To1) { | 657 MAYBE_TestGetUserMediaAspectRatio1To1) { |
| 658 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 658 ASSERT_TRUE(embedded_test_server()->Start()); |
| 659 | 659 |
| 660 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 660 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 661 | 661 |
| 662 std::string constraints_1_1 = GenerateGetUserMediaCall( | 662 std::string constraints_1_1 = GenerateGetUserMediaCall( |
| 663 kGetUserMediaAndAnalyseAndStop, 320, 320, 320, 320, 10, 30); | 663 kGetUserMediaAndAnalyseAndStop, 320, 320, 320, 320, 10, 30); |
| 664 | 664 |
| 665 NavigateToURL(shell(), url); | 665 NavigateToURL(shell(), url); |
| 666 ASSERT_EQ("w=320:h=320", | 666 ASSERT_EQ("w=320:h=320", |
| 667 ExecuteJavascriptAndReturnResult(constraints_1_1)); | 667 ExecuteJavascriptAndReturnResult(constraints_1_1)); |
| 668 } | 668 } |
| 669 | 669 |
| 670 // This test calls getUserMedia in an iframe and immediately close the iframe | 670 // This test calls getUserMedia in an iframe and immediately close the iframe |
| 671 // in the scope of the success callback. | 671 // in the scope of the success callback. |
| 672 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 672 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 673 AudioInIFrameAndCloseInSuccessCb) { | 673 AudioInIFrameAndCloseInSuccessCb) { |
| 674 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 674 ASSERT_TRUE(embedded_test_server()->Start()); |
| 675 | 675 |
| 676 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 676 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 677 NavigateToURL(shell(), url); | 677 NavigateToURL(shell(), url); |
| 678 | 678 |
| 679 std::string call = | 679 std::string call = |
| 680 "getUserMediaInIframeAndCloseInSuccessCb({audio: true});"; | 680 "getUserMediaInIframeAndCloseInSuccessCb({audio: true});"; |
| 681 ExecuteJavascriptAndWaitForOk(call); | 681 ExecuteJavascriptAndWaitForOk(call); |
| 682 } | 682 } |
| 683 | 683 |
| 684 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 684 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 685 VideoInIFrameAndCloseInSuccessCb) { | 685 VideoInIFrameAndCloseInSuccessCb) { |
| 686 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 686 ASSERT_TRUE(embedded_test_server()->Start()); |
| 687 | 687 |
| 688 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 688 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 689 NavigateToURL(shell(), url); | 689 NavigateToURL(shell(), url); |
| 690 | 690 |
| 691 std::string call = | 691 std::string call = |
| 692 "getUserMediaInIframeAndCloseInSuccessCb({video: true});"; | 692 "getUserMediaInIframeAndCloseInSuccessCb({video: true});"; |
| 693 ExecuteJavascriptAndWaitForOk(call); | 693 ExecuteJavascriptAndWaitForOk(call); |
| 694 } | 694 } |
| 695 | 695 |
| 696 // This test calls getUserMedia in an iframe and immediately close the iframe | 696 // This test calls getUserMedia in an iframe and immediately close the iframe |
| 697 // in the scope of the failure callback. | 697 // in the scope of the failure callback. |
| 698 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 698 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 699 VideoWithBadConstraintsInIFrameAndCloseInFailureCb) { | 699 VideoWithBadConstraintsInIFrameAndCloseInFailureCb) { |
| 700 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 700 ASSERT_TRUE(embedded_test_server()->Start()); |
| 701 | 701 |
| 702 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 702 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 703 | 703 |
| 704 int large_value = 99999; | 704 int large_value = 99999; |
| 705 std::string call = | 705 std::string call = |
| 706 GenerateGetUserMediaCall("getUserMediaInIframeAndCloseInFailureCb", | 706 GenerateGetUserMediaCall("getUserMediaInIframeAndCloseInFailureCb", |
| 707 large_value, | 707 large_value, |
| 708 large_value, | 708 large_value, |
| 709 large_value, | 709 large_value, |
| 710 large_value, | 710 large_value, |
| 711 large_value, | 711 large_value, |
| 712 large_value); | 712 large_value); |
| 713 NavigateToURL(shell(), url); | 713 NavigateToURL(shell(), url); |
| 714 | 714 |
| 715 ExecuteJavascriptAndWaitForOk(call); | 715 ExecuteJavascriptAndWaitForOk(call); |
| 716 } | 716 } |
| 717 | 717 |
| 718 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, | 718 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, |
| 719 InvalidSourceIdInIFrameAndCloseInFailureCb) { | 719 InvalidSourceIdInIFrameAndCloseInFailureCb) { |
| 720 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 720 ASSERT_TRUE(embedded_test_server()->Start()); |
| 721 | 721 |
| 722 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 722 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 723 | 723 |
| 724 std::string call = | 724 std::string call = |
| 725 GenerateGetUserMediaWithMandatorySourceID( | 725 GenerateGetUserMediaWithMandatorySourceID( |
| 726 "getUserMediaInIframeAndCloseInFailureCb", "invalid", "invalid"); | 726 "getUserMediaInIframeAndCloseInFailureCb", "invalid", "invalid"); |
| 727 NavigateToURL(shell(), url); | 727 NavigateToURL(shell(), url); |
| 728 | 728 |
| 729 ExecuteJavascriptAndWaitForOk(call); | 729 ExecuteJavascriptAndWaitForOk(call); |
| 730 } | 730 } |
| (...skipping 27 matching lines...) Expand all Loading... |
| 758 | 758 |
| 759 // Test fails under MSan, http://crbug.com/445745 | 759 // Test fails under MSan, http://crbug.com/445745 |
| 760 #if defined(MEMORY_SANITIZER) | 760 #if defined(MEMORY_SANITIZER) |
| 761 #define MAYBE_GetUserMediaConstraints DISABLED_GetUserMediaConstraints | 761 #define MAYBE_GetUserMediaConstraints DISABLED_GetUserMediaConstraints |
| 762 #else | 762 #else |
| 763 #define MAYBE_GetUserMediaConstraints GetUserMediaConstraints | 763 #define MAYBE_GetUserMediaConstraints GetUserMediaConstraints |
| 764 #endif | 764 #endif |
| 765 // This test calls getUserMedia in sequence with different constraints. | 765 // This test calls getUserMedia in sequence with different constraints. |
| 766 IN_PROC_BROWSER_TEST_P(WebRtcConstraintsBrowserTest, | 766 IN_PROC_BROWSER_TEST_P(WebRtcConstraintsBrowserTest, |
| 767 MAYBE_GetUserMediaConstraints) { | 767 MAYBE_GetUserMediaConstraints) { |
| 768 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 768 ASSERT_TRUE(embedded_test_server()->Start()); |
| 769 | 769 |
| 770 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 770 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 771 | 771 |
| 772 std::string call = GenerateGetUserMediaCall(kGetUserMediaAndStop, | 772 std::string call = GenerateGetUserMediaCall(kGetUserMediaAndStop, |
| 773 user_media().min_width, | 773 user_media().min_width, |
| 774 user_media().max_width, | 774 user_media().max_width, |
| 775 user_media().min_height, | 775 user_media().min_height, |
| 776 user_media().max_height, | 776 user_media().max_height, |
| 777 user_media().min_frame_rate, | 777 user_media().min_frame_rate, |
| 778 user_media().max_frame_rate); | 778 user_media().max_frame_rate); |
| 779 DVLOG(1) << "Calling getUserMedia: " << call; | 779 DVLOG(1) << "Calling getUserMedia: " << call; |
| 780 NavigateToURL(shell(), url); | 780 NavigateToURL(shell(), url); |
| 781 ExecuteJavascriptAndWaitForOk(call); | 781 ExecuteJavascriptAndWaitForOk(call); |
| 782 } | 782 } |
| 783 | 783 |
| 784 static const UserMediaSizes kAllUserMediaSizes[] = { | 784 static const UserMediaSizes kAllUserMediaSizes[] = { |
| 785 {320, 320, 180, 180, 10, 30}, | 785 {320, 320, 180, 180, 10, 30}, |
| 786 {320, 320, 240, 240, 10, 30}, | 786 {320, 320, 240, 240, 10, 30}, |
| 787 {640, 640, 360, 360, 10, 30}, | 787 {640, 640, 360, 360, 10, 30}, |
| 788 {640, 640, 480, 480, 10, 30}, | 788 {640, 640, 480, 480, 10, 30}, |
| 789 {960, 960, 720, 720, 10, 30}, | 789 {960, 960, 720, 720, 10, 30}, |
| 790 {1280, 1280, 720, 720, 10, 30}}; | 790 {1280, 1280, 720, 720, 10, 30}}; |
| 791 | 791 |
| 792 INSTANTIATE_TEST_CASE_P(UserMedia, | 792 INSTANTIATE_TEST_CASE_P(UserMedia, |
| 793 WebRtcConstraintsBrowserTest, | 793 WebRtcConstraintsBrowserTest, |
| 794 testing::ValuesIn(kAllUserMediaSizes)); | 794 testing::ValuesIn(kAllUserMediaSizes)); |
| 795 | 795 |
| 796 } // namespace content | 796 } // namespace content |
| OLD | NEW |