| Index: chrome/browser/signin/signin_error_controller_unittest.cc
|
| diff --git a/chrome/browser/signin/signin_error_controller_unittest.cc b/chrome/browser/signin/signin_error_controller_unittest.cc
|
| deleted file mode 100644
|
| index 2c5afee1c07a5ec82b3e100afa4e3b63edb28354..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/signin/signin_error_controller_unittest.cc
|
| +++ /dev/null
|
| @@ -1,255 +0,0 @@
|
| -// Copyright 2014 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 "components/signin/core/browser/signin_error_controller.h"
|
| -
|
| -#include <functional>
|
| -
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "chrome/browser/signin/fake_auth_status_provider.h"
|
| -#include "chrome/test/base/testing_profile.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -static const char kTestAccountId[] = "testuser@test.com";
|
| -static const char kOtherTestAccountId[] = "otheruser@test.com";
|
| -
|
| -class SigninErrorControllerTest : public testing::Test {
|
| - public:
|
| - virtual void SetUp() OVERRIDE {
|
| - error_controller_.reset(new SigninErrorController());
|
| - }
|
| -
|
| - scoped_ptr<SigninErrorController> error_controller_;
|
| -};
|
| -
|
| -TEST_F(SigninErrorControllerTest, NoErrorAuthStatusProviders) {
|
| - scoped_ptr<FakeAuthStatusProvider> provider;
|
| -
|
| - // No providers.
|
| - ASSERT_FALSE(error_controller_->HasError());
|
| -
|
| - // Add a provider.
|
| - provider.reset(new FakeAuthStatusProvider(error_controller_.get()));
|
| - ASSERT_FALSE(error_controller_->HasError());
|
| -
|
| - // Remove the provider.
|
| - provider.reset();
|
| - ASSERT_FALSE(error_controller_->HasError());
|
| -}
|
| -
|
| -TEST_F(SigninErrorControllerTest, ErrorAuthStatusProvider) {
|
| - scoped_ptr<FakeAuthStatusProvider> provider;
|
| - scoped_ptr<FakeAuthStatusProvider> error_provider;
|
| -
|
| - provider.reset(new FakeAuthStatusProvider(error_controller_.get()));
|
| - ASSERT_FALSE(error_controller_->HasError());
|
| -
|
| - error_provider.reset(new FakeAuthStatusProvider(error_controller_.get()));
|
| - error_provider->SetAuthError(kTestAccountId, GoogleServiceAuthError(
|
| - GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS));
|
| - ASSERT_TRUE(error_controller_->HasError());
|
| -
|
| - error_provider.reset();
|
| - ASSERT_FALSE(error_controller_->HasError());
|
| -
|
| - provider.reset();
|
| - // All providers should be removed now.
|
| - ASSERT_FALSE(error_controller_->HasError());
|
| -}
|
| -
|
| -TEST_F(SigninErrorControllerTest, AuthStatusProviderErrorTransition) {
|
| - scoped_ptr<FakeAuthStatusProvider> provider0(
|
| - new FakeAuthStatusProvider(error_controller_.get()));
|
| - scoped_ptr<FakeAuthStatusProvider> provider1(
|
| - new FakeAuthStatusProvider(error_controller_.get()));
|
| -
|
| - ASSERT_FALSE(error_controller_->HasError());
|
| - provider0->SetAuthError(
|
| - kTestAccountId,
|
| - GoogleServiceAuthError(
|
| - GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS));
|
| - ASSERT_TRUE(error_controller_->HasError());
|
| - provider1->SetAuthError(
|
| - kTestAccountId,
|
| - GoogleServiceAuthError(GoogleServiceAuthError::ACCOUNT_DISABLED));
|
| - ASSERT_TRUE(error_controller_->HasError());
|
| -
|
| - // Now resolve the auth errors - the menu item should go away.
|
| - provider0->SetAuthError(kTestAccountId,
|
| - GoogleServiceAuthError::AuthErrorNone());
|
| - ASSERT_TRUE(error_controller_->HasError());
|
| - provider1->SetAuthError(kTestAccountId,
|
| - GoogleServiceAuthError::AuthErrorNone());
|
| - ASSERT_FALSE(error_controller_->HasError());
|
| -
|
| - provider0.reset();
|
| - provider1.reset();
|
| - ASSERT_FALSE(error_controller_->HasError());
|
| -}
|
| -
|
| -TEST_F(SigninErrorControllerTest, AuthStatusProviderAccountTransition) {
|
| - scoped_ptr<FakeAuthStatusProvider> provider0(
|
| - new FakeAuthStatusProvider(error_controller_.get()));
|
| - scoped_ptr<FakeAuthStatusProvider> provider1(
|
| - new FakeAuthStatusProvider(error_controller_.get()));
|
| -
|
| - ASSERT_FALSE(error_controller_->HasError());
|
| -
|
| - provider0->SetAuthError(
|
| - kTestAccountId,
|
| - GoogleServiceAuthError(
|
| - GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS));
|
| - provider1->SetAuthError(
|
| - kOtherTestAccountId,
|
| - GoogleServiceAuthError(GoogleServiceAuthError::NONE));
|
| - ASSERT_TRUE(error_controller_->HasError());
|
| - ASSERT_STREQ(kTestAccountId,
|
| - error_controller_->error_account_id().c_str());
|
| -
|
| - // Swap providers reporting errors.
|
| - provider1->set_error_without_status_change(
|
| - GoogleServiceAuthError(
|
| - GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS));
|
| - provider0->set_error_without_status_change(
|
| - GoogleServiceAuthError(GoogleServiceAuthError::NONE));
|
| - error_controller_->AuthStatusChanged();
|
| - ASSERT_TRUE(error_controller_->HasError());
|
| - ASSERT_STREQ(kOtherTestAccountId,
|
| - error_controller_->error_account_id().c_str());
|
| -
|
| - // Now resolve the auth errors - the menu item should go away.
|
| - provider0->set_error_without_status_change(
|
| - GoogleServiceAuthError::AuthErrorNone());
|
| - provider1->set_error_without_status_change(
|
| - GoogleServiceAuthError::AuthErrorNone());
|
| - error_controller_->AuthStatusChanged();
|
| - ASSERT_FALSE(error_controller_->HasError());
|
| -
|
| - provider0.reset();
|
| - provider1.reset();
|
| - ASSERT_FALSE(error_controller_->HasError());
|
| -}
|
| -
|
| -// Verify that SigninErrorController handles errors properly.
|
| -TEST_F(SigninErrorControllerTest, AuthStatusEnumerateAllErrors) {
|
| - typedef struct {
|
| - GoogleServiceAuthError::State error_state;
|
| - bool is_error;
|
| - } ErrorTableEntry;
|
| -
|
| - ErrorTableEntry table[] = {
|
| - { GoogleServiceAuthError::NONE, false },
|
| - { GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS, true },
|
| - { GoogleServiceAuthError::USER_NOT_SIGNED_UP, true },
|
| - { GoogleServiceAuthError::CONNECTION_FAILED, false },
|
| - { GoogleServiceAuthError::CAPTCHA_REQUIRED, true },
|
| - { GoogleServiceAuthError::ACCOUNT_DELETED, true },
|
| - { GoogleServiceAuthError::ACCOUNT_DISABLED, true },
|
| - { GoogleServiceAuthError::SERVICE_UNAVAILABLE, true },
|
| - { GoogleServiceAuthError::TWO_FACTOR, true },
|
| - { GoogleServiceAuthError::REQUEST_CANCELED, true },
|
| - { GoogleServiceAuthError::HOSTED_NOT_ALLOWED, true },
|
| - { GoogleServiceAuthError::UNEXPECTED_SERVICE_RESPONSE, true },
|
| - { GoogleServiceAuthError::SERVICE_ERROR, true },
|
| - };
|
| - COMPILE_ASSERT(ARRAYSIZE_UNSAFE(table) == GoogleServiceAuthError::NUM_STATES,
|
| - kTable_size_does_not_match_number_of_auth_error_types);
|
| -
|
| - for (size_t i = 0; i < ARRAYSIZE_UNSAFE(table); ++i) {
|
| - FakeAuthStatusProvider provider(error_controller_.get());
|
| - provider.SetAuthError(kTestAccountId,
|
| - GoogleServiceAuthError(table[i].error_state));
|
| -
|
| - EXPECT_EQ(error_controller_->HasError(), table[i].is_error);
|
| -
|
| - if (table[i].is_error) {
|
| - EXPECT_EQ(table[i].error_state,
|
| - error_controller_->auth_error().state());
|
| - EXPECT_STREQ(kTestAccountId,
|
| - error_controller_->error_account_id().c_str());
|
| - } else {
|
| - EXPECT_EQ(GoogleServiceAuthError::NONE,
|
| - error_controller_->auth_error().state());
|
| - EXPECT_STREQ("",
|
| - error_controller_->error_account_id().c_str());
|
| - }
|
| - }
|
| -}
|
| -
|
| -// Verify that existing error is not replaced by new error.
|
| -TEST_F(SigninErrorControllerTest, AuthStatusChange) {
|
| - scoped_ptr<FakeAuthStatusProvider> fake_provider0(
|
| - new FakeAuthStatusProvider(error_controller_.get()));
|
| - scoped_ptr<FakeAuthStatusProvider> fake_provider1(
|
| - new FakeAuthStatusProvider(error_controller_.get()));
|
| -
|
| - // If there are multiple providers in the provider set...
|
| - //
|
| - // | provider0 | provider1 | ...
|
| - // | NONE | INVALID_GAIA_CREDENTIALS | ...
|
| - //
|
| - // SigninErrorController picks the first error found when iterating through
|
| - // the set. But if another error crops up...
|
| - //
|
| - // | provider0 | provider1 | ...
|
| - // | SERVICE_UNAVAILABLE | INVALID_GAIA_CREDENTIALS | ...
|
| - //
|
| - // we want the controller to still use the original error.
|
| -
|
| - // The provider pointers are stored in a set, which is sorted by std::less.
|
| - std::less<SigninErrorController::AuthStatusProvider*> compare;
|
| - FakeAuthStatusProvider* provider0 =
|
| - compare(fake_provider0.get(), fake_provider1.get()) ?
|
| - fake_provider0.get() : fake_provider1.get();
|
| - FakeAuthStatusProvider* provider1 =
|
| - provider0 == fake_provider0.get() ?
|
| - fake_provider1.get() : fake_provider0.get();
|
| -
|
| - provider0->SetAuthError(
|
| - kTestAccountId,
|
| - GoogleServiceAuthError(
|
| - GoogleServiceAuthError::NONE));
|
| - provider1->SetAuthError(
|
| - kOtherTestAccountId,
|
| - GoogleServiceAuthError(
|
| - GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS));
|
| - ASSERT_EQ(GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS,
|
| - error_controller_->auth_error().state());
|
| - ASSERT_STREQ(kOtherTestAccountId,
|
| - error_controller_->error_account_id().c_str());
|
| -
|
| - // Change the 1st provider's error.
|
| - provider1->SetAuthError(
|
| - kOtherTestAccountId,
|
| - GoogleServiceAuthError(
|
| - GoogleServiceAuthError::SERVICE_UNAVAILABLE));
|
| - ASSERT_EQ(GoogleServiceAuthError::SERVICE_UNAVAILABLE,
|
| - error_controller_->auth_error().state());
|
| - ASSERT_STREQ(kOtherTestAccountId,
|
| - error_controller_->error_account_id().c_str());
|
| -
|
| - // Set the 0th provider's error -- nothing should change.
|
| - provider0->SetAuthError(
|
| - kTestAccountId,
|
| - GoogleServiceAuthError(
|
| - GoogleServiceAuthError::UNEXPECTED_SERVICE_RESPONSE));
|
| - ASSERT_EQ(GoogleServiceAuthError::SERVICE_UNAVAILABLE,
|
| - error_controller_->auth_error().state());
|
| - ASSERT_STREQ(kOtherTestAccountId,
|
| - error_controller_->error_account_id().c_str());
|
| -
|
| - // Clear the 1st provider's error, so the 0th provider's error is used.
|
| - provider1->SetAuthError(
|
| - kOtherTestAccountId,
|
| - GoogleServiceAuthError(
|
| - GoogleServiceAuthError::NONE));
|
| - ASSERT_EQ(GoogleServiceAuthError::UNEXPECTED_SERVICE_RESPONSE,
|
| - error_controller_->auth_error().state());
|
| - ASSERT_STREQ(kTestAccountId,
|
| - error_controller_->error_account_id().c_str());
|
| -
|
| - fake_provider0.reset();
|
| - fake_provider1.reset();
|
| - ASSERT_FALSE(error_controller_->HasError());
|
| -}
|
|
|