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

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

Issue 12163003: Add FilePath to base namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « chrome/test/logging/win/log_file_reader.h ('k') | chrome/test/webdriver/webdriver_session.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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef CHROME_TEST_UI_UI_TEST_H_ 5 #ifndef CHROME_TEST_UI_UI_TEST_H_
6 #define CHROME_TEST_UI_UI_TEST_H_ 6 #define CHROME_TEST_UI_UI_TEST_H_
7 7
8 // This file provides a common base for running UI unit tests, which operate 8 // This file provides a common base for running UI unit tests, which operate
9 // the entire browser application in a separate process for holistic 9 // the entire browser application in a separate process for holistic
10 // functional testing. 10 // functional testing.
(...skipping 12 matching lines...) Expand all
23 #include "base/memory/scoped_ptr.h" 23 #include "base/memory/scoped_ptr.h"
24 #include "base/message_loop.h" 24 #include "base/message_loop.h"
25 #include "base/process.h" 25 #include "base/process.h"
26 #include "base/time.h" 26 #include "base/time.h"
27 #include "chrome/test/automation/proxy_launcher.h" 27 #include "chrome/test/automation/proxy_launcher.h"
28 #include "googleurl/src/gurl.h" 28 #include "googleurl/src/gurl.h"
29 #include "testing/platform_test.h" 29 #include "testing/platform_test.h"
30 30
31 class AutomationProxy; 31 class AutomationProxy;
32 class BrowserProxy; 32 class BrowserProxy;
33 class FilePath;
34 class GURL; 33 class GURL;
35 class TabProxy; 34 class TabProxy;
36 35
37 namespace base { 36 namespace base {
38 class DictionaryValue; 37 class DictionaryValue;
38 class FilePath;
39 } 39 }
40 40
41 // Base class for UI Tests. This implements the core of the functions. 41 // Base class for UI Tests. This implements the core of the functions.
42 // This base class decouples all automation functionality from testing 42 // This base class decouples all automation functionality from testing
43 // infrastructure, for use without gtest. 43 // infrastructure, for use without gtest.
44 // If using gtest, you probably want to inherit from UITest (declared below) 44 // If using gtest, you probably want to inherit from UITest (declared below)
45 // rather than UITestBase. 45 // rather than UITestBase.
46 class UITestBase { 46 class UITestBase {
47 public: 47 public:
48 // Profile theme type choices. 48 // Profile theme type choices.
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 void WaitUntilTabCount(int tab_count); 139 void WaitUntilTabCount(int tab_count);
140 140
141 // Closes the specified browser. Returns true if the browser was closed. 141 // Closes the specified browser. Returns true if the browser was closed.
142 // This call is blocking. |application_closed| is set to true if this was 142 // This call is blocking. |application_closed| is set to true if this was
143 // the last browser window (and therefore as a result of it closing the 143 // the last browser window (and therefore as a result of it closing the
144 // browser process terminated). Note that in that case this method returns 144 // browser process terminated). Note that in that case this method returns
145 // after the browser process has terminated. 145 // after the browser process has terminated.
146 bool CloseBrowser(BrowserProxy* browser, bool* application_closed) const; 146 bool CloseBrowser(BrowserProxy* browser, bool* application_closed) const;
147 147
148 // Gets the executable file path of the Chrome browser process. 148 // Gets the executable file path of the Chrome browser process.
149 const FilePath::CharType* GetExecutablePath(); 149 const base::FilePath::CharType* GetExecutablePath();
150 150
151 // Returns the directory name where the "typical" user data is that we use 151 // Returns the directory name where the "typical" user data is that we use
152 // for testing. 152 // for testing.
153 static FilePath ComputeTypicalUserDataSource(ProfileType profile_type); 153 static base::FilePath ComputeTypicalUserDataSource(ProfileType profile_type);
154 154
155 // Return the user data directory being used by the browser instance in 155 // Return the user data directory being used by the browser instance in
156 // UITest::SetUp(). 156 // UITest::SetUp().
157 FilePath user_data_dir() const { 157 base::FilePath user_data_dir() const {
158 return launcher_->user_data_dir(); 158 return launcher_->user_data_dir();
159 } 159 }
160 160
161 // Called by some tests that wish to have a base profile to start from. This 161 // Called by some tests that wish to have a base profile to start from. This
162 // "user data directory" (containing one or more profiles) will be recursively 162 // "user data directory" (containing one or more profiles) will be recursively
163 // copied into the user data directory for the test and the files will be 163 // copied into the user data directory for the test and the files will be
164 // evicted from the OS cache. To start with a blank profile, supply an empty 164 // evicted from the OS cache. To start with a blank profile, supply an empty
165 // string (the default). 165 // string (the default).
166 const FilePath& template_user_data() const { return template_user_data_; } 166 const base::FilePath& template_user_data() const { return template_user_data_; }
167 void set_template_user_data(const FilePath& template_user_data) { 167 void set_template_user_data(const base::FilePath& template_user_data) {
168 template_user_data_ = template_user_data; 168 template_user_data_ = template_user_data;
169 } 169 }
170 170
171 // Get the handle of browser process connected to the automation. This 171 // Get the handle of browser process connected to the automation. This
172 // function only returns a reference to the handle so the caller does not 172 // function only returns a reference to the handle so the caller does not
173 // own the handle returned. 173 // own the handle returned.
174 base::ProcessHandle process() const { return launcher_->process(); } 174 base::ProcessHandle process() const { return launcher_->process(); }
175 175
176 // Return the process id of the browser process (-1 on error). 176 // Return the process id of the browser process (-1 on error).
177 base::ProcessId browser_process_id() const { return launcher_->process_id(); } 177 base::ProcessId browser_process_id() const { return launcher_->process_id(); }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 219
220 // Get the number of crash dumps we've logged since the test started. 220 // Get the number of crash dumps we've logged since the test started.
221 int GetCrashCount() const; 221 int GetCrashCount() const;
222 222
223 // Returns empty string if there were no unexpected Chrome asserts or crashes, 223 // Returns empty string if there were no unexpected Chrome asserts or crashes,
224 // a string describing the failures otherwise. As a side effect, it will fail 224 // a string describing the failures otherwise. As a side effect, it will fail
225 // with EXPECT_EQ macros if this code runs within a gtest harness. 225 // with EXPECT_EQ macros if this code runs within a gtest harness.
226 std::string CheckErrorsAndCrashes() const; 226 std::string CheckErrorsAndCrashes() const;
227 227
228 // Use Chromium binaries from the given directory. 228 // Use Chromium binaries from the given directory.
229 void SetBrowserDirectory(const FilePath& dir); 229 void SetBrowserDirectory(const base::FilePath& dir);
230 230
231 // Appends a command-line switch (no associated value) to be passed to the 231 // Appends a command-line switch (no associated value) to be passed to the
232 // browser when launched. 232 // browser when launched.
233 void AppendBrowserLaunchSwitch(const char* name); 233 void AppendBrowserLaunchSwitch(const char* name);
234 234
235 // Appends a command-line switch with associated value to be passed to the 235 // Appends a command-line switch with associated value to be passed to the
236 // browser when launched. 236 // browser when launched.
237 void AppendBrowserLaunchSwitch(const char* name, const char* value); 237 void AppendBrowserLaunchSwitch(const char* name, const char* value);
238 238
239 // Pass-through to AutomationProxy::BeginTracing. 239 // Pass-through to AutomationProxy::BeginTracing.
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 // backward compatibility. The returned pointer MUST be deleted by the 276 // backward compatibility. The returned pointer MUST be deleted by the
277 // caller if non-NULL. 277 // caller if non-NULL.
278 scoped_refptr<TabProxy> GetActiveTab(); 278 scoped_refptr<TabProxy> GetActiveTab();
279 279
280 // Like above, but looks at the window at the given index. 280 // Like above, but looks at the window at the given index.
281 scoped_refptr<TabProxy> GetActiveTab(int window_index); 281 scoped_refptr<TabProxy> GetActiveTab(int window_index);
282 282
283 // ********* Member variables ********* 283 // ********* Member variables *********
284 284
285 // Path to the browser executable. 285 // Path to the browser executable.
286 FilePath browser_directory_; 286 base::FilePath browser_directory_;
287 287
288 // Path to the unit test data. 288 // Path to the unit test data.
289 FilePath test_data_directory_; 289 base::FilePath test_data_directory_;
290 290
291 // Command to launch the browser 291 // Command to launch the browser
292 CommandLine launch_arguments_; 292 CommandLine launch_arguments_;
293 293
294 // The number of errors expected during the run (generally 0). 294 // The number of errors expected during the run (generally 0).
295 size_t expected_errors_; 295 size_t expected_errors_;
296 296
297 // The number of crashes expected during the run (generally 0). 297 // The number of crashes expected during the run (generally 0).
298 int expected_crashes_; 298 int expected_crashes_;
299 299
300 // Homepage used for testing. 300 // Homepage used for testing.
301 std::string homepage_; 301 std::string homepage_;
302 302
303 // Name of currently running automated test passed to Chrome process. 303 // Name of currently running automated test passed to Chrome process.
304 std::string test_name_; 304 std::string test_name_;
305 305
306 // Wait for initial loads to complete in SetUp() before running test body. 306 // Wait for initial loads to complete in SetUp() before running test body.
307 bool wait_for_initial_loads_; 307 bool wait_for_initial_loads_;
308 308
309 // This can be set to true to have the test run the dom automation case. 309 // This can be set to true to have the test run the dom automation case.
310 bool dom_automation_enabled_; 310 bool dom_automation_enabled_;
311 311
312 // See set_template_user_data(). 312 // See set_template_user_data().
313 FilePath template_user_data_; 313 base::FilePath template_user_data_;
314 314
315 // Determines if the window is shown or hidden. Defaults to hidden. 315 // Determines if the window is shown or hidden. Defaults to hidden.
316 bool show_window_; 316 bool show_window_;
317 317
318 // If true the profile is cleared before launching. Default is true. 318 // If true the profile is cleared before launching. Default is true.
319 bool clear_profile_; 319 bool clear_profile_;
320 320
321 // Should we supply the testing channel id 321 // Should we supply the testing channel id
322 // on the command line? Default is true. 322 // on the command line? Default is true.
323 bool include_testing_id_; 323 bool include_testing_id_;
324 324
325 // Enable file cookies, default is true. 325 // Enable file cookies, default is true.
326 bool enable_file_cookies_; 326 bool enable_file_cookies_;
327 327
328 // Launches browser and AutomationProxy. 328 // Launches browser and AutomationProxy.
329 scoped_ptr<ProxyLauncher> launcher_; 329 scoped_ptr<ProxyLauncher> launcher_;
330 330
331 // Are we using a profile with a complex theme? 331 // Are we using a profile with a complex theme?
332 ProfileType profile_type_; 332 ProfileType profile_type_;
333 333
334 // PID file for websocket server. 334 // PID file for websocket server.
335 FilePath websocket_pid_file_; 335 base::FilePath websocket_pid_file_;
336 336
337 private: 337 private:
338 // Time the test was started (so we can check for new crash dumps) 338 // Time the test was started (so we can check for new crash dumps)
339 base::Time test_start_time_; 339 base::Time test_start_time_;
340 }; 340 };
341 341
342 class UITest : public UITestBase, public PlatformTest { 342 class UITest : public UITestBase, public PlatformTest {
343 protected: 343 protected:
344 UITest() {} 344 UITest() {}
345 explicit UITest(MessageLoop::Type msg_loop_type) 345 explicit UITest(MessageLoop::Type msg_loop_type)
(...skipping 24 matching lines...) Expand all
370 const std::string &id, const GURL &url, 370 const std::string &id, const GURL &url,
371 const std::string& test_complete_cookie, 371 const std::string& test_complete_cookie,
372 const std::string& expected_cookie_value, 372 const std::string& expected_cookie_value,
373 const base::TimeDelta wait_time); 373 const base::TimeDelta wait_time);
374 374
375 // Wrapper around EvictFileFromSystemCache to retry 10 times in case of 375 // Wrapper around EvictFileFromSystemCache to retry 10 times in case of
376 // error. 376 // error.
377 // Apparently needed for Windows buildbots (to workaround an error when 377 // Apparently needed for Windows buildbots (to workaround an error when
378 // file is in use). 378 // file is in use).
379 // TODO(phajdan.jr): Move to test_file_util if we need it in more places. 379 // TODO(phajdan.jr): Move to test_file_util if we need it in more places.
380 bool EvictFileFromSystemCacheWrapper(const FilePath& path); 380 bool EvictFileFromSystemCacheWrapper(const base::FilePath& path);
381 381
382 // Polls the tab for a JavaScript condition and returns once one of the 382 // Polls the tab for a JavaScript condition and returns once one of the
383 // following conditions hold true: 383 // following conditions hold true:
384 // - The JavaScript condition evaluates to true (return true). 384 // - The JavaScript condition evaluates to true (return true).
385 // - The browser process died (return false). 385 // - The browser process died (return false).
386 // - The timeout value has been exceeded (return false). 386 // - The timeout value has been exceeded (return false).
387 // 387 //
388 // The JavaScript expression is executed in the context of the frame that 388 // The JavaScript expression is executed in the context of the frame that
389 // matches the provided xpath. 389 // matches the provided xpath.
390 bool WaitUntilJavaScriptCondition(TabProxy* tab, 390 bool WaitUntilJavaScriptCondition(TabProxy* tab,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 #ifdef UNIT_TEST 437 #ifdef UNIT_TEST
438 std::ostream& operator<<(std::ostream& out, const std::wstring& wstr); 438 std::ostream& operator<<(std::ostream& out, const std::wstring& wstr);
439 439
440 template<typename T> 440 template<typename T>
441 std::ostream& operator<<(std::ostream& out, const ::scoped_ptr<T>& ptr) { 441 std::ostream& operator<<(std::ostream& out, const ::scoped_ptr<T>& ptr) {
442 return out << ptr.get(); 442 return out << ptr.get();
443 } 443 }
444 #endif // UNIT_TEST 444 #endif // UNIT_TEST
445 445
446 #endif // CHROME_TEST_UI_UI_TEST_H_ 446 #endif // CHROME_TEST_UI_UI_TEST_H_
OLDNEW
« no previous file with comments | « chrome/test/logging/win/log_file_reader.h ('k') | chrome/test/webdriver/webdriver_session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698