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

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

Issue 15255004: Refactor of BrowserDistribution. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 4 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
« no previous file with comments | « chrome/installer/util/shell_util.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 "chrome/installer/util/shell_util.h" 5 #include "chrome/installer/util/shell_util.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/base_paths.h" 9 #include "base/base_paths.h"
10 #include "base/base_paths_win.h" 10 #include "base/base_paths_win.h"
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 fake_user_desktop_.path() : fake_common_desktop_.path(); 97 fake_user_desktop_.path() : fake_common_desktop_.path();
98 break; 98 break;
99 case ShellUtil::SHORTCUT_LOCATION_QUICK_LAUNCH: 99 case ShellUtil::SHORTCUT_LOCATION_QUICK_LAUNCH:
100 expected_path = (properties.level == ShellUtil::CURRENT_USER) ? 100 expected_path = (properties.level == ShellUtil::CURRENT_USER) ?
101 fake_user_quick_launch_.path() : 101 fake_user_quick_launch_.path() :
102 fake_default_user_quick_launch_.path(); 102 fake_default_user_quick_launch_.path();
103 break; 103 break;
104 case ShellUtil::SHORTCUT_LOCATION_START_MENU: 104 case ShellUtil::SHORTCUT_LOCATION_START_MENU:
105 expected_path = (properties.level == ShellUtil::CURRENT_USER) ? 105 expected_path = (properties.level == ShellUtil::CURRENT_USER) ?
106 fake_start_menu_.path() : fake_common_start_menu_.path(); 106 fake_start_menu_.path() : fake_common_start_menu_.path();
107 expected_path = expected_path.Append(dist_->GetAppShortCutName()); 107 expected_path = expected_path.Append(
108 dist_->GetStartMenuShortcutSubfolder(
109 BrowserDistribution::SUBFOLDER_CHROME));
108 break; 110 break;
109 default: 111 default:
110 ADD_FAILURE() << "Unknown location"; 112 ADD_FAILURE() << "Unknown location";
111 return; 113 return;
112 } 114 }
113 115
114 string16 shortcut_name; 116 string16 shortcut_name;
115 if (properties.has_shortcut_name()) 117 if (properties.has_shortcut_name()) {
116 shortcut_name = properties.shortcut_name; 118 shortcut_name = properties.shortcut_name;
117 else 119 } else {
118 shortcut_name = dist_->GetAppShortCutName(); 120 shortcut_name =
121 dist_->GetShortcutName(BrowserDistribution::SHORTCUT_CHROME);
122 }
119 shortcut_name.append(installer::kLnkExt); 123 shortcut_name.append(installer::kLnkExt);
120 expected_path = expected_path.Append(shortcut_name); 124 expected_path = expected_path.Append(shortcut_name);
121 125
122 base::win::ShortcutProperties expected_properties; 126 base::win::ShortcutProperties expected_properties;
123 if (properties.has_target()) { 127 if (properties.has_target()) {
124 expected_properties.set_target(properties.target); 128 expected_properties.set_target(properties.target);
125 expected_properties.set_working_dir(properties.target.DirName()); 129 expected_properties.set_working_dir(properties.target.DirName());
126 } else { 130 } else {
127 expected_properties.set_target(chrome_exe_); 131 expected_properties.set_target(chrome_exe_);
128 expected_properties.set_working_dir(chrome_exe_.DirName()); 132 expected_properties.set_working_dir(chrome_exe_.DirName());
129 } 133 }
130 134
131 if (properties.has_arguments()) 135 if (properties.has_arguments())
132 expected_properties.set_arguments(properties.arguments); 136 expected_properties.set_arguments(properties.arguments);
133 else 137 else
134 expected_properties.set_arguments(string16()); 138 expected_properties.set_arguments(string16());
135 139
136 if (properties.has_description()) 140 if (properties.has_description())
137 expected_properties.set_description(properties.description); 141 expected_properties.set_description(properties.description);
138 else 142 else
139 expected_properties.set_description(dist->GetAppDescription()); 143 expected_properties.set_description(dist->GetAppDescription());
140 144
141 if (properties.has_icon()) { 145 if (properties.has_icon()) {
142 expected_properties.set_icon(properties.icon, 0); 146 expected_properties.set_icon(properties.icon, 0);
143 } else { 147 } else {
144 int icon_index = dist->GetIconIndex(); 148 int icon_index = dist->GetIconIndex(BrowserDistribution::SHORTCUT_CHROME);
145 expected_properties.set_icon(chrome_exe_, icon_index); 149 expected_properties.set_icon(chrome_exe_, icon_index);
146 } 150 }
147 151
148 if (properties.has_app_id()) { 152 if (properties.has_app_id()) {
149 expected_properties.set_app_id(properties.app_id); 153 expected_properties.set_app_id(properties.app_id);
150 } else { 154 } else {
151 // Tests are always seen as user-level installs in ShellUtil. 155 // Tests are always seen as user-level installs in ShellUtil.
152 expected_properties.set_app_id(ShellUtil::GetBrowserModelId(dist, true)); 156 expected_properties.set_app_id(ShellUtil::GetBrowserModelId(dist, true));
153 } 157 }
154 158
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 EXPECT_EQ(fake_user_desktop_.path(), path); 197 EXPECT_EQ(fake_user_desktop_.path(), path);
194 ShellUtil::GetShortcutPath(ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, 198 ShellUtil::GetShortcutPath(ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_,
195 ShellUtil::SYSTEM_LEVEL, &path); 199 ShellUtil::SYSTEM_LEVEL, &path);
196 EXPECT_EQ(fake_common_desktop_.path(), path); 200 EXPECT_EQ(fake_common_desktop_.path(), path);
197 ShellUtil::GetShortcutPath(ShellUtil::SHORTCUT_LOCATION_QUICK_LAUNCH, dist_, 201 ShellUtil::GetShortcutPath(ShellUtil::SHORTCUT_LOCATION_QUICK_LAUNCH, dist_,
198 ShellUtil::CURRENT_USER, &path); 202 ShellUtil::CURRENT_USER, &path);
199 EXPECT_EQ(fake_user_quick_launch_.path(), path); 203 EXPECT_EQ(fake_user_quick_launch_.path(), path);
200 ShellUtil::GetShortcutPath(ShellUtil::SHORTCUT_LOCATION_QUICK_LAUNCH, dist_, 204 ShellUtil::GetShortcutPath(ShellUtil::SHORTCUT_LOCATION_QUICK_LAUNCH, dist_,
201 ShellUtil::SYSTEM_LEVEL, &path); 205 ShellUtil::SYSTEM_LEVEL, &path);
202 EXPECT_EQ(fake_default_user_quick_launch_.path(), path); 206 EXPECT_EQ(fake_default_user_quick_launch_.path(), path);
207 string16 start_menu_subfolder =
208 dist_->GetStartMenuShortcutSubfolder(
209 BrowserDistribution::SUBFOLDER_CHROME);
203 ShellUtil::GetShortcutPath(ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_, 210 ShellUtil::GetShortcutPath(ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_,
204 ShellUtil::CURRENT_USER, &path); 211 ShellUtil::CURRENT_USER, &path);
205 EXPECT_EQ(fake_start_menu_.path().Append(dist_->GetAppShortCutName()), path); 212 EXPECT_EQ(fake_start_menu_.path().Append(start_menu_subfolder),
213 path);
206 ShellUtil::GetShortcutPath(ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_, 214 ShellUtil::GetShortcutPath(ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_,
207 ShellUtil::SYSTEM_LEVEL, &path); 215 ShellUtil::SYSTEM_LEVEL, &path);
208 EXPECT_EQ(fake_common_start_menu_.path().Append(dist_->GetAppShortCutName()), 216 EXPECT_EQ(fake_common_start_menu_.path().Append(start_menu_subfolder),
209 path); 217 path);
210 } 218 }
211 219
212 TEST_F(ShellUtilShortcutTest, CreateChromeExeShortcutWithDefaultProperties) { 220 TEST_F(ShellUtilShortcutTest, CreateChromeExeShortcutWithDefaultProperties) {
213 ShellUtil::ShortcutProperties properties(ShellUtil::CURRENT_USER); 221 ShellUtil::ShortcutProperties properties(ShellUtil::CURRENT_USER);
214 product_->AddDefaultShortcutProperties(chrome_exe_, &properties); 222 product_->AddDefaultShortcutProperties(chrome_exe_, &properties);
215 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( 223 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
216 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, properties, 224 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, properties,
217 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); 225 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS));
218 ValidateChromeShortcut(ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, 226 ValidateChromeShortcut(ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_,
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 309
302 TEST_F(ShellUtilShortcutTest, CreateIfNoSystemLevel) { 310 TEST_F(ShellUtilShortcutTest, CreateIfNoSystemLevel) {
303 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( 311 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
304 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_, 312 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_,
305 ShellUtil::SHELL_SHORTCUT_CREATE_IF_NO_SYSTEM_LEVEL)); 313 ShellUtil::SHELL_SHORTCUT_CREATE_IF_NO_SYSTEM_LEVEL));
306 ValidateChromeShortcut(ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, 314 ValidateChromeShortcut(ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_,
307 test_properties_); 315 test_properties_);
308 } 316 }
309 317
310 TEST_F(ShellUtilShortcutTest, CreateIfNoSystemLevelWithSystemLevelPresent) { 318 TEST_F(ShellUtilShortcutTest, CreateIfNoSystemLevelWithSystemLevelPresent) {
311 string16 shortcut_name(dist_->GetAppShortCutName() + installer::kLnkExt); 319 string16 shortcut_name(
320 dist_->GetShortcutName(BrowserDistribution::SHORTCUT_CHROME) +
321 installer::kLnkExt);
312 322
313 test_properties_.level = ShellUtil::SYSTEM_LEVEL; 323 test_properties_.level = ShellUtil::SYSTEM_LEVEL;
314 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( 324 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
315 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_, 325 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_,
316 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); 326 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS));
317 ASSERT_TRUE(base::PathExists( 327 ASSERT_TRUE(base::PathExists(
318 fake_common_desktop_.path().Append(shortcut_name))); 328 fake_common_desktop_.path().Append(shortcut_name)));
319 329
320 test_properties_.level = ShellUtil::CURRENT_USER; 330 test_properties_.level = ShellUtil::CURRENT_USER;
321 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( 331 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
322 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_, 332 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_,
323 ShellUtil::SHELL_SHORTCUT_CREATE_IF_NO_SYSTEM_LEVEL)); 333 ShellUtil::SHELL_SHORTCUT_CREATE_IF_NO_SYSTEM_LEVEL));
324 ASSERT_FALSE(base::PathExists( 334 ASSERT_FALSE(base::PathExists(
325 fake_user_desktop_.path().Append(shortcut_name))); 335 fake_user_desktop_.path().Append(shortcut_name)));
326 } 336 }
327 337
328 TEST_F(ShellUtilShortcutTest, CreateIfNoSystemLevelStartMenu) { 338 TEST_F(ShellUtilShortcutTest, CreateIfNoSystemLevelStartMenu) {
329 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( 339 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
330 ShellUtil::SHORTCUT_LOCATION_START_MENU, 340 ShellUtil::SHORTCUT_LOCATION_START_MENU,
331 dist_, test_properties_, 341 dist_, test_properties_,
332 ShellUtil::SHELL_SHORTCUT_CREATE_IF_NO_SYSTEM_LEVEL)); 342 ShellUtil::SHELL_SHORTCUT_CREATE_IF_NO_SYSTEM_LEVEL));
333 ValidateChromeShortcut(ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_, 343 ValidateChromeShortcut(ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_,
334 test_properties_); 344 test_properties_);
335 } 345 }
336 346
337 TEST_F(ShellUtilShortcutTest, CreateAlwaysUserWithSystemLevelPresent) { 347 TEST_F(ShellUtilShortcutTest, CreateAlwaysUserWithSystemLevelPresent) {
338 string16 shortcut_name(dist_->GetAppShortCutName() + installer::kLnkExt); 348 string16 shortcut_name(
349 dist_->GetShortcutName(BrowserDistribution::SHORTCUT_CHROME) +
350 installer::kLnkExt);
339 351
340 test_properties_.level = ShellUtil::SYSTEM_LEVEL; 352 test_properties_.level = ShellUtil::SYSTEM_LEVEL;
341 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( 353 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
342 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_, 354 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_,
343 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); 355 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS));
344 ASSERT_TRUE(base::PathExists( 356 ASSERT_TRUE(base::PathExists(
345 fake_common_desktop_.path().Append(shortcut_name))); 357 fake_common_desktop_.path().Append(shortcut_name)));
346 358
347 test_properties_.level = ShellUtil::CURRENT_USER; 359 test_properties_.level = ShellUtil::CURRENT_USER;
348 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( 360 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
349 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_, 361 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_,
350 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); 362 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS));
351 ASSERT_TRUE(base::PathExists( 363 ASSERT_TRUE(base::PathExists(
352 fake_user_desktop_.path().Append(shortcut_name))); 364 fake_user_desktop_.path().Append(shortcut_name)));
353 } 365 }
354 366
355 TEST_F(ShellUtilShortcutTest, RemoveChromeShortcut) { 367 TEST_F(ShellUtilShortcutTest, RemoveChromeShortcut) {
356 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( 368 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
357 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_, 369 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_,
358 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); 370 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS));
359 371
360 string16 shortcut_name(dist_->GetAppShortCutName() + installer::kLnkExt); 372 string16 shortcut_name(
373 dist_->GetShortcutName(BrowserDistribution::SHORTCUT_CHROME) +
374 installer::kLnkExt);
361 base::FilePath shortcut_path(fake_user_desktop_.path().Append(shortcut_name)); 375 base::FilePath shortcut_path(fake_user_desktop_.path().Append(shortcut_name));
362 ASSERT_TRUE(base::PathExists(shortcut_path)); 376 ASSERT_TRUE(base::PathExists(shortcut_path));
363 377
364 ASSERT_TRUE(ShellUtil::RemoveShortcuts( 378 ASSERT_TRUE(ShellUtil::RemoveShortcuts(
365 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, ShellUtil::CURRENT_USER, 379 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, ShellUtil::CURRENT_USER,
366 chrome_exe_)); 380 chrome_exe_));
367 ASSERT_FALSE(base::PathExists(shortcut_path)); 381 ASSERT_FALSE(base::PathExists(shortcut_path));
368 ASSERT_TRUE(base::PathExists(shortcut_path.DirName())); 382 ASSERT_TRUE(base::PathExists(shortcut_path.DirName()));
369 } 383 }
370 384
371 TEST_F(ShellUtilShortcutTest, RemoveSystemLevelChromeShortcut) { 385 TEST_F(ShellUtilShortcutTest, RemoveSystemLevelChromeShortcut) {
372 test_properties_.level = ShellUtil::SYSTEM_LEVEL; 386 test_properties_.level = ShellUtil::SYSTEM_LEVEL;
373 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( 387 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
374 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_, 388 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_,
375 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); 389 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS));
376 390
377 string16 shortcut_name(dist_->GetAppShortCutName() + installer::kLnkExt); 391 string16 shortcut_name(
392 dist_->GetShortcutName(BrowserDistribution::SHORTCUT_CHROME) +
393 installer::kLnkExt);
378 base::FilePath shortcut_path( 394 base::FilePath shortcut_path(
379 fake_common_desktop_.path().Append(shortcut_name)); 395 fake_common_desktop_.path().Append(shortcut_name));
380 ASSERT_TRUE(base::PathExists(shortcut_path)); 396 ASSERT_TRUE(base::PathExists(shortcut_path));
381 397
382 ASSERT_TRUE(ShellUtil::RemoveShortcuts( 398 ASSERT_TRUE(ShellUtil::RemoveShortcuts(
383 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, ShellUtil::SYSTEM_LEVEL, 399 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, ShellUtil::SYSTEM_LEVEL,
384 chrome_exe_)); 400 chrome_exe_));
385 ASSERT_FALSE(base::PathExists(shortcut_path)); 401 ASSERT_FALSE(base::PathExists(shortcut_path));
386 ASSERT_TRUE(base::PathExists(shortcut_path.DirName())); 402 ASSERT_TRUE(base::PathExists(shortcut_path.DirName()));
387 } 403 }
(...skipping 28 matching lines...) Expand all
416 ASSERT_FALSE(base::PathExists(shortcut1_path)); 432 ASSERT_FALSE(base::PathExists(shortcut1_path));
417 ASSERT_FALSE(base::PathExists(shortcut2_path)); 433 ASSERT_FALSE(base::PathExists(shortcut2_path));
418 ASSERT_TRUE(base::PathExists(shortcut1_path.DirName())); 434 ASSERT_TRUE(base::PathExists(shortcut1_path.DirName()));
419 } 435 }
420 436
421 TEST_F(ShellUtilShortcutTest, UpdateChromeShortcut) { 437 TEST_F(ShellUtilShortcutTest, UpdateChromeShortcut) {
422 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( 438 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
423 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_, 439 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_,
424 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); 440 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS));
425 441
426 string16 shortcut_name(dist_->GetAppShortCutName() + installer::kLnkExt); 442 string16 shortcut_name(
443 dist_->GetShortcutName(BrowserDistribution::SHORTCUT_CHROME) +
444 installer::kLnkExt);
427 base::FilePath shortcut_path(fake_user_desktop_.path().Append(shortcut_name)); 445 base::FilePath shortcut_path(fake_user_desktop_.path().Append(shortcut_name));
428 ASSERT_TRUE(base::PathExists(shortcut_path)); 446 ASSERT_TRUE(base::PathExists(shortcut_path));
429 447
430 base::FilePath new_exe = temp_dir_.path().Append(kManganeseExe); 448 base::FilePath new_exe = temp_dir_.path().Append(kManganeseExe);
431 ShellUtil::ShortcutProperties updated_properties(ShellUtil::CURRENT_USER); 449 ShellUtil::ShortcutProperties updated_properties(ShellUtil::CURRENT_USER);
432 updated_properties.set_target(new_exe); 450 updated_properties.set_target(new_exe);
433 451
434 ASSERT_TRUE(ShellUtil::UpdateShortcuts( 452 ASSERT_TRUE(ShellUtil::UpdateShortcuts(
435 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, ShellUtil::CURRENT_USER, 453 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, ShellUtil::CURRENT_USER,
436 chrome_exe_, updated_properties)); 454 chrome_exe_, updated_properties));
437 455
438 ShellUtil::ShortcutProperties expected_properties(test_properties_); 456 ShellUtil::ShortcutProperties expected_properties(test_properties_);
439 expected_properties.set_target(new_exe); 457 expected_properties.set_target(new_exe);
440 ValidateChromeShortcut(ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, 458 ValidateChromeShortcut(ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_,
441 expected_properties); 459 expected_properties);
442 } 460 }
443 461
444 TEST_F(ShellUtilShortcutTest, UpdateSystemLevelChromeShortcut) { 462 TEST_F(ShellUtilShortcutTest, UpdateSystemLevelChromeShortcut) {
445 test_properties_.level = ShellUtil::SYSTEM_LEVEL; 463 test_properties_.level = ShellUtil::SYSTEM_LEVEL;
446 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( 464 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
447 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_, 465 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_,
448 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); 466 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS));
449 467
450 string16 shortcut_name(dist_->GetAppShortCutName() + installer::kLnkExt); 468 string16 shortcut_name(
469 dist_->GetShortcutName(BrowserDistribution::SHORTCUT_CHROME) +
470 installer::kLnkExt);
451 base::FilePath shortcut_path( 471 base::FilePath shortcut_path(
452 fake_common_desktop_.path().Append(shortcut_name)); 472 fake_common_desktop_.path().Append(shortcut_name));
453 ASSERT_TRUE(base::PathExists(shortcut_path)); 473 ASSERT_TRUE(base::PathExists(shortcut_path));
454 474
455 base::FilePath new_exe = temp_dir_.path().Append(kManganeseExe); 475 base::FilePath new_exe = temp_dir_.path().Append(kManganeseExe);
456 ShellUtil::ShortcutProperties updated_properties(ShellUtil::CURRENT_USER); 476 ShellUtil::ShortcutProperties updated_properties(ShellUtil::CURRENT_USER);
457 updated_properties.set_target(new_exe); 477 updated_properties.set_target(new_exe);
458 478
459 ASSERT_TRUE(ShellUtil::UpdateShortcuts( 479 ASSERT_TRUE(ShellUtil::UpdateShortcuts(
460 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, ShellUtil::SYSTEM_LEVEL, 480 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, ShellUtil::SYSTEM_LEVEL,
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 ShellUtil::SHORTCUT_LOCATION_START_MENU, 538 ShellUtil::SHORTCUT_LOCATION_START_MENU,
519 dist_, test_properties_, 539 dist_, test_properties_,
520 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); 540 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS));
521 test_properties_.set_shortcut_name(L"A second shortcut"); 541 test_properties_.set_shortcut_name(L"A second shortcut");
522 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( 542 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
523 ShellUtil::SHORTCUT_LOCATION_START_MENU, 543 ShellUtil::SHORTCUT_LOCATION_START_MENU,
524 dist_, test_properties_, 544 dist_, test_properties_,
525 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); 545 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS));
526 546
527 base::FilePath shortcut_folder( 547 base::FilePath shortcut_folder(
528 fake_start_menu_.path().Append(dist_->GetAppShortCutName())); 548 fake_start_menu_.path().Append(
549 dist_->GetStartMenuShortcutSubfolder(
550 BrowserDistribution::SUBFOLDER_CHROME)));
529 base::FileEnumerator file_counter(shortcut_folder, false, 551 base::FileEnumerator file_counter(shortcut_folder, false,
530 base::FileEnumerator::FILES); 552 base::FileEnumerator::FILES);
531 int count = 0; 553 int count = 0;
532 while (!file_counter.Next().empty()) 554 while (!file_counter.Next().empty())
533 ++count; 555 ++count;
534 EXPECT_EQ(2, count); 556 EXPECT_EQ(2, count);
535 557
536 ASSERT_TRUE(base::PathExists(shortcut_folder)); 558 ASSERT_TRUE(base::PathExists(shortcut_folder));
537 ASSERT_TRUE(ShellUtil::RemoveShortcuts( 559 ASSERT_TRUE(ShellUtil::RemoveShortcuts(
538 ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_, ShellUtil::CURRENT_USER, 560 ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_, ShellUtil::CURRENT_USER,
539 chrome_exe_)); 561 chrome_exe_));
540 ASSERT_FALSE(base::PathExists(shortcut_folder)); 562 ASSERT_FALSE(base::PathExists(shortcut_folder));
541 } 563 }
542 564
543 TEST_F(ShellUtilShortcutTest, DontRemoveChromeShortcutIfPointsToAnotherChrome) { 565 TEST_F(ShellUtilShortcutTest, DontRemoveChromeShortcutIfPointsToAnotherChrome) {
544 base::ScopedTempDir other_exe_dir; 566 base::ScopedTempDir other_exe_dir;
545 ASSERT_TRUE(other_exe_dir.CreateUniqueTempDir()); 567 ASSERT_TRUE(other_exe_dir.CreateUniqueTempDir());
546 base::FilePath other_chrome_exe = 568 base::FilePath other_chrome_exe =
547 other_exe_dir.path().Append(installer::kChromeExe); 569 other_exe_dir.path().Append(installer::kChromeExe);
548 EXPECT_EQ(0, file_util::WriteFile(other_chrome_exe, "", 0)); 570 EXPECT_EQ(0, file_util::WriteFile(other_chrome_exe, "", 0));
549 571
550 test_properties_.set_target(other_chrome_exe); 572 test_properties_.set_target(other_chrome_exe);
551 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( 573 ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
552 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_, 574 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, test_properties_,
553 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); 575 ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS));
554 576
555 string16 shortcut_name(dist_->GetAppShortCutName() + installer::kLnkExt); 577 string16 shortcut_name(
578 dist_->GetShortcutName(BrowserDistribution::SHORTCUT_CHROME) +
579 installer::kLnkExt);
556 base::FilePath shortcut_path(fake_user_desktop_.path().Append(shortcut_name)); 580 base::FilePath shortcut_path(fake_user_desktop_.path().Append(shortcut_name));
557 ASSERT_TRUE(base::PathExists(shortcut_path)); 581 ASSERT_TRUE(base::PathExists(shortcut_path));
558 582
559 // The shortcut shouldn't be removed as it was installed pointing to 583 // The shortcut shouldn't be removed as it was installed pointing to
560 // |other_chrome_exe| and RemoveChromeShortcut() is being told that the 584 // |other_chrome_exe| and RemoveChromeShortcut() is being told that the
561 // removed shortcut should point to |chrome_exe_|. 585 // removed shortcut should point to |chrome_exe_|.
562 ASSERT_TRUE(ShellUtil::RemoveShortcuts( 586 ASSERT_TRUE(ShellUtil::RemoveShortcuts(
563 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, ShellUtil::CURRENT_USER, 587 ShellUtil::SHORTCUT_LOCATION_DESKTOP, dist_, ShellUtil::CURRENT_USER,
564 chrome_exe_)); 588 chrome_exe_));
565 ASSERT_TRUE(base::PathExists(shortcut_path)); 589 ASSERT_TRUE(base::PathExists(shortcut_path));
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 661
638 const string16 expected[] = { L"", L"MY", L"MZXQ", L"MZXW6", L"MZXW6YQ", 662 const string16 expected[] = { L"", L"MY", L"MZXQ", L"MZXW6", L"MZXW6YQ",
639 L"MZXW6YTB", L"MZXW6YTBOI"}; 663 L"MZXW6YTB", L"MZXW6YTBOI"};
640 664
641 // Run the tests, with one more letter in the input every pass. 665 // Run the tests, with one more letter in the input every pass.
642 for (int i = 0; i < arraysize(expected); ++i) { 666 for (int i = 0; i < arraysize(expected); ++i) {
643 ASSERT_EQ(expected[i], 667 ASSERT_EQ(expected[i],
644 ShellUtil::ByteArrayToBase32(test_array, i)); 668 ShellUtil::ByteArrayToBase32(test_array, i));
645 } 669 }
646 } 670 }
OLDNEW
« no previous file with comments | « chrome/installer/util/shell_util.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698