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

Unified Diff: chrome/test/ui/ui_test.h

Issue 5967003: Refactor UITestBase/ProxyLauncher. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fix issues and clean up. Created 9 years, 12 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/ui/ui_test.h
diff --git a/chrome/test/ui/ui_test.h b/chrome/test/ui/ui_test.h
index 3305cc5c3666d280431d6e981a118b0d6381d3dd..87ff21c4cf0d93b3bd7a990a6f4f4247bfd5f300 100644
--- a/chrome/test/ui/ui_test.h
+++ b/chrome/test/ui/ui_test.h
@@ -31,6 +31,7 @@
// AutomationProxy here, but many files that #include this one don't
// themselves #include automation_proxy.h.
#include "chrome/test/automation/automation_proxy.h"
+#include "chrome/test/automation/proxy_launcher.h"
#include "testing/platform_test.h"
class AutomationProxy;
@@ -38,7 +39,6 @@ class BrowserProxy;
class DictionaryValue;
class FilePath;
class GURL;
-class ProxyLauncher;
class ScopedTempDir;
class TabProxy;
@@ -207,85 +207,16 @@ class UITestBase {
// own the handle returned.
base::ProcessHandle process() { return process_; }
- // Get/Set a flag to run the renderer in process when running the
- // tests.
- static bool in_process_renderer() { return in_process_renderer_; }
- static void set_in_process_renderer(bool value) {
- in_process_renderer_ = value;
- }
-
- // Get/Set a flag to run the renderer outside the sandbox when running the
- // tests
- static bool no_sandbox() { return no_sandbox_; }
- static void set_no_sandbox(bool value) {
- no_sandbox_ = value;
- }
-
- // Get/Set a flag to run with DCHECKs enabled in release.
- static bool enable_dcheck() { return enable_dcheck_; }
- static void set_enable_dcheck(bool value) {
- enable_dcheck_ = value;
- }
-
- // Get/Set a flag to dump the process memory without crashing on DCHECKs.
- static bool silent_dump_on_dcheck() { return silent_dump_on_dcheck_; }
- static void set_silent_dump_on_dcheck(bool value) {
- silent_dump_on_dcheck_ = value;
- }
-
- // Get/Set a flag to disable breakpad handling.
- static bool disable_breakpad() { return disable_breakpad_; }
- static void set_disable_breakpad(bool value) {
- disable_breakpad_ = value;
- }
-
- // Get/Set a flag to run the plugin processes inside the sandbox when running
- // the tests
- static bool safe_plugins() { return safe_plugins_; }
- static void set_safe_plugins(bool value) {
- safe_plugins_ = value;
- }
-
- static bool show_error_dialogs() { return show_error_dialogs_; }
- static void set_show_error_dialogs(bool value) {
- show_error_dialogs_ = value;
- }
-
- static bool full_memory_dump() { return full_memory_dump_; }
- static void set_full_memory_dump(bool value) {
- full_memory_dump_ = value;
- }
-
- static bool dump_histograms_on_exit() { return dump_histograms_on_exit_; }
- static void set_dump_histograms_on_exit(bool value) {
- dump_histograms_on_exit_ = value;
- }
-
- static const std::string& js_flags() { return js_flags_; }
- static void set_js_flags(const std::string& value) {
- js_flags_ = value;
- }
-
- static const std::string& log_level() { return log_level_; }
- static void set_log_level(const std::string& value) {
- log_level_ = value;
- }
-
- // Profile theme type choices.
- typedef enum {
- DEFAULT_THEME = 0,
- COMPLEX_THEME = 1,
- NATIVE_THEME = 2,
- CUSTOM_FRAME = 3,
- CUSTOM_FRAME_NATIVE_THEME = 4,
- } ProfileType;
-
// Returns the directory name where the "typical" user data is that we use
// for testing.
- static FilePath ComputeTypicalUserDataSource(ProfileType profile_type);
+ static FilePath ComputeTypicalUserDataSource(
+ ProxyLauncher::ProfileType profile_type);
- // Rewrite the preferences file to point to the proper image directory.
- static void RewritePreferencesFile(const FilePath& user_data_dir);
+ // Return the user data directory being used by the browser instance in
+ // UITest::SetUp().
+ FilePath user_data_dir() const {
+ return launcher_->user_data_dir();
+ }
// Called by some tests that wish to have a base profile to start from. This
// "user data directory" (containing one or more profiles) will be recursively
@@ -297,10 +228,6 @@ class UITestBase {
template_user_data_ = template_user_data;
}
- // Return the user data directory being used by the browser instance in
- // UITest::SetUp().
- FilePath user_data_dir() const;
-
// Return the process id of the browser process (-1 on error).
base::ProcessId browser_process_id() const { return process_id_; }
@@ -324,7 +251,7 @@ class UITestBase {
}
void set_ui_test_name(const std::string& name) {
- ui_test_name_ = name;
+ launcher_->set_ui_test_name(name);
}
// Fetch the state which determines whether the profile will be cleared on
@@ -341,18 +268,11 @@ class UITestBase {
// Sets homepage_. Should be called before launching browser to have
// any effect.
void set_homepage(const std::string& homepage) {
- homepage_ = homepage;
+ launcher_->set_homepage(homepage);
}
- // Different ways to quit the browser.
- typedef enum {
- WINDOW_CLOSE,
- USER_QUIT,
- SESSION_ENDING,
- } ShutdownType;
-
// Sets the shutdown type, which defaults to WINDOW_CLOSE.
- void set_shutdown_type(ShutdownType value) {
+ void set_shutdown_type(ProxyLauncher::ShutdownType value) {
shutdown_type_ = value;
}
@@ -362,21 +282,23 @@ class UITestBase {
// Use Chromium binaries from the given directory.
void SetBrowserDirectory(const FilePath& dir);
- private:
- // Check that no processes related to Chrome exist, displaying
- // the given message if any do.
- void AssertAppNotRunning(const std::wstring& error_message);
-
protected:
- AutomationProxy* automation() {
- EXPECT_TRUE(automation_proxy_.get());
- return automation_proxy_.get();
+ AutomationProxy* automation() const {
+ return launcher_->automation();
}
virtual bool ShouldFilterInet() {
return true;
}
+ // Extra command-line switches that need to be passed to the browser are
+ // added in this function. Add new command-line switches here.
+ void SetLaunchSwitches();
+
+ // Helper function for SetLaunchSwitches() that
+ // adds a switch if it's not already there.
+ void SetLaunchSwitch(const std::string& switch_string);
+
// Wait a certain amount of time for all the app processes to exit,
// forcibly killing them if they haven't exited by then.
// It has the side-effect of killing every browser window opened in your
@@ -401,7 +323,6 @@ class UITestBase {
// the run (generally 0).
int expected_crashes_; // The number of crashes expected during
// the run (generally 0).
- std::string homepage_; // Homepage used for testing.
bool wait_for_initial_loads_; // Wait for initial loads to complete
// in SetUp() before running test body.
base::TimeTicks browser_launch_time_; // Time when the browser was run.
@@ -411,7 +332,6 @@ class UITestBase {
FilePath template_user_data_; // See set_template_user_data().
base::ProcessHandle process_; // Handle to the first Chrome process.
base::ProcessId process_id_; // PID of |process_| (for debugging).
- static bool in_process_renderer_; // true if we're in single process mode
bool show_window_; // Determines if the window is shown or
// hidden. Defaults to hidden.
bool clear_profile_; // If true the profile is cleared before
@@ -421,53 +341,15 @@ class UITestBase {
// true.
bool enable_file_cookies_; // Enable file cookies, default is true.
scoped_ptr<ProxyLauncher> launcher_; // Launches browser and AutomationProxy.
- ProfileType profile_type_; // Are we using a profile with a
+ ProxyLauncher::ProfileType profile_type_; // Are we using a profile with a
Paweł Hajdan Jr. 2011/01/05 21:47:59 nit: Could you move the comments above the member
dtu 2011/01/06 01:41:13 Done.
// complex theme?
FilePath websocket_pid_file_; // PID file for websocket server.
- ShutdownType shutdown_type_; // The method for shutting down
+ ProxyLauncher::ShutdownType shutdown_type_; // The method for shutting down
// the browser. Used in ShutdownTest.
private:
- void WaitForBrowserLaunch();
-
- bool LaunchBrowserHelper(const CommandLine& arguments,
- bool wait,
- base::ProcessHandle* process);
-
- // Prepare command line that will be used to launch the child browser process
- // with an UI test.
- void PrepareTestCommandline(CommandLine* arguments);
-
- // We want to have a current history database when we start the browser so
- // things like the NTP will have thumbnails. This method updates the dates
- // in the history to be more recent.
- void UpdateHistoryDates();
-
base::Time test_start_time_; // Time the test was started
// (so we can check for new crash dumps)
- static bool no_sandbox_;
- static bool safe_plugins_;
- static bool full_memory_dump_; // If true, write full memory dump
- // during crash.
- static bool show_error_dialogs_; // If true, a user is paying attention
- // to the test, so show error dialogs.
- static bool dump_histograms_on_exit_; // Include histograms in log on exit.
- static bool enable_dcheck_; // Enable dchecks in release mode.
- static bool silent_dump_on_dcheck_; // Dump process memory on dcheck without
- // crashing.
- static bool disable_breakpad_; // Disable breakpad on the browser.
- static int timeout_ms_; // Timeout in milliseconds to wait
- // for an test to finish.
- static std::string js_flags_; // Flags passed to the JS engine.
- static std::string log_level_; // Logging level.
-
- scoped_ptr<AutomationProxy> automation_proxy_;
-
- std::string ui_test_name_;
-
- // We use a temporary directory for profile to avoid issues with being
- // unable to delete some files because they're in use, etc.
- scoped_ptr<ScopedTempDir> temp_profile_dir_;
};
class UITest : public UITestBase, public PlatformTest {

Powered by Google App Engine
This is Rietveld 408576698