diff options
author | rsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-10 13:49:01 +0000 |
---|---|---|
committer | rsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-10 13:49:01 +0000 |
commit | cab6acfc576ca1397106fcdba7058d93f3c01667 (patch) | |
tree | 5da5c8c12ee87f2d4b6cc9e1c2f3d894e8528b67 /chrome | |
parent | d2ebf7bff411b20575d506de46805f19182dee24 (diff) | |
download | chromium_src-cab6acfc576ca1397106fcdba7058d93f3c01667.zip chromium_src-cab6acfc576ca1397106fcdba7058d93f3c01667.tar.gz chromium_src-cab6acfc576ca1397106fcdba7058d93f3c01667.tar.bz2 |
[Mac] Fix a crash in SessionStartupPrefTest on 10.7.
ChromeOS isn't the only platform that uses SessionStartupPref::LAST as the
default. On 10.7, it can also be the default depending on the user's
system settings.
BUG=103912
TEST=Execute `defaults write -globalDomain NSQuitAlwaysKeepsWindows -bool YES` and then run unit_tests:SessionStartupPrefTest on Lion.
Review URL: https://chromiumcodereview.appspot.com/10389057
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136290 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/prefs/session_startup_pref_unittest.cc | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/chrome/browser/prefs/session_startup_pref_unittest.cc b/chrome/browser/prefs/session_startup_pref_unittest.cc index 72a4950..c4201c0 100644 --- a/chrome/browser/prefs/session_startup_pref_unittest.cc +++ b/chrome/browser/prefs/session_startup_pref_unittest.cc @@ -8,6 +8,10 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" +#if defined(OS_MACOSX) +#include "chrome/browser/ui/cocoa/window_restore_utils.h" +#endif + // Unit tests for SessionStartupPref. class SessionStartupPrefTest : public testing::Test { public: @@ -17,6 +21,17 @@ class SessionStartupPrefTest : public testing::Test { pref_service_->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, true); } + bool IsUseLastOpenDefault() { + // On ChromeOS and OS X 10.7+, the default SessionStartupPref is LAST. +#if defined(OS_CHROMEOS) + return true; +#elif defined(OS_MACOSX) + return restore_utils::IsWindowRestoreEnabled(); +#else + return false; +#endif + } + scoped_ptr<TestingPrefService> pref_service_; }; @@ -71,15 +86,14 @@ TEST_F(SessionStartupPrefTest, DefaultMigration) { SessionStartupPref pref = SessionStartupPref::GetStartupPref( pref_service_.get()); -#if defined(OS_CHROMEOS) - // On ChromeOS, the default is LAST, so no migration should happen. - EXPECT_EQ(SessionStartupPref::LAST, pref.type); - EXPECT_EQ(0U, pref.urls.size()); -#else - EXPECT_EQ(SessionStartupPref::URLS, pref.type); - EXPECT_EQ(1U, pref.urls.size()); - EXPECT_EQ(GURL("http://chromium.org/"), pref.urls[0]); -#endif + if (IsUseLastOpenDefault()) { + EXPECT_EQ(SessionStartupPref::LAST, pref.type); + EXPECT_EQ(0U, pref.urls.size()); + } else { + EXPECT_EQ(SessionStartupPref::URLS, pref.type); + EXPECT_EQ(1U, pref.urls.size()); + EXPECT_EQ(GURL("http://chromium.org/"), pref.urls[0]); + } } // Checks to make sure that if the user had previously not selected anything @@ -96,12 +110,10 @@ TEST_F(SessionStartupPrefTest, DefaultMigrationHomepageIsNTP) { SessionStartupPref pref = SessionStartupPref::GetStartupPref( pref_service_.get()); -#if defined(OS_CHROMEOS) - // On ChromeOS, the default is LAST, so no migration should happen. - EXPECT_EQ(SessionStartupPref::LAST, pref.type); -#else - EXPECT_EQ(SessionStartupPref::DEFAULT, pref.type); -#endif + if (IsUseLastOpenDefault()) + EXPECT_EQ(SessionStartupPref::LAST, pref.type); + else + EXPECT_EQ(SessionStartupPref::DEFAULT, pref.type); // The "URLs to restore on startup" shouldn't get migrated. EXPECT_EQ(0U, pref.urls.size()); |