Chromium Code Reviews| 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()); |