Index: chrome/browser/shell_integration_win_unittest.cc |
diff --git a/chrome/browser/shell_integration_win_unittest.cc b/chrome/browser/shell_integration_win_unittest.cc |
index 04b600d01aff02218c765fcedda398d4e803cfa6..a63b54e0bef6fa09e65a13fb27885be99868f5c2 100644 |
--- a/chrome/browser/shell_integration_win_unittest.cc |
+++ b/chrome/browser/shell_integration_win_unittest.cc |
@@ -33,11 +33,23 @@ class ShellIntegrationWinMigrateShortcutTest : public testing::Test { |
// This doesn't need to actually have a base name of "chrome.exe". |
file_util::CreateTemporaryFileInDir(temp_dir_.path(), &chrome_exe_); |
+ file_util::CreateTemporaryFileInDir(temp_dir_.path(), &app_host_exe_); |
chrome_app_id_ = |
ShellUtil::GetBrowserModelId(BrowserDistribution::GetDistribution(), |
true); |
+ base::FilePath default_user_data_dir; |
+ chrome::GetDefaultUserDataDirectory(&default_user_data_dir); |
+ base::FilePath default_profile_path = |
+ default_user_data_dir.AppendASCII(chrome::kInitialProfile); |
+ app_list_app_id_ = |
+ ShellIntegration::GetAppListAppModelIdForProfile(default_profile_path); |
+ non_default_profile_ = string16(L"NonDefault"); |
+ non_default_chrome_app_id_ = |
+ ShellIntegration::GetChromiumModelIdForProfile( |
+ default_user_data_dir.Append(non_default_profile_)); |
+ |
// A temporary object to pass properties to AddTestShortcut(). |
base::win::ShortcutProperties temp_properties; |
@@ -89,6 +101,24 @@ class ShellIntegrationWinMigrateShortcutTest : public testing::Test { |
base::win::ShortcutProperties no_properties; |
no_properties.set_target(chrome_exe_); |
ASSERT_NO_FATAL_FAILURE(AddTestShortcut(no_properties)); |
+ |
+ // Shortcut 7 tests that a non-default profile directory gets a non-default |
koz (OOO until 15th September)
2013/04/18 02:06:08
nit: the above comments describe the shortcut, as
calamity
2013/04/18 08:24:34
Done.
|
+ // app id. |
+ temp_properties.set_target(chrome_exe_); |
+ temp_properties.set_app_id(L"Dumbo"); |
+ temp_properties.set_arguments( |
+ string16(L"--profile-directory=") + non_default_profile_); |
+ temp_properties.set_dual_mode(false); |
+ ASSERT_NO_FATAL_FAILURE(AddTestShortcut(temp_properties)); |
+ |
+ // TODO(calamity): remove this test once app_host.exe is removed |
+ // Shortcut 8 tests that app_host.exe shortcuts are migrated to chrome.exe |
koz (OOO until 15th September)
2013/04/18 02:06:08
// Shortcut 8 points to app_host.exe and should be
calamity
2013/04/18 08:24:34
Done.
|
+ // shortcuts. |
+ temp_properties.set_target(app_host_exe_); |
+ temp_properties.set_app_id(L"SomeAppId"); |
+ temp_properties.set_arguments(L"--show-app-list"); |
+ temp_properties.set_dual_mode(false); |
+ ASSERT_NO_FATAL_FAILURE(AddTestShortcut(temp_properties)); |
} |
void AddTestShortcut( |
@@ -110,6 +140,9 @@ class ShellIntegrationWinMigrateShortcutTest : public testing::Test { |
// The path to a fake chrome.exe. |
base::FilePath chrome_exe_; |
+ // The path to a fake app_host.exe. |
+ base::FilePath app_host_exe_; |
+ |
// Test shortcuts. |
std::vector<base::FilePath> shortcuts_; |
@@ -118,6 +151,15 @@ class ShellIntegrationWinMigrateShortcutTest : public testing::Test { |
// Chrome's AppUserModelId. |
string16 chrome_app_id_; |
+ |
+ // A profile that isn't the Default profile. |
+ string16 non_default_profile_; |
+ |
+ // Chrome's AppUserModelId for the non-default profile. |
+ string16 non_default_chrome_app_id_; |
+ |
+ // The app launcher's app id. |
+ string16 app_list_app_id_; |
}; |
} // namespace |
@@ -127,15 +169,19 @@ TEST_F(ShellIntegrationWinMigrateShortcutTest, DontCheckDualMode) { |
if (base::win::GetVersion() < base::win::VERSION_WIN7) |
return; |
- EXPECT_EQ(4, |
+ EXPECT_EQ(6, |
ShellIntegration::MigrateShortcutsInPathInternal( |
- chrome_exe_, temp_dir_.path(), false)); |
+ chrome_exe_, app_host_exe_, temp_dir_.path(), false, false)); |
- // Only shortcut 1, 4, 5, and 6 should have been migrated. |
+ // Only shortcut 1, 4, 5, 6, 7 and 8 should have been migrated. |
shortcuts_properties_[1].set_app_id(chrome_app_id_); |
shortcuts_properties_[4].set_app_id(chrome_app_id_); |
shortcuts_properties_[5].set_app_id(chrome_app_id_); |
shortcuts_properties_[6].set_app_id(chrome_app_id_); |
+ shortcuts_properties_[7].set_app_id(non_default_chrome_app_id_); |
+ // app_host.exe should now be chrome.exe |
+ shortcuts_properties_[8].set_target(chrome_exe_); |
+ shortcuts_properties_[8].set_app_id(app_list_app_id_); |
for (size_t i = 0; i < shortcuts_.size(); ++i) |
base::win::ValidateShortcut(shortcuts_[i], shortcuts_properties_[i]); |
@@ -146,23 +192,29 @@ TEST_F(ShellIntegrationWinMigrateShortcutTest, CheckDualMode) { |
if (base::win::GetVersion() < base::win::VERSION_WIN7) |
return; |
- EXPECT_EQ(5, |
+ EXPECT_EQ(7, |
ShellIntegration::MigrateShortcutsInPathInternal( |
- chrome_exe_, temp_dir_.path(), true)); |
+ chrome_exe_, app_host_exe_, temp_dir_.path(), true, false)); |
- // Shortcut 1, 4, 5, and 6 should have had both their app_id and dual_mode |
- // properties fixed and shortcut 2 should also have had it's dual_mode |
- // property fixed. |
+ // Shortcut 1, 4, 5, 6, 7 and 8 should have had both their app_id and |
+ // dual_mode properties fixed and shortcut 2 should also have had it's |
+ // dual_mode property fixed. |
shortcuts_properties_[1].set_app_id(chrome_app_id_); |
shortcuts_properties_[4].set_app_id(chrome_app_id_); |
shortcuts_properties_[5].set_app_id(chrome_app_id_); |
shortcuts_properties_[6].set_app_id(chrome_app_id_); |
+ shortcuts_properties_[7].set_app_id(non_default_chrome_app_id_); |
+ // app_host.exe should now be chrome.exe |
+ shortcuts_properties_[8].set_target(chrome_exe_); |
+ shortcuts_properties_[8].set_app_id(app_list_app_id_); |
shortcuts_properties_[1].set_dual_mode(true); |
shortcuts_properties_[2].set_dual_mode(true); |
shortcuts_properties_[4].set_dual_mode(true); |
shortcuts_properties_[5].set_dual_mode(true); |
shortcuts_properties_[6].set_dual_mode(true); |
+ shortcuts_properties_[7].set_dual_mode(true); |
+ shortcuts_properties_[8].set_dual_mode(true); |
for (size_t i = 0; i < shortcuts_.size(); ++i) |
base::win::ValidateShortcut(shortcuts_[i], shortcuts_properties_[i]); |