Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(805)

Unified Diff: blimp/client/core/session/identity_source_unittest.cc

Issue 2624903006: Remove all blimp client code. (Closed)
Patch Set: Update buildbot configuration Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « blimp/client/core/session/identity_source.cc ('k') | blimp/client/core/session/network_event_observer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: blimp/client/core/session/identity_source_unittest.cc
diff --git a/blimp/client/core/session/identity_source_unittest.cc b/blimp/client/core/session/identity_source_unittest.cc
deleted file mode 100644
index 4edc7bf5732763f0591651154346b9c674d856e8..0000000000000000000000000000000000000000
--- a/blimp/client/core/session/identity_source_unittest.cc
+++ /dev/null
@@ -1,294 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "blimp/client/core/session/identity_source.h"
-
-#include <memory>
-#include <string>
-#include <utility>
-
-#include "base/bind.h"
-#include "base/callback.h"
-#include "base/macros.h"
-#include "base/memory/ptr_util.h"
-#include "blimp/client/test/test_blimp_client_context_delegate.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using ::testing::_;
-using ::testing::Return;
-
-namespace blimp {
-namespace client {
-namespace {
-
-class MockIdentitySource : public IdentitySource {
- public:
- MockIdentitySource(
- std::unique_ptr<IdentityProvider> identity_provider,
- base::Callback<void(const GoogleServiceAuthError&)> error_callback,
- const IdentitySource::TokenCallback& callback)
- : IdentitySource(std::move(identity_provider), error_callback, callback),
- success_(0),
- fail_(0),
- refresh_(0),
- token_callback_count_(0) {}
- ~MockIdentitySource() override{};
-
- void OnGetTokenSuccess(const OAuth2TokenService::Request* request,
- const std::string& access_token,
- const base::Time& expiration_time) override {
- IdentitySource::OnGetTokenSuccess(request, access_token, expiration_time);
- success_++;
- token_ = access_token;
- }
-
- void OnGetTokenFailure(const OAuth2TokenService::Request* request,
- const GoogleServiceAuthError& error) override {
- IdentitySource::OnGetTokenFailure(request, error);
- fail_++;
- token_.clear();
- }
-
- void OnRefreshTokenAvailable(const std::string& account_id) override {
- IdentitySource::OnRefreshTokenAvailable(account_id);
- refresh_++;
- }
-
- void MockTokenCall(const std::string& token) {
- token_callback_count_++;
- callback_token_ = token;
- }
-
- IdentityProvider* GetIdentityProvider() { return identity_provider_.get(); }
-
- int Succeeded() { return success_; }
- int Failed() { return fail_; }
- int Refreshed() { return refresh_; }
- int TokenCallbackCount() { return token_callback_count_; }
- // Return the token passed to TokenCallback.
- const std::string& CallbackToken() { return callback_token_; }
- // Return the token get from OAuth2TokenService.
- const std::string& Token() { return token_; }
-
- // Reset test recording data.
- void ResetTestRecords() {
- success_ = 0;
- fail_ = 0;
- refresh_ = 0;
- token_callback_count_ = 0;
- callback_token_.clear();
- token_.clear();
- }
-
- private:
- std::string token_;
- int success_;
- int fail_;
- int refresh_;
-
- int token_callback_count_;
- std::string callback_token_;
- DISALLOW_COPY_AND_ASSIGN(MockIdentitySource);
-};
-
-class IdentitySourceTest : public testing::Test {
- public:
- IdentitySourceTest() = default;
- ~IdentitySourceTest() override = default;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(IdentitySourceTest);
-};
-
-TEST_F(IdentitySourceTest, TestConnect) {
- TestBlimpClientContextDelegate mock_blimp_delegate;
- MockIdentitySource auth(
- mock_blimp_delegate.CreateIdentityProvider(),
- base::Bind(&TestBlimpClientContextDelegate::OnAuthenticationError,
- base::Unretained(&mock_blimp_delegate)),
- base::Bind(&MockIdentitySource::MockTokenCall, base::Unretained(&auth)));
- FakeIdentityProvider* id_provider =
- static_cast<FakeIdentityProvider*>(auth.GetIdentityProvider());
- FakeOAuth2TokenService* token_service = mock_blimp_delegate.GetTokenService();
-
- // Connect when user is not signed in. Nothing happens.
- id_provider->LogOut();
- auth.Connect();
- DCHECK_EQ(auth.Succeeded(), 0);
- DCHECK_EQ(auth.Failed(), 0);
- DCHECK_EQ(auth.Refreshed(), 0);
- DCHECK_EQ(auth.Token(), std::string());
- auth.ResetTestRecords();
-
- FakeOAuth2TokenServiceDelegate* mock_token_service_delegate =
- token_service->GetFakeOAuth2TokenServiceDelegate();
-
- // Connect when user signed in, but no refresh token, refresh token observer
- // should be added.
- std::string account = "mock_account";
- id_provider->LogIn(account);
- mock_token_service_delegate->RevokeCredentials(account);
- // Mock duplicate connect calls in this test.
- auth.Connect();
- auth.Connect();
- DCHECK_EQ(auth.Succeeded(), 0);
- DCHECK_EQ(auth.Failed(), 0);
- DCHECK_EQ(auth.Refreshed(), 0);
- DCHECK_EQ(auth.TokenCallbackCount(), 0);
- auth.ResetTestRecords();
-
- // Issue refresh token, listener should be triggered, and request should be
- // sent.
- mock_token_service_delegate->UpdateCredentials(account, "mock_refresh_token");
- DCHECK_EQ(auth.Succeeded(), 0);
- DCHECK_EQ(auth.Failed(), 0);
- DCHECK_EQ(auth.Refreshed(), 1);
- DCHECK_EQ(auth.TokenCallbackCount(), 0);
- auth.ResetTestRecords();
-
- // Fire access token success, first request should be fulfilled.
- base::Time time;
- std::string mock_access_token = "mock_access_token";
- token_service->IssueAllTokensForAccount(account, mock_access_token, time);
- DCHECK_EQ(auth.Succeeded(), 1);
- DCHECK_EQ(auth.Failed(), 0);
- DCHECK_EQ(auth.Token(), mock_access_token);
- DCHECK_EQ(auth.TokenCallbackCount(), 1);
- DCHECK_EQ(auth.CallbackToken(), mock_access_token);
- auth.ResetTestRecords();
-
- // Connect again and fire access token failed.
- GoogleServiceAuthError error(GoogleServiceAuthError::State::REQUEST_CANCELED);
- auth.Connect();
- auth.Connect();
- token_service->IssueErrorForAllPendingRequestsForAccount(account, error);
- DCHECK_EQ(auth.Succeeded(), 0);
- DCHECK_EQ(auth.Failed(), 1);
- DCHECK_EQ(auth.Token(), std::string());
- DCHECK_EQ(auth.TokenCallbackCount(), 0);
- auth.ResetTestRecords();
-
- // Refresh token listener should have been removed.
- mock_token_service_delegate->UpdateCredentials(account, "mock_refresh_token");
- DCHECK_EQ(auth.Refreshed(), 0);
- auth.ResetTestRecords();
-
- // Direct connect with refresh token, and no listener should be
- // added. The request is a retry request.
- auth.Connect();
- auth.Connect();
- token_service->IssueAllTokensForAccount(account, mock_access_token, time);
- DCHECK_EQ(auth.Succeeded(), 1);
- DCHECK_EQ(auth.Token(), mock_access_token);
- mock_token_service_delegate->UpdateCredentials(account, "mock_refresh_token");
- DCHECK_EQ(auth.Refreshed(), 0);
- DCHECK_EQ(auth.TokenCallbackCount(), 1);
- DCHECK_EQ(auth.CallbackToken(), mock_access_token);
-}
-
-// Test retry on token fetching when refresh token is updated during token
-// request.
-TEST_F(IdentitySourceTest, TestConnectRetry) {
- TestBlimpClientContextDelegate mock_blimp_delegate;
- MockIdentitySource auth(
- mock_blimp_delegate.CreateIdentityProvider(),
- base::Bind(&TestBlimpClientContextDelegate::OnAuthenticationError,
- base::Unretained(&mock_blimp_delegate)),
- base::Bind(&MockIdentitySource::MockTokenCall, base::Unretained(&auth)));
- FakeOAuth2TokenService* token_service = mock_blimp_delegate.GetTokenService();
- FakeIdentityProvider* id_provider =
- static_cast<FakeIdentityProvider*>(auth.GetIdentityProvider());
-
- std::string account = "mock_account";
- std::string mock_access_token = "mock_token";
- id_provider->LogIn(account);
-
- // Prepare refresh token.
- FakeOAuth2TokenServiceDelegate* mock_token_service_delegate =
- token_service->GetFakeOAuth2TokenServiceDelegate();
- mock_token_service_delegate->UpdateCredentials(account, "mock_refresh_token");
-
- // Connect and update the refresh token.
- auth.Connect();
- GoogleServiceAuthError error(GoogleServiceAuthError::State::REQUEST_CANCELED);
- token_service->IssueErrorForAllPendingRequestsForAccount(account, error);
-
- // At this point, the first request should be canceled, but there should be
- // another retry request.
- DCHECK_EQ(auth.Succeeded(), 0);
- DCHECK_EQ(auth.Failed(), 1);
- DCHECK_EQ(auth.Token(), std::string());
- DCHECK_EQ(auth.TokenCallbackCount(), 0);
- auth.ResetTestRecords();
-
- // Trigger the second request without calling connect.
- base::Time time;
- token_service->IssueAllTokensForAccount(account, mock_access_token, time);
- DCHECK_EQ(auth.Succeeded(), 1);
- DCHECK_EQ(auth.Token(), mock_access_token);
- DCHECK_EQ(auth.TokenCallbackCount(), 1);
- DCHECK_EQ(auth.CallbackToken(), mock_access_token);
-}
-
-TEST_F(IdentitySourceTest, TestConnectFailDelegateCallback) {
- TestBlimpClientContextDelegate mock_blimp_delegate;
- MockIdentitySource auth(
- mock_blimp_delegate.CreateIdentityProvider(),
- base::Bind(&TestBlimpClientContextDelegate::OnAuthenticationError,
- base::Unretained(&mock_blimp_delegate)),
- base::Bind(&MockIdentitySource::MockTokenCall, base::Unretained(&auth)));
- FakeOAuth2TokenService* token_service = mock_blimp_delegate.GetTokenService();
- FakeIdentityProvider* id_provider =
- static_cast<FakeIdentityProvider*>(auth.GetIdentityProvider());
-
- std::string account = "mock_account";
- std::string mock_access_token = "mock_token";
- id_provider->LogIn(account);
-
- // Prepare refresh token.
- FakeOAuth2TokenServiceDelegate* mock_token_service_delegate =
- token_service->GetFakeOAuth2TokenServiceDelegate();
- mock_token_service_delegate->UpdateCredentials(account, "mock_refresh_token");
-
- // Expect delegate to show error message on non REQUEST_CANCELED errors.
- auth.Connect();
- GoogleServiceAuthError error(
- GoogleServiceAuthError::State::CONNECTION_FAILED);
-
- EXPECT_CALL(mock_blimp_delegate, OnAuthenticationError(error))
- .WillOnce(Return());
- token_service->IssueErrorForAllPendingRequestsForAccount(account, error);
-
- DCHECK_EQ(auth.Failed(), 1);
-}
-
-TEST_F(IdentitySourceTest, CheckUserName) {
- TestBlimpClientContextDelegate mock_blimp_delegate;
- MockIdentitySource auth(
- mock_blimp_delegate.CreateIdentityProvider(),
- base::Bind(&TestBlimpClientContextDelegate::OnAuthenticationError,
- base::Unretained(&mock_blimp_delegate)),
- base::Bind(&MockIdentitySource::MockTokenCall, base::Unretained(&auth)));
-
- FakeIdentityProvider* id_provider =
- static_cast<FakeIdentityProvider*>(auth.GetIdentityProvider());
- std::string account = "mock_account";
-
- // Verify the user name before the login.
- EXPECT_EQ("", auth.GetActiveUsername());
-
- // Log in the mock user.
- id_provider->LogIn(account);
-
- // Verify that the identity source can return the correct user name.
- EXPECT_EQ(account, auth.GetActiveUsername());
-
- // Verify the user name after the logout.
- id_provider->LogOut();
- EXPECT_EQ("", auth.GetActiveUsername());
-}
-
-} // namespace
-} // namespace client
-} // namespace blimp
« no previous file with comments | « blimp/client/core/session/identity_source.cc ('k') | blimp/client/core/session/network_event_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698