diff options
author | mirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-13 16:49:47 +0000 |
---|---|---|
committer | mirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-13 16:49:47 +0000 |
commit | 574043bea0a1952fe90d1014eadaeb85976a1b05 (patch) | |
tree | 35ac364bbac7256bca450b724b136a0e56ab0d1e | |
parent | b672d5fcce4beff54ff029ffd57b396c365d0bd2 (diff) | |
download | chromium_src-574043bea0a1952fe90d1014eadaeb85976a1b05.zip chromium_src-574043bea0a1952fe90d1014eadaeb85976a1b05.tar.gz chromium_src-574043bea0a1952fe90d1014eadaeb85976a1b05.tar.bz2 |
Enable StartupTest.PerfColdComplexTheme, and add rewriting of Preference file to ensure that the images are picked up for the complex theme tests.
BUG= http://crbug.com/18767
TEST= none
Review URL: http://codereview.chromium.org/164402
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23313 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/test/data/profiles/complex_theme/Default/PreferencesTemplate (renamed from chrome/test/data/profiles/complex_theme/Default/Preferences) | 22 | ||||
-rw-r--r-- | chrome/test/startup/feature_startup_test.cc | 2 | ||||
-rw-r--r-- | chrome/test/startup/startup_test.cc | 28 | ||||
-rw-r--r-- | chrome/test/ui/ui_test.cc | 38 | ||||
-rw-r--r-- | chrome/test/ui/ui_test.h | 5 |
5 files changed, 77 insertions, 18 deletions
diff --git a/chrome/test/data/profiles/complex_theme/Default/Preferences b/chrome/test/data/profiles/complex_theme/Default/PreferencesTemplate index 46435c4..227f142 100644 --- a/chrome/test/data/profiles/complex_theme/Default/Preferences +++ b/chrome/test/data/profiles/complex_theme/Default/PreferencesTemplate @@ -1,5 +1,12 @@ { + "download": { + "directory_upgrade": true, + "extensions_to_open": "" + }, "extensions": { + "autoupdate": { + "next_check": "12894520286433189" + }, "settings": { "mblmlcbknbnfebdfjnolmcapmdofhmme": { "location": 1, @@ -26,12 +33,12 @@ }, "id": "mblmlcbknbnfebdfjnolmcapmdofhmme", "images": { - "theme_button_background": "..\\test\\data\\profiles\\complex_theme\\Default\\Extensions\\mblmlcbknbnfebdfjnolmcapmdofhmme\\1.1\\i/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUYwsgCDA", - "theme_frame": "..\\test\\data\\profiles\\complex_theme\\Default\\Extensions\\mblmlcbknbnfebdfjnolmcapmdofhmme\\1.1\\i/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUYw8gCDA", - "theme_ntp_background": "..\\test\\data\\profiles\\complex_theme\\Default\\Extensions\\mblmlcbknbnfebdfjnolmcapmdofhmme\\1.1\\i/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUYj9gCDA", - "theme_tab_background": "..\\test\\data\\profiles\\complex_theme\\Default\\Extensions\\mblmlcbknbnfebdfjnolmcapmdofhmme\\1.1\\i/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUY_c8CDA", - "theme_toolbar": "..\\test\\data\\profiles\\complex_theme\\Default\\Extensions\\mblmlcbknbnfebdfjnolmcapmdofhmme\\1.1\\i/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUYnMgCDA", - "theme_window_control_background": "..\\test\\data\\profiles\\complex_theme\\Default\\Extensions\\mblmlcbknbnfebdfjnolmcapmdofhmme\\1.1\\i/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUYjNgCDA" + "theme_button_background": "$1/Default/Extensions/mblmlcbknbnfebdfjnolmcapmdofhmme/1.1/i/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUYwsgCDA", + "theme_frame": "$1/Default/Extensions/mblmlcbknbnfebdfjnolmcapmdofhmme/1.1/i/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUYw8gCDA", + "theme_ntp_background": "$1/Default/Extensions/mblmlcbknbnfebdfjnolmcapmdofhmme/1.1/i/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUYj9gCDA", + "theme_tab_background": "$1/Default/Extensions/mblmlcbknbnfebdfjnolmcapmdofhmme/1.1/i/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUY_c8CDA", + "theme_toolbar": "$1/Default/Extensions/mblmlcbknbnfebdfjnolmcapmdofhmme/1.1/i/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUYnMgCDA", + "theme_window_control_background": "$1/Default/Extensions/mblmlcbknbnfebdfjnolmcapmdofhmme/1.1/i/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUYjNgCDA" }, "properties": { "ntp_background_alignment": "top", @@ -48,6 +55,9 @@ "name": "Not Signed In", "nickname": "not-signed-in" }, + "session": { + "urls_to_restore_on_startup": [ ] + }, "spellcheck": { "dictionary": "en-US" } diff --git a/chrome/test/startup/feature_startup_test.cc b/chrome/test/startup/feature_startup_test.cc index 3e4dddc..7efe921 100644 --- a/chrome/test/startup/feature_startup_test.cc +++ b/chrome/test/startup/feature_startup_test.cc @@ -43,6 +43,8 @@ class NewTabUIStartupTest : public UITest { // we should report cold timings. void RunStartupTest(const char* label, bool want_warm, bool important, int profile_type) { + profile_type_ = profile_type; + // Install the location of the test profile file. set_template_user_data(UITest::ComputeTypicalUserDataSource( profile_type).ToWStringHack()); diff --git a/chrome/test/startup/startup_test.cc b/chrome/test/startup/startup_test.cc index 7a187de..59908a8 100644 --- a/chrome/test/startup/startup_test.cc +++ b/chrome/test/startup/startup_test.cc @@ -29,6 +29,15 @@ class StartupTest : public UITest { void RunStartupTest(const char* graph, const char* trace, bool test_cold, bool important, int profile_type) { + profile_type_ = profile_type; + + // Sets the profile data for the run. For now, this is only used for + // the complex theme test. + if (profile_type == UITest::COMPLEX_THEME) { + set_template_user_data(UITest::ComputeTypicalUserDataSource( + profile_type).ToWStringHack()); + } + const int kNumCyclesMax = 20; int numCycles = kNumCyclesMax; // It's ok for unit test code to use getenv(), isn't it? @@ -64,13 +73,6 @@ class StartupTest : public UITest { NOTIMPLEMENTED() << "gears not enabled yet"; #endif } - - // Sets the profile data for the run. For now, this is only used for - // the complex theme test. - if (profile_type == UITest::COMPLEX_THEME) - set_template_user_data(UITest::ComputeTypicalUserDataSource( - profile_type).ToWStringHack()); - UITest::SetUp(); TimeTicks end_time = TimeTicks::Now(); timings[i] = end_time - browser_launch_time_; @@ -83,6 +85,10 @@ class StartupTest : public UITest { // Re-use the profile data after first run so that the noise from // creating databases doesn't impact all the runs. clear_profile_ = false; + // Destroy template_user_data_ for complex theme so we don't try to + // rewrite each time through. + if (profile_type == UITest::COMPLEX_THEME) + set_template_user_data(L""); } } @@ -161,9 +167,9 @@ TEST_F(StartupFileTest, PerfColdGears) { } #endif -//TEST_F(StartupTest, PerfColdComplexTheme) { -// RunStartupTest("warm", "t-theme", false /* warm */, -// false /* not important */, UITest::COMPLEX_THEME); -//} +TEST_F(StartupTest, PerfColdComplexTheme) { + RunStartupTest("warm", "t-theme", false /* warm */, + false /* not important */, UITest::COMPLEX_THEME); +} } // namespace diff --git a/chrome/test/ui/ui_test.cc b/chrome/test/ui/ui_test.cc index 69de19a..ccb0baf 100644 --- a/chrome/test/ui/ui_test.cc +++ b/chrome/test/ui/ui_test.cc @@ -97,6 +97,7 @@ UITest::UITest() include_testing_id_(true), use_existing_browser_(default_use_existing_browser_), enable_file_cookies_(true), + profile_type_(UITest::DEFAULT_THEME), test_start_time_(base::Time::NowFromSystemTime()), command_execution_timeout_ms_(kMaxTestExecutionTime), action_timeout_ms_(kWaitForActionMsec), @@ -307,7 +308,7 @@ void UITest::LaunchBrowser(const CommandLine& arguments, bool clear_profile) { chrome::kBrowserProcessExecutablePath)); CommandLine command_line(command.ToWStringHack()); - // Add any explict command line flags passed to the process. + // Add any explicit command line flags passed to the process. std::wstring extra_chrome_flags = CommandLine::ForCurrentProcess()->GetSwitchValue(kExtraChromeFlagsSwitch); if (!extra_chrome_flags.empty()) { @@ -423,6 +424,11 @@ void UITest::LaunchBrowser(const CommandLine& arguments, bool clear_profile) { ASSERT_TRUE(file_util::CopyRecursiveDirNoCache( template_user_data_, user_data_dir_.ToWStringHack())); + // If we're using the complex theme data, we need to write the + // user_data_dir_ to our preferences file. + if (profile_type_ == UITest::COMPLEX_THEME) { + RewritePreferencesFile(user_data_dir_); + } } browser_launch_time_ = TimeTicks::Now(); @@ -965,6 +971,36 @@ bool UITest::EvictFileFromSystemCacheWrapper(const FilePath& path) { } // static +void UITest::RewritePreferencesFile(const FilePath& user_data_dir) { + const FilePath pref_template_path( + user_data_dir.AppendASCII("Default").AppendASCII("PreferencesTemplate")); + const FilePath pref_path( + user_data_dir.AppendASCII("Default").AppendASCII("Preferences")); + + // Read in preferences template. + std::string pref_string; + EXPECT_TRUE(file_util::ReadFileToString(pref_template_path, &pref_string)); + string16 format_string = ASCIIToUTF16(pref_string); + + // Make sure temp directory has the proper format for writing to prefs file. + std::wstring user_data_dir_w(user_data_dir.value().c_str()); +#if defined(OS_WIN) + // In Windows, the FilePath will write '\' for the path separators; change + // these to a separator that won't trigger escapes. + std::replace(user_data_dir_w.begin(), + user_data_dir_w.end(), '\\', '/'); +#endif + + // Rewrite prefs file. + std::vector<string16> subst; + subst.push_back(user_data_dir_w); + const std::string prefs_string = + UTF16ToASCII(ReplaceStringPlaceholders(format_string, subst, NULL)); + EXPECT_TRUE(file_util::WriteFile(pref_path, prefs_string.c_str(), + prefs_string.size())); +} + +// static FilePath UITest::ComputeTypicalUserDataSource(int profile_type) { FilePath source_history_file; EXPECT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, diff --git a/chrome/test/ui/ui_test.h b/chrome/test/ui/ui_test.h index a512fb7..2b49f82 100644 --- a/chrome/test/ui/ui_test.h +++ b/chrome/test/ui/ui_test.h @@ -342,6 +342,9 @@ class UITest : public testing::Test { // for testing. static FilePath ComputeTypicalUserDataSource(int profile_type); + // Rewrite the preferences file to point to the proper image directory. + static void RewritePreferencesFile(const FilePath& 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 // copied into the user data directory for the test and the files will be @@ -479,6 +482,8 @@ class UITest : public testing::Test { bool use_existing_browser_; // Duplicate of the static version. // Default value comes from static. bool enable_file_cookies_; // Enable file cookies, default is true. + int profile_type_; // Are we using a profile with a + // complex theme? private: base::Time test_start_time_; // Time the test was started |