| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/files/file_enumerator.h" | 6 #include "base/files/file_enumerator.h" |
| 7 #include "base/path_service.h" | 7 #include "base/path_service.h" |
| 8 #include "base/process/launch.h" | 8 #include "base/process/launch.h" |
| 9 #include "base/rand_util.h" | 9 #include "base/rand_util.h" |
| 10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 // test suite since normal tester machines do not have webcams. Chrome will use | 44 // test suite since normal tester machines do not have webcams. Chrome will use |
| 45 // its fake camera for both tests, but Firefox will use the real webcam in the | 45 // its fake camera for both tests, but Firefox will use the real webcam in the |
| 46 // Firefox interop test. Thus, this test must on a machine with a real webcam. | 46 // Firefox interop test. Thus, this test must on a machine with a real webcam. |
| 47 // | 47 // |
| 48 // This test will bring up a AppRTC instance on localhost and verify that the | 48 // This test will bring up a AppRTC instance on localhost and verify that the |
| 49 // call gets up when connecting to the same room from two tabs in a browser. | 49 // call gets up when connecting to the same room from two tabs in a browser. |
| 50 class WebRtcApprtcBrowserTest : public WebRtcTestBase { | 50 class WebRtcApprtcBrowserTest : public WebRtcTestBase { |
| 51 public: | 51 public: |
| 52 WebRtcApprtcBrowserTest() {} | 52 WebRtcApprtcBrowserTest() {} |
| 53 | 53 |
| 54 void SetUpCommandLine(CommandLine* command_line) override { | 54 void SetUpCommandLine(base::CommandLine* command_line) override { |
| 55 EXPECT_FALSE(command_line->HasSwitch(switches::kUseFakeUIForMediaStream)); | 55 EXPECT_FALSE(command_line->HasSwitch(switches::kUseFakeUIForMediaStream)); |
| 56 | 56 |
| 57 // The video playback will not work without a GPU, so force its use here. | 57 // The video playback will not work without a GPU, so force its use here. |
| 58 command_line->AppendSwitch(switches::kUseGpuInTests); | 58 command_line->AppendSwitch(switches::kUseGpuInTests); |
| 59 CommandLine::ForCurrentProcess()->AppendSwitch( | 59 base::CommandLine::ForCurrentProcess()->AppendSwitch( |
| 60 switches::kUseFakeDeviceForMediaStream); | 60 switches::kUseFakeDeviceForMediaStream); |
| 61 } | 61 } |
| 62 | 62 |
| 63 void TearDown() override { | 63 void TearDown() override { |
| 64 // Kill any processes we may have brought up. Note: this isn't perfect, | 64 // Kill any processes we may have brought up. Note: this isn't perfect, |
| 65 // especially if the test hangs or if we're on Windows. | 65 // especially if the test hangs or if we're on Windows. |
| 66 LOG(INFO) << "Entering TearDown"; | 66 LOG(INFO) << "Entering TearDown"; |
| 67 if (dev_appserver_.IsValid()) | 67 if (dev_appserver_.IsValid()) |
| 68 base::KillProcess(dev_appserver_.Handle(), 0, false); | 68 base::KillProcess(dev_appserver_.Handle(), 0, false); |
| 69 if (collider_server_.IsValid()) | 69 if (collider_server_.IsValid()) |
| (...skipping 15 matching lines...) Expand all Loading... |
| 85 } | 85 } |
| 86 | 86 |
| 87 base::FilePath apprtc_dir = | 87 base::FilePath apprtc_dir = |
| 88 GetSourceDir().Append(FILE_PATH_LITERAL("out/apprtc")); | 88 GetSourceDir().Append(FILE_PATH_LITERAL("out/apprtc")); |
| 89 if (!base::PathExists(apprtc_dir)) { | 89 if (!base::PathExists(apprtc_dir)) { |
| 90 LOG(ERROR) << "Missing AppRTC code at " << | 90 LOG(ERROR) << "Missing AppRTC code at " << |
| 91 apprtc_dir.value() << ". " << kAdviseOnGclientSolution; | 91 apprtc_dir.value() << ". " << kAdviseOnGclientSolution; |
| 92 return false; | 92 return false; |
| 93 } | 93 } |
| 94 | 94 |
| 95 CommandLine command_line(CommandLine::NO_PROGRAM); | 95 base::CommandLine command_line(base::CommandLine::NO_PROGRAM); |
| 96 EXPECT_TRUE(GetPythonCommand(&command_line)); | 96 EXPECT_TRUE(GetPythonCommand(&command_line)); |
| 97 | 97 |
| 98 command_line.AppendArgPath(appengine_dev_appserver); | 98 command_line.AppendArgPath(appengine_dev_appserver); |
| 99 command_line.AppendArgPath(apprtc_dir); | 99 command_line.AppendArgPath(apprtc_dir); |
| 100 command_line.AppendArg("--port=" + port); | 100 command_line.AppendArg("--port=" + port); |
| 101 command_line.AppendArg("--admin_port=9998"); | 101 command_line.AppendArg("--admin_port=9998"); |
| 102 command_line.AppendArg("--skip_sdk_update_check"); | 102 command_line.AppendArg("--skip_sdk_update_check"); |
| 103 command_line.AppendArg("--clear_datastore=yes"); | 103 command_line.AppendArg("--clear_datastore=yes"); |
| 104 | 104 |
| 105 DVLOG(1) << "Running " << command_line.GetCommandLineString(); | 105 DVLOG(1) << "Running " << command_line.GetCommandLineString(); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 117 #else | 117 #else |
| 118 base::FilePath collider_server = GetSourceDir().Append( | 118 base::FilePath collider_server = GetSourceDir().Append( |
| 119 FILE_PATH_LITERAL("out/go-workspace/bin/collidermain")); | 119 FILE_PATH_LITERAL("out/go-workspace/bin/collidermain")); |
| 120 #endif | 120 #endif |
| 121 if (!base::PathExists(collider_server)) { | 121 if (!base::PathExists(collider_server)) { |
| 122 LOG(ERROR) << "Missing Collider server binary at " << | 122 LOG(ERROR) << "Missing Collider server binary at " << |
| 123 collider_server.value() << ". " << kAdviseOnGclientSolution; | 123 collider_server.value() << ". " << kAdviseOnGclientSolution; |
| 124 return false; | 124 return false; |
| 125 } | 125 } |
| 126 | 126 |
| 127 CommandLine command_line(collider_server); | 127 base::CommandLine command_line(collider_server); |
| 128 | 128 |
| 129 command_line.AppendArg("-tls=false"); | 129 command_line.AppendArg("-tls=false"); |
| 130 command_line.AppendArg("-port=" + collider_port); | 130 command_line.AppendArg("-port=" + collider_port); |
| 131 command_line.AppendArg("-room-server=" + apprtc_url); | 131 command_line.AppendArg("-room-server=" + apprtc_url); |
| 132 | 132 |
| 133 DVLOG(1) << "Running " << command_line.GetCommandLineString(); | 133 DVLOG(1) << "Running " << command_line.GetCommandLineString(); |
| 134 collider_server_ = base::LaunchProcess(command_line, base::LaunchOptions()); | 134 collider_server_ = base::LaunchProcess(command_line, base::LaunchOptions()); |
| 135 return collider_server_.IsValid(); | 135 return collider_server_.IsValid(); |
| 136 } | 136 } |
| 137 | 137 |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 } | 212 } |
| 213 base::FilePath firefox_launcher = | 213 base::FilePath firefox_launcher = |
| 214 GetSourceDir().Append( | 214 GetSourceDir().Append( |
| 215 FILE_PATH_LITERAL("../webrtc.DEPS/run_firefox_webrtc.py")); | 215 FILE_PATH_LITERAL("../webrtc.DEPS/run_firefox_webrtc.py")); |
| 216 if (!base::PathExists(firefox_launcher)) { | 216 if (!base::PathExists(firefox_launcher)) { |
| 217 LOG(ERROR) << "Missing firefox launcher at " << | 217 LOG(ERROR) << "Missing firefox launcher at " << |
| 218 firefox_launcher.value() << ". " << kAdviseOnGclientSolution; | 218 firefox_launcher.value() << ". " << kAdviseOnGclientSolution; |
| 219 return false; | 219 return false; |
| 220 } | 220 } |
| 221 | 221 |
| 222 CommandLine command_line(firefox_launcher); | 222 base::CommandLine command_line(firefox_launcher); |
| 223 command_line.AppendSwitchPath("--binary", firefox_binary); | 223 command_line.AppendSwitchPath("--binary", firefox_binary); |
| 224 command_line.AppendSwitchASCII("--webpage", url.spec()); | 224 command_line.AppendSwitchASCII("--webpage", url.spec()); |
| 225 | 225 |
| 226 DVLOG(1) << "Running " << command_line.GetCommandLineString(); | 226 DVLOG(1) << "Running " << command_line.GetCommandLineString(); |
| 227 firefox_ = base::LaunchProcess(command_line, base::LaunchOptions()); | 227 firefox_ = base::LaunchProcess(command_line, base::LaunchOptions()); |
| 228 return firefox_.IsValid(); | 228 return firefox_.IsValid(); |
| 229 } | 229 } |
| 230 | 230 |
| 231 private: | 231 private: |
| 232 base::Process dev_appserver_; | 232 base::Process dev_appserver_; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 293 "&firefox_fake_device=1"); | 293 "&firefox_fake_device=1"); |
| 294 content::WebContents* chrome_tab = OpenPageAndAcceptUserMedia(room_url); | 294 content::WebContents* chrome_tab = OpenPageAndAcceptUserMedia(room_url); |
| 295 | 295 |
| 296 ASSERT_TRUE(LaunchFirefoxWithUrl(room_url)); | 296 ASSERT_TRUE(LaunchFirefoxWithUrl(room_url)); |
| 297 | 297 |
| 298 ASSERT_TRUE(WaitForCallToComeUp(chrome_tab)); | 298 ASSERT_TRUE(WaitForCallToComeUp(chrome_tab)); |
| 299 | 299 |
| 300 // Ensure Firefox manages to send video our way. | 300 // Ensure Firefox manages to send video our way. |
| 301 ASSERT_TRUE(DetectRemoteVideoPlaying(chrome_tab)); | 301 ASSERT_TRUE(DetectRemoteVideoPlaying(chrome_tab)); |
| 302 } | 302 } |
| OLD | NEW |