| Index: chrome/browser/profiles/profile_shortcut_manager_unittest_win.cc
|
| diff --git a/chrome/browser/profiles/profile_shortcut_manager_unittest_win.cc b/chrome/browser/profiles/profile_shortcut_manager_unittest_win.cc
|
| index 81be1841b8defc7a113b26e80643c9b5f2751664..1950d18ea4e14971ec2dfc112d5b61f63db73278 100644
|
| --- a/chrome/browser/profiles/profile_shortcut_manager_unittest_win.cc
|
| +++ b/chrome/browser/profiles/profile_shortcut_manager_unittest_win.cc
|
| @@ -27,21 +27,37 @@ using content::BrowserThread;
|
|
|
| namespace {
|
|
|
| -base::win::VerifyShortcutStatus VerifyProfileShortcut(
|
| - const string16& profile_name) {
|
| +// Sets |path| to the path to the shortcut for this profile.
|
| +// Automatically fails the test on failure to do so.
|
| +void GetShortcutPathForProfile(BrowserDistribution* dist,
|
| + const string16& profile_name,
|
| + FilePath* path) {
|
| + string16 shortcut_name;
|
| + EXPECT_TRUE(ShellUtil::GetDesktopPath(false, path));
|
| + EXPECT_TRUE(ShellUtil::GetChromeShortcutName(dist, false, profile_name,
|
| + &shortcut_name));
|
| + *path = path->Append(shortcut_name);
|
| +}
|
| +
|
| +// Returns true if the shortcut for this profile exists.
|
| +bool ProfileShortcutExists(BrowserDistribution* dist,
|
| + const string16& profile_name) {
|
| + FilePath shortcut_path;
|
| + GetShortcutPathForProfile(dist, profile_name, &shortcut_path);
|
| + return file_util::PathExists(shortcut_path);
|
| +}
|
| +
|
| +// Calls base::win::ValidateShortcut() with expected properties for
|
| +// |profile_name|'s shortcut.
|
| +void ValidateProfileShortcut(BrowserDistribution* dist,
|
| + const string16& profile_name) {
|
| + EXPECT_TRUE(ProfileShortcutExists(dist, profile_name));
|
| +
|
| FilePath exe_path;
|
| EXPECT_TRUE(PathService::Get(base::FILE_EXE, &exe_path));
|
|
|
| - BrowserDistribution* dist = BrowserDistribution::GetDistribution();
|
| -
|
| - // Get the desktop path of the current user.
|
| FilePath shortcut_path;
|
| - ShellUtil::GetDesktopPath(false, &shortcut_path);
|
| - // Get the name of the shortcut with profile attached
|
| - string16 shortcut_name;
|
| - ShellUtil::GetChromeShortcutName(dist, false, profile_name,
|
| - &shortcut_name);
|
| - shortcut_path = shortcut_path.Append(shortcut_name);
|
| + GetShortcutPathForProfile(dist, profile_name, &shortcut_path);
|
|
|
| // TODO(hallielaine): With this new struct method for VerifyShortcut you can
|
| // now test more properties like: arguments, icon, icon_index, and app_id.
|
| @@ -49,7 +65,7 @@ base::win::VerifyShortcutStatus VerifyProfileShortcut(
|
| expected_properties.set_target(exe_path);
|
| expected_properties.set_description(dist->GetAppDescription());
|
| expected_properties.set_dual_mode(false);
|
| - return base::win::VerifyShortcut(shortcut_path, expected_properties);
|
| + base::win::ValidateShortcut(shortcut_path, expected_properties);
|
| }
|
|
|
| } // namespace
|
| @@ -62,6 +78,9 @@ class ProfileShortcutManagerTest : public testing::Test {
|
| }
|
|
|
| virtual void SetUp() OVERRIDE {
|
| + dist_ = BrowserDistribution::GetDistribution();
|
| + ASSERT_TRUE(dist_ != NULL);
|
| +
|
| // Mock the user's Desktop into a temp directory.
|
| ASSERT_TRUE(fake_user_desktop_.CreateUniqueTempDir());
|
| ASSERT_TRUE(PathService::Override(base::DIR_USER_DESKTOP,
|
| @@ -105,16 +124,14 @@ class ProfileShortcutManagerTest : public testing::Test {
|
| profile_path);
|
| MessageLoop::current()->PostTask(FROM_HERE, MessageLoop::QuitClosure());
|
| MessageLoop::current()->Run();
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_FAILURE_FILE_NOT_FOUND,
|
| - VerifyProfileShortcut(profile_name));
|
| + ASSERT_FALSE(ProfileShortcutExists(dist_, profile_name));
|
| ASSERT_FALSE(file_util::PathExists(profile_path.Append(
|
| FILE_PATH_LITERAL("Google Profile.ico"))));
|
| }
|
| }
|
|
|
| void SetupDefaultProfileShortcut() {
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_FAILURE_FILE_NOT_FOUND,
|
| - VerifyProfileShortcut(profile_name_));
|
| + ASSERT_FALSE(ProfileShortcutExists(dist_, profile_name_));
|
| // A non-badged shortcut for chrome is automatically created with the
|
| // first profile (for the case when the user deletes their only
|
| // profile).
|
| @@ -124,16 +141,13 @@ class ProfileShortcutManagerTest : public testing::Test {
|
| MessageLoop::current()->Run();
|
| // We now have 1 profile, so we expect a new shortcut with no profile
|
| // information.
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS,
|
| - VerifyProfileShortcut(string16()));
|
| + ValidateProfileShortcut(dist_, string16());
|
| }
|
|
|
| void SetupAndCreateTwoShortcuts() {
|
| ASSERT_EQ(0, profile_manager_->profile_info_cache()->GetNumberOfProfiles());
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_FAILURE_FILE_NOT_FOUND,
|
| - VerifyProfileShortcut(profile_name_));
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_FAILURE_FILE_NOT_FOUND,
|
| - VerifyProfileShortcut(second_profile_name_));
|
| + ASSERT_FALSE(ProfileShortcutExists(dist_, profile_name_));
|
| + ASSERT_FALSE(ProfileShortcutExists(dist_, second_profile_name_));
|
|
|
| profile_manager_->profile_info_cache()->AddProfileToCache(
|
| dest_path_, profile_name_, string16(), 0);
|
| @@ -143,12 +157,11 @@ class ProfileShortcutManagerTest : public testing::Test {
|
| CreateProfileShortcut(second_dest_path_);
|
| MessageLoop::current()->PostTask(FROM_HERE, MessageLoop::QuitClosure());
|
| MessageLoop::current()->Run();
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS,
|
| - VerifyProfileShortcut(profile_name_));
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS,
|
| - VerifyProfileShortcut(second_profile_name_));
|
| + ValidateProfileShortcut(dist_, profile_name_);
|
| + ValidateProfileShortcut(dist_, second_profile_name_);
|
| }
|
|
|
| + BrowserDistribution* dist_;
|
| MessageLoopForUI message_loop_;
|
| content::TestBrowserThread ui_thread_;
|
| content::TestBrowserThread file_thread_;
|
| @@ -174,8 +187,7 @@ TEST_F(ProfileShortcutManagerTest, DesktopShortcutsCreate) {
|
|
|
| // We now have 2 profiles, so we expect a new shortcut with profile
|
| // information for this 2nd profile.
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS,
|
| - VerifyProfileShortcut(second_profile_name_));
|
| + ValidateProfileShortcut(dist_, second_profile_name_);
|
| ASSERT_TRUE(file_util::PathExists(second_dest_path_.Append(
|
| FILE_PATH_LITERAL("Google Profile.ico"))));
|
| }
|
| @@ -185,8 +197,7 @@ TEST_F(ProfileShortcutManagerTest, DesktopShortcutsUpdate) {
|
| return;
|
| ProfileShortcutManagerTest::SetupDefaultProfileShortcut();
|
|
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_FAILURE_FILE_NOT_FOUND,
|
| - VerifyProfileShortcut(second_profile_name_));
|
| + EXPECT_FALSE(ProfileShortcutExists(dist_, second_profile_name_));
|
|
|
| profile_manager_->profile_info_cache()->AddProfileToCache(
|
| second_dest_path_, second_profile_name_, string16(), 0);
|
| @@ -194,8 +205,7 @@ TEST_F(ProfileShortcutManagerTest, DesktopShortcutsUpdate) {
|
| CreateProfileShortcut(second_dest_path_);
|
| MessageLoop::current()->PostTask(FROM_HERE, MessageLoop::QuitClosure());
|
| MessageLoop::current()->Run();
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS,
|
| - VerifyProfileShortcut(second_profile_name_));
|
| + ValidateProfileShortcut(dist_, second_profile_name_);
|
|
|
| // Cause an update in ProfileShortcutManager by modifying the profile info
|
| // cache.
|
| @@ -206,10 +216,8 @@ TEST_F(ProfileShortcutManagerTest, DesktopShortcutsUpdate) {
|
| new_profile_name);
|
| MessageLoop::current()->PostTask(FROM_HERE, MessageLoop::QuitClosure());
|
| MessageLoop::current()->Run();
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_FAILURE_FILE_NOT_FOUND,
|
| - VerifyProfileShortcut(second_profile_name_));
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS,
|
| - VerifyProfileShortcut(new_profile_name));
|
| + EXPECT_FALSE(ProfileShortcutExists(dist_, second_profile_name_));
|
| + ValidateProfileShortcut(dist_, new_profile_name);
|
| }
|
|
|
| TEST_F(ProfileShortcutManagerTest, DesktopShortcutsDeleteSecondToLast) {
|
| @@ -222,16 +230,13 @@ TEST_F(ProfileShortcutManagerTest, DesktopShortcutsDeleteSecondToLast) {
|
| second_dest_path_);
|
| MessageLoop::current()->PostTask(FROM_HERE, MessageLoop::QuitClosure());
|
| MessageLoop::current()->Run();
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_FAILURE_FILE_NOT_FOUND,
|
| - VerifyProfileShortcut(second_profile_name_));
|
| + EXPECT_FALSE(ProfileShortcutExists(dist_, second_profile_name_));
|
|
|
| // Verify that the profile name has been removed from the remaining shortcut
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS,
|
| - VerifyProfileShortcut(string16()));
|
| + ValidateProfileShortcut(dist_, string16());
|
| // Verify that an additional shortcut, with the default profile's name does
|
| // not exist
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_FAILURE_FILE_NOT_FOUND,
|
| - VerifyProfileShortcut(profile_name_));
|
| + EXPECT_FALSE(ProfileShortcutExists(dist_, profile_name_));
|
| }
|
|
|
| TEST_F(ProfileShortcutManagerTest, DesktopShortcutsCreateSecond) {
|
| @@ -246,12 +251,10 @@ TEST_F(ProfileShortcutManagerTest, DesktopShortcutsCreateSecond) {
|
| MessageLoop::current()->Run();
|
|
|
| // Verify that a default shortcut exists (no profile name/avatar)
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS,
|
| - VerifyProfileShortcut(string16()));
|
| + ValidateProfileShortcut(dist_, string16());
|
| // Verify that an additional shortcut, with the default profile's name does
|
| // not exist
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_FAILURE_FILE_NOT_FOUND,
|
| - VerifyProfileShortcut(profile_name_));
|
| + EXPECT_FALSE(ProfileShortcutExists(dist_, profile_name_));
|
|
|
| // Create a second profile and shortcut
|
| profile_manager_->profile_info_cache()->AddProfileToCache(
|
| @@ -260,14 +263,10 @@ TEST_F(ProfileShortcutManagerTest, DesktopShortcutsCreateSecond) {
|
| CreateProfileShortcut(second_dest_path_);
|
| MessageLoop::current()->PostTask(FROM_HERE, MessageLoop::QuitClosure());
|
| MessageLoop::current()->Run();
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS,
|
| - VerifyProfileShortcut(second_profile_name_));
|
| + ValidateProfileShortcut(dist_, second_profile_name_);
|
|
|
| // Verify that the original shortcut received the profile's name
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_SUCCESS,
|
| - VerifyProfileShortcut(profile_name_));
|
| + ValidateProfileShortcut(dist_, profile_name_);
|
| // Verify that a default shortcut no longer exists
|
| - EXPECT_EQ(base::win::VERIFY_SHORTCUT_FAILURE_FILE_NOT_FOUND,
|
| - VerifyProfileShortcut(string16()));
|
| + EXPECT_FALSE(ProfileShortcutExists(dist_, string16()));
|
| }
|
| -
|
|
|