Commit 847326ef authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

Introduce HandleAccessTokenFetch in OATMtest

This CL is a part of moving access token management to
OAuth2AccessTokenManager.

It is specifically a step toward folding O2TS into PO2TS
now that O2TS is only one subclass of PO2TS.

It introduces HandleAccessTokenFetch in
OAuth2AccessTokenManagerTest to test that StartRequest
checks HandleAccessTokenFetch() from |delegate_|
before FetchOAuth2Token.

Bug: 967598
Change-Id: I48802ef0fd0b2c353040234a2ca105b7b73cda27
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1722363
Commit-Queue: Julie Jeongeun Kim <jkim@igalia.com>
Reviewed-by: default avatarColin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#682164}
parent f193df72
...@@ -52,13 +52,32 @@ class FakeOAuth2AccessTokenManagerDelegate ...@@ -52,13 +52,32 @@ class FakeOAuth2AccessTokenManagerDelegate
return shared_factory_; return shared_factory_;
} }
bool HandleAccessTokenFetch(
OAuth2AccessTokenManager::RequestImpl* request,
const CoreAccountId& account_id,
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
const std::string& client_id,
const std::string& client_secret,
const OAuth2AccessTokenManager::ScopeSet& scopes) override {
if (access_token_fetch_closure_) {
std::move(access_token_fetch_closure_).Run();
return true;
}
return false;
}
void AddAccount(CoreAccountId id, std::string refresh_token) { void AddAccount(CoreAccountId id, std::string refresh_token) {
account_ids_to_refresh_tokens_[id] = refresh_token; account_ids_to_refresh_tokens_[id] = refresh_token;
} }
void SetAccessTokenHandleClosure(base::OnceClosure closure) {
access_token_fetch_closure_ = std::move(closure);
}
private: private:
scoped_refptr<network::SharedURLLoaderFactory> shared_factory_; scoped_refptr<network::SharedURLLoaderFactory> shared_factory_;
std::map<CoreAccountId, std::string> account_ids_to_refresh_tokens_; std::map<CoreAccountId, std::string> account_ids_to_refresh_tokens_;
base::OnceClosure access_token_fetch_closure_;
}; };
class FakeOAuth2AccessTokenManagerConsumer class FakeOAuth2AccessTokenManagerConsumer
...@@ -285,3 +304,21 @@ TEST_F(OAuth2AccessTokenManagerTest, ClearCacheForAccount) { ...@@ -285,3 +304,21 @@ TEST_F(OAuth2AccessTokenManagerTest, ClearCacheForAccount) {
token_manager_.ClearCacheForAccount(account_id_2); token_manager_.ClearCacheForAccount(account_id_2);
EXPECT_EQ(0U, token_manager_.token_cache().size()); EXPECT_EQ(0U, token_manager_.token_cache().size());
} }
// Test that StartRequest checks HandleAccessTokenFetch() from |delegate_|
// before FetchOAuth2Token.
TEST_F(OAuth2AccessTokenManagerTest, HandleAccessTokenFetch) {
base::RunLoop run_loop;
delegate_.SetAccessTokenHandleClosure(run_loop.QuitClosure());
std::unique_ptr<OAuth2AccessTokenManager::Request> request(
token_manager_.StartRequest(
account_id_, OAuth2AccessTokenManager::ScopeSet(), &consumer_));
SimulateOAuthTokenResponse(GetValidTokenResponse("token", 3600));
run_loop.Run();
EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
EXPECT_EQ(0U, token_manager_.GetNumPendingRequestsForTesting(
GaiaUrls::GetInstance()->oauth2_chrome_client_id(),
account_id_, OAuth2AccessTokenManager::ScopeSet()));
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment