| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/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/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| 11 #include "content/browser/media/webrtc_internals.h" | 11 #include "content/browser/media/webrtc_internals.h" |
| 12 #include "content/browser/web_contents/web_contents_impl.h" | 12 #include "content/browser/web_contents/web_contents_impl.h" |
| 13 #include "content/public/common/content_switches.h" | 13 #include "content/public/common/content_switches.h" |
| 14 #include "content/public/test/browser_test_utils.h" | 14 #include "content/public/test/browser_test_utils.h" |
| 15 #include "content/shell/browser/shell.h" | 15 #include "content/shell/browser/shell.h" |
| 16 #include "content/test/content_browser_test.h" | 16 #include "content/test/content_browser_test.h" |
| 17 #include "content/test/content_browser_test_utils.h" | 17 #include "content/test/content_browser_test_utils.h" |
| 18 #include "media/audio/audio_manager.h" | 18 #include "media/audio/audio_manager.h" |
| 19 #include "net/test/embedded_test_server/embedded_test_server.h" | 19 #include "net/test/embedded_test_server/embedded_test_server.h" |
| 20 #include "testing/perf/perf_test.h" | 20 #include "testing/perf/perf_test.h" |
| 21 | 21 |
| 22 #if defined(OS_WIN) | 22 #if defined(OS_WIN) |
| 23 #include "base/win/windows_version.h" | 23 #include "base/win/windows_version.h" |
| 24 #endif | 24 #endif |
| 25 | 25 |
| 26 const char kForceIsac16K[] = | |
| 27 #ifdef OS_ANDROID | |
| 28 // The default audio codec, Opus, doesn't work on Android. | |
| 29 "true"; | |
| 30 #else | |
| 31 "false"; | |
| 32 #endif | |
| 33 | |
| 34 namespace { | 26 namespace { |
| 35 | 27 |
| 36 static const char kGetUserMediaAndStop[] = "getUserMediaAndStop"; | 28 static const char kGetUserMediaAndStop[] = "getUserMediaAndStop"; |
| 37 static const char kGetUserMediaAndWaitAndStop[] = "getUserMediaAndWaitAndStop"; | 29 static const char kGetUserMediaAndWaitAndStop[] = "getUserMediaAndWaitAndStop"; |
| 38 static const char kGetUserMediaAndAnalyseAndStop[] = | 30 static const char kGetUserMediaAndAnalyseAndStop[] = |
| 39 "getUserMediaAndAnalyseAndStop"; | 31 "getUserMediaAndAnalyseAndStop"; |
| 40 | 32 |
| 41 // Results returned by JS. | 33 // Results returned by JS. |
| 42 static const char kOK[] = "OK"; | 34 static const char kOK[] = "OK"; |
| 43 static const char kGetUserMediaFailed[] = | 35 static const char kGetUserMediaFailed[] = |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 | 109 |
| 118 int error_code; | 110 int error_code; |
| 119 std::string error_message; | 111 std::string error_message; |
| 120 scoped_ptr<base::Value> value( | 112 scoped_ptr<base::Value> value( |
| 121 base::JSONReader::ReadAndReturnError(contents, | 113 base::JSONReader::ReadAndReturnError(contents, |
| 122 base::JSON_ALLOW_TRAILING_COMMAS, | 114 base::JSON_ALLOW_TRAILING_COMMAS, |
| 123 &error_code, | 115 &error_code, |
| 124 &error_message)); | 116 &error_message)); |
| 125 | 117 |
| 126 ASSERT_TRUE(value.get() != NULL) << error_message; | 118 ASSERT_TRUE(value.get() != NULL) << error_message; |
| 127 EXPECT_EQ(value->GetType(), base::Value::TYPE_LIST); | 119 ASSERT_EQ(value->GetType(), base::Value::TYPE_LIST); |
| 128 | 120 |
| 129 base::ListValue* values; | 121 base::ListValue* values; |
| 130 ASSERT_TRUE(value->GetAsList(&values)); | 122 ASSERT_TRUE(value->GetAsList(&values)); |
| 131 | 123 |
| 132 int duration_ns = 0; | 124 int duration_ns = 0; |
| 133 std::string samples_duration; | 125 std::string samples_duration; |
| 134 double timestamp_ns = 0.0; | 126 double timestamp_ns = 0.0; |
| 135 double previous_timestamp_ns = 0.0; | 127 double previous_timestamp_ns = 0.0; |
| 136 std::string samples_interarrival_ns; | 128 std::string samples_interarrival_ns; |
| 137 for (base::ListValue::iterator it = values->begin(); | 129 for (base::ListValue::iterator it = values->begin(); |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 221 javascript, | 213 javascript, |
| 222 &result)); | 214 &result)); |
| 223 return result; | 215 return result; |
| 224 } | 216 } |
| 225 | 217 |
| 226 void ExpectTitle(const std::string& expected_title) const { | 218 void ExpectTitle(const std::string& expected_title) const { |
| 227 base::string16 expected_title16(base::ASCIIToUTF16(expected_title)); | 219 base::string16 expected_title16(base::ASCIIToUTF16(expected_title)); |
| 228 TitleWatcher title_watcher(shell()->web_contents(), expected_title16); | 220 TitleWatcher title_watcher(shell()->web_contents(), expected_title16); |
| 229 EXPECT_EQ(expected_title16, title_watcher.WaitAndGetTitle()); | 221 EXPECT_EQ(expected_title16, title_watcher.WaitAndGetTitle()); |
| 230 } | 222 } |
| 223 |
| 224 // Convenience function since most peerconnection-call.html tests just load |
| 225 // the page, kick off some javascript and wait for the title to change to OK. |
| 226 void MakeTypicalPeerConnectionCall(const std::string& javascript) { |
| 227 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 228 |
| 229 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); |
| 230 NavigateToURL(shell(), url); |
| 231 |
| 232 #if defined (OS_ANDROID) |
| 233 // Always force iSAC 16K on Android for now (Opus is broken). |
| 234 ASSERT_TRUE(ExecuteJavascript("forceIsac16KInSdp();")); |
| 235 #endif |
| 236 |
| 237 ASSERT_TRUE(ExecuteJavascript(javascript)); |
| 238 ExpectTitle("OK"); |
| 239 } |
| 231 }; | 240 }; |
| 232 | 241 |
| 233 // These tests will all make a getUserMedia call with different constraints and | 242 // These tests will all make a getUserMedia call with different constraints and |
| 234 // see that the success callback is called. If the error callback is called or | 243 // see that the success callback is called. If the error callback is called or |
| 235 // none of the callbacks are called the tests will simply time out and fail. | 244 // none of the callbacks are called the tests will simply time out and fail. |
| 236 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, GetVideoStreamAndStop) { | 245 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, GetVideoStreamAndStop) { |
| 237 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 246 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 238 | 247 |
| 239 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 248 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 240 NavigateToURL(shell(), url); | 249 NavigateToURL(shell(), url); |
| 241 | 250 |
| 242 EXPECT_TRUE(ExecuteJavascript( | 251 ASSERT_TRUE(ExecuteJavascript( |
| 243 base::StringPrintf("%s({video: true});", kGetUserMediaAndStop))); | 252 base::StringPrintf("%s({video: true});", kGetUserMediaAndStop))); |
| 244 | 253 |
| 245 ExpectTitle("OK"); | 254 ExpectTitle("OK"); |
| 246 } | 255 } |
| 247 | 256 |
| 248 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, GetAudioAndVideoStreamAndStop) { | 257 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, GetAudioAndVideoStreamAndStop) { |
| 249 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 258 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 250 | 259 |
| 251 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 260 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 252 NavigateToURL(shell(), url); | 261 NavigateToURL(shell(), url); |
| 253 | 262 |
| 254 EXPECT_TRUE(ExecuteJavascript(base::StringPrintf( | 263 ASSERT_TRUE(ExecuteJavascript(base::StringPrintf( |
| 255 "%s({video: true, audio: true});", kGetUserMediaAndStop))); | 264 "%s({video: true, audio: true});", kGetUserMediaAndStop))); |
| 256 | 265 |
| 257 ExpectTitle("OK"); | 266 ExpectTitle("OK"); |
| 258 } | 267 } |
| 259 | 268 |
| 260 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, GetAudioAndVideoStreamAndClone) { | 269 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, GetAudioAndVideoStreamAndClone) { |
| 261 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 270 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 262 | 271 |
| 263 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 272 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 264 NavigateToURL(shell(), url); | 273 NavigateToURL(shell(), url); |
| 265 | 274 |
| 266 EXPECT_TRUE(ExecuteJavascript("getUserMediaAndClone();")); | 275 ASSERT_TRUE(ExecuteJavascript("getUserMediaAndClone();")); |
| 267 | 276 |
| 268 ExpectTitle("OK"); | 277 ExpectTitle("OK"); |
| 269 } | 278 } |
| 270 | 279 |
| 271 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, GetUserMediaWithMandatorySourceID) { | 280 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, GetUserMediaWithMandatorySourceID) { |
| 272 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 281 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 273 | 282 |
| 274 std::vector<std::string> audio_ids; | 283 std::vector<std::string> audio_ids; |
| 275 std::vector<std::string> video_ids; | 284 std::vector<std::string> video_ids; |
| 276 GetSources(&audio_ids, &video_ids); | 285 GetSources(&audio_ids, &video_ids); |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) | 394 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) |
| 386 // Timing out on ARM linux bot: http://crbug.com/238490 | 395 // Timing out on ARM linux bot: http://crbug.com/238490 |
| 387 #define MAYBE_CanSetupVideoCall DISABLED_CanSetupVideoCall | 396 #define MAYBE_CanSetupVideoCall DISABLED_CanSetupVideoCall |
| 388 #else | 397 #else |
| 389 #define MAYBE_CanSetupVideoCall CanSetupVideoCall | 398 #define MAYBE_CanSetupVideoCall CanSetupVideoCall |
| 390 #endif | 399 #endif |
| 391 | 400 |
| 392 // These tests will make a complete PeerConnection-based call and verify that | 401 // These tests will make a complete PeerConnection-based call and verify that |
| 393 // video is playing for the call. | 402 // video is playing for the call. |
| 394 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CanSetupVideoCall) { | 403 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CanSetupVideoCall) { |
| 395 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 404 MakeTypicalPeerConnectionCall("call({video: true});"); |
| 396 | |
| 397 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 398 NavigateToURL(shell(), url); | |
| 399 | |
| 400 EXPECT_TRUE(ExecuteJavascript("call({video: true});")); | |
| 401 ExpectTitle("OK"); | |
| 402 } | 405 } |
| 403 | 406 |
| 404 // This test will make a simple getUserMedia page, verify that video is playing | 407 // This test will make a simple getUserMedia page, verify that video is playing |
| 405 // in a simple local <video>, and for a couple of seconds, collect some | 408 // in a simple local <video>, and for a couple of seconds, collect some |
| 406 // performance traces. | 409 // performance traces. |
| 407 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, TracePerformanceDuringGetUserMedia) { | 410 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, TracePerformanceDuringGetUserMedia) { |
| 408 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 411 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 409 | 412 |
| 410 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 413 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 411 NavigateToURL(shell(), url); | 414 NavigateToURL(shell(), url); |
| 412 // Put getUserMedia to work and let it run for a couple of seconds. | 415 // Put getUserMedia to work and let it run for a couple of seconds. |
| 413 EXPECT_TRUE(ExecuteJavascript(base::StringPrintf( | 416 ASSERT_TRUE(ExecuteJavascript(base::StringPrintf( |
| 414 "%s({video: true}, 10);", kGetUserMediaAndWaitAndStop))); | 417 "%s({video: true}, 10);", kGetUserMediaAndWaitAndStop))); |
| 415 | 418 |
| 416 // Make sure the stream is up and running, then start collecting traces. | 419 // Make sure the stream is up and running, then start collecting traces. |
| 417 ExpectTitle("Running..."); | 420 ExpectTitle("Running..."); |
| 418 base::debug::TraceLog* trace_log = base::debug::TraceLog::GetInstance(); | 421 base::debug::TraceLog* trace_log = base::debug::TraceLog::GetInstance(); |
| 419 trace_log->SetEnabled(base::debug::CategoryFilter("video"), | 422 trace_log->SetEnabled(base::debug::CategoryFilter("video"), |
| 420 base::debug::TraceLog::ENABLE_SAMPLING); | 423 base::debug::TraceLog::ENABLE_SAMPLING); |
| 421 // Check that we are indeed recording. | 424 // Check that we are indeed recording. |
| 422 EXPECT_EQ(trace_log->GetNumTracesRecorded(), 1); | 425 ASSERT_EQ(trace_log->GetNumTracesRecorded(), 1); |
| 423 | 426 |
| 424 // Wait until the page title changes to "OK". Do not sleep() here since that | 427 // Wait until the page title changes to "OK". Do not sleep() here since that |
| 425 // would stop both this code and the browser underneath. | 428 // would stop both this code and the browser underneath. |
| 426 ExpectTitle("OK"); | 429 ExpectTitle("OK"); |
| 427 | 430 |
| 428 // Note that we need to stop the trace recording before flushing the data. | 431 // Note that we need to stop the trace recording before flushing the data. |
| 429 trace_log->SetDisabled(); | 432 trace_log->SetDisabled(); |
| 430 trace_log->Flush(base::Bind(&WebrtcBrowserTest::DumpChromeTraceCallback, | 433 trace_log->Flush(base::Bind(&WebrtcBrowserTest::DumpChromeTraceCallback, |
| 431 base::Unretained(this))); | 434 base::Unretained(this))); |
| 432 } | 435 } |
| 433 | 436 |
| 434 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) | 437 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) |
| 435 // Timing out on ARM linux, see http://crbug.com/240376 | 438 // Timing out on ARM linux, see http://crbug.com/240376 |
| 436 #define MAYBE_CanSetupAudioAndVideoCall DISABLED_CanSetupAudioAndVideoCall | 439 #define MAYBE_CanSetupAudioAndVideoCall DISABLED_CanSetupAudioAndVideoCall |
| 437 #else | 440 #else |
| 438 #define MAYBE_CanSetupAudioAndVideoCall CanSetupAudioAndVideoCall | 441 #define MAYBE_CanSetupAudioAndVideoCall CanSetupAudioAndVideoCall |
| 439 #endif | 442 #endif |
| 440 | 443 |
| 441 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CanSetupAudioAndVideoCall) { | 444 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CanSetupAudioAndVideoCall) { |
| 442 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 445 MakeTypicalPeerConnectionCall("call({video: true, audio: true});"); |
| 443 | |
| 444 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 445 NavigateToURL(shell(), url); | |
| 446 | |
| 447 EXPECT_TRUE(ExecuteJavascript("call({video: true, audio: true});")); | |
| 448 ExpectTitle("OK"); | |
| 449 } | 446 } |
| 450 | 447 |
| 451 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MANUAL_CanSetupCallAndSendDtmf) { | 448 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MANUAL_CanSetupCallAndSendDtmf) { |
| 452 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 449 MakeTypicalPeerConnectionCall("callAndSendDtmf('123,abc');"); |
| 453 | |
| 454 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 455 NavigateToURL(shell(), url); | |
| 456 | |
| 457 EXPECT_TRUE( | |
| 458 ExecuteJavascript("callAndSendDtmf('123,abc');")); | |
| 459 } | 450 } |
| 460 | 451 |
| 461 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, | 452 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, |
| 462 DISABLED_CanMakeEmptyCallThenAddStreamsAndRenegotiate) { | 453 DISABLED_CanMakeEmptyCallThenAddStreamsAndRenegotiate) { |
| 463 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | |
| 464 | |
| 465 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 466 NavigateToURL(shell(), url); | |
| 467 | |
| 468 const char* kJavascript = | 454 const char* kJavascript = |
| 469 "callEmptyThenAddOneStreamAndRenegotiate({video: true, audio: true});"; | 455 "callEmptyThenAddOneStreamAndRenegotiate({video: true, audio: true});"; |
| 470 EXPECT_TRUE(ExecuteJavascript(kJavascript)); | 456 MakeTypicalPeerConnectionCall(kJavascript); |
| 471 ExpectTitle("OK"); | |
| 472 } | 457 } |
| 473 | 458 |
| 474 // Below 2 test will make a complete PeerConnection-based call between pc1 and | 459 // Below 2 test will make a complete PeerConnection-based call between pc1 and |
| 475 // pc2, and then use the remote stream to setup a call between pc3 and pc4, and | 460 // pc2, and then use the remote stream to setup a call between pc3 and pc4, and |
| 476 // then verify that video is received on pc3 and pc4. | 461 // then verify that video is received on pc3 and pc4. |
| 477 // Flaky on win xp. http://crbug.com/304775 | 462 // Flaky on win xp. http://crbug.com/304775 |
| 478 #if defined(OS_WIN) | 463 #if defined(OS_WIN) |
| 479 #define MAYBE_CanForwardRemoteStream DISABLED_CanForwardRemoteStream | 464 #define MAYBE_CanForwardRemoteStream DISABLED_CanForwardRemoteStream |
| 480 #define MAYBE_CanForwardRemoteStream720p DISABLED_CanForwardRemoteStream720p | 465 #define MAYBE_CanForwardRemoteStream720p DISABLED_CanForwardRemoteStream720p |
| 481 #else | 466 #else |
| 482 #define MAYBE_CanForwardRemoteStream CanForwardRemoteStream | 467 #define MAYBE_CanForwardRemoteStream CanForwardRemoteStream |
| 483 #define MAYBE_CanForwardRemoteStream720p CanForwardRemoteStream720p | 468 #define MAYBE_CanForwardRemoteStream720p CanForwardRemoteStream720p |
| 484 #endif | 469 #endif |
| 485 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CanForwardRemoteStream) { | 470 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CanForwardRemoteStream) { |
| 486 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 471 MakeTypicalPeerConnectionCall( |
| 487 | 472 "callAndForwardRemoteStream({video: true, audio: true});"); |
| 488 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 489 NavigateToURL(shell(), url); | |
| 490 | |
| 491 EXPECT_TRUE(ExecuteJavascript( | |
| 492 "callAndForwardRemoteStream({video: true, audio: true});")); | |
| 493 ExpectTitle("OK"); | |
| 494 } | 473 } |
| 495 | 474 |
| 496 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CanForwardRemoteStream720p) { | 475 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CanForwardRemoteStream720p) { |
| 497 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 476 const std::string javascript = GenerateGetUserMediaCall( |
| 498 | 477 "callAndForwardRemoteStream", 1280, 1280, 720, 720, 30, 30); |
| 499 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | 478 MakeTypicalPeerConnectionCall(javascript); |
| 500 NavigateToURL(shell(), url); | |
| 501 | |
| 502 const std::string cmd = GenerateGetUserMediaCall("callAndForwardRemoteStream", | |
| 503 1280, 1280, | |
| 504 720, 720, 30, 30); | |
| 505 EXPECT_TRUE(ExecuteJavascript(cmd)); | |
| 506 ExpectTitle("OK"); | |
| 507 } | 479 } |
| 508 | 480 |
| 509 // This test will make a complete PeerConnection-based call but remove the | 481 // This test will make a complete PeerConnection-based call but remove the |
| 510 // MSID and bundle attribute from the initial offer to verify that | 482 // MSID and bundle attribute from the initial offer to verify that |
| 511 // video is playing for the call even if the initiating client don't support | 483 // video is playing for the call even if the initiating client don't support |
| 512 // MSID. http://tools.ietf.org/html/draft-alvestrand-rtcweb-msid-02 | 484 // MSID. http://tools.ietf.org/html/draft-alvestrand-rtcweb-msid-02 |
| 513 #if defined(OS_WIN) && defined(USE_AURA) | 485 #if defined(OS_WIN) && defined(USE_AURA) |
| 514 // Disabled for win7_aura, see http://crbug.com/235089. | 486 // Disabled for win7_aura, see http://crbug.com/235089. |
| 515 #define MAYBE_CanSetupAudioAndVideoCallWithoutMsidAndBundle\ | 487 #define MAYBE_CanSetupAudioAndVideoCallWithoutMsidAndBundle\ |
| 516 DISABLED_CanSetupAudioAndVideoCallWithoutMsidAndBundle | 488 DISABLED_CanSetupAudioAndVideoCallWithoutMsidAndBundle |
| 517 #elif defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) | 489 #elif defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) |
| 518 // Timing out on ARM linux, see http://crbug.com/240373 | 490 // Timing out on ARM linux, see http://crbug.com/240373 |
| 519 #define MAYBE_CanSetupAudioAndVideoCallWithoutMsidAndBundle\ | 491 #define MAYBE_CanSetupAudioAndVideoCallWithoutMsidAndBundle\ |
| 520 DISABLED_CanSetupAudioAndVideoCallWithoutMsidAndBundle | 492 DISABLED_CanSetupAudioAndVideoCallWithoutMsidAndBundle |
| 521 #else | 493 #else |
| 522 #define MAYBE_CanSetupAudioAndVideoCallWithoutMsidAndBundle\ | 494 #define MAYBE_CanSetupAudioAndVideoCallWithoutMsidAndBundle\ |
| 523 CanSetupAudioAndVideoCallWithoutMsidAndBundle | 495 CanSetupAudioAndVideoCallWithoutMsidAndBundle |
| 524 #endif | 496 #endif |
| 525 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, | 497 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, |
| 526 MAYBE_CanSetupAudioAndVideoCallWithoutMsidAndBundle) { | 498 MAYBE_CanSetupAudioAndVideoCallWithoutMsidAndBundle) { |
| 527 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 499 MakeTypicalPeerConnectionCall("callWithoutMsidAndBundle();"); |
| 528 | |
| 529 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 530 NavigateToURL(shell(), url); | |
| 531 | |
| 532 EXPECT_TRUE(ExecuteJavascript("callWithoutMsidAndBundle();")); | |
| 533 ExpectTitle("OK"); | |
| 534 } | 500 } |
| 535 | 501 |
| 536 // This test will modify the SDP offer to an unsupported codec, which should | 502 // This test will modify the SDP offer to an unsupported codec, which should |
| 537 // cause SetLocalDescription to fail. | 503 // cause SetLocalDescription to fail. |
| 538 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, | 504 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, NegotiateUnsupportedVideoCodec) { |
| 539 NegotiateUnsupportedVideoCodec) { | 505 MakeTypicalPeerConnectionCall("negotiateUnsupportedVideoCodec();"); |
| 540 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | |
| 541 | |
| 542 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 543 NavigateToURL(shell(), url); | |
| 544 | |
| 545 EXPECT_TRUE(ExecuteJavascript("negotiateUnsupportedVideoCodec();")); | |
| 546 ExpectTitle("OK"); | |
| 547 } | 506 } |
| 548 | 507 |
| 549 // This test will modify the SDP offer to use no encryption, which should | 508 // This test will modify the SDP offer to use no encryption, which should |
| 550 // cause SetLocalDescription to fail. | 509 // cause SetLocalDescription to fail. |
| 551 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, NegotiateNonCryptoCall) { | 510 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, NegotiateNonCryptoCall) { |
| 552 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 511 MakeTypicalPeerConnectionCall("negotiateNonCryptoCall();"); |
| 553 | |
| 554 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 555 NavigateToURL(shell(), url); | |
| 556 | |
| 557 EXPECT_TRUE(ExecuteJavascript("negotiateNonCryptoCall();")); | |
| 558 ExpectTitle("OK"); | |
| 559 } | 512 } |
| 560 | 513 |
| 561 // This test will make a complete PeerConnection-based call using legacy SDP | 514 // This test will make a complete PeerConnection-based call using legacy SDP |
| 562 // settings: GIce, external SDES, and no BUNDLE. | 515 // settings: GIce, external SDES, and no BUNDLE. |
| 563 #if defined(OS_WIN) && defined(USE_AURA) | 516 #if defined(OS_WIN) && defined(USE_AURA) |
| 564 // Disabled for win7_aura, see http://crbug.com/235089. | 517 // Disabled for win7_aura, see http://crbug.com/235089. |
| 565 #define MAYBE_CanSetupLegacyCall DISABLED_CanSetupLegacyCall | 518 #define MAYBE_CanSetupLegacyCall DISABLED_CanSetupLegacyCall |
| 566 #elif defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) | 519 #elif defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) |
| 567 // Timing out on ARM linux, see http://crbug.com/240373 | 520 // Timing out on ARM linux, see http://crbug.com/240373 |
| 568 #define MAYBE_CanSetupLegacyCall DISABLED_CanSetupLegacyCall | 521 #define MAYBE_CanSetupLegacyCall DISABLED_CanSetupLegacyCall |
| 569 #else | 522 #else |
| 570 #define MAYBE_CanSetupLegacyCall CanSetupLegacyCall | 523 #define MAYBE_CanSetupLegacyCall CanSetupLegacyCall |
| 571 #endif | 524 #endif |
| 572 | 525 |
| 573 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CanSetupLegacyCall) { | 526 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CanSetupLegacyCall) { |
| 574 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 527 MakeTypicalPeerConnectionCall("callWithLegacySdp();"); |
| 575 | |
| 576 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 577 NavigateToURL(shell(), url); | |
| 578 | |
| 579 EXPECT_TRUE(ExecuteJavascript("callWithLegacySdp();")); | |
| 580 ExpectTitle("OK"); | |
| 581 } | 528 } |
| 582 | 529 |
| 583 // This test will make a PeerConnection-based call and test an unreliable text | 530 // This test will make a PeerConnection-based call and test an unreliable text |
| 584 // dataChannel. | 531 // dataChannel. |
| 585 // TODO(mallinath) - Remove this test after rtp based data channel is disabled. | 532 // TODO(mallinath) - Remove this test after rtp based data channel is disabled. |
| 586 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, CallWithDataOnly) { | 533 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, CallWithDataOnly) { |
| 587 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 534 MakeTypicalPeerConnectionCall("callWithDataOnly();"); |
| 588 | |
| 589 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 590 NavigateToURL(shell(), url); | |
| 591 | |
| 592 EXPECT_TRUE(ExecuteJavascript("callWithDataOnly();")); | |
| 593 ExpectTitle("OK"); | |
| 594 } | 535 } |
| 595 | 536 |
| 596 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, CallWithSctpDataOnly) { | 537 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, CallWithSctpDataOnly) { |
| 597 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 538 MakeTypicalPeerConnectionCall("callWithSctpDataOnly();"); |
| 598 | |
| 599 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 600 NavigateToURL(shell(), url); | |
| 601 | |
| 602 EXPECT_TRUE(ExecuteJavascript("callWithSctpDataOnly();")); | |
| 603 ExpectTitle("OK"); | |
| 604 } | 539 } |
| 605 | 540 |
| 606 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) | 541 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) |
| 607 // Timing out on ARM linux bot: http://crbug.com/238490 | 542 // Timing out on ARM linux bot: http://crbug.com/238490 |
| 608 #define MAYBE_CallWithDataAndMedia DISABLED_CallWithDataAndMedia | 543 #define MAYBE_CallWithDataAndMedia DISABLED_CallWithDataAndMedia |
| 609 #else | 544 #else |
| 610 #define MAYBE_CallWithDataAndMedia CallWithDataAndMedia | 545 #define MAYBE_CallWithDataAndMedia CallWithDataAndMedia |
| 611 #endif | 546 #endif |
| 612 | 547 |
| 613 // This test will make a PeerConnection-based call and test an unreliable text | 548 // This test will make a PeerConnection-based call and test an unreliable text |
| 614 // dataChannel and audio and video tracks. | 549 // dataChannel and audio and video tracks. |
| 615 // TODO(mallinath) - Remove this test after rtp based data channel is disabled. | 550 // TODO(mallinath) - Remove this test after rtp based data channel is disabled. |
| 616 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CallWithDataAndMedia) { | 551 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CallWithDataAndMedia) { |
| 617 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 552 MakeTypicalPeerConnectionCall("callWithDataAndMedia();"); |
| 618 | |
| 619 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 620 NavigateToURL(shell(), url); | |
| 621 | |
| 622 EXPECT_TRUE(ExecuteJavascript("callWithDataAndMedia();")); | |
| 623 ExpectTitle("OK"); | |
| 624 } | 553 } |
| 625 | 554 |
| 626 | 555 |
| 627 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) | 556 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) |
| 628 // Timing out on ARM linux bot: http://crbug.com/238490 | 557 // Timing out on ARM linux bot: http://crbug.com/238490 |
| 629 #define MAYBE_CallWithSctpDataAndMedia DISABLED_CallWithSctpDataAndMedia | 558 #define MAYBE_CallWithSctpDataAndMedia DISABLED_CallWithSctpDataAndMedia |
| 630 #else | 559 #else |
| 631 #define MAYBE_CallWithSctpDataAndMedia CallWithSctpDataAndMedia | 560 #define MAYBE_CallWithSctpDataAndMedia CallWithSctpDataAndMedia |
| 632 #endif | 561 #endif |
| 633 | 562 |
| 634 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, | 563 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, |
| 635 MAYBE_CallWithSctpDataAndMedia) { | 564 MAYBE_CallWithSctpDataAndMedia) { |
| 636 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 565 MakeTypicalPeerConnectionCall("callWithSctpDataAndMedia();"); |
| 637 | |
| 638 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 639 NavigateToURL(shell(), url); | |
| 640 | |
| 641 EXPECT_TRUE(ExecuteJavascript("callWithSctpDataAndMedia();")); | |
| 642 ExpectTitle("OK"); | |
| 643 } | 566 } |
| 644 | 567 |
| 645 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) | 568 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) |
| 646 // Timing out on ARM linux bot: http://crbug.com/238490 | 569 // Timing out on ARM linux bot: http://crbug.com/238490 |
| 647 #define MAYBE_CallWithDataAndLaterAddMedia DISABLED_CallWithDataAndLaterAddMedia | 570 #define MAYBE_CallWithDataAndLaterAddMedia DISABLED_CallWithDataAndLaterAddMedia |
| 648 #else | 571 #else |
| 649 // Temporarily disable the test on all platforms. http://crbug.com/293252 | 572 // Temporarily disable the test on all platforms. http://crbug.com/293252 |
| 650 #define MAYBE_CallWithDataAndLaterAddMedia DISABLED_CallWithDataAndLaterAddMedia | 573 #define MAYBE_CallWithDataAndLaterAddMedia DISABLED_CallWithDataAndLaterAddMedia |
| 651 #endif | 574 #endif |
| 652 | 575 |
| 653 // This test will make a PeerConnection-based call and test an unreliable text | 576 // This test will make a PeerConnection-based call and test an unreliable text |
| 654 // dataChannel and later add an audio and video track. | 577 // dataChannel and later add an audio and video track. |
| 655 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CallWithDataAndLaterAddMedia) { | 578 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CallWithDataAndLaterAddMedia) { |
| 656 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 579 MakeTypicalPeerConnectionCall("callWithDataAndLaterAddMedia();"); |
| 657 | |
| 658 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 659 NavigateToURL(shell(), url); | |
| 660 | |
| 661 EXPECT_TRUE(ExecuteJavascript("callWithDataAndLaterAddMedia();")); | |
| 662 ExpectTitle("OK"); | |
| 663 } | 580 } |
| 664 | 581 |
| 665 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) | 582 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) |
| 666 // Timing out on ARM linux bot: http://crbug.com/238490 | 583 // Timing out on ARM linux bot: http://crbug.com/238490 |
| 667 #define MAYBE_CallWithNewVideoMediaStream DISABLED_CallWithNewVideoMediaStream | 584 #define MAYBE_CallWithNewVideoMediaStream DISABLED_CallWithNewVideoMediaStream |
| 668 #else | 585 #else |
| 669 #define MAYBE_CallWithNewVideoMediaStream CallWithNewVideoMediaStream | 586 #define MAYBE_CallWithNewVideoMediaStream CallWithNewVideoMediaStream |
| 670 #endif | 587 #endif |
| 671 | 588 |
| 672 // This test will make a PeerConnection-based call and send a new Video | 589 // This test will make a PeerConnection-based call and send a new Video |
| 673 // MediaStream that has been created based on a MediaStream created with | 590 // MediaStream that has been created based on a MediaStream created with |
| 674 // getUserMedia. | 591 // getUserMedia. |
| 675 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CallWithNewVideoMediaStream) { | 592 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CallWithNewVideoMediaStream) { |
| 676 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 593 MakeTypicalPeerConnectionCall("callWithNewVideoMediaStream();"); |
| 677 | |
| 678 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 679 NavigateToURL(shell(), url); | |
| 680 | |
| 681 EXPECT_TRUE(ExecuteJavascript("callWithNewVideoMediaStream();")); | |
| 682 ExpectTitle("OK"); | |
| 683 } | 594 } |
| 684 | 595 |
| 685 // This test will make a PeerConnection-based call and send a new Video | 596 // This test will make a PeerConnection-based call and send a new Video |
| 686 // MediaStream that has been created based on a MediaStream created with | 597 // MediaStream that has been created based on a MediaStream created with |
| 687 // getUserMedia. When video is flowing, the VideoTrack is removed and an | 598 // getUserMedia. When video is flowing, the VideoTrack is removed and an |
| 688 // AudioTrack is added instead. | 599 // AudioTrack is added instead. |
| 689 // TODO(phoglund): This test is manual since not all buildbots has an audio | 600 // TODO(phoglund): This test is manual since not all buildbots has an audio |
| 690 // input. | 601 // input. |
| 691 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MANUAL_CallAndModifyStream) { | 602 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MANUAL_CallAndModifyStream) { |
| 692 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 603 MakeTypicalPeerConnectionCall( |
| 693 | 604 "callWithNewVideoMediaStreamLaterSwitchToAudio();"); |
| 694 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 695 NavigateToURL(shell(), url); | |
| 696 | |
| 697 EXPECT_TRUE( | |
| 698 ExecuteJavascript("callWithNewVideoMediaStreamLaterSwitchToAudio();")); | |
| 699 ExpectTitle("OK"); | |
| 700 } | 605 } |
| 701 | 606 |
| 702 // This test calls getUserMedia in sequence with different constraints. | 607 // This test calls getUserMedia in sequence with different constraints. |
| 703 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, TestGetUserMediaConstraints) { | 608 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, TestGetUserMediaConstraints) { |
| 704 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 609 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 705 | 610 |
| 706 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 611 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 707 | 612 |
| 708 std::vector<std::string> list_of_get_user_media_calls; | 613 std::vector<std::string> list_of_get_user_media_calls; |
| 709 list_of_get_user_media_calls.push_back(GenerateGetUserMediaCall( | 614 list_of_get_user_media_calls.push_back(GenerateGetUserMediaCall( |
| (...skipping 10 matching lines...) Expand all Loading... |
| 720 kGetUserMediaAndStop, 1280, 1280, 720, 720, 30, 30)); | 625 kGetUserMediaAndStop, 1280, 1280, 720, 720, 30, 30)); |
| 721 list_of_get_user_media_calls.push_back(GenerateGetUserMediaCall( | 626 list_of_get_user_media_calls.push_back(GenerateGetUserMediaCall( |
| 722 kGetUserMediaAndStop, 1920, 1920, 1080, 1080, 30, 30)); | 627 kGetUserMediaAndStop, 1920, 1920, 1080, 1080, 30, 30)); |
| 723 | 628 |
| 724 for (std::vector<std::string>::iterator const_iterator = | 629 for (std::vector<std::string>::iterator const_iterator = |
| 725 list_of_get_user_media_calls.begin(); | 630 list_of_get_user_media_calls.begin(); |
| 726 const_iterator != list_of_get_user_media_calls.end(); | 631 const_iterator != list_of_get_user_media_calls.end(); |
| 727 ++const_iterator) { | 632 ++const_iterator) { |
| 728 DVLOG(1) << "Calling getUserMedia: " << *const_iterator; | 633 DVLOG(1) << "Calling getUserMedia: " << *const_iterator; |
| 729 NavigateToURL(shell(), url); | 634 NavigateToURL(shell(), url); |
| 730 EXPECT_TRUE(ExecuteJavascript(*const_iterator)); | 635 ASSERT_TRUE(ExecuteJavascript(*const_iterator)); |
| 731 ExpectTitle("OK"); | 636 ExpectTitle("OK"); |
| 732 } | 637 } |
| 733 } | 638 } |
| 734 | 639 |
| 735 // This test calls getUserMedia and checks for aspect ratio behavior. | 640 // This test calls getUserMedia and checks for aspect ratio behavior. |
| 736 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, TestGetUserMediaAspectRatio) { | 641 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, TestGetUserMediaAspectRatio) { |
| 737 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 642 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 738 | 643 |
| 739 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); | 644 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); |
| 740 | 645 |
| 741 std::string constraints_4_3 = GenerateGetUserMediaCall( | 646 std::string constraints_4_3 = GenerateGetUserMediaCall( |
| 742 kGetUserMediaAndAnalyseAndStop, 640, 640, 480, 480, 30, 30); | 647 kGetUserMediaAndAnalyseAndStop, 640, 640, 480, 480, 30, 30); |
| 743 std::string constraints_16_9 = GenerateGetUserMediaCall( | 648 std::string constraints_16_9 = GenerateGetUserMediaCall( |
| 744 kGetUserMediaAndAnalyseAndStop, 640, 640, 360, 360, 30, 30); | 649 kGetUserMediaAndAnalyseAndStop, 640, 640, 360, 360, 30, 30); |
| 745 | 650 |
| 746 // TODO(mcasas): add more aspect ratios, in particular 16:10 crbug.com/275594. | 651 // TODO(mcasas): add more aspect ratios, in particular 16:10 crbug.com/275594. |
| 747 | 652 |
| 748 NavigateToURL(shell(), url); | 653 NavigateToURL(shell(), url); |
| 749 EXPECT_TRUE(ExecuteJavascript(constraints_4_3)); | 654 ASSERT_TRUE(ExecuteJavascript(constraints_4_3)); |
| 750 ExpectTitle("4:3 letterbox"); | 655 ExpectTitle("4:3 letterbox"); |
| 751 | 656 |
| 752 NavigateToURL(shell(), url); | 657 NavigateToURL(shell(), url); |
| 753 EXPECT_TRUE(ExecuteJavascript(constraints_16_9)); | 658 ASSERT_TRUE(ExecuteJavascript(constraints_16_9)); |
| 754 ExpectTitle("16:9 letterbox"); | 659 ExpectTitle("16:9 letterbox"); |
| 755 } | 660 } |
| 756 | 661 |
| 757 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, AddTwoMediaStreamsToOnePC) { | 662 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, AddTwoMediaStreamsToOnePC) { |
| 758 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 663 MakeTypicalPeerConnectionCall("addTwoMediaStreamsToOneConnection();"); |
| 759 | |
| 760 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | |
| 761 NavigateToURL(shell(), url); | |
| 762 | |
| 763 EXPECT_TRUE( | |
| 764 ExecuteJavascript("addTwoMediaStreamsToOneConnection();")); | |
| 765 ExpectTitle("OK"); | |
| 766 } | 664 } |
| 767 | 665 |
| 768 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, | 666 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, |
| 769 EstablishAudioVideoCallAndMeasureOutputLevel) { | 667 EstablishAudioVideoCallAndMeasureOutputLevel) { |
| 770 if (!media::AudioManager::Get()->HasAudioOutputDevices()) { | 668 if (!media::AudioManager::Get()->HasAudioOutputDevices()) { |
| 771 // Bots with no output devices will force the audio code into a different | 669 // Bots with no output devices will force the audio code into a different |
| 772 // path where it doesn't manage to set either the low or high latency path. | 670 // path where it doesn't manage to set either the low or high latency path. |
| 773 // This test will compute useless values in that case, so skip running on | 671 // This test will compute useless values in that case, so skip running on |
| 774 // such bots (see crbug.com/326338). | 672 // such bots (see crbug.com/326338). |
| 775 LOG(INFO) << "Missing output devices: skipping test..."; | 673 LOG(INFO) << "Missing output devices: skipping test..."; |
| 776 return; | 674 return; |
| 777 } | 675 } |
| 778 | 676 |
| 779 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | |
| 780 ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch( | 677 ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch( |
| 781 switches::kUseFakeDeviceForMediaStream)) | 678 switches::kUseFakeDeviceForMediaStream)) |
| 782 << "Must run with fake devices since the test will explicitly look " | 679 << "Must run with fake devices since the test will explicitly look " |
| 783 << "for the fake device signal."; | 680 << "for the fake device signal."; |
| 784 | 681 |
| 785 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | 682 MakeTypicalPeerConnectionCall("callAndEnsureAudioIsPlaying();"); |
| 786 NavigateToURL(shell(), url); | |
| 787 | |
| 788 EXPECT_TRUE(ExecuteJavascript( | |
| 789 base::StringPrintf("callAndEnsureAudioIsPlaying(%s);", kForceIsac16K))); | |
| 790 ExpectTitle("OK"); | |
| 791 } | 683 } |
| 792 | 684 |
| 793 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, | 685 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, |
| 794 EstablishAudioVideoCallAndVerifyMutingWorks) { | 686 EstablishAudioVideoCallAndVerifyMutingWorks) { |
| 795 if (!media::AudioManager::Get()->HasAudioOutputDevices()) { | 687 if (!media::AudioManager::Get()->HasAudioOutputDevices()) { |
| 796 // Bots with no output devices will force the audio code into a different | 688 // Bots with no output devices will force the audio code into a different |
| 797 // path where it doesn't manage to set either the low or high latency path. | 689 // path where it doesn't manage to set either the low or high latency path. |
| 798 // This test will compute useless values in that case, so skip running on | 690 // This test will compute useless values in that case, so skip running on |
| 799 // such bots (see crbug.com/326338). | 691 // such bots (see crbug.com/326338). |
| 800 LOG(INFO) << "Missing output devices: skipping test..."; | 692 LOG(INFO) << "Missing output devices: skipping test..."; |
| 801 return; | 693 return; |
| 802 } | 694 } |
| 803 | 695 |
| 804 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | |
| 805 ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch( | 696 ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch( |
| 806 switches::kUseFakeDeviceForMediaStream)) | 697 switches::kUseFakeDeviceForMediaStream)) |
| 807 << "Must run with fake devices since the test will explicitly look " | 698 << "Must run with fake devices since the test will explicitly look " |
| 808 << "for the fake device signal."; | 699 << "for the fake device signal."; |
| 809 | 700 |
| 810 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | 701 MakeTypicalPeerConnectionCall("callAndEnsureAudioMutingWorks();"); |
| 811 NavigateToURL(shell(), url); | |
| 812 | |
| 813 EXPECT_TRUE(ExecuteJavascript( | |
| 814 base::StringPrintf("callAndEnsureAudioMutingWorks(%s);", | |
| 815 kForceIsac16K))); | |
| 816 ExpectTitle("OK"); | |
| 817 } | 702 } |
| 818 | 703 |
| 819 #if defined(OS_WIN) || (defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(AR
CH_CPU_ARM_FAMILY)) | 704 #if defined(OS_WIN) || (defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(AR
CH_CPU_ARM_FAMILY)) |
| 820 // Timing out on ARM linux bot: http://crbug.com/238490 | 705 // Timing out on ARM linux bot: http://crbug.com/238490 |
| 821 // Failing on Windows: http://crbug.com/331035 | 706 // Failing on Windows: http://crbug.com/331035 |
| 822 #define MAYBE_CallWithAecDump DISABLED_CallWithAecDump | 707 #define MAYBE_CallWithAecDump DISABLED_CallWithAecDump |
| 823 #else | 708 #else |
| 824 #define MAYBE_CallWithAecDump CallWithAecDump | 709 #define MAYBE_CallWithAecDump CallWithAecDump |
| 825 #endif | 710 #endif |
| 826 | 711 |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 891 EXPECT_TRUE(base::PathExists(dump_file)); | 776 EXPECT_TRUE(base::PathExists(dump_file)); |
| 892 int64 file_size = 0; | 777 int64 file_size = 0; |
| 893 EXPECT_TRUE(base::GetFileSize(dump_file, &file_size)); | 778 EXPECT_TRUE(base::GetFileSize(dump_file, &file_size)); |
| 894 EXPECT_EQ(0, file_size); | 779 EXPECT_EQ(0, file_size); |
| 895 | 780 |
| 896 base::DeleteFile(dump_file, false); | 781 base::DeleteFile(dump_file, false); |
| 897 } | 782 } |
| 898 | 783 |
| 899 | 784 |
| 900 } // namespace content | 785 } // namespace content |
| OLD | NEW |