| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "components/signin/ios/browser/profile_oauth2_token_service_ios_delegat
e.h" | 5 #include "components/signin/ios/browser/profile_oauth2_token_service_ios_delegat
e.h" |
| 6 | 6 |
| 7 #include "base/memory/ptr_util.h" |
| 7 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
| 8 #include "components/prefs/pref_registry_simple.h" | 9 #include "components/prefs/pref_registry_simple.h" |
| 9 #include "components/prefs/testing_pref_service.h" | 10 #include "components/prefs/testing_pref_service.h" |
| 10 #include "components/signin/core/browser/account_tracker_service.h" | 11 #include "components/signin/core/browser/account_tracker_service.h" |
| 11 #include "components/signin/core/browser/profile_oauth2_token_service.h" | 12 #include "components/signin/core/browser/profile_oauth2_token_service.h" |
| 12 #include "components/signin/core/browser/test_signin_client.h" | 13 #include "components/signin/core/browser/test_signin_client.h" |
| 13 #include "components/signin/core/common/signin_pref_names.h" | 14 #include "components/signin/core/common/signin_pref_names.h" |
| 14 #include "components/signin/ios/browser/fake_profile_oauth2_token_service_ios_pr
ovider.h" | 15 #include "components/signin/ios/browser/fake_profile_oauth2_token_service_ios_pr
ovider.h" |
| 15 #include "google_apis/gaia/gaia_urls.h" | 16 #include "google_apis/gaia/gaia_urls.h" |
| 16 #include "google_apis/gaia/oauth2_access_token_consumer.h" | 17 #include "google_apis/gaia/oauth2_access_token_consumer.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 42 prefs_.registry()->RegisterIntegerPref( | 43 prefs_.registry()->RegisterIntegerPref( |
| 43 prefs::kAccountIdMigrationState, | 44 prefs::kAccountIdMigrationState, |
| 44 AccountTrackerService::MIGRATION_NOT_STARTED); | 45 AccountTrackerService::MIGRATION_NOT_STARTED); |
| 45 account_tracker_.Initialize(&client_); | 46 account_tracker_.Initialize(&client_); |
| 46 | 47 |
| 47 prefs_.registry()->RegisterBooleanPref( | 48 prefs_.registry()->RegisterBooleanPref( |
| 48 prefs::kTokenServiceExcludeAllSecondaryAccounts, false); | 49 prefs::kTokenServiceExcludeAllSecondaryAccounts, false); |
| 49 prefs_.registry()->RegisterListPref( | 50 prefs_.registry()->RegisterListPref( |
| 50 prefs::kTokenServiceExcludedSecondaryAccounts); | 51 prefs::kTokenServiceExcludedSecondaryAccounts); |
| 51 | 52 |
| 53 fake_provider_ = new FakeProfileOAuth2TokenServiceIOSProvider(); |
| 52 factory_.SetFakeResponse(GaiaUrls::GetInstance()->oauth2_revoke_url(), "", | 54 factory_.SetFakeResponse(GaiaUrls::GetInstance()->oauth2_revoke_url(), "", |
| 53 net::HTTP_OK, net::URLRequestStatus::SUCCESS); | 55 net::HTTP_OK, net::URLRequestStatus::SUCCESS); |
| 54 oauth2_delegate_.reset(new ProfileOAuth2TokenServiceIOSDelegate( | 56 oauth2_delegate_.reset(new ProfileOAuth2TokenServiceIOSDelegate( |
| 55 &client_, &fake_provider_, &account_tracker_, | 57 &client_, base::WrapUnique(fake_provider_), &account_tracker_, |
| 56 &signin_error_controller_)); | 58 &signin_error_controller_)); |
| 57 oauth2_delegate_->AddObserver(this); | 59 oauth2_delegate_->AddObserver(this); |
| 58 signin_error_controller_.AddObserver(this); | 60 signin_error_controller_.AddObserver(this); |
| 59 } | 61 } |
| 60 | 62 |
| 61 void TearDown() override { | 63 void TearDown() override { |
| 62 signin_error_controller_.RemoveObserver(this); | 64 signin_error_controller_.RemoveObserver(this); |
| 63 oauth2_delegate_->RemoveObserver(this); | 65 oauth2_delegate_->RemoveObserver(this); |
| 64 oauth2_delegate_->Shutdown(); | 66 oauth2_delegate_->Shutdown(); |
| 65 } | 67 } |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 provider_account.email); | 102 provider_account.email); |
| 101 } | 103 } |
| 102 | 104 |
| 103 protected: | 105 protected: |
| 104 base::MessageLoop message_loop_; | 106 base::MessageLoop message_loop_; |
| 105 net::FakeURLFetcherFactory factory_; | 107 net::FakeURLFetcherFactory factory_; |
| 106 TestingPrefServiceSimple prefs_; | 108 TestingPrefServiceSimple prefs_; |
| 107 TestSigninClient client_; | 109 TestSigninClient client_; |
| 108 AccountTrackerService account_tracker_; | 110 AccountTrackerService account_tracker_; |
| 109 SigninErrorController signin_error_controller_; | 111 SigninErrorController signin_error_controller_; |
| 110 FakeProfileOAuth2TokenServiceIOSProvider fake_provider_; | 112 FakeProfileOAuth2TokenServiceIOSProvider* fake_provider_; |
| 111 std::unique_ptr<ProfileOAuth2TokenServiceIOSDelegate> oauth2_delegate_; | 113 std::unique_ptr<ProfileOAuth2TokenServiceIOSDelegate> oauth2_delegate_; |
| 112 TestingOAuth2TokenServiceConsumer consumer_; | 114 TestingOAuth2TokenServiceConsumer consumer_; |
| 113 int token_available_count_; | 115 int token_available_count_; |
| 114 int token_revoked_count_; | 116 int token_revoked_count_; |
| 115 int tokens_loaded_count_; | 117 int tokens_loaded_count_; |
| 116 int access_token_success_; | 118 int access_token_success_; |
| 117 int access_token_failure_; | 119 int access_token_failure_; |
| 118 int error_changed_count_; | 120 int error_changed_count_; |
| 119 GoogleServiceAuthError last_access_token_error_; | 121 GoogleServiceAuthError last_access_token_error_; |
| 120 }; | 122 }; |
| 121 | 123 |
| 122 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, | 124 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, |
| 123 LoadRevokeCredentialsOneAccount) { | 125 LoadRevokeCredentialsOneAccount) { |
| 124 ProviderAccount account = fake_provider_.AddAccount("gaia_1", "email_1@x"); | 126 ProviderAccount account = fake_provider_->AddAccount("gaia_1", "email_1@x"); |
| 125 oauth2_delegate_->LoadCredentials(GetAccountId(account)); | 127 oauth2_delegate_->LoadCredentials(GetAccountId(account)); |
| 126 base::RunLoop().RunUntilIdle(); | 128 base::RunLoop().RunUntilIdle(); |
| 127 EXPECT_EQ(1, token_available_count_); | 129 EXPECT_EQ(1, token_available_count_); |
| 128 EXPECT_EQ(1, tokens_loaded_count_); | 130 EXPECT_EQ(1, tokens_loaded_count_); |
| 129 EXPECT_EQ(0, token_revoked_count_); | 131 EXPECT_EQ(0, token_revoked_count_); |
| 130 EXPECT_EQ(1U, oauth2_delegate_->GetAccounts().size()); | 132 EXPECT_EQ(1U, oauth2_delegate_->GetAccounts().size()); |
| 131 EXPECT_TRUE(oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account))); | 133 EXPECT_TRUE(oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account))); |
| 132 | 134 |
| 133 ResetObserverCounts(); | 135 ResetObserverCounts(); |
| 134 oauth2_delegate_->RevokeAllCredentials(); | 136 oauth2_delegate_->RevokeAllCredentials(); |
| 135 EXPECT_EQ(0, token_available_count_); | 137 EXPECT_EQ(0, token_available_count_); |
| 136 EXPECT_EQ(0, tokens_loaded_count_); | 138 EXPECT_EQ(0, tokens_loaded_count_); |
| 137 EXPECT_EQ(1, token_revoked_count_); | 139 EXPECT_EQ(1, token_revoked_count_); |
| 138 EXPECT_EQ(0U, oauth2_delegate_->GetAccounts().size()); | 140 EXPECT_EQ(0U, oauth2_delegate_->GetAccounts().size()); |
| 139 EXPECT_FALSE(oauth2_delegate_->RefreshTokenIsAvailable("another_account")); | 141 EXPECT_FALSE(oauth2_delegate_->RefreshTokenIsAvailable("another_account")); |
| 140 } | 142 } |
| 141 | 143 |
| 142 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, | 144 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, |
| 143 LoadRevokeCredentialsMultipleAccounts) { | 145 LoadRevokeCredentialsMultipleAccounts) { |
| 144 ProviderAccount account1 = fake_provider_.AddAccount("gaia_1", "email_1@x"); | 146 ProviderAccount account1 = fake_provider_->AddAccount("gaia_1", "email_1@x"); |
| 145 ProviderAccount account2 = fake_provider_.AddAccount("gaia_2", "email_2@x"); | 147 ProviderAccount account2 = fake_provider_->AddAccount("gaia_2", "email_2@x"); |
| 146 ProviderAccount account3 = fake_provider_.AddAccount("gaia_3", "email_3@x"); | 148 ProviderAccount account3 = fake_provider_->AddAccount("gaia_3", "email_3@x"); |
| 147 oauth2_delegate_->LoadCredentials(GetAccountId(account1)); | 149 oauth2_delegate_->LoadCredentials(GetAccountId(account1)); |
| 148 base::RunLoop().RunUntilIdle(); | 150 base::RunLoop().RunUntilIdle(); |
| 149 EXPECT_EQ(3, token_available_count_); | 151 EXPECT_EQ(3, token_available_count_); |
| 150 EXPECT_EQ(1, tokens_loaded_count_); | 152 EXPECT_EQ(1, tokens_loaded_count_); |
| 151 EXPECT_EQ(0, token_revoked_count_); | 153 EXPECT_EQ(0, token_revoked_count_); |
| 152 EXPECT_EQ(3U, oauth2_delegate_->GetAccounts().size()); | 154 EXPECT_EQ(3U, oauth2_delegate_->GetAccounts().size()); |
| 153 EXPECT_TRUE( | 155 EXPECT_TRUE( |
| 154 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account1))); | 156 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account1))); |
| 155 EXPECT_TRUE( | 157 EXPECT_TRUE( |
| 156 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account2))); | 158 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account2))); |
| 157 EXPECT_TRUE( | 159 EXPECT_TRUE( |
| 158 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account3))); | 160 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account3))); |
| 159 | 161 |
| 160 ResetObserverCounts(); | 162 ResetObserverCounts(); |
| 161 oauth2_delegate_->RevokeAllCredentials(); | 163 oauth2_delegate_->RevokeAllCredentials(); |
| 162 EXPECT_EQ(0, token_available_count_); | 164 EXPECT_EQ(0, token_available_count_); |
| 163 EXPECT_EQ(0, tokens_loaded_count_); | 165 EXPECT_EQ(0, tokens_loaded_count_); |
| 164 EXPECT_EQ(3, token_revoked_count_); | 166 EXPECT_EQ(3, token_revoked_count_); |
| 165 EXPECT_EQ(0U, oauth2_delegate_->GetAccounts().size()); | 167 EXPECT_EQ(0U, oauth2_delegate_->GetAccounts().size()); |
| 166 EXPECT_FALSE( | 168 EXPECT_FALSE( |
| 167 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account1))); | 169 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account1))); |
| 168 EXPECT_FALSE( | 170 EXPECT_FALSE( |
| 169 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account2))); | 171 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account2))); |
| 170 EXPECT_FALSE( | 172 EXPECT_FALSE( |
| 171 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account3))); | 173 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account3))); |
| 172 } | 174 } |
| 173 | 175 |
| 174 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, ReloadCredentials) { | 176 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, ReloadCredentials) { |
| 175 ProviderAccount account1 = fake_provider_.AddAccount("gaia_1", "email_1@x"); | 177 ProviderAccount account1 = fake_provider_->AddAccount("gaia_1", "email_1@x"); |
| 176 ProviderAccount account2 = fake_provider_.AddAccount("gaia_2", "email_2@x"); | 178 ProviderAccount account2 = fake_provider_->AddAccount("gaia_2", "email_2@x"); |
| 177 ProviderAccount account3 = fake_provider_.AddAccount("gaia_3", "email_3@x"); | 179 ProviderAccount account3 = fake_provider_->AddAccount("gaia_3", "email_3@x"); |
| 178 oauth2_delegate_->LoadCredentials(GetAccountId(account1)); | 180 oauth2_delegate_->LoadCredentials(GetAccountId(account1)); |
| 179 base::RunLoop().RunUntilIdle(); | 181 base::RunLoop().RunUntilIdle(); |
| 180 | 182 |
| 181 // Change the accounts. | 183 // Change the accounts. |
| 182 ResetObserverCounts(); | 184 ResetObserverCounts(); |
| 183 fake_provider_.ClearAccounts(); | 185 fake_provider_->ClearAccounts(); |
| 184 fake_provider_.AddAccount(account1.gaia, account1.email); | 186 fake_provider_->AddAccount(account1.gaia, account1.email); |
| 185 ProviderAccount account4 = fake_provider_.AddAccount("gaia_4", "email_4@x"); | 187 ProviderAccount account4 = fake_provider_->AddAccount("gaia_4", "email_4@x"); |
| 186 oauth2_delegate_->ReloadCredentials(); | 188 oauth2_delegate_->ReloadCredentials(); |
| 187 | 189 |
| 188 EXPECT_EQ(1, token_available_count_); | 190 EXPECT_EQ(1, token_available_count_); |
| 189 EXPECT_EQ(0, tokens_loaded_count_); | 191 EXPECT_EQ(0, tokens_loaded_count_); |
| 190 EXPECT_EQ(2, token_revoked_count_); | 192 EXPECT_EQ(2, token_revoked_count_); |
| 191 EXPECT_EQ(2U, oauth2_delegate_->GetAccounts().size()); | 193 EXPECT_EQ(2U, oauth2_delegate_->GetAccounts().size()); |
| 192 EXPECT_TRUE( | 194 EXPECT_TRUE( |
| 193 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account1))); | 195 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account1))); |
| 194 EXPECT_FALSE( | 196 EXPECT_FALSE( |
| 195 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account2))); | 197 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account2))); |
| 196 EXPECT_FALSE( | 198 EXPECT_FALSE( |
| 197 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account3))); | 199 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account3))); |
| 198 EXPECT_TRUE( | 200 EXPECT_TRUE( |
| 199 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account4))); | 201 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account4))); |
| 200 } | 202 } |
| 201 | 203 |
| 202 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, | 204 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, |
| 203 ReloadCredentialsIgnoredIfNoPrimaryAccountId) { | 205 ReloadCredentialsIgnoredIfNoPrimaryAccountId) { |
| 204 ProviderAccount account1 = fake_provider_.AddAccount("gaia_1", "email_1@x"); | 206 ProviderAccount account1 = fake_provider_->AddAccount("gaia_1", "email_1@x"); |
| 205 ProviderAccount account2 = fake_provider_.AddAccount("gaia_2", "email_2@x"); | 207 ProviderAccount account2 = fake_provider_->AddAccount("gaia_2", "email_2@x"); |
| 206 oauth2_delegate_->ReloadCredentials(); | 208 oauth2_delegate_->ReloadCredentials(); |
| 207 | 209 |
| 208 EXPECT_EQ(0, token_available_count_); | 210 EXPECT_EQ(0, token_available_count_); |
| 209 EXPECT_EQ(0, tokens_loaded_count_); | 211 EXPECT_EQ(0, tokens_loaded_count_); |
| 210 EXPECT_EQ(0, token_revoked_count_); | 212 EXPECT_EQ(0, token_revoked_count_); |
| 211 EXPECT_EQ(0U, oauth2_delegate_->GetAccounts().size()); | 213 EXPECT_EQ(0U, oauth2_delegate_->GetAccounts().size()); |
| 212 EXPECT_FALSE( | 214 EXPECT_FALSE( |
| 213 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account1))); | 215 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account1))); |
| 214 EXPECT_FALSE( | 216 EXPECT_FALSE( |
| 215 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account2))); | 217 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account2))); |
| 216 } | 218 } |
| 217 | 219 |
| 218 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, | 220 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, |
| 219 ReloadCredentialsWithPrimaryAccountId) { | 221 ReloadCredentialsWithPrimaryAccountId) { |
| 220 ProviderAccount account1 = fake_provider_.AddAccount("gaia_1", "email_1@x"); | 222 ProviderAccount account1 = fake_provider_->AddAccount("gaia_1", "email_1@x"); |
| 221 ProviderAccount account2 = fake_provider_.AddAccount("gaia_2", "email_2@x"); | 223 ProviderAccount account2 = fake_provider_->AddAccount("gaia_2", "email_2@x"); |
| 222 oauth2_delegate_->ReloadCredentials(GetAccountId(account1)); | 224 oauth2_delegate_->ReloadCredentials(GetAccountId(account1)); |
| 223 | 225 |
| 224 EXPECT_EQ(2, token_available_count_); | 226 EXPECT_EQ(2, token_available_count_); |
| 225 EXPECT_EQ(0, tokens_loaded_count_); | 227 EXPECT_EQ(0, tokens_loaded_count_); |
| 226 EXPECT_EQ(0, token_revoked_count_); | 228 EXPECT_EQ(0, token_revoked_count_); |
| 227 EXPECT_EQ(2U, oauth2_delegate_->GetAccounts().size()); | 229 EXPECT_EQ(2U, oauth2_delegate_->GetAccounts().size()); |
| 228 EXPECT_TRUE( | 230 EXPECT_TRUE( |
| 229 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account1))); | 231 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account1))); |
| 230 EXPECT_TRUE( | 232 EXPECT_TRUE( |
| 231 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account2))); | 233 oauth2_delegate_->RefreshTokenIsAvailable(GetAccountId(account2))); |
| 232 } | 234 } |
| 233 | 235 |
| 234 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, StartRequestSuccess) { | 236 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, StartRequestSuccess) { |
| 235 ProviderAccount account1 = fake_provider_.AddAccount("gaia_1", "email_1@x"); | 237 ProviderAccount account1 = fake_provider_->AddAccount("gaia_1", "email_1@x"); |
| 236 oauth2_delegate_->LoadCredentials(GetAccountId(account1)); | 238 oauth2_delegate_->LoadCredentials(GetAccountId(account1)); |
| 237 base::RunLoop().RunUntilIdle(); | 239 base::RunLoop().RunUntilIdle(); |
| 238 | 240 |
| 239 // Fetch access tokens. | 241 // Fetch access tokens. |
| 240 ResetObserverCounts(); | 242 ResetObserverCounts(); |
| 241 std::vector<std::string> scopes; | 243 std::vector<std::string> scopes; |
| 242 scopes.push_back("scope"); | 244 scopes.push_back("scope"); |
| 243 std::unique_ptr<OAuth2AccessTokenFetcher> fetcher1( | 245 std::unique_ptr<OAuth2AccessTokenFetcher> fetcher1( |
| 244 oauth2_delegate_->CreateAccessTokenFetcher( | 246 oauth2_delegate_->CreateAccessTokenFetcher( |
| 245 GetAccountId(account1), oauth2_delegate_->GetRequestContext(), this)); | 247 GetAccountId(account1), oauth2_delegate_->GetRequestContext(), this)); |
| 246 fetcher1->Start("foo", "bar", scopes); | 248 fetcher1->Start("foo", "bar", scopes); |
| 247 EXPECT_EQ(0, access_token_success_); | 249 EXPECT_EQ(0, access_token_success_); |
| 248 EXPECT_EQ(0, access_token_failure_); | 250 EXPECT_EQ(0, access_token_failure_); |
| 249 | 251 |
| 250 ResetObserverCounts(); | 252 ResetObserverCounts(); |
| 251 fake_provider_.IssueAccessTokenForAllRequests(); | 253 fake_provider_->IssueAccessTokenForAllRequests(); |
| 252 base::RunLoop().RunUntilIdle(); | 254 base::RunLoop().RunUntilIdle(); |
| 253 EXPECT_EQ(1, access_token_success_); | 255 EXPECT_EQ(1, access_token_success_); |
| 254 EXPECT_EQ(0, access_token_failure_); | 256 EXPECT_EQ(0, access_token_failure_); |
| 255 } | 257 } |
| 256 | 258 |
| 257 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, StartRequestFailure) { | 259 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, StartRequestFailure) { |
| 258 ProviderAccount account1 = fake_provider_.AddAccount("gaia_1", "email_1@x"); | 260 ProviderAccount account1 = fake_provider_->AddAccount("gaia_1", "email_1@x"); |
| 259 oauth2_delegate_->LoadCredentials(GetAccountId(account1)); | 261 oauth2_delegate_->LoadCredentials(GetAccountId(account1)); |
| 260 base::RunLoop().RunUntilIdle(); | 262 base::RunLoop().RunUntilIdle(); |
| 261 | 263 |
| 262 // Fetch access tokens. | 264 // Fetch access tokens. |
| 263 ResetObserverCounts(); | 265 ResetObserverCounts(); |
| 264 std::vector<std::string> scopes; | 266 std::vector<std::string> scopes; |
| 265 scopes.push_back("scope"); | 267 scopes.push_back("scope"); |
| 266 std::unique_ptr<OAuth2AccessTokenFetcher> fetcher1( | 268 std::unique_ptr<OAuth2AccessTokenFetcher> fetcher1( |
| 267 oauth2_delegate_->CreateAccessTokenFetcher( | 269 oauth2_delegate_->CreateAccessTokenFetcher( |
| 268 GetAccountId(account1), oauth2_delegate_->GetRequestContext(), this)); | 270 GetAccountId(account1), oauth2_delegate_->GetRequestContext(), this)); |
| 269 fetcher1->Start("foo", "bar", scopes); | 271 fetcher1->Start("foo", "bar", scopes); |
| 270 EXPECT_EQ(0, access_token_success_); | 272 EXPECT_EQ(0, access_token_success_); |
| 271 EXPECT_EQ(0, access_token_failure_); | 273 EXPECT_EQ(0, access_token_failure_); |
| 272 | 274 |
| 273 ResetObserverCounts(); | 275 ResetObserverCounts(); |
| 274 fake_provider_.IssueAccessTokenErrorForAllRequests(); | 276 fake_provider_->IssueAccessTokenErrorForAllRequests(); |
| 275 base::RunLoop().RunUntilIdle(); | 277 base::RunLoop().RunUntilIdle(); |
| 276 EXPECT_EQ(0, access_token_success_); | 278 EXPECT_EQ(0, access_token_success_); |
| 277 EXPECT_EQ(1, access_token_failure_); | 279 EXPECT_EQ(1, access_token_failure_); |
| 278 } | 280 } |
| 279 | 281 |
| 280 // Verifies that UpdateAuthError does nothing after the credentials have been | 282 // Verifies that UpdateAuthError does nothing after the credentials have been |
| 281 // revoked. | 283 // revoked. |
| 282 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, | 284 TEST_F(ProfileOAuth2TokenServiceIOSDelegateTest, |
| 283 UpdateAuthErrorAfterRevokeCredentials) { | 285 UpdateAuthErrorAfterRevokeCredentials) { |
| 284 ProviderAccount account1 = fake_provider_.AddAccount("gaia_1", "email_1@x"); | 286 ProviderAccount account1 = fake_provider_->AddAccount("gaia_1", "email_1@x"); |
| 285 oauth2_delegate_->ReloadCredentials(GetAccountId(account1)); | 287 oauth2_delegate_->ReloadCredentials(GetAccountId(account1)); |
| 286 base::RunLoop().RunUntilIdle(); | 288 base::RunLoop().RunUntilIdle(); |
| 287 | 289 |
| 288 ResetObserverCounts(); | 290 ResetObserverCounts(); |
| 289 GoogleServiceAuthError cancelled_error( | 291 GoogleServiceAuthError cancelled_error( |
| 290 GoogleServiceAuthError::REQUEST_CANCELED); | 292 GoogleServiceAuthError::REQUEST_CANCELED); |
| 291 oauth2_delegate_->UpdateAuthError(GetAccountId(account1), cancelled_error); | 293 oauth2_delegate_->UpdateAuthError(GetAccountId(account1), cancelled_error); |
| 292 EXPECT_EQ(1, error_changed_count_); | 294 EXPECT_EQ(1, error_changed_count_); |
| 293 | 295 |
| 294 oauth2_delegate_->RevokeAllCredentials(); | 296 oauth2_delegate_->RevokeAllCredentials(); |
| 295 ResetObserverCounts(); | 297 ResetObserverCounts(); |
| 296 oauth2_delegate_->UpdateAuthError(GetAccountId(account1), cancelled_error); | 298 oauth2_delegate_->UpdateAuthError(GetAccountId(account1), cancelled_error); |
| 297 EXPECT_EQ(0, error_changed_count_); | 299 EXPECT_EQ(0, error_changed_count_); |
| 298 } | 300 } |
| OLD | NEW |