Index: chrome/browser/profiles/gaia_info_update_service_unittest.cc |
diff --git a/chrome/browser/profiles/gaia_info_update_service_unittest.cc b/chrome/browser/profiles/gaia_info_update_service_unittest.cc |
index ae618a046dac1e9b82aaca76f3417bfee42937cd..ce2f601ab0a020a1eac6a5fd93cc87914ab67556 100644 |
--- a/chrome/browser/profiles/gaia_info_update_service_unittest.cc |
+++ b/chrome/browser/profiles/gaia_info_update_service_unittest.cc |
@@ -34,6 +34,7 @@ class ProfileDownloaderMock : public ProfileDownloader { |
} |
MOCK_CONST_METHOD0(GetProfileFullName, base::string16()); |
+ MOCK_CONST_METHOD0(GetProfileGivenName, base::string16()); |
MOCK_CONST_METHOD0(GetProfilePicture, SkBitmap()); |
MOCK_CONST_METHOD0(GetProfilePictureStatus, |
ProfileDownloader::PictureStatus()); |
@@ -58,20 +59,67 @@ class GAIAInfoUpdateServiceTest : public ProfileInfoCacheTest { |
} |
Profile* profile() { |
- if (!profile_) { |
- profile_ = testing_profile_manager_.CreateTestingProfile("Person 1"); |
- // The testing manager sets the profile name manually, which counts as |
- // a user-customized profile name. Reset this to match the default name |
- // we are actually using. |
- size_t index = GetCache()->GetIndexOfProfileWithPath(profile_->GetPath()); |
- GetCache()->SetProfileIsUsingDefaultNameAtIndex(index, true); |
- } |
+ if (!profile_) |
+ profile_ = CreateProfile("Person 1"); |
return profile_; |
} |
NiceMock<GAIAInfoUpdateServiceMock>* service() { return service_.get(); } |
NiceMock<ProfileDownloaderMock>* downloader() { return downloader_.get(); } |
+ Profile* CreateProfile(const std::string& name) { |
+ Profile* profile = testing_profile_manager_.CreateTestingProfile(name); |
+ // The testing manager sets the profile name manually, which counts as |
+ // a user-customized profile name. Reset this to match the default name |
+ // we are actually using. |
+ size_t index = GetCache()->GetIndexOfProfileWithPath(profile->GetPath()); |
+ GetCache()->SetProfileIsUsingDefaultNameAtIndex(index, true); |
+ return profile; |
+ } |
+ |
+ static std::string GivenName(const std::string& id) { |
+ return id + "first"; |
+ } |
+ static std::string FullName(const std::string& id) { |
+ return GivenName(id) + " " + id + "last"; |
+ } |
+ static base::string16 GivenName16(const std::string& id) { |
+ return base::UTF8ToUTF16(GivenName(id)); |
+ } |
+ static base::string16 FullName16(const std::string& id) { |
+ return base::UTF8ToUTF16(FullName(id)); |
+ } |
+ |
+ void ProfileDownloadSuccess( |
+ const base::string16& full_name, |
+ const base::string16& given_name, |
+ const gfx::Image& image, |
+ const std::string& url) { |
+ EXPECT_CALL(*downloader(), GetProfileFullName()). |
+ WillOnce(Return(full_name)); |
+ EXPECT_CALL(*downloader(), GetProfileGivenName()). |
+ WillOnce(Return(given_name)); |
+ const SkBitmap* bmp = image.ToSkBitmap(); |
+ EXPECT_CALL(*downloader(), GetProfilePicture()).WillOnce(Return(*bmp)); |
+ EXPECT_CALL(*downloader(), GetProfilePictureStatus()). |
+ WillOnce(Return(ProfileDownloader::PICTURE_SUCCESS)); |
+ EXPECT_CALL(*downloader(), GetProfilePictureURL()).WillOnce(Return(url)); |
+ |
+ service()->OnProfileDownloadSuccess(downloader()); |
+ } |
+ |
+ void RenameProfile(const base::string16& full_name, |
+ const base::string16& given_name) { |
+ gfx::Image image = gfx::test::CreateImage(); |
+ std::string url("foo.com"); |
+ ProfileDownloadSuccess(full_name, given_name, image, url); |
+ |
+ // Make sure the right profile was updated correctly. |
+ size_t index = GetCache()->GetIndexOfProfileWithPath(profile()->GetPath()); |
+ EXPECT_EQ(full_name, GetCache()->GetGAIANameOfProfileAtIndex(index)); |
+ EXPECT_EQ(given_name, GetCache()->GetGAIAGivenNameOfProfileAtIndex(index)); |
+ } |
+ |
private: |
virtual void SetUp() OVERRIDE; |
virtual void TearDown() OVERRIDE; |
@@ -97,25 +145,19 @@ void GAIAInfoUpdateServiceTest::TearDown() { |
} // namespace |
TEST_F(GAIAInfoUpdateServiceTest, DownloadSuccess) { |
- base::string16 name = base::ASCIIToUTF16("Pat Smith"); |
- EXPECT_CALL(*downloader(), GetProfileFullName()).WillOnce(Return(name)); |
- gfx::Image image = gfx::test::CreateImage(); |
- const SkBitmap* bmp = image.ToSkBitmap(); |
- EXPECT_CALL(*downloader(), GetProfilePicture()).WillOnce(Return(*bmp)); |
- EXPECT_CALL(*downloader(), GetProfilePictureStatus()). |
- WillOnce(Return(ProfileDownloader::PICTURE_SUCCESS)); |
- std::string url("foo.com"); |
- EXPECT_CALL(*downloader(), GetProfilePictureURL()).WillOnce(Return(url)); |
- |
// No URL should be cached yet. |
EXPECT_EQ(std::string(), service()->GetCachedPictureURL()); |
- service()->OnProfileDownloadSuccess(downloader()); |
+ base::string16 name = base::ASCIIToUTF16("Pat Smith"); |
+ base::string16 given_name = base::ASCIIToUTF16("Pat"); |
+ gfx::Image image = gfx::test::CreateImage(); |
+ std::string url("foo.com"); |
+ ProfileDownloadSuccess(name, given_name, image, url); |
- // On success both the profile info and GAIA info should be updated. |
+ // On success the GAIA info should be updated. |
size_t index = GetCache()->GetIndexOfProfileWithPath(profile()->GetPath()); |
- EXPECT_EQ(name, GetCache()->GetNameOfProfileAtIndex(index)); |
Marc Treib
2014/07/11 12:25:26
The GAIAInfoUpdateService does *not* actually upda
noms (inactive)
2014/07/11 13:25:08
Hmm. GetNameOfProfile() returns either the Gaia na
Marc Treib
2014/07/11 13:30:28
Not quite - it uses the local profile name if it's
noms (inactive)
2014/07/11 13:52:29
I agree it should not be tested here. Ok.
On 2014
|
EXPECT_EQ(name, GetCache()->GetGAIANameOfProfileAtIndex(index)); |
+ EXPECT_EQ(given_name, GetCache()->GetGAIAGivenNameOfProfileAtIndex(index)); |
EXPECT_TRUE(gfx::test::IsEqual( |
image, *GetCache()->GetGAIAPictureOfProfileAtIndex(index))); |
EXPECT_EQ(url, service()->GetCachedPictureURL()); |
@@ -129,17 +171,59 @@ TEST_F(GAIAInfoUpdateServiceTest, DownloadFailure) { |
EXPECT_EQ(std::string(), service()->GetCachedPictureURL()); |
service()->OnProfileDownloadFailure(downloader(), |
- ProfileDownloaderDelegate::SERVICE_ERROR); |
+ ProfileDownloaderDelegate::SERVICE_ERROR); |
// On failure nothing should be updated. |
EXPECT_EQ(old_name, GetCache()->GetNameOfProfileAtIndex(index)); |
EXPECT_EQ(base::string16(), GetCache()->GetGAIANameOfProfileAtIndex(index)); |
+ EXPECT_EQ(base::string16(), |
+ GetCache()->GetGAIAGivenNameOfProfileAtIndex(index)); |
EXPECT_TRUE(gfx::test::IsEqual( |
old_image, GetCache()->GetAvatarIconOfProfileAtIndex(index))); |
EXPECT_EQ(NULL, GetCache()->GetGAIAPictureOfProfileAtIndex(index)); |
EXPECT_EQ(std::string(), service()->GetCachedPictureURL()); |
} |
+TEST_F(GAIAInfoUpdateServiceTest, HandlesProfileReordering) { |
+ size_t index = GetCache()->GetIndexOfProfileWithPath(profile()->GetPath()); |
+ GetCache()->SetNameOfProfileAtIndex(index, FullName16("B")); |
+ GetCache()->SetProfileIsUsingDefaultNameAtIndex(index, true); |
+ |
+ CreateProfile(FullName("A")); |
+ CreateProfile(FullName("C")); |
+ CreateProfile(FullName("E")); |
+ |
+ size_t index_before = |
+ GetCache()->GetIndexOfProfileWithPath(profile()->GetPath()); |
+ |
+ // Rename our profile. |
+ RenameProfile(FullName16("D"), GivenName16("D")); |
+ // Profiles should have been reordered in the cache. |
+ EXPECT_NE(index_before, |
+ GetCache()->GetIndexOfProfileWithPath(profile()->GetPath())); |
+ // Rename the profile back to the original name, it should go back to its |
+ // original position. |
+ RenameProfile(FullName16("B"), GivenName16("B")); |
+ EXPECT_EQ(index_before, |
+ GetCache()->GetIndexOfProfileWithPath(profile()->GetPath())); |
+ |
+ // Rename only the given name of our profile. |
+ RenameProfile(FullName16("B"), GivenName16("D")); |
+ // Rename the profile back to the original name, it should go back to its |
+ // original position. |
+ RenameProfile(FullName16("B"), GivenName16("B")); |
+ EXPECT_EQ(index_before, |
+ GetCache()->GetIndexOfProfileWithPath(profile()->GetPath())); |
+ |
+ // Rename only the full name of our profile. |
+ RenameProfile(FullName16("D"), GivenName16("B")); |
+ // Rename the profile back to the original name, it should go back to its |
+ // original position. |
+ RenameProfile(FullName16("B"), GivenName16("B")); |
+ EXPECT_EQ(index_before, |
+ GetCache()->GetIndexOfProfileWithPath(profile()->GetPath())); |
+} |
+ |
TEST_F(GAIAInfoUpdateServiceTest, ShouldUseGAIAProfileInfo) { |
#if defined(OS_CHROMEOS) |
// This feature should never be enabled on ChromeOS. |