summaryrefslogtreecommitdiffstats
path: root/chrome/test/automation/proxy_launcher.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/test/automation/proxy_launcher.cc')
-rw-r--r--chrome/test/automation/proxy_launcher.cc75
1 files changed, 75 insertions, 0 deletions
diff --git a/chrome/test/automation/proxy_launcher.cc b/chrome/test/automation/proxy_launcher.cc
new file mode 100644
index 0000000..be414824
--- /dev/null
+++ b/chrome/test/automation/proxy_launcher.cc
@@ -0,0 +1,75 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/test/automation/proxy_launcher.h"
+
+#include "chrome/common/automation_constants.h"
+#include "chrome/common/logging_chrome.h"
+#include "chrome/test/automation/automation_proxy.h"
+#include "chrome/test/ui/ui_test.h"
+
+// Default path of named testing interface.
+static const char kInterfacePath[] = "/var/tmp/ChromeTestingInterface";
+
+// NamedProxyLauncher functions
+
+NamedProxyLauncher::NamedProxyLauncher(bool launch_browser,
+ bool disconnect_on_failure)
+ : launch_browser_(launch_browser),
+ disconnect_on_failure_(disconnect_on_failure) {
+ channel_id_ = kInterfacePath;
+}
+
+AutomationProxy* NamedProxyLauncher::CreateAutomationProxy(
+ int execution_timeout) const {
+ AutomationProxy* proxy = new AutomationProxy(execution_timeout,
+ disconnect_on_failure_);
+ proxy->InitializeChannel(channel_id_, false);
+ return proxy;
+}
+
+void NamedProxyLauncher::InitializeConnection(UITestBase* ui_test_base) const {
+ if (launch_browser_) {
+ // Set up IPC testing interface as a client.
+ ui_test_base->LaunchBrowser();
+
+ // Wait for browser to be ready for connections.
+ struct stat file_info;
+ while (stat(kInterfacePath, &file_info))
+ PlatformThread::Sleep(automation::kSleepTime);
+ }
+
+ ui_test_base->ConnectToRunningBrowser();
+}
+
+std::string NamedProxyLauncher::PrefixedChannelID() const {
+ std::string channel_id;
+ channel_id.append(automation::kNamedInterfacePrefix).append(channel_id_);
+ return channel_id;
+}
+
+// AnonymousProxyLauncher functions
+
+AnonymousProxyLauncher::AnonymousProxyLauncher(bool disconnect_on_failure)
+ : disconnect_on_failure_(disconnect_on_failure) {
+ channel_id_ = AutomationProxy::GenerateChannelID();
+}
+
+AutomationProxy* AnonymousProxyLauncher::CreateAutomationProxy(
+ int execution_timeout) const {
+ AutomationProxy* proxy = new AutomationProxy(execution_timeout,
+ disconnect_on_failure_);
+ proxy->InitializeChannel(channel_id_, true);
+ return proxy;
+}
+
+void AnonymousProxyLauncher::InitializeConnection(
+ UITestBase* ui_test_base) const {
+ ui_test_base->LaunchBrowserAndServer();
+}
+
+std::string AnonymousProxyLauncher::PrefixedChannelID() const {
+ return channel_id_;
+}
+