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

Side by Side Diff: chrome/test/ui/ui_test.cc

Issue 16545: Butcher some files to make ui_tests run 0 tests on Linux. (Closed)
Patch Set: typo fix Created 11 years, 11 months 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 unified diff | Download patch
« no previous file with comments | « chrome/test/ui/ui_test.h ('k') | chrome/test/ui/ui_test_suite.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 <set> 5 #include <set>
6 #include <vector> 6 #include <vector>
7 7
8 #include "chrome/test/ui/ui_test.h" 8 #include "chrome/test/ui/ui_test.h"
9 9
10 #include "base/base_switches.h" 10 #include "base/base_switches.h"
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/file_util.h" 12 #include "base/file_util.h"
13 #include "base/platform_thread.h"
13 #include "base/process_util.h" 14 #include "base/process_util.h"
14 #include "base/scoped_ptr.h" 15 #include "base/scoped_ptr.h"
15 #include "base/string_util.h" 16 #include "base/string_util.h"
16 #include "base/test_file_util.h" 17 #include "base/test_file_util.h"
17 #include "base/time.h" 18 #include "base/time.h"
18 #include "chrome/app/chrome_dll_resource.h" 19 #include "chrome/app/chrome_dll_resource.h"
19 #include "chrome/browser/url_fixer_upper.h" 20 #include "chrome/browser/url_fixer_upper.h"
20 #include "chrome/common/chrome_constants.h" 21 #include "chrome/common/chrome_constants.h"
21 #include "chrome/common/chrome_paths.h" 22 #include "chrome/common/chrome_paths.h"
22 #include "chrome/common/chrome_process_filter.h"
23 #include "chrome/common/chrome_switches.h" 23 #include "chrome/common/chrome_switches.h"
24 #include "chrome/common/debug_flags.h" 24 #include "chrome/common/debug_flags.h"
25 #include "chrome/common/logging_chrome.h" 25 #include "chrome/common/logging_chrome.h"
26 #include "chrome/common/json_value_serializer.h" 26 #include "chrome/common/json_value_serializer.h"
27 #include "googleurl/src/gurl.h"
28 #include "net/base/net_util.h"
29
30 #if defined(OS_WIN)
31 // TODO(port): these just need to be ported.
32 #include "chrome/common/chrome_process_filter.h"
27 #include "chrome/test/automation/browser_proxy.h" 33 #include "chrome/test/automation/browser_proxy.h"
28 #include "chrome/test/automation/tab_proxy.h" 34 #include "chrome/test/automation/tab_proxy.h"
29 #include "chrome/test/automation/window_proxy.h" 35 #include "chrome/test/automation/window_proxy.h"
30 #include "googleurl/src/gurl.h" 36 #endif
31 #include "net/base/net_util.h"
32 37
33 using base::TimeTicks; 38 using base::TimeTicks;
34 39
40 // Delay to let browser complete a requested action.
41 const int UITest::kWaitForActionMsec = 2000;
42 const int UITest::kWaitForActionMaxMsec = 10000;
43 // Delay to let the browser complete the test.
44 const int UITest::kMaxTestExecutionTime = 30000;
45
35 const wchar_t UITest::kFailedNoCrashService[] = 46 const wchar_t UITest::kFailedNoCrashService[] =
36 L"NOTE: This test is expected to fail if crash_service.exe is not " 47 L"NOTE: This test is expected to fail if crash_service.exe is not "
37 L"running. Start it manually before running this test (see the build " 48 L"running. Start it manually before running this test (see the build "
38 L"output directory)."; 49 L"output directory).";
39 bool UITest::in_process_renderer_ = false; 50 bool UITest::in_process_renderer_ = false;
40 bool UITest::in_process_plugins_ = false; 51 bool UITest::in_process_plugins_ = false;
41 bool UITest::no_sandbox_ = false; 52 bool UITest::no_sandbox_ = false;
42 bool UITest::full_memory_dump_ = false; 53 bool UITest::full_memory_dump_ = false;
43 bool UITest::safe_plugins_ = false; 54 bool UITest::safe_plugins_ = false;
44 bool UITest::show_error_dialogs_ = true; 55 bool UITest::show_error_dialogs_ = true;
(...skipping 21 matching lines...) Expand all
66 77
67 // static 78 // static
68 bool UITest::DieFileDie(const std::wstring& file, bool recurse) { 79 bool UITest::DieFileDie(const std::wstring& file, bool recurse) {
69 if (!file_util::PathExists(file)) 80 if (!file_util::PathExists(file))
70 return true; 81 return true;
71 82
72 // Sometimes Delete fails, so try a few more times. 83 // Sometimes Delete fails, so try a few more times.
73 for (int i = 0; i < 10; ++i) { 84 for (int i = 0; i < 10; ++i) {
74 if (file_util::Delete(file, recurse)) 85 if (file_util::Delete(file, recurse))
75 return true; 86 return true;
76 Sleep(kWaitForActionMaxMsec / 10); 87 PlatformThread::Sleep(kWaitForActionMaxMsec / 10);
77 } 88 }
78 return false; 89 return false;
79 } 90 }
80 91
81 UITest::UITest() 92 UITest::UITest()
82 : testing::Test(), 93 : testing::Test(),
83 expected_errors_(0), 94 expected_errors_(0),
84 expected_crashes_(0), 95 expected_crashes_(0),
96 homepage_(L"about:blank"),
85 wait_for_initial_loads_(true), 97 wait_for_initial_loads_(true),
86 homepage_(L"about:blank"),
87 dom_automation_enabled_(false), 98 dom_automation_enabled_(false),
88 process_(NULL), 99 process_(0), // NULL on Windows, 0 PID on POSIX.
89 show_window_(false), 100 show_window_(false),
90 clear_profile_(true), 101 clear_profile_(true),
91 include_testing_id_(true), 102 include_testing_id_(true),
92 use_existing_browser_(default_use_existing_browser_), 103 use_existing_browser_(default_use_existing_browser_),
93 command_execution_timeout_ms_(kMaxTestExecutionTime), 104 command_execution_timeout_ms_(kMaxTestExecutionTime),
94 action_timeout_ms_(kWaitForActionMsec), 105 action_timeout_ms_(kWaitForActionMsec),
95 action_max_timeout_ms_(kWaitForActionMaxMsec) { 106 action_max_timeout_ms_(kWaitForActionMaxMsec) {
96 PathService::Get(chrome::DIR_APP, &browser_directory_); 107 PathService::Get(chrome::DIR_APP, &browser_directory_);
97 PathService::Get(chrome::DIR_TEST_DATA, &test_data_directory_); 108 PathService::Get(chrome::DIR_TEST_DATA, &test_data_directory_);
109 #if defined(OS_WIN)
98 GetSystemTimeAsFileTime(&test_start_time_); 110 GetSystemTimeAsFileTime(&test_start_time_);
111 #else
112 NOTIMPLEMENTED();
113 #endif
99 } 114 }
100 115
101 void UITest::SetUp() { 116 void UITest::SetUp() {
102 if (!use_existing_browser_) { 117 if (!use_existing_browser_) {
103 AssertAppNotRunning(L"Please close any other instances " 118 AssertAppNotRunning(L"Please close any other instances "
104 L"of the app before testing."); 119 L"of the app before testing.");
105 } 120 }
106 121
107 InitializeTimeouts(); 122 InitializeTimeouts();
108 LaunchBrowserAndServer(); 123 LaunchBrowserAndServer();
109 } 124 }
110 125
111 void UITest::TearDown() { 126 void UITest::TearDown() {
112 CloseBrowserAndServer(); 127 CloseBrowserAndServer();
113 128
114 // Make sure that we didn't encounter any assertion failures 129 // Make sure that we didn't encounter any assertion failures
115 logging::AssertionList assertions; 130 logging::AssertionList assertions;
116 logging::GetFatalAssertions(&assertions); 131 logging::GetFatalAssertions(&assertions);
117 132
118 // If there were errors, get all the error strings for display. 133 // If there were errors, get all the error strings for display.
119 std::wstring failures = 134 std::wstring failures =
120 L"The following error(s) occurred in the application during this test:"; 135 L"The following error(s) occurred in the application during this test:";
121 if (static_cast<int>(assertions.size()) > expected_errors_) { 136 if (assertions.size() > expected_errors_) {
122 logging::AssertionList::const_iterator iter = assertions.begin(); 137 logging::AssertionList::const_iterator iter = assertions.begin();
123 for (; iter != assertions.end(); ++iter) { 138 for (; iter != assertions.end(); ++iter) {
124 failures.append(L"\n\n"); 139 failures.append(L"\n\n");
125 failures.append(*iter); 140 failures.append(*iter);
126 } 141 }
127 } 142 }
128 EXPECT_EQ(expected_errors_, assertions.size()) << failures; 143 EXPECT_EQ(expected_errors_, assertions.size()) << failures;
129 144
145 #if defined(OS_WIN)
130 // Check for crashes during the test 146 // Check for crashes during the test
131 std::wstring crash_dump_path; 147 std::wstring crash_dump_path;
132 PathService::Get(chrome::DIR_CRASH_DUMPS, &crash_dump_path); 148 PathService::Get(chrome::DIR_CRASH_DUMPS, &crash_dump_path);
133 // Each crash creates two dump files, so we divide by two here. 149 // Each crash creates two dump files, so we divide by two here.
134 int actual_crashes = 150 int actual_crashes =
135 file_util::CountFilesCreatedAfter(crash_dump_path, test_start_time_) / 2; 151 file_util::CountFilesCreatedAfter(crash_dump_path, test_start_time_) / 2;
136 std::wstring error_msg = 152 std::wstring error_msg =
137 L"Encountered an unexpected crash in the program during this test."; 153 L"Encountered an unexpected crash in the program during this test.";
138 if (expected_crashes_ > 0 && actual_crashes == 0) { 154 if (expected_crashes_ > 0 && actual_crashes == 0) {
139 error_msg += L" "; 155 error_msg += L" ";
140 error_msg += kFailedNoCrashService; 156 error_msg += kFailedNoCrashService;
141 } 157 }
142 EXPECT_EQ(expected_crashes_, actual_crashes) << error_msg; 158 EXPECT_EQ(expected_crashes_, actual_crashes) << error_msg;
159 #else
160 // TODO(port): we don't catch crashes, nor have CountFilesCreatedAfter.
161 NOTIMPLEMENTED();
162 #endif
143 } 163 }
144 164
145 // Pick up the various test time out values from the command line. 165 // Pick up the various test time out values from the command line.
146 void UITest::InitializeTimeouts() { 166 void UITest::InitializeTimeouts() {
147 if (CommandLine().HasSwitch(kUiTestTimeout)) { 167 if (CommandLine().HasSwitch(kUiTestTimeout)) {
148 std::wstring timeout_str = CommandLine().GetSwitchValue(kUiTestTimeout); 168 std::wstring timeout_str = CommandLine().GetSwitchValue(kUiTestTimeout);
149 int timeout = StringToInt(timeout_str); 169 int timeout = StringToInt(timeout_str);
150 command_execution_timeout_ms_ = std::max(kMaxTestExecutionTime, timeout); 170 command_execution_timeout_ms_ = std::max(kMaxTestExecutionTime, timeout);
151 } 171 }
152 172
153 if (CommandLine().HasSwitch(kUiTestActionTimeout)) { 173 if (CommandLine().HasSwitch(kUiTestActionTimeout)) {
154 std::wstring act_str = CommandLine().GetSwitchValue(kUiTestActionTimeout); 174 std::wstring act_str = CommandLine().GetSwitchValue(kUiTestActionTimeout);
155 int act_timeout = StringToInt(act_str); 175 int act_timeout = StringToInt(act_str);
156 action_timeout_ms_ = std::max(kWaitForActionMsec, act_timeout); 176 action_timeout_ms_ = std::max(kWaitForActionMsec, act_timeout);
157 } 177 }
158 178
159 if (CommandLine().HasSwitch(kUiTestActionMaxTimeout)) { 179 if (CommandLine().HasSwitch(kUiTestActionMaxTimeout)) {
160 std::wstring action_max_str = 180 std::wstring action_max_str =
161 CommandLine().GetSwitchValue(kUiTestActionMaxTimeout); 181 CommandLine().GetSwitchValue(kUiTestActionMaxTimeout);
162 int max_timeout = StringToInt(action_max_str); 182 int max_timeout = StringToInt(action_max_str);
163 action_max_timeout_ms_ = std::max(kWaitForActionMaxMsec, max_timeout); 183 action_max_timeout_ms_ = std::max(kWaitForActionMaxMsec, max_timeout);
164 } 184 }
165 } 185 }
166 186
167 void UITest::LaunchBrowserAndServer() { 187 void UITest::LaunchBrowserAndServer() {
188 #if defined(OS_WIN)
168 // Set up IPC testing interface server. 189 // Set up IPC testing interface server.
169 server_.reset(new AutomationProxy(command_execution_timeout_ms_)); 190 server_.reset(new AutomationProxy(command_execution_timeout_ms_));
170 191
171 LaunchBrowser(launch_arguments_, clear_profile_); 192 LaunchBrowser(launch_arguments_, clear_profile_);
172 if (wait_for_initial_loads_) 193 if (wait_for_initial_loads_)
173 ASSERT_TRUE(server_->WaitForInitialLoads()); 194 ASSERT_TRUE(server_->WaitForInitialLoads());
174 else 195 else
175 Sleep(2000); 196 Sleep(2000);
176 197
177 automation()->SetFilteredInet(true); 198 automation()->SetFilteredInet(true);
199 #else
200 // TODO(port): depends on AutomationProxy.
201 NOTIMPLEMENTED();
202 #endif
178 } 203 }
179 204
180 void UITest::CloseBrowserAndServer() { 205 void UITest::CloseBrowserAndServer() {
181 QuitBrowser(); 206 QuitBrowser();
182 CleanupAppProcesses(); 207 CleanupAppProcesses();
183 208
209 #if defined(OS_WIN)
184 // Shut down IPC testing interface. 210 // Shut down IPC testing interface.
185 server_.reset(); 211 server_.reset();
212 #else
213 // TODO(port): depends on AutomationProxy.
214 NOTIMPLEMENTED();
215 #endif
186 } 216 }
187 217
188 void UITest::LaunchBrowser(const std::wstring& arguments, bool clear_profile) { 218 void UITest::LaunchBrowser(const std::wstring& arguments, bool clear_profile) {
189 std::wstring command_line(browser_directory_); 219 std::wstring command_line(browser_directory_);
190 file_util::AppendToPath(&command_line, 220 file_util::AppendToPath(&command_line,
191 chrome::kBrowserProcessExecutableName); 221 chrome::kBrowserProcessExecutableName);
192 222
193 // Add any explict command line flags passed to the process. 223 // Add any explict command line flags passed to the process.
194 std::wstring extra_chrome_flags = 224 std::wstring extra_chrome_flags =
195 CommandLine().GetSwitchValue(kExtraChromeFlagsSwitch); 225 CommandLine().GetSwitchValue(kExtraChromeFlagsSwitch);
196 if (!extra_chrome_flags.empty()) 226 if (!extra_chrome_flags.empty())
197 command_line.append(L" " + extra_chrome_flags); 227 command_line.append(L" " + extra_chrome_flags);
198 228
199 // We need cookies on file:// for things like the page cycler. 229 // We need cookies on file:// for things like the page cycler.
200 CommandLine::AppendSwitch(&command_line, switches::kEnableFileCookies); 230 CommandLine::AppendSwitch(&command_line, switches::kEnableFileCookies);
201 231
202 if (dom_automation_enabled_) 232 if (dom_automation_enabled_)
203 CommandLine::AppendSwitch(&command_line, 233 CommandLine::AppendSwitch(&command_line,
204 switches::kDomAutomationController); 234 switches::kDomAutomationController);
205 235
236 #if defined(OS_WIN)
206 if (include_testing_id_) { 237 if (include_testing_id_) {
207 if (use_existing_browser_) { 238 if (use_existing_browser_) {
208 // TODO(erikkay): The new switch depends on a browser instance already 239 // TODO(erikkay): The new switch depends on a browser instance already
209 // running, it won't open a new browser window if it's not. We could fix 240 // running, it won't open a new browser window if it's not. We could fix
210 // this by passing an url (e.g. about:blank) on the command line, but 241 // this by passing an url (e.g. about:blank) on the command line, but
211 // I decided to keep using the old switch in the existing use case to 242 // I decided to keep using the old switch in the existing use case to
212 // minimize changes in behavior. 243 // minimize changes in behavior.
213 CommandLine::AppendSwitchWithValue(&command_line, 244 CommandLine::AppendSwitchWithValue(&command_line,
214 switches::kAutomationClientChannelID, 245 switches::kAutomationClientChannelID,
215 server_->channel_id()); 246 server_->channel_id());
216 } else { 247 } else {
217 CommandLine::AppendSwitchWithValue(&command_line, 248 CommandLine::AppendSwitchWithValue(&command_line,
218 switches::kTestingChannelID, 249 switches::kTestingChannelID,
219 server_->channel_id()); 250 server_->channel_id());
220 } 251 }
221 } 252 }
253 #else
254 // TODO(port): depends on AutomationProxy.
255 NOTIMPLEMENTED();
256 #endif
222 257
223 if (!show_error_dialogs_) 258 if (!show_error_dialogs_)
224 CommandLine::AppendSwitch(&command_line, switches::kNoErrorDialogs); 259 CommandLine::AppendSwitch(&command_line, switches::kNoErrorDialogs);
225 if (in_process_renderer_) 260 if (in_process_renderer_)
226 CommandLine::AppendSwitch(&command_line, switches::kSingleProcess); 261 CommandLine::AppendSwitch(&command_line, switches::kSingleProcess);
227 if (in_process_plugins_) 262 if (in_process_plugins_)
228 CommandLine::AppendSwitch(&command_line, switches::kInProcessPlugins); 263 CommandLine::AppendSwitch(&command_line, switches::kInProcessPlugins);
229 if (no_sandbox_) 264 if (no_sandbox_)
230 CommandLine::AppendSwitch(&command_line, switches::kNoSandbox); 265 CommandLine::AppendSwitch(&command_line, switches::kNoSandbox);
231 if (full_memory_dump_) 266 if (full_memory_dump_)
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 // Clear user data directory to make sure test environment is consistent 305 // Clear user data directory to make sure test environment is consistent
271 // We balk on really short (absolute) user_data_dir directory names, because 306 // We balk on really short (absolute) user_data_dir directory names, because
272 // we're worried that they'd accidentally be root or something. 307 // we're worried that they'd accidentally be root or something.
273 ASSERT_LT(10, static_cast<int>(user_data_dir_.size())) << 308 ASSERT_LT(10, static_cast<int>(user_data_dir_.size())) <<
274 "The user data directory name passed into this test was too " 309 "The user data directory name passed into this test was too "
275 "short to delete safely. Please check the user-data-dir " 310 "short to delete safely. Please check the user-data-dir "
276 "argument and try again."; 311 "argument and try again.";
277 if (clear_profile) 312 if (clear_profile)
278 ASSERT_TRUE(DieFileDie(user_data_dir_, true)); 313 ASSERT_TRUE(DieFileDie(user_data_dir_, true));
279 314
315 #if defined(OS_WIN)
280 if (!template_user_data_.empty()) { 316 if (!template_user_data_.empty()) {
281 // Recursively copy the template directory to the user_data_dir. 317 // Recursively copy the template directory to the user_data_dir.
282 ASSERT_TRUE(file_util::CopyRecursiveDirNoCache(template_user_data_, 318 ASSERT_TRUE(file_util::CopyRecursiveDirNoCache(template_user_data_,
283 user_data_dir_)); 319 user_data_dir_));
284 } 320 }
285 321
286 browser_launch_time_ = TimeTicks::Now(); 322 browser_launch_time_ = TimeTicks::Now();
287 323
288 bool started = base::LaunchApp(command_line, 324 bool started = base::LaunchApp(command_line,
289 false, // Don't wait for process object 325 false, // Don't wait for process object
290 // (doesn't work for us) 326 // (doesn't work for us)
291 !show_window_, 327 !show_window_,
292 &process_); 328 &process_);
293 ASSERT_EQ(started, true); 329 ASSERT_EQ(started, true);
294 330
295 if (use_existing_browser_) { 331 if (use_existing_browser_) {
296 DWORD pid = 0; 332 DWORD pid = 0;
297 HWND hwnd = FindWindowEx(HWND_MESSAGE, NULL, chrome::kMessageWindowClass, 333 HWND hwnd = FindWindowEx(HWND_MESSAGE, NULL, chrome::kMessageWindowClass,
298 user_data_dir_.c_str()); 334 user_data_dir_.c_str());
299 GetWindowThreadProcessId(hwnd, &pid); 335 GetWindowThreadProcessId(hwnd, &pid);
300 // This mode doesn't work if we wound up launching a new browser ourselves. 336 // This mode doesn't work if we wound up launching a new browser ourselves.
301 ASSERT_NE(pid, base::GetProcId(process_)); 337 ASSERT_NE(pid, base::GetProcId(process_));
302 CloseHandle(process_); 338 CloseHandle(process_);
303 process_ = OpenProcess(SYNCHRONIZE, false, pid); 339 process_ = OpenProcess(SYNCHRONIZE, false, pid);
304 } 340 }
341 #else
342 // TODO(port): above code is very Windows-specific; we need to
343 // figure out and abstract out how we'll handle finding any existing
344 // running process, etc. on other platforms.
345 NOTIMPLEMENTED();
346 #endif
305 } 347 }
306 348
307 void UITest::QuitBrowser() { 349 void UITest::QuitBrowser() {
350 #if defined(OS_WIN)
308 typedef std::vector<BrowserProxy*> BrowserVector; 351 typedef std::vector<BrowserProxy*> BrowserVector;
309 352
310 // There's nothing to do here if the browser is not running. 353 // There's nothing to do here if the browser is not running.
311 if (IsBrowserRunning()) { 354 if (IsBrowserRunning()) {
312 automation()->SetFilteredInet(false); 355 automation()->SetFilteredInet(false);
313 BrowserVector browsers; 356 BrowserVector browsers;
314 357
315 // Build up a list of HWNDs; we do this as a separate step so that closing 358 // Build up a list of HWNDs; we do this as a separate step so that closing
316 // the windows doesn't mess up the iteration. 359 // the windows doesn't mess up the iteration.
317 int window_count = 0; 360 int window_count = 0;
(...skipping 25 matching lines...) Expand all
343 if (WAIT_TIMEOUT == WaitForSingleObject(process_, timeout)) { 386 if (WAIT_TIMEOUT == WaitForSingleObject(process_, timeout)) {
344 // We need to force the browser to quit because it didn't quit fast 387 // We need to force the browser to quit because it didn't quit fast
345 // enough. Take no chance and kill every chrome processes. 388 // enough. Take no chance and kill every chrome processes.
346 CleanupAppProcesses(); 389 CleanupAppProcesses();
347 } 390 }
348 } 391 }
349 392
350 // Don't forget to close the handle 393 // Don't forget to close the handle
351 CloseHandle(process_); 394 CloseHandle(process_);
352 process_ = NULL; 395 process_ = NULL;
396 #else
397 // TODO(port): depends on AutomationProxy.
398 NOTIMPLEMENTED();
399 #endif // OS_WIN
353 } 400 }
354 401
355 void UITest::AssertAppNotRunning(const std::wstring& error_message) { 402 void UITest::AssertAppNotRunning(const std::wstring& error_message) {
403 #if defined(OS_WIN)
356 ASSERT_EQ(0, GetBrowserProcessCount()) << error_message; 404 ASSERT_EQ(0, GetBrowserProcessCount()) << error_message;
405 #else
406 // TODO(port): depends on AutomationProxy.
407 NOTIMPLEMENTED();
408 #endif
357 } 409 }
358 410
359 void UITest::CleanupAppProcesses() { 411 void UITest::CleanupAppProcesses() {
412 #if defined(OS_WIN)
360 BrowserProcessFilter filter(L""); 413 BrowserProcessFilter filter(L"");
361 414
362 // Make sure that no instances of the browser remain. 415 // Make sure that no instances of the browser remain.
363 const int kExitTimeoutMs = 5000; 416 const int kExitTimeoutMs = 5000;
364 const int kExitCode = 1; 417 const int kExitCode = 1;
365 base::CleanupProcesses( 418 base::CleanupProcesses(
366 chrome::kBrowserProcessExecutableName, kExitTimeoutMs, kExitCode, 419 chrome::kBrowserProcessExecutableName, kExitTimeoutMs, kExitCode,
367 &filter); 420 &filter);
368 421
369 // Suppress spammy failures that seem to be occurring when running 422 // Suppress spammy failures that seem to be occurring when running
370 // the UI tests in single-process mode. 423 // the UI tests in single-process mode.
371 // TODO(jhughes): figure out why this is necessary at all, and fix it 424 // TODO(jhughes): figure out why this is necessary at all, and fix it
372 if (!in_process_renderer_) { 425 if (!in_process_renderer_) {
373 AssertAppNotRunning(L"Unable to quit all browser processes."); 426 AssertAppNotRunning(L"Unable to quit all browser processes.");
374 } 427 }
428 #else
429 // TODO(port): depends on BrowserProcessFilter.
430 NOTIMPLEMENTED();
431 #endif
375 } 432 }
376 433
434 // TODO(port): this #if effectively cuts out half of this file on
435 // non-Windows platforms, and is a temporary hack to get things
436 // building.
437 #if defined(OS_WIN)
377 TabProxy* UITest::GetActiveTab() { 438 TabProxy* UITest::GetActiveTab() {
378 scoped_ptr<BrowserProxy> window_proxy(automation()->GetBrowserWindow(0)); 439 scoped_ptr<BrowserProxy> window_proxy(automation()->GetBrowserWindow(0));
379 if (!window_proxy.get()) 440 if (!window_proxy.get())
380 return NULL; 441 return NULL;
381 442
382 int active_tab_index = -1; 443 int active_tab_index = -1;
383 EXPECT_TRUE(window_proxy->GetActiveTabIndex(&active_tab_index)); 444 EXPECT_TRUE(window_proxy->GetActiveTabIndex(&active_tab_index));
384 if (active_tab_index == -1) 445 if (active_tab_index == -1)
385 return NULL; 446 return NULL;
386 447
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
712 const std::wstring& units, 773 const std::wstring& units,
713 bool important) { 774 bool important) {
714 // <*>RESULT <graph_name>: <trace_name>= <value> <units> 775 // <*>RESULT <graph_name>: <trace_name>= <value> <units>
715 // <*>RESULT <graph_name>: <trace_name>= {<mean>, <std deviation>} <units> 776 // <*>RESULT <graph_name>: <trace_name>= {<mean>, <std deviation>} <units>
716 // <*>RESULT <graph_name>: <trace_name>= [<value>,value,value,...,] <units> 777 // <*>RESULT <graph_name>: <trace_name>= [<value>,value,value,...,] <units>
717 wprintf(L"%lsRESULT %ls%ls: %ls= %ls%ls%ls %ls\n", 778 wprintf(L"%lsRESULT %ls%ls: %ls= %ls%ls%ls %ls\n",
718 important ? L"*" : L"", measurement.c_str(), modifier.c_str(), 779 important ? L"*" : L"", measurement.c_str(), modifier.c_str(),
719 trace.c_str(), prefix.c_str(), values.c_str(), suffix.c_str(), 780 trace.c_str(), prefix.c_str(), values.c_str(), suffix.c_str(),
720 units.c_str()); 781 units.c_str());
721 } 782 }
783
784 #endif // OS_WIN
OLDNEW
« no previous file with comments | « chrome/test/ui/ui_test.h ('k') | chrome/test/ui/ui_test_suite.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698