1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef COMPONENTS_SIGNIN_CORE_BROWSER_FAKE_AUTH_STATUS_PROVIDER_H_
6#define COMPONENTS_SIGNIN_CORE_BROWSER_FAKE_AUTH_STATUS_PROVIDER_H_
7
8#include "components/signin/core/browser/signin_error_controller.h"
9
10// Helper class that reports auth errors to SigninErrorController. Automatically
11// registers and de-registers itself as an AuthStatusProvider in the
12// constructor and destructor.
13class FakeAuthStatusProvider
14    : public SigninErrorController::AuthStatusProvider {
15 public:
16  explicit FakeAuthStatusProvider(SigninErrorController* error);
17  virtual ~FakeAuthStatusProvider();
18
19  // Sets the auth error that this provider reports to SigninErrorController.
20  // Also notifies SigninErrorController via AuthStatusChanged().
21  void SetAuthError(const std::string& account_id,
22                    const std::string& username,
23                    const GoogleServiceAuthError& error);
24
25  void set_error_without_status_change(const GoogleServiceAuthError& error) {
26    auth_error_ = error;
27  }
28
29  // AuthStatusProvider implementation.
30  virtual std::string GetAccountId() const OVERRIDE;
31  virtual std::string GetUsername() const OVERRIDE;
32  virtual GoogleServiceAuthError GetAuthStatus() const OVERRIDE;
33
34 private:
35  SigninErrorController* error_provider_;
36  std::string account_id_;
37  std::string username_;
38  GoogleServiceAuthError auth_error_;
39};
40
41#endif  // COMPONENTS_SIGNIN_CORE_BROWSER_FAKE_AUTH_STATUS_PROVIDER_H_
42