Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Unified Diff: chrome/browser/media/chrome_webrtc_apprtc_browsertest.cc

Issue 751333004: Now launching WebRTC-AppRTC test with Collider. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/media/chrome_webrtc_apprtc_browsertest.cc
diff --git a/chrome/browser/media/chrome_webrtc_apprtc_browsertest.cc b/chrome/browser/media/chrome_webrtc_apprtc_browsertest.cc
index a8cc375bc0487c3acd44dd5b47e66e3132cc2909..0e2a67941ca73a9cb38d1b5113769f7db8cc65ee 100644
--- a/chrome/browser/media/chrome_webrtc_apprtc_browsertest.cc
+++ b/chrome/browser/media/chrome_webrtc_apprtc_browsertest.cc
@@ -61,18 +61,20 @@ class WebRtcApprtcBrowserTest : public WebRtcTestBase {
}
void TearDown() override {
- // Kill any processes we may have brought up.
+ // Kill any processes we may have brought up. Note: this isn't perfect,
+ // especially if the test hangs or if we're on Windows.
LOG(INFO) << "Entering TearDown";
if (dev_appserver_.IsValid())
base::KillProcess(dev_appserver_.Handle(), 0, false);
- // TODO(phoglund): Find some way to shut down Firefox cleanly on Windows.
+ if (collider_server_.IsValid())
+ base::KillProcess(collider_server_.Handle(), 0, false);
if (firefox_.IsValid())
base::KillProcess(firefox_.Handle(), 0, false);
LOG(INFO) << "Exiting TearDown";
}
protected:
- bool LaunchApprtcInstanceOnLocalhost() {
+ bool LaunchApprtcInstanceOnLocalhost(const std::string& port) {
base::FilePath appengine_dev_appserver =
GetSourceDir().Append(
FILE_PATH_LITERAL("../google_appengine/dev_appserver.py"));
@@ -95,7 +97,7 @@ class WebRtcApprtcBrowserTest : public WebRtcTestBase {
command_line.AppendArgPath(appengine_dev_appserver);
command_line.AppendArgPath(apprtc_dir);
- command_line.AppendArg("--port=9999");
+ command_line.AppendArg("--port=" + port);
command_line.AppendArg("--admin_port=9998");
command_line.AppendArg("--skip_sdk_update_check");
command_line.AppendArg("--clear_datastore=yes");
@@ -105,6 +107,34 @@ class WebRtcApprtcBrowserTest : public WebRtcTestBase {
return dev_appserver_.IsValid();
}
+ bool LaunchColliderOnLocalHost(const std::string& apprtc_url,
+ const std::string& collider_port) {
+ // The go workspace should be created, and collidermain built, at the
+ // runhooks stage when webrtc.DEPS/build_apprtc_collider.py runs.
+#if defined(OS_WIN)
+ base::FilePath collider_server = GetSourceDir().Append(
+ FILE_PATH_LITERAL("out/go-workspace/bin/collidermain.exe"));
+#else
+ base::FilePath collider_server = GetSourceDir().Append(
+ FILE_PATH_LITERAL("out/go-workspace/bin/collidermain"));
+#endif
+ if (!base::PathExists(collider_server)) {
+ LOG(ERROR) << "Missing Collider server binary at " <<
+ collider_server.value() << ". " << kAdviseOnGclientSolution;
+ return false;
+ }
+
+ CommandLine command_line(collider_server);
+
+ command_line.AppendArg("-tls=false");
+ command_line.AppendArg("-port=" + collider_port);
+ command_line.AppendArg("-room-server=" + apprtc_url);
+
+ DVLOG(1) << "Running " << command_line.GetCommandLineString();
+ collider_server_ = base::LaunchProcess(command_line, base::LaunchOptions());
+ return collider_server_.IsValid();
+ }
+
bool LocalApprtcInstanceIsUp() {
// Load the admin page and see if we manage to load it right.
ui_test_utils::NavigateToURL(browser(), GURL("localhost:9998"));
@@ -198,25 +228,10 @@ class WebRtcApprtcBrowserTest : public WebRtcTestBase {
return firefox_.IsValid();
}
- bool HasWebcamOnSystem() {
-#if defined(OS_LINUX)
- // Implementation note: normally we would be able to figure this out with
- // MediaStreamTrack.getSources, but we can't ask Chrome since it runs in
- // fake device mode where it will not enumerate webcams on the system.
- // Therefore, look for /dev/video* entries directly since this test only
- // runs on Linux for now anyway.
- base::FileEnumerator dev_video(base::FilePath(FILE_PATH_LITERAL("/dev")),
- false, base::FileEnumerator::FILES,
- FILE_PATH_LITERAL("video*"));
- return !dev_video.Next().empty();
-#endif
- NOTREACHED();
- return false;
- }
-
private:
base::Process dev_appserver_;
base::Process firefox_;
+ base::Process collider_server_;
};
IN_PROC_BROWSER_TEST_F(WebRtcApprtcBrowserTest, MANUAL_WorksOnApprtc) {
@@ -225,12 +240,13 @@ IN_PROC_BROWSER_TEST_F(WebRtcApprtcBrowserTest, MANUAL_WorksOnApprtc) {
return;
DetectErrorsInJavaScript();
- ASSERT_TRUE(LaunchApprtcInstanceOnLocalhost());
+ ASSERT_TRUE(LaunchApprtcInstanceOnLocalhost("9999"));
+ ASSERT_TRUE(LaunchColliderOnLocalHost("http://localhost:9999", "8089"));
while (!LocalApprtcInstanceIsUp())
DVLOG(1) << "Waiting for AppRTC to come up...";
- GURL room_url = GURL(base::StringPrintf("localhost:9999?r=room_%d",
- base::RandInt(0, 65536)));
+ GURL room_url = GURL("http://localhost:9999/r/some_room"
+ "?wsh=localhost&wsp=8089&wstls=false");
chrome::AddTabAt(browser(), GURL(), -1, true);
content::WebContents* left_tab = OpenPageAndAcceptUserMedia(room_url);
@@ -267,12 +283,14 @@ IN_PROC_BROWSER_TEST_F(WebRtcApprtcBrowserTest,
return;
DetectErrorsInJavaScript();
- ASSERT_TRUE(LaunchApprtcInstanceOnLocalhost());
+ ASSERT_TRUE(LaunchApprtcInstanceOnLocalhost("9999"));
+ ASSERT_TRUE(LaunchColliderOnLocalHost("http://localhost:9999", "8089"));
while (!LocalApprtcInstanceIsUp())
DVLOG(1) << "Waiting for AppRTC to come up...";
- GURL room_url = GURL(
- "http://localhost:9999?r=some_room_id&firefox_fake_device=1");
+ GURL room_url = GURL("http://localhost:9999/r/some_room"
+ "?wsh=localhost&wsp=8089&wstls=false"
+ "&firefox_fake_device=1");
content::WebContents* chrome_tab = OpenPageAndAcceptUserMedia(room_url);
ASSERT_TRUE(LaunchFirefoxWithUrl(room_url));
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698