Commit a0728836 authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

Introduce tests for OnAccessTokenFetched in O2ATMtest

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 OnAccessTokenFetchedOnRequestCanceled
and OnAccessTokenFetchedOnRequestCompleted in O2ATMtest
to test that OnAccessTokenFetched is invoked when a
request is canceled or completed.

Bug: 967598
Change-Id: Iebb3a2c6e601e385f8a3288130f39b249b616b34
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1727769
Commit-Queue: Julie Jeongeun Kim <jkim@igalia.com>
Reviewed-by: default avatarColin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#683140}
parent a4d9cda1
......@@ -81,6 +81,16 @@ class FakeOAuth2AccessTokenManagerDelegate
std::move(on_access_token_invalidated_callback_).Run();
}
void OnAccessTokenFetched(const CoreAccountId& account_id,
const GoogleServiceAuthError& error) override {
if (!access_token_fetched_callback_)
return;
EXPECT_EQ(access_token_fetched_account_id_, account_id);
EXPECT_EQ(access_token_fetched_error_, error);
std::move(access_token_fetched_callback_).Run();
}
void AddAccount(CoreAccountId id, std::string refresh_token) {
account_ids_to_refresh_tokens_[id] = refresh_token;
}
......@@ -102,6 +112,14 @@ class FakeOAuth2AccessTokenManagerDelegate
on_access_token_invalidated_callback_ = std::move(callback);
}
void SetOnAccessTokenFetched(const CoreAccountId& account_id,
const GoogleServiceAuthError& error,
base::OnceClosure callback) {
access_token_fetched_account_id_ = account_id;
access_token_fetched_error_ = error;
access_token_fetched_callback_ = std::move(callback);
}
private:
scoped_refptr<network::SharedURLLoaderFactory> shared_factory_;
std::map<CoreAccountId, std::string> account_ids_to_refresh_tokens_;
......@@ -111,6 +129,9 @@ class FakeOAuth2AccessTokenManagerDelegate
OAuth2AccessTokenManager::ScopeSet access_token_invalidated_scopes_;
std::string access_token_invalidated_access_token_;
base::OnceClosure on_access_token_invalidated_callback_;
CoreAccountId access_token_fetched_account_id_;
GoogleServiceAuthError access_token_fetched_error_;
base::OnceClosure access_token_fetched_callback_;
};
class FakeOAuth2AccessTokenManagerConsumer
......@@ -368,3 +389,27 @@ TEST_F(OAuth2AccessTokenManagerTest, OnAccessTokenInvalidated) {
token_manager_.InvalidateAccessToken(account_id_, scope_set, access_token);
run_loop.Run();
}
// Test that OnAccessTokenFetched is invoked when a request is canceled.
TEST_F(OAuth2AccessTokenManagerTest, OnAccessTokenFetchedOnRequestCanceled) {
base::RunLoop run_loop;
GoogleServiceAuthError error(GoogleServiceAuthError::REQUEST_CANCELED);
delegate_.SetOnAccessTokenFetched(account_id_, error, run_loop.QuitClosure());
std::unique_ptr<OAuth2AccessTokenManager::Request> request(
token_manager_.StartRequest(
account_id_, OAuth2AccessTokenManager::ScopeSet(), &consumer_));
token_manager_.CancelAllRequests();
run_loop.Run();
}
// Test that OnAccessTokenFetched is invoked when a request is completed.
TEST_F(OAuth2AccessTokenManagerTest, OnAccessTokenFetchedOnRequestCompleted) {
base::RunLoop run_loop;
GoogleServiceAuthError error(GoogleServiceAuthError::NONE);
delegate_.SetOnAccessTokenFetched(account_id_, error, run_loop.QuitClosure());
std::unique_ptr<OAuth2AccessTokenManager::Request> request(
token_manager_.StartRequest(
account_id_, OAuth2AccessTokenManager::ScopeSet(), &consumer_));
SimulateOAuthTokenResponse(GetValidTokenResponse("token", 3600));
run_loop.Run();
}
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