Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(285)

Unified Diff: chrome/browser/profiles/profile_shortcut_manager_unittest_win.cc

Issue 14137032: Create profile .ico file on profile creation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 5e3cf5f09e37bafed009234f25edd90e5fe68750..4afb347e9c8954dbfd635a398f8ca13e456bebde 100644
--- a/chrome/browser/profiles/profile_shortcut_manager_unittest_win.cc
+++ b/chrome/browser/profiles/profile_shortcut_manager_unittest_win.cc
@@ -71,16 +71,17 @@ class ProfileShortcutManagerTest : public testing::Test {
profile_info_cache_->DeleteProfileFromCache(profile_path);
RunPendingTasks();
ASSERT_FALSE(ProfileShortcutExistsAtDefaultPath(profile_name));
+ // The icon file is not deleted until the profile directory is deleted.
const base::FilePath icon_path =
- profile_path.AppendASCII(profiles::internal::kProfileIconFileName);
- ASSERT_FALSE(base::PathExists(icon_path));
+ profiles::internal::GetProfileIconPath(profile_path);
+ ASSERT_TRUE(base::PathExists(icon_path));
}
}
base::FilePath CreateProfileDirectory(const string16& profile_name) {
const base::FilePath profile_path =
profile_info_cache_->GetUserDataDir().Append(profile_name);
- file_util::CreateDirectoryW(profile_path);
+ file_util::CreateDirectory(profile_path);
return profile_path;
}
@@ -134,7 +135,7 @@ class ProfileShortcutManagerTest : public testing::Test {
// Ensure that the corresponding icon exists.
const base::FilePath icon_path =
- profile_path.AppendASCII(profiles::internal::kProfileIconFileName);
+ profiles::internal::GetProfileIconPath(profile_path);
EXPECT_TRUE(base::PathExists(icon_path)) << location.ToString();
base::win::ShortcutProperties expected_properties;
@@ -760,7 +761,7 @@ TEST_F(ProfileShortcutManagerTest,
CreateRegularSystemLevelShortcut(FROM_HERE);
// Delete the profile that has a shortcut, which will exercise the non-profile
- // shortcut creation path in |DeleteDesktopShortcutsAndIconFile()|, which is
+ // shortcut creation path in |DeleteDesktopShortcuts()|, which is
// not covered by the |DeleteSecondToLastProfileWithSystemLevelShortcut| test.
profile_info_cache_->DeleteProfileFromCache(profile_2_path_);
RunPendingTasks();
@@ -772,3 +773,95 @@ TEST_F(ProfileShortcutManagerTest,
EXPECT_FALSE(base::PathExists(profile_1_shortcut_path));
EXPECT_FALSE(base::PathExists(profile_2_shortcut_path));
}
+
+TEST_F(ProfileShortcutManagerTest, CreateProfileIcon) {
+ SetupDefaultProfileShortcut(FROM_HERE);
+
+ const base::FilePath icon_path =
+ profiles::internal::GetProfileIconPath(profile_1_path_);
+
+ EXPECT_TRUE(base::PathExists(icon_path));
+ EXPECT_TRUE(base::DeleteFile(icon_path, false));
+ EXPECT_FALSE(base::PathExists(icon_path));
+
+ profile_shortcut_manager_->CreateOrUpdateProfileIcon(profile_1_path_,
+ base::Closure());
+ RunPendingTasks();
+ EXPECT_TRUE(base::PathExists(icon_path));
+}
+
+TEST_F(ProfileShortcutManagerTest, UnbadgeProfileIconOnDeletion) {
+ SetupDefaultProfileShortcut(FROM_HERE);
+ const base::FilePath icon_path_1 =
+ profiles::internal::GetProfileIconPath(profile_1_path_);
+ const base::FilePath icon_path_2 =
+ profiles::internal::GetProfileIconPath(profile_2_path_);
+
+ // Default profile has unbadged icon to start.
+ std::string unbadged_icon_1;
+ EXPECT_TRUE(file_util::ReadFileToString(icon_path_1, &unbadged_icon_1));
+
+ // Creating a new profile adds a badge to both the new profile icon and the
+ // default profile icon. Since they use the same icon index, the icon files
+ // should be the same.
+ CreateProfileWithShortcut(FROM_HERE, profile_2_name_, profile_2_path_);
+
+ std::string badged_icon_1;
+ EXPECT_TRUE(file_util::ReadFileToString(icon_path_1, &badged_icon_1));
+ std::string badged_icon_2;
+ EXPECT_TRUE(file_util::ReadFileToString(icon_path_2, &badged_icon_2));
+
+ EXPECT_NE(badged_icon_1, unbadged_icon_1);
+ EXPECT_EQ(badged_icon_1, badged_icon_2);
+
+ // Deleting the default profile will unbadge the new profile's icon and should
+ // result in an icon that is identical to the unbadged default profile icon.
+ profile_info_cache_->DeleteProfileFromCache(profile_1_path_);
+ RunPendingTasks();
+
+ std::string unbadged_icon_2;
+ EXPECT_TRUE(file_util::ReadFileToString(icon_path_2, &unbadged_icon_2));
+ EXPECT_EQ(unbadged_icon_1, unbadged_icon_2);
+}
+
+TEST_F(ProfileShortcutManagerTest, ProfileIconOnAvatarChange) {
+ SetupAndCreateTwoShortcuts(FROM_HERE);
+ const base::FilePath icon_path_1 =
+ profiles::internal::GetProfileIconPath(profile_1_path_);
+ const base::FilePath icon_path_2 =
+ profiles::internal::GetProfileIconPath(profile_2_path_);
+ const size_t profile_index_1 =
+ profile_info_cache_->GetIndexOfProfileWithPath(profile_1_path_);
+
+ std::string badged_icon_1;
+ EXPECT_TRUE(file_util::ReadFileToString(icon_path_1, &badged_icon_1));
+ std::string badged_icon_2;
+ EXPECT_TRUE(file_util::ReadFileToString(icon_path_2, &badged_icon_2));
+
+ // Profile 1 and 2 are created with the same icon.
+ EXPECT_EQ(badged_icon_1, badged_icon_2);
+
+ // Change profile 1's icon.
+ profile_info_cache_->SetAvatarIconOfProfileAtIndex(profile_index_1, 1);
+ RunPendingTasks();
+
+ std::string new_badged_icon_1;
+ EXPECT_TRUE(file_util::ReadFileToString(icon_path_1, &new_badged_icon_1));
+ EXPECT_NE(new_badged_icon_1, badged_icon_1);
+
+ // Ensure the new icon is not the unbadged icon.
+ profile_info_cache_->DeleteProfileFromCache(profile_2_path_);
+ RunPendingTasks();
+
+ std::string unbadged_icon_1;
+ EXPECT_TRUE(file_util::ReadFileToString(icon_path_1, &unbadged_icon_1));
+ EXPECT_NE(unbadged_icon_1, new_badged_icon_1);
+
+ // Ensure the icon doesn't change on avatar change without 2 profiles.
+ profile_info_cache_->SetAvatarIconOfProfileAtIndex(profile_index_1, 1);
+ RunPendingTasks();
+
+ std::string unbadged_icon_1_a;
+ EXPECT_TRUE(file_util::ReadFileToString(icon_path_1, &unbadged_icon_1_a));
+ EXPECT_EQ(unbadged_icon_1, unbadged_icon_1_a);
+}
« no previous file with comments | « chrome/browser/profiles/profile_shortcut_manager.h ('k') | chrome/browser/profiles/profile_shortcut_manager_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698