| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // Unit tests for master preferences related methods. | 5 // Unit tests for master preferences related methods. |
| 6 | 6 |
| 7 #include "base/scoped_ptr.h" | 7 #include "base/scoped_ptr.h" |
| 8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
| 9 #include "chrome/common/json_value_serializer.h" | 9 #include "chrome/common/json_value_serializer.h" |
| 10 #include "chrome/installer/util/master_preferences.h" | 10 #include "chrome/installer/util/master_preferences.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
| 12 | 12 |
| 13 namespace { | 13 namespace { |
| 14 class MasterPreferencesTest : public testing::Test { | 14 class MasterPreferencesTest : public testing::Test { |
| 15 protected: | 15 protected: |
| 16 virtual void SetUp() { | 16 virtual void SetUp() { |
| 17 // Currently no setup required. | 17 // Currently no setup required. |
| 18 } | 18 } |
| 19 | 19 |
| 20 virtual void TearDown() { | 20 virtual void TearDown() { |
| 21 // Currently no tear down required. | 21 // Currently no tear down required. |
| 22 } | 22 } |
| 23 }; | 23 }; |
| 24 } // namespace | 24 } // namespace |
| 25 | 25 |
| 26 TEST(MasterPreferencesTest, ParseDistroParams) { | 26 TEST(MasterPreferencesTest, ParseDistroParams) { |
| 27 std::wstring prefs_file; | 27 FilePath prefs_file; |
| 28 ASSERT_TRUE(file_util::CreateTemporaryFileName(&prefs_file)); | 28 ASSERT_TRUE(file_util::CreateTemporaryFile(&prefs_file)); |
| 29 const char text[] = | 29 const char text[] = |
| 30 "{ \n" | 30 "{ \n" |
| 31 " \"distribution\": { \n" | 31 " \"distribution\": { \n" |
| 32 " \"skip_first_run_ui\": true,\n" | 32 " \"skip_first_run_ui\": true,\n" |
| 33 " \"show_welcome_page\": true,\n" | 33 " \"show_welcome_page\": true,\n" |
| 34 " \"import_search_engine\": true,\n" | 34 " \"import_search_engine\": true,\n" |
| 35 " \"import_history\": true,\n" | 35 " \"import_history\": true,\n" |
| 36 " \"import_bookmarks\": true,\n" | 36 " \"import_bookmarks\": true,\n" |
| 37 " \"import_home_page\": true,\n" | 37 " \"import_home_page\": true,\n" |
| 38 " \"create_all_shortcuts\": true,\n" | 38 " \"create_all_shortcuts\": true,\n" |
| 39 " \"do_not_launch_chrome\": true,\n" | 39 " \"do_not_launch_chrome\": true,\n" |
| 40 " \"make_chrome_default\": true,\n" | 40 " \"make_chrome_default\": true,\n" |
| 41 " \"make_chrome_default_for_user\": true,\n" | 41 " \"make_chrome_default_for_user\": true,\n" |
| 42 " \"system_level\": true,\n" | 42 " \"system_level\": true,\n" |
| 43 " \"verbose_logging\": true,\n" | 43 " \"verbose_logging\": true,\n" |
| 44 " \"require_eula\": true,\n" | 44 " \"require_eula\": true,\n" |
| 45 " \"alternate_shortcut_text\": true,\n" | 45 " \"alternate_shortcut_text\": true,\n" |
| 46 " \"oem_bubble\": true,\n" | 46 " \"oem_bubble\": true,\n" |
| 47 " \"chrome_shortcut_icon_index\": 1,\n" | 47 " \"chrome_shortcut_icon_index\": 1,\n" |
| 48 " \"ping_delay\": 40\n" | 48 " \"ping_delay\": 40\n" |
| 49 " },\n" | 49 " },\n" |
| 50 " \"blah\": {\n" | 50 " \"blah\": {\n" |
| 51 " \"import_history\": false\n" | 51 " \"import_history\": false\n" |
| 52 " }\n" | 52 " }\n" |
| 53 "} \n"; | 53 "} \n"; |
| 54 | 54 |
| 55 EXPECT_TRUE(file_util::WriteFile(prefs_file, text, sizeof(text))); | 55 EXPECT_TRUE(file_util::WriteFile(prefs_file, text, sizeof(text))); |
| 56 scoped_ptr<DictionaryValue> prefs( | 56 scoped_ptr<DictionaryValue> prefs( |
| 57 installer_util::ParseDistributionPreferences( | 57 installer_util::ParseDistributionPreferences(prefs_file)); |
| 58 FilePath::FromWStringHack(prefs_file))); | |
| 59 EXPECT_TRUE(prefs.get() != NULL); | 58 EXPECT_TRUE(prefs.get() != NULL); |
| 60 EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), | 59 EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), |
| 61 installer_util::master_preferences::kDistroSkipFirstRunPref)); | 60 installer_util::master_preferences::kDistroSkipFirstRunPref)); |
| 62 EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), | 61 EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), |
| 63 installer_util::master_preferences::kDistroShowWelcomePage)); | 62 installer_util::master_preferences::kDistroShowWelcomePage)); |
| 64 | 63 |
| 65 EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), | 64 EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), |
| 66 installer_util::master_preferences::kDistroImportSearchPref)); | 65 installer_util::master_preferences::kDistroImportSearchPref)); |
| 67 EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), | 66 EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), |
| 68 installer_util::master_preferences::kDistroImportHistoryPref)); | 67 installer_util::master_preferences::kDistroImportHistoryPref)); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 97 &icon_index)); | 96 &icon_index)); |
| 98 EXPECT_EQ(icon_index, 1); | 97 EXPECT_EQ(icon_index, 1); |
| 99 int ping_delay = 90; | 98 int ping_delay = 90; |
| 100 EXPECT_TRUE(installer_util::GetDistroIntegerPreference(prefs.get(), | 99 EXPECT_TRUE(installer_util::GetDistroIntegerPreference(prefs.get(), |
| 101 installer_util::master_preferences::kDistroPingDelay, &ping_delay)); | 100 installer_util::master_preferences::kDistroPingDelay, &ping_delay)); |
| 102 EXPECT_EQ(ping_delay, 40); | 101 EXPECT_EQ(ping_delay, 40); |
| 103 EXPECT_TRUE(file_util::Delete(prefs_file, false)); | 102 EXPECT_TRUE(file_util::Delete(prefs_file, false)); |
| 104 } | 103 } |
| 105 | 104 |
| 106 TEST(MasterPreferencesTest, ParseMissingDistroParams) { | 105 TEST(MasterPreferencesTest, ParseMissingDistroParams) { |
| 107 std::wstring prefs_file; | 106 FilePath prefs_file; |
| 108 ASSERT_TRUE(file_util::CreateTemporaryFileName(&prefs_file)); | 107 ASSERT_TRUE(file_util::CreateTemporaryFile(&prefs_file)); |
| 109 const char text[] = | 108 const char text[] = |
| 110 "{ \n" | 109 "{ \n" |
| 111 " \"distribution\": { \n" | 110 " \"distribution\": { \n" |
| 112 " \"skip_first_run_ui\": true,\n" | 111 " \"skip_first_run_ui\": true,\n" |
| 113 " \"import_search_engine\": true,\n" | 112 " \"import_search_engine\": true,\n" |
| 114 " \"import_bookmarks\": false,\n" | 113 " \"import_bookmarks\": false,\n" |
| 115 " \"create_all_shortcuts\": true,\n" | 114 " \"create_all_shortcuts\": true,\n" |
| 116 " \"do_not_launch_chrome\": true,\n" | 115 " \"do_not_launch_chrome\": true,\n" |
| 117 " \"chrome_shortcut_icon_index\": \"bac\"\n" | 116 " \"chrome_shortcut_icon_index\": \"bac\"\n" |
| 118 " }\n" | 117 " }\n" |
| 119 "} \n"; | 118 "} \n"; |
| 120 | 119 |
| 121 EXPECT_TRUE(file_util::WriteFile(prefs_file, text, sizeof(text))); | 120 EXPECT_TRUE(file_util::WriteFile(prefs_file, text, sizeof(text))); |
| 122 scoped_ptr<DictionaryValue> prefs( | 121 scoped_ptr<DictionaryValue> prefs( |
| 123 installer_util::ParseDistributionPreferences( | 122 installer_util::ParseDistributionPreferences(prefs_file)); |
| 124 FilePath::FromWStringHack(prefs_file))); | |
| 125 EXPECT_TRUE(prefs.get() != NULL); | 123 EXPECT_TRUE(prefs.get() != NULL); |
| 126 EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), | 124 EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), |
| 127 installer_util::master_preferences::kDistroSkipFirstRunPref)); | 125 installer_util::master_preferences::kDistroSkipFirstRunPref)); |
| 128 EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(), | 126 EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(), |
| 129 installer_util::master_preferences::kDistroShowWelcomePage)); | 127 installer_util::master_preferences::kDistroShowWelcomePage)); |
| 130 | 128 |
| 131 EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), | 129 EXPECT_TRUE(installer_util::GetDistroBooleanPreference(prefs.get(), |
| 132 installer_util::master_preferences::kDistroImportSearchPref)); | 130 installer_util::master_preferences::kDistroImportSearchPref)); |
| 133 EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(), | 131 EXPECT_FALSE(installer_util::GetDistroBooleanPreference(prefs.get(), |
| 134 installer_util::master_preferences::kDistroImportHistoryPref)); | 132 installer_util::master_preferences::kDistroImportHistoryPref)); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 152 &icon_index)); | 150 &icon_index)); |
| 153 EXPECT_EQ(icon_index, 0); | 151 EXPECT_EQ(icon_index, 0); |
| 154 int ping_delay = 90; | 152 int ping_delay = 90; |
| 155 EXPECT_FALSE(installer_util::GetDistroIntegerPreference(prefs.get(), | 153 EXPECT_FALSE(installer_util::GetDistroIntegerPreference(prefs.get(), |
| 156 installer_util::master_preferences::kDistroPingDelay, &ping_delay)); | 154 installer_util::master_preferences::kDistroPingDelay, &ping_delay)); |
| 157 EXPECT_EQ(ping_delay, 90); | 155 EXPECT_EQ(ping_delay, 90); |
| 158 EXPECT_TRUE(file_util::Delete(prefs_file, false)); | 156 EXPECT_TRUE(file_util::Delete(prefs_file, false)); |
| 159 } | 157 } |
| 160 | 158 |
| 161 TEST(MasterPreferencesTest, FirstRunTabs) { | 159 TEST(MasterPreferencesTest, FirstRunTabs) { |
| 162 std::wstring prefs_file; | 160 FilePath prefs_file; |
| 163 ASSERT_TRUE(file_util::CreateTemporaryFileName(&prefs_file)); | 161 ASSERT_TRUE(file_util::CreateTemporaryFile(&prefs_file)); |
| 164 const char text[] = | 162 const char text[] = |
| 165 "{ \n" | 163 "{ \n" |
| 166 " \"distribution\": { \n" | 164 " \"distribution\": { \n" |
| 167 " \"something here\": true\n" | 165 " \"something here\": true\n" |
| 168 " },\n" | 166 " },\n" |
| 169 " \"first_run_tabs\": [\n" | 167 " \"first_run_tabs\": [\n" |
| 170 " \"http://google.com/f1\",\n" | 168 " \"http://google.com/f1\",\n" |
| 171 " \"https://google.com/f2\",\n" | 169 " \"https://google.com/f2\",\n" |
| 172 " \"new_tab_page\"\n" | 170 " \"new_tab_page\"\n" |
| 173 " ]\n" | 171 " ]\n" |
| 174 "} \n"; | 172 "} \n"; |
| 175 | 173 |
| 176 EXPECT_TRUE(file_util::WriteFile(prefs_file, text, sizeof(text))); | 174 EXPECT_TRUE(file_util::WriteFile(prefs_file, text, sizeof(text))); |
| 177 scoped_ptr<DictionaryValue> prefs( | 175 scoped_ptr<DictionaryValue> prefs( |
| 178 installer_util::ParseDistributionPreferences( | 176 installer_util::ParseDistributionPreferences(prefs_file)); |
| 179 FilePath::FromWStringHack(prefs_file))); | |
| 180 EXPECT_TRUE(prefs.get() != NULL); | 177 EXPECT_TRUE(prefs.get() != NULL); |
| 181 | 178 |
| 182 typedef std::vector<std::wstring> TabsVector; | 179 typedef std::vector<std::wstring> TabsVector; |
| 183 TabsVector tabs = installer_util::GetFirstRunTabs(prefs.get()); | 180 TabsVector tabs = installer_util::GetFirstRunTabs(prefs.get()); |
| 184 ASSERT_EQ(3, tabs.size()); | 181 ASSERT_EQ(3, tabs.size()); |
| 185 EXPECT_EQ(L"http://google.com/f1", tabs[0]); | 182 EXPECT_EQ(L"http://google.com/f1", tabs[0]); |
| 186 EXPECT_EQ(L"https://google.com/f2", tabs[1]); | 183 EXPECT_EQ(L"https://google.com/f2", tabs[1]); |
| 187 EXPECT_EQ(L"new_tab_page", tabs[2]); | 184 EXPECT_EQ(L"new_tab_page", tabs[2]); |
| 188 EXPECT_TRUE(file_util::Delete(prefs_file, false)); | 185 EXPECT_TRUE(file_util::Delete(prefs_file, false)); |
| 189 } | 186 } |
| OLD | NEW |