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

Side by Side Diff: chrome/browser/profiles/profile_info_cache_unittest.cc

Issue 222313005: [Profiles] Download high-res avatars using the --new-profile-management flag (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: msw comments Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/profiles/profile_info_cache_unittest.h" 5 #include "chrome/browser/profiles/profile_info_cache_unittest.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/file_util.h"
9 #include "base/prefs/testing_pref_service.h" 10 #include "base/prefs/testing_pref_service.h"
10 #include "base/strings/stringprintf.h" 11 #include "base/strings/stringprintf.h"
11 #include "base/strings/utf_string_conversions.h" 12 #include "base/strings/utf_string_conversions.h"
12 #include "base/time/time.h" 13 #include "base/time/time.h"
13 #include "chrome/browser/browser_process.h" 14 #include "chrome/browser/browser_process.h"
14 #include "chrome/browser/chrome_notification_types.h" 15 #include "chrome/browser/chrome_notification_types.h"
15 #include "chrome/browser/prefs/pref_service_syncable.h" 16 #include "chrome/browser/prefs/pref_service_syncable.h"
17 #include "chrome/browser/profiles/profile_avatar_downloader.h"
16 #include "chrome/browser/profiles/profile_avatar_icon_util.h" 18 #include "chrome/browser/profiles/profile_avatar_icon_util.h"
17 #include "chrome/browser/profiles/profile_info_cache.h" 19 #include "chrome/browser/profiles/profile_info_cache.h"
18 #include "chrome/browser/profiles/profile_manager.h" 20 #include "chrome/browser/profiles/profile_manager.h"
19 #include "chrome/test/base/testing_browser_process.h" 21 #include "chrome/test/base/testing_browser_process.h"
20 #include "content/public/browser/notification_observer.h" 22 #include "content/public/browser/notification_observer.h"
21 #include "content/public/browser/notification_registrar.h" 23 #include "content/public/browser/notification_registrar.h"
22 #include "content/public/browser/notification_service.h" 24 #include "content/public/browser/notification_service.h"
23 #include "content/public/test/test_browser_thread_bundle.h" 25 #include "content/public/test/test_browser_thread_bundle.h"
24 #include "content/public/test/test_utils.h" 26 #include "content/public/test/test_utils.h"
25 #include "third_party/skia/include/core/SkBitmap.h" 27 #include "third_party/skia/include/core/SkBitmap.h"
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 base::FilePath ProfileInfoCacheTest::GetProfilePath( 112 base::FilePath ProfileInfoCacheTest::GetProfilePath(
111 const std::string& base_name) { 113 const std::string& base_name) {
112 return testing_profile_manager_.profile_manager()->user_data_dir(). 114 return testing_profile_manager_.profile_manager()->user_data_dir().
113 AppendASCII(base_name); 115 AppendASCII(base_name);
114 } 116 }
115 117
116 void ProfileInfoCacheTest::ResetCache() { 118 void ProfileInfoCacheTest::ResetCache() {
117 testing_profile_manager_.DeleteProfileInfoCache(); 119 testing_profile_manager_.DeleteProfileInfoCache();
118 } 120 }
119 121
120 namespace {
121
122 TEST_F(ProfileInfoCacheTest, AddProfiles) { 122 TEST_F(ProfileInfoCacheTest, AddProfiles) {
123 EXPECT_EQ(0u, GetCache()->GetNumberOfProfiles()); 123 EXPECT_EQ(0u, GetCache()->GetNumberOfProfiles());
124 124
125 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); 125 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
126 for (uint32 i = 0; i < 4; ++i) { 126 for (uint32 i = 0; i < 4; ++i) {
127 base::FilePath profile_path = 127 base::FilePath profile_path =
128 GetProfilePath(base::StringPrintf("path_%ud", i)); 128 GetProfilePath(base::StringPrintf("path_%ud", i));
129 base::string16 profile_name = 129 base::string16 profile_name =
130 ASCIIToUTF16(base::StringPrintf("name_%ud", i)); 130 ASCIIToUTF16(base::StringPrintf("name_%ud", i));
131 const SkBitmap* icon = rb.GetImageNamed( 131 const SkBitmap* icon = rb.GetImageNamed(
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 } 495 }
496 496
497 ASSERT_EQ(4U, GetCache()->GetNumberOfProfiles()); 497 ASSERT_EQ(4U, GetCache()->GetNumberOfProfiles());
498 498
499 // Check that the profiles can be extracted from the local state. 499 // Check that the profiles can be extracted from the local state.
500 std::vector<base::string16> names = ProfileInfoCache::GetProfileNames(); 500 std::vector<base::string16> names = ProfileInfoCache::GetProfileNames();
501 for (size_t i = 0; i < 4; i++) 501 for (size_t i = 0; i < 4; i++)
502 ASSERT_FALSE(names[i].empty()); 502 ASSERT_FALSE(names[i].empty());
503 } 503 }
504 504
505 } // namespace 505 TEST_F(ProfileInfoCacheTest, DownloadHighResAvatarTest) {
506 EXPECT_EQ(0U, GetCache()->GetNumberOfProfiles());
507 base::FilePath path_1 = GetProfilePath("path_1");
508 GetCache()->AddProfileToCache(path_1, ASCIIToUTF16("name_1"),
509 base::string16(), 0, std::string());
510 EXPECT_EQ(1U, GetCache()->GetNumberOfProfiles());
511
512 // We haven't downloaded any high-res avatars yet.
513 EXPECT_EQ(0U, GetCache()->cached_avatar_images_.size());
514 EXPECT_EQ(0U, GetCache()->avatar_images_downloads_in_progress_.size());
515 EXPECT_FALSE(GetCache()->GetHighResAvatarOfProfileAtIndex(0));
516
517 // Simulate downloading a high-res avatar.
518 const size_t kIconIndex = 0;
519 ProfileAvatarDownloader avatar_downloader(kIconIndex, GetCache());
520
521 // Put a real bitmap into "bitmap". 2x2 bitmap of green 32 bit pixels.
522 SkBitmap bitmap;
523 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 2, 2);
524 bitmap.allocPixels();
525 bitmap.eraseColor(SK_ColorGREEN);
526
527 avatar_downloader.OnFetchComplete(
528 GURL("http://www.google.com/avatar.png"), &bitmap);
529
530 std::string file_name =
531 profiles::GetDefaultAvatarIconFileNameAtIndex(kIconIndex);
532
533 // The file should have been cached and saved.
534 EXPECT_EQ(0U, GetCache()->avatar_images_downloads_in_progress_.size());
535 EXPECT_EQ(1U, GetCache()->cached_avatar_images_.size());
536 EXPECT_TRUE(GetCache()->GetHighResAvatarOfProfileAtIndex(0));
537 EXPECT_EQ(GetCache()->cached_avatar_images_[file_name],
538 GetCache()->GetHighResAvatarOfProfileAtIndex(0));
539 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698