summaryrefslogtreecommitdiffstats
path: root/chrome/installer/util
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
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')
-rw-r--r--chrome/installer/util/browser_distribution_unittest.cc47
-rw-r--r--chrome/installer/util/google_chrome_distribution_unittest.cc123
-rw-r--r--chrome/installer/util/master_preferences_unittest.cc189
3 files changed, 236 insertions, 123 deletions
diff --git a/chrome/installer/util/browser_distribution_unittest.cc b/chrome/installer/util/browser_distribution_unittest.cc
new file mode 100644
index 0000000..55d0d8f
--- /dev/null
+++ b/chrome/installer/util/browser_distribution_unittest.cc
@@ -0,0 +1,47 @@
+// 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 BrowserDistribution class.
+
+#include "chrome/installer/util/browser_distribution.h"
+#include "chrome/installer/util/shell_util.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace {
+class BrowserDistributionTest : public testing::Test {
+ protected:
+ virtual void SetUp() {
+ // Currently no setup required.
+ }
+
+ virtual void TearDown() {
+ // Currently no tear down required.
+ }
+};
+} // namespace
+
+// The distribution strings should not be empty. The unit tests are not linking
+// with the chrome resources so we cannot test official build.
+TEST(BrowserDistributionTest, StringsTest) {
+ BrowserDistribution *dist = BrowserDistribution::GetDistribution();
+ ASSERT_TRUE(dist != NULL);
+ std::wstring name = dist->GetApplicationName();
+ EXPECT_FALSE(name.empty());
+ std::wstring desc = dist->GetAppDescription();
+ EXPECT_FALSE(desc.empty());
+ std::wstring alt_name = dist->GetAlternateApplicationName();
+ EXPECT_FALSE(alt_name.empty());
+}
+
+// The shortcut strings obtained by the shell utility functions should not
+// be empty or be the same.
+TEST(BrowserDistributionTest, AlternateAndNormalShortcutName) {
+ std::wstring normal_name;
+ std::wstring alternate_name;
+ EXPECT_TRUE(ShellUtil::GetChromeShortcutName(&normal_name, false));
+ EXPECT_TRUE(ShellUtil::GetChromeShortcutName(&alternate_name, true));
+ EXPECT_NE(normal_name, alternate_name);
+ EXPECT_FALSE(normal_name.empty());
+ EXPECT_FALSE(alternate_name.empty());
+}
diff --git a/chrome/installer/util/google_chrome_distribution_unittest.cc b/chrome/installer/util/google_chrome_distribution_unittest.cc
index f84916b..23f174a 100644
--- a/chrome/installer/util/google_chrome_distribution_unittest.cc
+++ b/chrome/installer/util/google_chrome_distribution_unittest.cc
@@ -13,8 +13,6 @@
#include "chrome/installer/util/browser_distribution.h"
#include "chrome/installer/util/google_update_constants.h"
#include "chrome/installer/util/google_chrome_distribution.h"
-#include "chrome/installer/util/master_preferences.h"
-#include "chrome/installer/util/shell_util.h"
#include "chrome/installer/util/work_item_list.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -229,124 +227,3 @@ TEST_F(GoogleChromeDistributionTest, TestExtractUninstallMetrics) {
EXPECT_EQ(expected_url_string, uninstall_metrics_string);
}
#endif
-
-// The distribution strings should not be empty. The unit tests are not linking
-// with the chrome resources so we cannot test official build.
-TEST(BrowserDistribution, StringsTest) {
- BrowserDistribution *dist = BrowserDistribution::GetDistribution();
- ASSERT_TRUE(dist != NULL);
- std::wstring name = dist->GetApplicationName();
- EXPECT_FALSE(name.empty());
- std::wstring desc = dist->GetAppDescription();
- EXPECT_FALSE(desc.empty());
- std::wstring alt_name = dist->GetAlternateApplicationName();
- EXPECT_FALSE(alt_name.empty());
-}
-
-// The shortcut strings obtained by the shell utility functions should not
-// be empty or be the same.
-TEST(BrowserDistribution, AlternateAndNormalShortcutName) {
- std::wstring normal_name;
- std::wstring alternate_name;
- EXPECT_TRUE(ShellUtil::GetChromeShortcutName(&normal_name, false));
- EXPECT_TRUE(ShellUtil::GetChromeShortcutName(&alternate_name, true));
- EXPECT_NE(normal_name, alternate_name);
- EXPECT_FALSE(normal_name.empty());
- EXPECT_FALSE(alternate_name.empty());
-}
-
-TEST(MasterPreferences, 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"
- "},\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(file_util::Delete(prefs_file, false));
-}
-
-TEST(MasterPreferences, 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));
-}
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));
+}