Chromium Code Reviews| Index: ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.mm |
| diff --git a/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.mm b/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.mm |
| index c8bcb9469f3e2ba06948e8acc2552cde6408fed6..8e01d9d5c7f2afcb3c0fe8b6fedc998a75f3e36e 100644 |
| --- a/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.mm |
| +++ b/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.mm |
| @@ -7,8 +7,61 @@ |
| #import <Foundation/Foundation.h> |
| #include "base/strings/sys_string_conversions.h" |
| +#include "google_apis/gaia/gaia_auth_util.h" |
| #include "ios/public/provider/chrome/browser/chrome_browser_provider.h" |
| #import "ios/public/provider/chrome/browser/signin/fake_chrome_identity.h" |
| +#include "ios/public/provider/chrome/browser/signin/signin_resources_provider.h" |
| + |
| +using ::testing::_; |
| +using ::testing::Invoke; |
| + |
| +namespace { |
| + |
| +void FakeGetAccessToken(ChromeIdentity*, |
| + const std::string&, |
| + const std::string&, |
| + const std::set<std::string>&, |
| + const ios::AccessTokenCallback& callback) { |
| + // Token and expiration date. It should be larger than typical test |
|
msarda
2016/08/30 12:23:08
These local variables are only used inside the blo
bzanotti
2016/08/30 12:36:34
Done.
|
| + // execution because tests usually setup mock to expect one token request |
| + // and then rely on access token being served from cache. |
| + NSTimeInterval expiration = 60.0; |
| + NSDate* expiresDate = [NSDate dateWithTimeIntervalSinceNow:expiration]; |
| + NSString* token = [expiresDate description]; |
| + |
| + // GetAccessToken is normally an asynchronous operation (that requires some |
|
msarda
2016/08/30 12:23:08
Nit: Here and for the comments below:
s/GetAccessT
bzanotti
2016/08/30 12:36:34
Done.
|
| + // network calls), this is replicated here by dispatching it. |
| + dispatch_async(dispatch_get_main_queue(), ^{ |
| + callback(token, expiresDate, nil); |
| + }); |
| +} |
| + |
| +UIImage* FakeGetCachedAvatarForIdentity(ChromeIdentity*) { |
| + ios::SigninResourcesProvider* provider = |
| + ios::GetChromeBrowserProvider()->GetSigninResourcesProvider(); |
| + return provider ? provider->GetDefaultAvatar() : nil; |
| +} |
| + |
| +void FakeGetAvatarForIdentity(ChromeIdentity* identity, |
| + ios::GetAvatarCallback callback) { |
| + // GetAvatarForIdentity is normally an asynchronous operation, this is |
| + // replicated here by dispatching it. |
| + dispatch_async(dispatch_get_main_queue(), ^{ |
| + callback(FakeGetCachedAvatarForIdentity(identity)); |
| + }); |
| +} |
| + |
| +void FakeGetHostedDomainForIdentity(ChromeIdentity* identity, |
| + ios::GetHostedDomainCallback callback) { |
| + NSString* domain = base::SysUTF8ToNSString(gaia::ExtractDomainName( |
| + gaia::CanonicalizeEmail(base::SysNSStringToUTF8(identity.userEmail)))); |
|
msarda
2016/08/30 12:23:08
Nit: Add blank line as otherwise reading this on t
bzanotti
2016/08/30 12:36:34
Done.
|
| + // GetHostedDomainForIdentity is normally an asynchronous operation , this is |
| + // replicated here by dispatching it. |
| + dispatch_async(dispatch_get_main_queue(), ^{ |
| + callback(domain, nil); |
| + }); |
| +} |
| +} |
| namespace ios { |
| @@ -72,6 +125,20 @@ void FakeChromeIdentityService::ForgetIdentity( |
| } |
| } |
| +void FakeChromeIdentityService::SetUpForIntegrationTests() { |
| + ON_CALL(*this, GetAccessToken(_, _, _, _, _)) |
| + .WillByDefault(Invoke(FakeGetAccessToken)); |
| + |
| + ON_CALL(*this, GetAvatarForIdentity(_, _)) |
| + .WillByDefault(Invoke(FakeGetAvatarForIdentity)); |
| + |
| + ON_CALL(*this, GetCachedAvatarForIdentity(_)) |
| + .WillByDefault(Invoke(FakeGetCachedAvatarForIdentity)); |
| + |
| + ON_CALL(*this, GetHostedDomainForIdentity(_, _)) |
| + .WillByDefault(Invoke(FakeGetHostedDomainForIdentity)); |
| +} |
| + |
| void FakeChromeIdentityService::AddIdentities(NSArray* identitiesNames) { |
| for (NSString* name in identitiesNames) { |
| NSString* email = [NSString stringWithFormat:kIdentityEmailFormat, name]; |