| 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..85d67b72d2afb51d25fc5bea6ecb0d990b5e530e 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,31 +536,82 @@ TEST_F(ShellUtilShortcutTest, UpdateMultipleChromeShortcutsWithArgs) {
|
|
|
| TEST_F(ShellUtilShortcutTest, CreateMultipleStartMenuShortcutsAndRemoveFolder) {
|
| ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
|
| - ShellUtil::SHORTCUT_LOCATION_START_MENU,
|
| + ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR,
|
| + dist_, test_properties_,
|
| + ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS));
|
| + ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
|
| + ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_APPS_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));
|
| + ASSERT_TRUE(ShellUtil::CreateOrUpdateShortcut(
|
| + ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_APPS_DIR,
|
| dist_, test_properties_,
|
| ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS));
|
|
|
| - base::FilePath shortcut_folder(
|
| + base::FilePath chrome_shortcut_folder(
|
| fake_start_menu_.path().Append(
|
| dist_->GetStartMenuShortcutSubfolder(
|
| BrowserDistribution::SUBFOLDER_CHROME)));
|
| - base::FileEnumerator file_counter(shortcut_folder, false,
|
| - base::FileEnumerator::FILES);
|
| + base::FilePath chrome_apps_shortcut_folder(
|
| + fake_start_menu_.path().Append(
|
| + dist_->GetStartMenuShortcutSubfolder(
|
| + BrowserDistribution::SUBFOLDER_APPS)));
|
| +
|
| + base::FileEnumerator chrome_file_counter(chrome_shortcut_folder, false,
|
| + base::FileEnumerator::FILES);
|
| int count = 0;
|
| - while (!file_counter.Next().empty())
|
| + while (!chrome_file_counter.Next().empty())
|
| + ++count;
|
| + EXPECT_EQ(2, count);
|
| +
|
| + base::FileEnumerator chrome_apps_file_counter(chrome_apps_shortcut_folder,
|
| + false,
|
| + base::FileEnumerator::FILES);
|
| + count = 0;
|
| + while (!chrome_apps_file_counter.Next().empty())
|
| ++count;
|
| EXPECT_EQ(2, count);
|
|
|
| - ASSERT_TRUE(base::PathExists(shortcut_folder));
|
| + ASSERT_TRUE(base::PathExists(chrome_shortcut_folder));
|
| ASSERT_TRUE(ShellUtil::RemoveShortcuts(
|
| - ShellUtil::SHORTCUT_LOCATION_START_MENU, dist_, ShellUtil::CURRENT_USER,
|
| - chrome_exe_));
|
| - ASSERT_FALSE(base::PathExists(shortcut_folder));
|
| + ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR, dist_,
|
| + ShellUtil::CURRENT_USER, chrome_exe_));
|
| + ASSERT_FALSE(base::PathExists(chrome_shortcut_folder));
|
| +
|
| + ASSERT_TRUE(base::PathExists(chrome_apps_shortcut_folder));
|
| + ASSERT_TRUE(ShellUtil::RemoveShortcuts(
|
| + ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_APPS_DIR, dist_,
|
| + ShellUtil::CURRENT_USER, chrome_exe_));
|
| + ASSERT_FALSE(base::PathExists(chrome_apps_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) {
|
|
|