Index: chrome/installer/util/shell_util_unittest.cc |
diff --git a/chrome/installer/util/shell_util_unittest.cc b/chrome/installer/util/shell_util_unittest.cc |
index b7303e898f0b9a24e794304f6bd04f15a023ba7e..58e0866d8a7aebf23056c4b0ec293cee2da52823 100644 |
--- a/chrome/installer/util/shell_util_unittest.cc |
+++ b/chrome/installer/util/shell_util_unittest.cc |
@@ -101,7 +101,7 @@ class ShellUtilShortcutTest : public testing::Test { |
fake_user_quick_launch_.path() : |
fake_default_user_quick_launch_.path(); |
break; |
- case ShellUtil::SHORTCUT_LOCATION_START_MENU: |
+ case ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR: |
expected_path = (properties.level == ShellUtil::CURRENT_USER) ? |
fake_start_menu_.path() : fake_common_start_menu_.path(); |
expected_path = expected_path.Append( |
@@ -207,12 +207,12 @@ TEST_F(ShellUtilShortcutTest, GetShortcutPath) { |
string16 start_menu_subfolder = |
dist_->GetStartMenuShortcutSubfolder( |
BrowserDistribution::SUBFOLDER_CHROME); |
- ShellUtil::GetShortcutPath(ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_, |
- ShellUtil::CURRENT_USER, &path); |
+ ShellUtil::GetShortcutPath(ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR, |
+ dist_, ShellUtil::CURRENT_USER, &path); |
EXPECT_EQ(fake_start_menu_.path().Append(start_menu_subfolder), |
path); |
- ShellUtil::GetShortcutPath(ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_, |
- ShellUtil::SYSTEM_LEVEL, &path); |
+ ShellUtil::GetShortcutPath(ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR, |
+ dist_, ShellUtil::SYSTEM_LEVEL, &path); |
EXPECT_EQ(fake_common_start_menu_.path().Append(start_menu_subfolder), |
path); |
} |
@@ -231,11 +231,11 @@ TEST_F(ShellUtilShortcutTest, CreateStartMenuShortcutWithAllProperties) { |
test_properties_.set_shortcut_name(L"Bobo le shortcut"); |
test_properties_.level = ShellUtil::SYSTEM_LEVEL; |
ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( |
- ShellUtil::SHORTCUT_LOCATION_START_MENU, |
+ ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR, |
dist_, test_properties_, |
ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); |
- ValidateChromeShortcut(ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_, |
- test_properties_); |
+ ValidateChromeShortcut(ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR, |
+ dist_, test_properties_); |
} |
TEST_F(ShellUtilShortcutTest, ReplaceSystemLevelQuickLaunchShortcut) { |
@@ -291,20 +291,20 @@ TEST_F(ShellUtilShortcutTest, UpdateAddDualModeToStartMenuShortcut) { |
ShellUtil::ShortcutProperties properties(ShellUtil::CURRENT_USER); |
product_->AddDefaultShortcutProperties(chrome_exe_, &properties); |
ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( |
- ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_, properties, |
- ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); |
+ ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR, dist_, |
+ properties, ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); |
ShellUtil::ShortcutProperties added_properties(ShellUtil::CURRENT_USER); |
added_properties.set_dual_mode(true); |
ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( |
- ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_, |
+ ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR, dist_, |
added_properties, ShellUtil::SHELL_SHORTCUT_UPDATE_EXISTING)); |
ShellUtil::ShortcutProperties expected_properties(properties); |
expected_properties.set_dual_mode(true); |
- ValidateChromeShortcut(ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_, |
- expected_properties); |
+ ValidateChromeShortcut(ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR, |
+ dist_, expected_properties); |
} |
TEST_F(ShellUtilShortcutTest, CreateIfNoSystemLevel) { |
@@ -337,11 +337,11 @@ TEST_F(ShellUtilShortcutTest, CreateIfNoSystemLevelWithSystemLevelPresent) { |
TEST_F(ShellUtilShortcutTest, CreateIfNoSystemLevelStartMenu) { |
ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( |
- ShellUtil::SHORTCUT_LOCATION_START_MENU, |
+ ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR, |
dist_, test_properties_, |
ShellUtil::SHELL_SHORTCUT_CREATE_IF_NO_SYSTEM_LEVEL)); |
- ValidateChromeShortcut(ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_, |
- test_properties_); |
+ ValidateChromeShortcut(ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR, |
+ dist_, test_properties_); |
} |
TEST_F(ShellUtilShortcutTest, CreateAlwaysUserWithSystemLevelPresent) { |
@@ -536,12 +536,12 @@ TEST_F(ShellUtilShortcutTest, UpdateMultipleChromeShortcutsWithArgs) { |
TEST_F(ShellUtilShortcutTest, CreateMultipleStartMenuShortcutsAndRemoveFolder) { |
gab
2013/11/21 19:52:24
Please also create SHORTCUT_LOCATION_START_MENU_CH
calamity
2013/11/24 23:55:15
Done.
|
ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( |
- ShellUtil::SHORTCUT_LOCATION_START_MENU, |
+ ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR, |
dist_, test_properties_, |
ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); |
test_properties_.set_shortcut_name(L"A second shortcut"); |
ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( |
- ShellUtil::SHORTCUT_LOCATION_START_MENU, |
+ ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR, |
dist_, test_properties_, |
ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); |
@@ -558,11 +558,35 @@ TEST_F(ShellUtilShortcutTest, CreateMultipleStartMenuShortcutsAndRemoveFolder) { |
ASSERT_TRUE(base::PathExists(shortcut_folder)); |
ASSERT_TRUE(ShellUtil::RemoveShortcuts( |
- ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_, ShellUtil::CURRENT_USER, |
- chrome_exe_)); |
+ ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR, dist_, |
+ ShellUtil::CURRENT_USER, chrome_exe_)); |
ASSERT_FALSE(base::PathExists(shortcut_folder)); |
} |
+TEST_F(ShellUtilShortcutTest, |
+ DeleteStartMenuRootShortcutWithoutRemovingFolder) { |
+ ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut( |
+ ShellUtil::SHORTCUT_LOCATION_START_MENU_ROOT, |
+ dist_, test_properties_, |
+ ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS)); |
+ |
+ string16 shortcut_name( |
+ dist_->GetShortcutName(BrowserDistribution::SHORTCUT_CHROME) + |
+ installer::kLnkExt); |
+ base::FilePath shortcut_path( |
+ fake_start_menu_.path().Append(shortcut_name)); |
+ |
+ ASSERT_TRUE(base::PathExists(fake_start_menu_.path())); |
+ ASSERT_TRUE(base::PathExists(shortcut_path)); |
+ ASSERT_TRUE(ShellUtil::RemoveShortcuts( |
+ ShellUtil::SHORTCUT_LOCATION_START_MENU_ROOT, dist_, |
+ ShellUtil::CURRENT_USER, chrome_exe_)); |
+ // The shortcut should be removed but the "Start Menu" root directory should |
+ // remain. |
+ ASSERT_TRUE(base::PathExists(fake_start_menu_.path())); |
+ ASSERT_FALSE(base::PathExists(shortcut_path)); |
+} |
+ |
TEST_F(ShellUtilShortcutTest, DontRemoveChromeShortcutIfPointsToAnotherChrome) { |
base::ScopedTempDir other_exe_dir; |
ASSERT_TRUE(other_exe_dir.CreateUniqueTempDir()); |