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 RenderVideoTrackInMultipleTagsAndPause) { | 343 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 |