diff options
author | kuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-19 18:19:07 +0000 |
---|---|---|
committer | kuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-19 18:19:07 +0000 |
commit | df33e777cfc228e34896c0f961b5af6dea40af5e (patch) | |
tree | 5506bdb2f37286c661c948165c9cb01f9ef6b3c8 /chrome/installer/util | |
parent | 5ad2514a46f2e7b188389ed146494a4bbb7eda81 (diff) | |
download | chromium_src-df33e777cfc228e34896c0f961b5af6dea40af5e.zip chromium_src-df33e777cfc228e34896c0f961b5af6dea40af5e.tar.gz chromium_src-df33e777cfc228e34896c0f961b5af6dea40af5e.tar.bz2 |
Make GetDistroBooleanPreference return troolean value.
BUG=23649
TEST=installer_util_unittests, setup_unittests
Review URL: http://codereview.chromium.org/269107
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29423 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/installer/util')
-rw-r--r-- | chrome/installer/util/master_preferences.cc | 20 | ||||
-rw-r--r-- | chrome/installer/util/master_preferences.h | 10 | ||||
-rw-r--r-- | chrome/installer/util/master_preferences_unittest.cc | 77 |
3 files changed, 69 insertions, 38 deletions
diff --git a/chrome/installer/util/master_preferences.cc b/chrome/installer/util/master_preferences.cc index 98f5ba8..8eb3ad1 100644 --- a/chrome/installer/util/master_preferences.cc +++ b/chrome/installer/util/master_preferences.cc @@ -40,23 +40,29 @@ const wchar_t kVerboseLogging[] = L"verbose_logging"; } bool GetDistroBooleanPreference(const DictionaryValue* prefs, - const std::wstring& name) { + const std::wstring& name, + bool* value) { + if (!prefs || !value) + return false; - bool value = false; DictionaryValue* distro = NULL; - if (prefs && prefs->GetDictionary(kDistroDict, &distro) && distro) - distro->GetBoolean(name, &value); - return value; + if (!prefs->GetDictionary(kDistroDict, &distro) || !distro) + return false; + + if (!distro->GetBoolean(name, value)) + return false; + + return true; } bool GetDistroIntegerPreference(const DictionaryValue* prefs, const std::wstring& name, int* value) { - if (!value) + if (!prefs || !value) return false; DictionaryValue* distro = NULL; - if (!prefs || !prefs->GetDictionary(kDistroDict, &distro) || !distro) + if (!prefs->GetDictionary(kDistroDict, &distro) || !distro) return false; if (!distro->GetInteger(name, value)) diff --git a/chrome/installer/util/master_preferences.h b/chrome/installer/util/master_preferences.h index 335a4ad..a809c97 100644 --- a/chrome/installer/util/master_preferences.h +++ b/chrome/installer/util/master_preferences.h @@ -65,12 +65,14 @@ extern const wchar_t kVerboseLogging[]; const wchar_t kDefaultMasterPrefs[] = L"master_preferences"; // Gets the value of given boolean preference |name| from |prefs| dictionary -// which is assumed to contain a dictionary named "distribution". +// which is assumed to contain a dictionary named "distribution". Returns +// true if the value is read successfully, otherwise false. bool GetDistroBooleanPreference(const DictionaryValue* prefs, - const std::wstring& name); + const std::wstring& name, + bool* value); -// This function gets ping delay (ping_delay in the sample above) from master -// preferences. +// This function gets value of an integer preference from master +// preferences. Returns true if the value is read successfully, otherwise false. bool GetDistroIntegerPreference(const DictionaryValue* prefs, const std::wstring& name, int* value); diff --git a/chrome/installer/util/master_preferences_unittest.cc b/chrome/installer/util/master_preferences_unittest.cc index 18f3a6b..ad827eb 100644 --- a/chrome/installer/util/master_preferences_unittest.cc +++ b/chrome/installer/util/master_preferences_unittest.cc @@ -56,40 +56,56 @@ TEST(MasterPreferencesTest, ParseDistroParams) { scoped_ptr<DictionaryValue> prefs( installer_util::ParseDistributionPreferences(prefs_file)); EXPECT_TRUE(prefs.get() != NULL); + bool value = true; EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroSkipFirstRunPref)); + installer_util::master_preferences::kDistroSkipFirstRunPref, &value) && + value); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroShowWelcomePage)); + installer_util::master_preferences::kDistroShowWelcomePage, &value) && + value); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroImportSearchPref)); + installer_util::master_preferences::kDistroImportSearchPref, &value) && + value); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroImportHistoryPref)); + installer_util::master_preferences::kDistroImportHistoryPref, &value) && + value); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroImportBookmarksPref)); + installer_util::master_preferences::kDistroImportBookmarksPref, &value) && + value); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroImportHomePagePref)); + installer_util::master_preferences::kDistroImportHomePagePref, &value) && + value); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kCreateAllShortcuts)); + installer_util::master_preferences::kCreateAllShortcuts, &value) && + value); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDoNotLaunchChrome)); + installer_util::master_preferences::kDoNotLaunchChrome, &value) && + value); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kMakeChromeDefault)); + installer_util::master_preferences::kMakeChromeDefault, &value) && + value); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kMakeChromeDefaultForUser)); + installer_util::master_preferences::kMakeChromeDefaultForUser, &value) && + value); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kSystemLevel)); + installer_util::master_preferences::kSystemLevel, &value) && + value); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kVerboseLogging)); + installer_util::master_preferences::kVerboseLogging, &value) && + value); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kRequireEula)); + installer_util::master_preferences::kRequireEula, &value) && + value); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kAltShortcutText)); + installer_util::master_preferences::kAltShortcutText, &value) && + value); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kAltFirstRunBubble)); + installer_util::master_preferences::kAltFirstRunBubble, &value) && + value); int icon_index = 0; EXPECT_TRUE(installer_util::GetDistroIntegerPreference(prefs.get(), installer_util::master_preferences::kChromeShortcutIconIndex, @@ -121,30 +137,37 @@ TEST(MasterPreferencesTest, ParseMissingDistroParams) { scoped_ptr<DictionaryValue> prefs( installer_util::ParseDistributionPreferences(prefs_file)); EXPECT_TRUE(prefs.get() != NULL); + bool value = false; EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroSkipFirstRunPref)); + installer_util::master_preferences::kDistroSkipFirstRunPref, &value) && + value); EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroShowWelcomePage)); + installer_util::master_preferences::kDistroShowWelcomePage, &value)); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroImportSearchPref)); + installer_util::master_preferences::kDistroImportSearchPref, &value) && + value); EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroImportHistoryPref)); - EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroImportBookmarksPref)); + installer_util::master_preferences::kDistroImportHistoryPref, &value)); + EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), + installer_util::master_preferences::kDistroImportBookmarksPref, &value)); + EXPECT_FALSE(value); EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroImportHomePagePref)); + installer_util::master_preferences::kDistroImportHomePagePref, &value)); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kCreateAllShortcuts)); + installer_util::master_preferences::kCreateAllShortcuts, &value) && + value); EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDoNotLaunchChrome)); + installer_util::master_preferences::kDoNotLaunchChrome, &value) && + value); EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDoNotRegisterForUpdateLaunch)); + installer_util::master_preferences::kDoNotRegisterForUpdateLaunch, + &value)); EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kMakeChromeDefault)); + installer_util::master_preferences::kMakeChromeDefault, &value)); EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kMakeChromeDefaultForUser)); + installer_util::master_preferences::kMakeChromeDefaultForUser, &value)); int icon_index = 0; EXPECT_FALSE(installer_util::GetDistroIntegerPreference(prefs.get(), |