Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Side by Side Diff: chrome/installer/util/shell_util_unittest.cc

Issue 10996005: Use gtest failures and EXPECTS instead of returning a failure enum in test target base/test/test_sh… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: No ASSERTs in test support targets Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/profiles/profile_shortcut_manager_unittest_win.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include <fstream> 5 #include <fstream>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/md5.h" 9 #include "base/md5.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 27 matching lines...) Expand all
38 } 38 }
39 39
40 BrowserDistribution* dist_; 40 BrowserDistribution* dist_;
41 41
42 ScopedTempDir temp_dir_; 42 ScopedTempDir temp_dir_;
43 43
44 ScopedTempDir fake_user_desktop_; 44 ScopedTempDir fake_user_desktop_;
45 ScopedTempDir fake_common_desktop_; 45 ScopedTempDir fake_common_desktop_;
46 }; 46 };
47 47
48 // Returns the status of a call to base::win::VerifyShorcut for the properties 48 // Calls base::win::ValidateShortcut for the properties passed in.
49 // passed in.
50 // TODO(gab): This is only temporary while waiting for my upcoming CL that will 49 // TODO(gab): This is only temporary while waiting for my upcoming CL that will
51 // massively refactor the shell_util shortcut methods' interface (i.e. I didn't 50 // massively refactor the shell_util shortcut methods' interface (i.e. I didn't
52 // want to adapt every test here for this half-changed state as they will change 51 // want to adapt every test here for this half-changed state as they will change
53 // again very soon). 52 // again very soon).
54 base::win::VerifyShortcutStatus VerifyChromeShortcut( 53 void ValidateChromeShortcut(const FilePath& exe_path,
55 const FilePath& exe_path, 54 const FilePath& shortcut_path,
56 const FilePath& shortcut_path, 55 const string16& description,
57 const string16& description, 56 int icon_index) {
58 int icon_index) {
59 base::win::ShortcutProperties expected_properties; 57 base::win::ShortcutProperties expected_properties;
60 expected_properties.set_target(exe_path); 58 expected_properties.set_target(exe_path);
61 expected_properties.set_description(description); 59 expected_properties.set_description(description);
62 expected_properties.set_icon(exe_path, icon_index); 60 expected_properties.set_icon(exe_path, icon_index);
63 return base::win::VerifyShortcut(shortcut_path, expected_properties); 61 base::win::ValidateShortcut(shortcut_path, expected_properties);
64 } 62 }
65 63
66 } 64 }
67 65
68 // Test that we can open archives successfully. 66 // Test that we can open archives successfully.
69 TEST_F(ShellUtilShortcutTest, UpdateChromeShortcut) { 67 TEST_F(ShellUtilShortcutTest, UpdateChromeShortcut) {
70 // Create an executable in test path by copying ourself to it. 68 // Create an executable in test path by copying ourself to it.
71 wchar_t exe_full_path_str[MAX_PATH]; 69 wchar_t exe_full_path_str[MAX_PATH];
72 EXPECT_FALSE(::GetModuleFileName(NULL, exe_full_path_str, MAX_PATH) == 0); 70 EXPECT_FALSE(::GetModuleFileName(NULL, exe_full_path_str, MAX_PATH) == 0);
73 FilePath exe_full_path(exe_full_path_str); 71 FilePath exe_full_path(exe_full_path_str);
74 72
75 FilePath exe_path = temp_dir_.path().AppendASCII("setup.exe"); 73 FilePath exe_path = temp_dir_.path().AppendASCII("setup.exe");
76 EXPECT_TRUE(file_util::CopyFile(exe_full_path, exe_path)); 74 EXPECT_TRUE(file_util::CopyFile(exe_full_path, exe_path));
77 75
78 FilePath shortcut_path = temp_dir_.path().AppendASCII("shortcut.lnk"); 76 FilePath shortcut_path = temp_dir_.path().AppendASCII("shortcut.lnk");
79 const string16 description(L"dummy description"); 77 const string16 description(L"dummy description");
80 EXPECT_TRUE(ShellUtil::UpdateChromeShortcut( 78 EXPECT_TRUE(ShellUtil::UpdateChromeShortcut(
81 dist_, 79 dist_,
82 exe_path.value(), 80 exe_path.value(),
83 shortcut_path.value(), 81 shortcut_path.value(),
84 string16(), 82 string16(),
85 description, 83 description,
86 exe_path.value(), 84 exe_path.value(),
87 dist_->GetIconIndex(), 85 dist_->GetIconIndex(),
88 ShellUtil::SHORTCUT_CREATE_ALWAYS)); 86 ShellUtil::SHORTCUT_CREATE_ALWAYS));
89 EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS, 87 ValidateChromeShortcut(exe_path, shortcut_path, description, 0);
90 VerifyChromeShortcut(exe_path, shortcut_path, description, 0));
91 88
92 // Now specify an icon index in master prefs and make sure it works. 89 // Now specify an icon index in master prefs and make sure it works.
93 FilePath prefs_path = temp_dir_.path().AppendASCII( 90 FilePath prefs_path = temp_dir_.path().AppendASCII(
94 installer::kDefaultMasterPrefs); 91 installer::kDefaultMasterPrefs);
95 std::ofstream file; 92 std::ofstream file;
96 file.open(prefs_path.value().c_str()); 93 file.open(prefs_path.value().c_str());
97 ASSERT_TRUE(file.is_open()); 94 ASSERT_TRUE(file.is_open());
98 file << 95 file <<
99 "{" 96 "{"
100 " \"distribution\":{" 97 " \"distribution\":{"
101 " \"chrome_shortcut_icon_index\" : 1" 98 " \"chrome_shortcut_icon_index\" : 1"
102 " }" 99 " }"
103 "}"; 100 "}";
104 file.close(); 101 file.close();
105 ASSERT_TRUE(file_util::Delete(shortcut_path, false)); 102 ASSERT_TRUE(file_util::Delete(shortcut_path, false));
106 EXPECT_TRUE(ShellUtil::UpdateChromeShortcut( 103 EXPECT_TRUE(ShellUtil::UpdateChromeShortcut(
107 dist_, 104 dist_,
108 exe_path.value(), 105 exe_path.value(),
109 shortcut_path.value(), 106 shortcut_path.value(),
110 string16(), 107 string16(),
111 description, 108 description,
112 exe_path.value(), 109 exe_path.value(),
113 dist_->GetIconIndex(), 110 dist_->GetIconIndex(),
114 ShellUtil::SHORTCUT_CREATE_ALWAYS)); 111 ShellUtil::SHORTCUT_CREATE_ALWAYS));
115 EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS, 112 ValidateChromeShortcut(exe_path, shortcut_path, description, 1);
116 VerifyChromeShortcut(exe_path, shortcut_path, description, 1));
117 113
118 // Now change only description to update shortcut and make sure icon index 114 // Now change only description to update shortcut and make sure icon index
119 // doesn't change. 115 // doesn't change.
120 const string16 description2(L"dummy description 2"); 116 const string16 description2(L"dummy description 2");
121 EXPECT_TRUE(ShellUtil::UpdateChromeShortcut(dist_, 117 EXPECT_TRUE(ShellUtil::UpdateChromeShortcut(dist_,
122 exe_path.value(), 118 exe_path.value(),
123 shortcut_path.value(), 119 shortcut_path.value(),
124 string16(), 120 string16(),
125 description2, 121 description2,
126 exe_path.value(), 122 exe_path.value(),
127 dist_->GetIconIndex(), 123 dist_->GetIconIndex(),
128 ShellUtil::SHORTCUT_NO_OPTIONS)); 124 ShellUtil::SHORTCUT_NO_OPTIONS));
129 EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS, 125 ValidateChromeShortcut(exe_path, shortcut_path, description2, 1);
130 VerifyChromeShortcut(exe_path, shortcut_path, description2, 1));
131 } 126 }
132 127
133 TEST_F(ShellUtilShortcutTest, CreateChromeDesktopShortcut) { 128 TEST_F(ShellUtilShortcutTest, CreateChromeDesktopShortcut) {
134 // Create an executable in test path by copying ourself to it. 129 // Create an executable in test path by copying ourself to it.
135 wchar_t exe_full_path_str[MAX_PATH]; 130 wchar_t exe_full_path_str[MAX_PATH];
136 EXPECT_FALSE(::GetModuleFileName(NULL, exe_full_path_str, MAX_PATH) == 0); 131 EXPECT_FALSE(::GetModuleFileName(NULL, exe_full_path_str, MAX_PATH) == 0);
137 FilePath exe_full_path(exe_full_path_str); 132 FilePath exe_full_path(exe_full_path_str);
138 133
139 FilePath exe_path = temp_dir_.path().AppendASCII("setup.exe"); 134 FilePath exe_path = temp_dir_.path().AppendASCII("setup.exe");
140 EXPECT_TRUE(file_util::CopyFile(exe_full_path, exe_path)); 135 EXPECT_TRUE(file_util::CopyFile(exe_full_path, exe_path));
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 EXPECT_TRUE(ShellUtil::CreateChromeDesktopShortcut( 168 EXPECT_TRUE(ShellUtil::CreateChromeDesktopShortcut(
174 dist_, 169 dist_,
175 exe_path.value(), 170 exe_path.value(),
176 description, 171 description,
177 string16(), 172 string16(),
178 string16(), 173 string16(),
179 exe_path.value(), 174 exe_path.value(),
180 dist_->GetIconIndex(), 175 dist_->GetIconIndex(),
181 ShellUtil::CURRENT_USER, 176 ShellUtil::CURRENT_USER,
182 ShellUtil::SHORTCUT_CREATE_ALWAYS)); 177 ShellUtil::SHORTCUT_CREATE_ALWAYS));
183 EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS, 178 ValidateChromeShortcut(exe_path, user_shortcut_path, description, 0);
184 VerifyChromeShortcut(exe_path, user_shortcut_path, description, 0));
185 EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcut( 179 EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcut(
186 dist_, 180 dist_,
187 ShellUtil::CURRENT_USER, 181 ShellUtil::CURRENT_USER,
188 ShellUtil::SHORTCUT_NO_OPTIONS)); 182 ShellUtil::SHORTCUT_NO_OPTIONS));
189 183
190 // Test simple creation of a system-level shortcut. 184 // Test simple creation of a system-level shortcut.
191 EXPECT_TRUE(ShellUtil::CreateChromeDesktopShortcut( 185 EXPECT_TRUE(ShellUtil::CreateChromeDesktopShortcut(
192 dist_, 186 dist_,
193 exe_path.value(), 187 exe_path.value(),
194 description, 188 description,
195 string16(), 189 string16(),
196 string16(), 190 string16(),
197 exe_path.value(), 191 exe_path.value(),
198 dist_->GetIconIndex(), 192 dist_->GetIconIndex(),
199 ShellUtil::SYSTEM_LEVEL, 193 ShellUtil::SYSTEM_LEVEL,
200 ShellUtil::SHORTCUT_CREATE_ALWAYS)); 194 ShellUtil::SHORTCUT_CREATE_ALWAYS));
201 EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS, 195 ValidateChromeShortcut(exe_path, system_shortcut_path, description, 0);
202 VerifyChromeShortcut(
203 exe_path, system_shortcut_path, description, 0));
204 EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcut( 196 EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcut(
205 dist_, 197 dist_,
206 ShellUtil::SYSTEM_LEVEL, 198 ShellUtil::SYSTEM_LEVEL,
207 ShellUtil::SHORTCUT_NO_OPTIONS)); 199 ShellUtil::SHORTCUT_NO_OPTIONS));
208 200
209 // Test creation of a user-level shortcut when a system-level shortcut 201 // Test creation of a user-level shortcut when a system-level shortcut
210 // is already present (should fail). 202 // is already present (should fail).
211 EXPECT_TRUE(ShellUtil::CreateChromeDesktopShortcut( 203 EXPECT_TRUE(ShellUtil::CreateChromeDesktopShortcut(
212 dist_, 204 dist_,
213 exe_path.value(), 205 exe_path.value(),
214 description, 206 description,
215 string16(), 207 string16(),
216 string16(), 208 string16(),
217 exe_path.value(), 209 exe_path.value(),
218 dist_->GetIconIndex(), 210 dist_->GetIconIndex(),
219 ShellUtil::SYSTEM_LEVEL, 211 ShellUtil::SYSTEM_LEVEL,
220 ShellUtil::SHORTCUT_CREATE_ALWAYS)); 212 ShellUtil::SHORTCUT_CREATE_ALWAYS));
221 EXPECT_FALSE(ShellUtil::CreateChromeDesktopShortcut( 213 EXPECT_FALSE(ShellUtil::CreateChromeDesktopShortcut(
222 dist_, 214 dist_,
223 exe_path.value(), 215 exe_path.value(),
224 description, 216 description,
225 string16(), 217 string16(),
226 string16(), 218 string16(),
227 exe_path.value(), 219 exe_path.value(),
228 dist_->GetIconIndex(), 220 dist_->GetIconIndex(),
229 ShellUtil::CURRENT_USER, 221 ShellUtil::CURRENT_USER,
230 ShellUtil::SHORTCUT_CREATE_ALWAYS)); 222 ShellUtil::SHORTCUT_CREATE_ALWAYS));
231 EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS, 223 ValidateChromeShortcut(exe_path, system_shortcut_path, description, 0);
232 VerifyChromeShortcut(
233 exe_path, system_shortcut_path, description, 0));
234 EXPECT_FALSE(file_util::PathExists(user_shortcut_path)); 224 EXPECT_FALSE(file_util::PathExists(user_shortcut_path));
235 EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcut( 225 EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcut(
236 dist_, 226 dist_,
237 ShellUtil::SYSTEM_LEVEL, 227 ShellUtil::SYSTEM_LEVEL,
238 ShellUtil::SHORTCUT_NO_OPTIONS)); 228 ShellUtil::SHORTCUT_NO_OPTIONS));
239 229
240 // Test creation of a system-level shortcut when a user-level shortcut 230 // Test creation of a system-level shortcut when a user-level shortcut
241 // is already present (should succeed). 231 // is already present (should succeed).
242 EXPECT_TRUE(ShellUtil::CreateChromeDesktopShortcut( 232 EXPECT_TRUE(ShellUtil::CreateChromeDesktopShortcut(
243 dist_, 233 dist_,
244 exe_path.value(), 234 exe_path.value(),
245 description, 235 description,
246 string16(), 236 string16(),
247 string16(), 237 string16(),
248 exe_path.value(), 238 exe_path.value(),
249 dist_->GetIconIndex(), 239 dist_->GetIconIndex(),
250 ShellUtil::CURRENT_USER, 240 ShellUtil::CURRENT_USER,
251 ShellUtil::SHORTCUT_CREATE_ALWAYS)); 241 ShellUtil::SHORTCUT_CREATE_ALWAYS));
252 EXPECT_TRUE(ShellUtil::CreateChromeDesktopShortcut( 242 EXPECT_TRUE(ShellUtil::CreateChromeDesktopShortcut(
253 dist_, 243 dist_,
254 exe_path.value(), 244 exe_path.value(),
255 description, 245 description,
256 string16(), 246 string16(),
257 string16(), 247 string16(),
258 exe_path.value(), 248 exe_path.value(),
259 dist_->GetIconIndex(), 249 dist_->GetIconIndex(),
260 ShellUtil::SYSTEM_LEVEL, 250 ShellUtil::SYSTEM_LEVEL,
261 ShellUtil::SHORTCUT_CREATE_ALWAYS)); 251 ShellUtil::SHORTCUT_CREATE_ALWAYS));
262 EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS, 252 ValidateChromeShortcut(exe_path, user_shortcut_path, description, 0);
263 VerifyChromeShortcut(exe_path, user_shortcut_path, description, 0)); 253 ValidateChromeShortcut(exe_path, system_shortcut_path, description, 0);
264 EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS,
265 VerifyChromeShortcut(
266 exe_path, system_shortcut_path, description, 0));
267 EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcut( 254 EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcut(
268 dist_, 255 dist_,
269 ShellUtil::CURRENT_USER, 256 ShellUtil::CURRENT_USER,
270 ShellUtil::SHORTCUT_NO_OPTIONS)); 257 ShellUtil::SHORTCUT_NO_OPTIONS));
271 EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcut( 258 EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcut(
272 dist_, 259 dist_,
273 ShellUtil::SYSTEM_LEVEL, 260 ShellUtil::SYSTEM_LEVEL,
274 ShellUtil::SHORTCUT_NO_OPTIONS)); 261 ShellUtil::SHORTCUT_NO_OPTIONS));
275 262
276 // Test creation of two profile-specific shortcuts (these are always 263 // Test creation of two profile-specific shortcuts (these are always
277 // user-level). 264 // user-level).
278 EXPECT_TRUE(ShellUtil::CreateChromeDesktopShortcut( 265 EXPECT_TRUE(ShellUtil::CreateChromeDesktopShortcut(
279 dist_, 266 dist_,
280 exe_path.value(), 267 exe_path.value(),
281 description, 268 description,
282 default_profile_user_name, 269 default_profile_user_name,
283 L"--profile-directory=\"Default\"", 270 L"--profile-directory=\"Default\"",
284 exe_path.value(), 271 exe_path.value(),
285 dist_->GetIconIndex(), 272 dist_->GetIconIndex(),
286 ShellUtil::CURRENT_USER, 273 ShellUtil::CURRENT_USER,
287 ShellUtil::SHORTCUT_CREATE_ALWAYS)); 274 ShellUtil::SHORTCUT_CREATE_ALWAYS));
288 EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS, 275 ValidateChromeShortcut(exe_path, default_profile_shortcut_path, description,
289 VerifyChromeShortcut( 276 0);
290 exe_path, default_profile_shortcut_path, description, 0));
291 EXPECT_TRUE(ShellUtil::CreateChromeDesktopShortcut( 277 EXPECT_TRUE(ShellUtil::CreateChromeDesktopShortcut(
292 dist_, 278 dist_,
293 exe_path.value(), 279 exe_path.value(),
294 description, 280 description,
295 second_profile_user_name, 281 second_profile_user_name,
296 L"--profile-directory=\"Profile 1\"", 282 L"--profile-directory=\"Profile 1\"",
297 exe_path.value(), 283 exe_path.value(),
298 dist_->GetIconIndex(), 284 dist_->GetIconIndex(),
299 ShellUtil::CURRENT_USER, 285 ShellUtil::CURRENT_USER,
300 ShellUtil::SHORTCUT_CREATE_ALWAYS)); 286 ShellUtil::SHORTCUT_CREATE_ALWAYS));
301 EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS, 287 ValidateChromeShortcut(exe_path, second_profile_shortcut_path, description,
302 VerifyChromeShortcut( 288 0);
303 exe_path, second_profile_shortcut_path, description, 0));
304 std::vector<string16> profile_names; 289 std::vector<string16> profile_names;
305 profile_names.push_back(default_profile_shortcut_name); 290 profile_names.push_back(default_profile_shortcut_name);
306 profile_names.push_back(second_profile_shortcut_name); 291 profile_names.push_back(second_profile_shortcut_name);
307 EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcutsWithAppendedNames( 292 EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcutsWithAppendedNames(
308 profile_names)); 293 profile_names));
309 } 294 }
310 295
311 TEST(ShellUtilTest, BuildAppModelIdBasic) { 296 TEST(ShellUtilTest, BuildAppModelIdBasic) {
312 std::vector<string16> components; 297 std::vector<string16> components;
313 BrowserDistribution* dist = BrowserDistribution::GetDistribution(); 298 BrowserDistribution* dist = BrowserDistribution::GetDistribution();
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 364
380 const string16 expected[] = { L"", L"MY", L"MZXQ", L"MZXW6", L"MZXW6YQ", 365 const string16 expected[] = { L"", L"MY", L"MZXQ", L"MZXW6", L"MZXW6YQ",
381 L"MZXW6YTB", L"MZXW6YTBOI"}; 366 L"MZXW6YTB", L"MZXW6YTBOI"};
382 367
383 // Run the tests, with one more letter in the input every pass. 368 // Run the tests, with one more letter in the input every pass.
384 for (int i = 0; i < arraysize(expected); ++i) { 369 for (int i = 0; i < arraysize(expected); ++i) {
385 ASSERT_EQ(expected[i], 370 ASSERT_EQ(expected[i],
386 ShellUtil::ByteArrayToBase32(test_array, i)); 371 ShellUtil::ByteArrayToBase32(test_array, i));
387 } 372 }
388 } 373 }
OLDNEW
« no previous file with comments | « chrome/browser/profiles/profile_shortcut_manager_unittest_win.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698