summaryrefslogtreecommitdiffstats
path: root/chrome/installer/util/master_preferences_unittest.cc
diff options
context:
space:
mode:
authorkuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-05 17:42:50 +0000
committerkuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-05 17:42:50 +0000
commit937efca2308c6640b0cbee15051c50d3413760de (patch)
treeb7a5567c35711773a2909957554432bd978f7ce8 /chrome/installer/util/master_preferences_unittest.cc
parentc9e45da0dec9692d8f59cef2e8c5cdac28baf51b (diff)
downloadchromium_src-937efca2308c6640b0cbee15051c50d3413760de.zip
chromium_src-937efca2308c6640b0cbee15051c50d3413760de.tar.gz
chromium_src-937efca2308c6640b0cbee15051c50d3413760de.tar.bz2
Add some unit tests for master preferences parsing code.
BUG=12849 TEST=none Review URL: http://codereview.chromium.org/160560 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22493 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/installer/util/master_preferences_unittest.cc')
-rw-r--r--chrome/installer/util/master_preferences_unittest.cc189
1 files changed, 189 insertions, 0 deletions
diff --git a/chrome/installer/util/master_preferences_unittest.cc b/chrome/installer/util/master_preferences_unittest.cc
new file mode 100644
index 0000000..8132374
--- /dev/null
+++ b/chrome/installer/util/master_preferences_unittest.cc
@@ -0,0 +1,189 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// Unit tests for master preferences related methods.
+
+#include "base/scoped_ptr.h"
+#include "base/file_util.h"
+#include "chrome/common/json_value_serializer.h"
+#include "chrome/installer/util/master_preferences.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace {
+class MasterPreferencesTest : public testing::Test {
+ protected:
+ virtual void SetUp() {
+ // Currently no setup required.
+ }
+
+ virtual void TearDown() {
+ // Currently no tear down required.
+ }
+};
+} // namespace
+
+TEST(MasterPreferencesTest, ParseDistroParams) {
+ std::wstring prefs_file;
+ ASSERT_TRUE(file_util::CreateTemporaryFileName(&prefs_file));
+ const char text[] =
+ "{ \n"
+ " \"distribution\": { \n"
+ " \"skip_first_run_ui\": true,\n"
+ " \"show_welcome_page\": true,\n"
+ " \"import_search_engine\": true,\n"
+ " \"import_history\": true,\n"
+ " \"import_bookmarks\": true,\n"
+ " \"import_home_page\": true,\n"
+ " \"create_all_shortcuts\": true,\n"
+ " \"do_not_launch_chrome\": true,\n"
+ " \"make_chrome_default\": true,\n"
+ " \"make_chrome_default_for_user\": true,\n"
+ " \"system_level\": true,\n"
+ " \"verbose_logging\": true,\n"
+ " \"require_eula\": true,\n"
+ " \"alternate_shortcut_text\": true,\n"
+ " \"oem_bubble\": true,\n"
+ " \"chrome_shortcut_icon_index\": 1,\n"
+ " \"ping_delay\": 40\n"
+ " },\n"
+ " \"blah\": {\n"
+ " \"import_history\": false\n"
+ " }\n"
+ "} \n";
+
+ EXPECT_TRUE(file_util::WriteFile(prefs_file, text, sizeof(text)));
+ scoped_ptr<DictionaryValue> prefs(
+ installer_util::ParseDistributionPreferences(
+ FilePath::FromWStringHack(prefs_file)));
+ EXPECT_TRUE(prefs.get() != NULL);
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kDistroSkipFirstRunPref));
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kDistroShowWelcomePage));
+
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kDistroImportSearchPref));
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kDistroImportHistoryPref));
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kDistroImportBookmarksPref));
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kDistroImportHomePagePref));
+
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kCreateAllShortcuts));
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kDoNotLaunchChrome));
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kMakeChromeDefault));
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kMakeChromeDefaultForUser));
+
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kSystemLevel));
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kVerboseLogging));
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kRequireEula));
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kAltShortcutText));
+
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kAltFirstRunBubble));
+ int icon_index = 0;
+ EXPECT_TRUE(installer_util::GetDistroIntegerPreference(prefs.get(),
+ installer_util::master_preferences::kChromeShortcutIconIndex,
+ &icon_index));
+ EXPECT_EQ(icon_index, 1);
+ int ping_delay = 90;
+ EXPECT_TRUE(installer_util::GetDistroIntegerPreference(prefs.get(),
+ installer_util::master_preferences::kDistroPingDelay, &ping_delay));
+ EXPECT_EQ(ping_delay, 40);
+ EXPECT_TRUE(file_util::Delete(prefs_file, false));
+}
+
+TEST(MasterPreferencesTest, ParseMissingDistroParams) {
+ std::wstring prefs_file;
+ ASSERT_TRUE(file_util::CreateTemporaryFileName(&prefs_file));
+ const char text[] =
+ "{ \n"
+ " \"distribution\": { \n"
+ " \"skip_first_run_ui\": true,\n"
+ " \"import_search_engine\": true,\n"
+ " \"import_bookmarks\": false,\n"
+ " \"create_all_shortcuts\": true,\n"
+ " \"do_not_launch_chrome\": true,\n"
+ " \"chrome_shortcut_icon_index\": \"bac\"\n"
+ " }\n"
+ "} \n";
+
+ EXPECT_TRUE(file_util::WriteFile(prefs_file, text, sizeof(text)));
+ scoped_ptr<DictionaryValue> prefs(
+ installer_util::ParseDistributionPreferences(
+ FilePath::FromWStringHack(prefs_file)));
+ EXPECT_TRUE(prefs.get() != NULL);
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kDistroSkipFirstRunPref));
+ EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kDistroShowWelcomePage));
+
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kDistroImportSearchPref));
+ EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kDistroImportHistoryPref));
+ EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kDistroImportBookmarksPref));
+ EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kDistroImportHomePagePref));
+
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kCreateAllShortcuts));
+ EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kDoNotLaunchChrome));
+ EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kMakeChromeDefault));
+ EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kMakeChromeDefaultForUser));
+
+ int icon_index = 0;
+ EXPECT_FALSE(installer_util::GetDistroIntegerPreference(prefs.get(),
+ installer_util::master_preferences::kChromeShortcutIconIndex,
+ &icon_index));
+ EXPECT_EQ(icon_index, 0);
+ int ping_delay = 90;
+ EXPECT_FALSE(installer_util::GetDistroIntegerPreference(prefs.get(),
+ installer_util::master_preferences::kDistroPingDelay, &ping_delay));
+ EXPECT_EQ(ping_delay, 90);
+ EXPECT_TRUE(file_util::Delete(prefs_file, false));
+}
+
+TEST(MasterPreferencesTest, FirstRunTabs) {
+ std::wstring prefs_file;
+ ASSERT_TRUE(file_util::CreateTemporaryFileName(&prefs_file));
+ const char text[] =
+ "{ \n"
+ " \"distribution\": { \n"
+ " \"something here\": true\n"
+ " },\n"
+ " \"first_run_tabs\": [\n"
+ " \"http://google.com/f1\",\n"
+ " \"https://google.com/f2\",\n"
+ " \"new_tab_page\"\n"
+ " ]\n"
+ "} \n";
+
+ EXPECT_TRUE(file_util::WriteFile(prefs_file, text, sizeof(text)));
+ scoped_ptr<DictionaryValue> prefs(
+ installer_util::ParseDistributionPreferences(
+ FilePath::FromWStringHack(prefs_file)));
+ EXPECT_TRUE(prefs.get() != NULL);
+
+ typedef std::vector<std::wstring> TabsVector;
+ TabsVector tabs = installer_util::GetFirstRunTabs(prefs.get());
+ ASSERT_EQ(3, tabs.size());
+ EXPECT_EQ(L"http://google.com/f1", tabs[0]);
+ EXPECT_EQ(L"https://google.com/f2", tabs[1]);
+ EXPECT_EQ(L"new_tab_page", tabs[2]);
+ EXPECT_TRUE(file_util::Delete(prefs_file, false));
+}