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 |