summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorrsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-10 13:49:01 +0000
committerrsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-10 13:49:01 +0000
commitcab6acfc576ca1397106fcdba7058d93f3c01667 (patch)
tree5da5c8c12ee87f2d4b6cc9e1c2f3d894e8528b67 /chrome
parentd2ebf7bff411b20575d506de46805f19182dee24 (diff)
downloadchromium_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.cc42
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());