summaryrefslogtreecommitdiffstats
path: root/chrome/installer/util
diff options
context:
space:
mode:
authorkuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-19 18:19:07 +0000
committerkuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-19 18:19:07 +0000
commitdf33e777cfc228e34896c0f961b5af6dea40af5e (patch)
tree5506bdb2f37286c661c948165c9cb01f9ef6b3c8 /chrome/installer/util
parent5ad2514a46f2e7b188389ed146494a4bbb7eda81 (diff)
downloadchromium_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.cc20
-rw-r--r--chrome/installer/util/master_preferences.h10
-rw-r--r--chrome/installer/util/master_preferences_unittest.cc77
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(),