Index: chrome/test/ui/ui_test.cc |
diff --git a/chrome/test/ui/ui_test.cc b/chrome/test/ui/ui_test.cc |
index 2ad0952ce1ea156b01bb83b7092908d1808b0c46..fdcad822b656f5603bdc46e7fd10e998fa5d99bb 100644 |
--- a/chrome/test/ui/ui_test.cc |
+++ b/chrome/test/ui/ui_test.cc |
@@ -24,13 +24,14 @@ |
#include "chrome/common/debug_flags.h" |
#include "chrome/common/logging_chrome.h" |
#include "chrome/common/json_value_serializer.h" |
+#include "chrome/test/automation/automation_proxy.h" |
+#include "chrome/test/automation/browser_proxy.h" |
#include "googleurl/src/gurl.h" |
#include "net/base/net_util.h" |
#if defined(OS_WIN) |
// TODO(port): these just need to be ported. |
#include "chrome/common/chrome_process_filter.h" |
-#include "chrome/test/automation/browser_proxy.h" |
#include "chrome/test/automation/tab_proxy.h" |
#include "chrome/test/automation/window_proxy.h" |
#endif |
@@ -211,7 +212,6 @@ void UITest::InitializeTimeouts() { |
} |
void UITest::LaunchBrowserAndServer() { |
-#if defined(OS_WIN) |
// Set up IPC testing interface server. |
server_.reset(new AutomationProxy(command_execution_timeout_ms_)); |
@@ -219,26 +219,17 @@ void UITest::LaunchBrowserAndServer() { |
if (wait_for_initial_loads_) |
ASSERT_TRUE(server_->WaitForInitialLoads()); |
else |
- Sleep(2000); |
+ PlatformThread::Sleep(2000); |
automation()->SetFilteredInet(true); |
-#else |
- // TODO(port): depends on AutomationProxy. |
- NOTIMPLEMENTED(); |
-#endif |
} |
void UITest::CloseBrowserAndServer() { |
QuitBrowser(); |
CleanupAppProcesses(); |
-#if defined(OS_WIN) |
// Shut down IPC testing interface. |
server_.reset(); |
-#else |
- // TODO(port): depends on AutomationProxy. |
- NOTIMPLEMENTED(); |
-#endif |
} |
void UITest::LaunchBrowser(const CommandLine& arguments, bool clear_profile) { |
@@ -265,7 +256,6 @@ void UITest::LaunchBrowser(const CommandLine& arguments, bool clear_profile) { |
if (dom_automation_enabled_) |
command_line.AppendSwitch(switches::kDomAutomationController); |
-#if defined(OS_WIN) |
if (include_testing_id_) { |
if (use_existing_browser_) { |
// TODO(erikkay): The new switch depends on a browser instance already |
@@ -280,10 +270,6 @@ void UITest::LaunchBrowser(const CommandLine& arguments, bool clear_profile) { |
server_->channel_id()); |
} |
} |
-#else |
- // TODO(port): depends on AutomationProxy. |
- NOTIMPLEMENTED(); |
-#endif |
if (!show_error_dialogs_ && |
!CommandLine::ForCurrentProcess()->HasSwitch(kEnableErrorDialogs)) { |
@@ -346,7 +332,6 @@ void UITest::LaunchBrowser(const CommandLine& arguments, bool clear_profile) { |
if (clear_profile) |
ASSERT_TRUE(DieFileDie(user_data_dir_, true)); |
-#if defined(OS_WIN) |
if (!template_user_data_.empty()) { |
// Recursively copy the template directory to the user_data_dir. |
ASSERT_TRUE(file_util::CopyRecursiveDirNoCache(template_user_data_, |
@@ -355,13 +340,21 @@ void UITest::LaunchBrowser(const CommandLine& arguments, bool clear_profile) { |
browser_launch_time_ = TimeTicks::Now(); |
+#if defined(OS_WIN) |
bool started = base::LaunchApp(command_line, |
false, // Don't wait for process object |
// (doesn't work for us) |
!show_window_, |
&process_); |
- ASSERT_EQ(started, true); |
+#elif defined(OS_POSIX) |
+ bool started = base::LaunchApp(command_line.argv(), |
+ server_->fds_to_map(), |
+ false, // Don't wait. |
+ &process_); |
+#endif |
+ ASSERT_TRUE(started); |
+#if defined(OS_WIN) |
if (use_existing_browser_) { |
DWORD pid = 0; |
HWND hwnd = FindWindowEx(HWND_MESSAGE, NULL, chrome::kMessageWindowClass, |
@@ -381,7 +374,6 @@ void UITest::LaunchBrowser(const CommandLine& arguments, bool clear_profile) { |
} |
void UITest::QuitBrowser() { |
-#if defined(OS_WIN) |
typedef std::vector<BrowserProxy*> BrowserVector; |
// There's nothing to do here if the browser is not running. |
@@ -416,7 +408,7 @@ void UITest::QuitBrowser() { |
#ifdef WAIT_FOR_DEBUGGER_ON_OPEN |
timeout = 500000; |
#endif |
- if (WAIT_TIMEOUT == WaitForSingleObject(process_, timeout)) { |
+ if (!base::WaitForSingleProcess(process_, timeout)) { |
// We need to force the browser to quit because it didn't quit fast |
// enough. Take no chance and kill every chrome processes. |
CleanupAppProcesses(); |
@@ -424,19 +416,15 @@ void UITest::QuitBrowser() { |
} |
// Don't forget to close the handle |
- CloseHandle(process_); |
+ base::CloseProcessHandle(process_); |
process_ = NULL; |
-#else |
- // TODO(port): depends on AutomationProxy. |
- NOTIMPLEMENTED(); |
-#endif // OS_WIN |
} |
void UITest::AssertAppNotRunning(const std::wstring& error_message) { |
#if defined(OS_WIN) |
ASSERT_EQ(0, GetBrowserProcessCount()) << error_message; |
#else |
- // TODO(port): depends on AutomationProxy. |
+ // TODO(port): Enable when chrome_process_filter is ported. |
NOTIMPLEMENTED(); |
#endif |
} |
@@ -570,6 +558,7 @@ std::wstring UITest::GetActiveTabTitle() { |
EXPECT_TRUE(tab_proxy->GetTabTitle(&title)); |
return title; |
} |
+#endif // defined(OS_WIN) |
bool UITest::IsBrowserRunning() { |
return CrashAwareSleep(0); |
@@ -579,6 +568,9 @@ bool UITest::CrashAwareSleep(int time_out_ms) { |
return base::CrashAwareSleep(process_, time_out_ms); |
} |
+#if defined(OS_WIN) |
+// TODO(port): Port these. |
+ |
/*static*/ |
int UITest::GetBrowserProcessCount() { |
BrowserProcessFilter filter(L""); |
@@ -724,37 +716,6 @@ bool UITest::CloseBrowser(BrowserProxy* browser, |
return result; |
} |
-void UITest::PrintResult(const std::wstring& measurement, |
- const std::wstring& modifier, |
- const std::wstring& trace, |
- size_t value, |
- const std::wstring& units, |
- bool important) { |
- std::wstring value_str = StringPrintf(L"%d", value); |
- PrintResultsImpl(measurement, modifier, trace, value_str, |
- L"", L"", units, important); |
-} |
- |
-void UITest::PrintResultMeanAndError(const std::wstring& measurement, |
- const std::wstring& modifier, |
- const std::wstring& trace, |
- const std::wstring& mean_and_error, |
- const std::wstring& units, |
- bool important) { |
- PrintResultsImpl(measurement, modifier, trace, mean_and_error, |
- L"{", L"}", units, important); |
-} |
- |
-void UITest::PrintResultList(const std::wstring& measurement, |
- const std::wstring& modifier, |
- const std::wstring& trace, |
- const std::wstring& values, |
- const std::wstring& units, |
- bool important) { |
- PrintResultsImpl(measurement, modifier, trace, values, |
- L"[", L"]", units, important); |
-} |
- |
GURL UITest::GetTestUrl(const std::wstring& test_directory, |
const std::wstring &test_case) { |
std::wstring path; |
@@ -791,6 +752,39 @@ void UITest::WaitForFinish(const std::string &name, |
EXPECT_EQ(true, test_result); |
} |
+#endif // OS_WIN |
+ |
+void UITest::PrintResult(const std::wstring& measurement, |
+ const std::wstring& modifier, |
+ const std::wstring& trace, |
+ size_t value, |
+ const std::wstring& units, |
+ bool important) { |
+ std::wstring value_str = StringPrintf(L"%d", value); |
+ PrintResultsImpl(measurement, modifier, trace, value_str, |
+ L"", L"", units, important); |
+} |
+ |
+void UITest::PrintResultMeanAndError(const std::wstring& measurement, |
+ const std::wstring& modifier, |
+ const std::wstring& trace, |
+ const std::wstring& mean_and_error, |
+ const std::wstring& units, |
+ bool important) { |
+ PrintResultsImpl(measurement, modifier, trace, mean_and_error, |
+ L"{", L"}", units, important); |
+} |
+ |
+void UITest::PrintResultList(const std::wstring& measurement, |
+ const std::wstring& modifier, |
+ const std::wstring& trace, |
+ const std::wstring& values, |
+ const std::wstring& units, |
+ bool important) { |
+ PrintResultsImpl(measurement, modifier, trace, values, |
+ L"[", L"]", units, important); |
+} |
+ |
void UITest::PrintResultsImpl(const std::wstring& measurement, |
const std::wstring& modifier, |
const std::wstring& trace, |
@@ -807,5 +801,3 @@ void UITest::PrintResultsImpl(const std::wstring& measurement, |
trace.c_str(), prefix.c_str(), values.c_str(), suffix.c_str(), |
units.c_str()); |
} |
- |
-#endif // OS_WIN |