fake_signin_manager.cc revision 58537e28ecd584eab876aee8be7156509866d23a
1// Copyright (c) 2012 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#include "chrome/browser/signin/fake_signin_manager.h"
6
7#include "base/callback_helpers.h"
8#include "base/prefs/pref_service.h"
9#include "chrome/browser/chrome_notification_types.h"
10#include "chrome/browser/profiles/profile.h"
11#include "chrome/browser/signin/chrome_signin_manager_delegate.h"
12#include "chrome/browser/signin/signin_global_error.h"
13#include "chrome/browser/ui/global_error/global_error_service.h"
14#include "chrome/browser/ui/global_error/global_error_service_factory.h"
15#include "chrome/common/pref_names.h"
16#include "content/public/browser/notification_service.h"
17
18FakeSigninManagerBase::FakeSigninManagerBase() {
19}
20
21FakeSigninManagerBase::~FakeSigninManagerBase() {
22}
23
24void FakeSigninManagerBase::InitTokenService() {
25}
26
27// static
28BrowserContextKeyedService* FakeSigninManagerBase::Build(
29    content::BrowserContext* profile) {
30  return new FakeSigninManagerBase();
31}
32
33#if !defined (OS_CHROMEOS)
34
35FakeSigninManager::FakeSigninManager(Profile* profile)
36    : SigninManager(scoped_ptr<SigninManagerDelegate>(
37        new ChromeSigninManagerDelegate(profile))) {
38}
39
40FakeSigninManager::~FakeSigninManager() {
41}
42
43void FakeSigninManager::InitTokenService() {
44}
45
46void FakeSigninManager::StartSignInWithCredentials(
47    const std::string& session_index,
48    const std::string& username,
49    const std::string& password,
50    const OAuthTokenFetchedCallback& oauth_fetched_callback) {
51  set_auth_in_progress(username);
52  if (!oauth_fetched_callback.is_null())
53    oauth_fetched_callback.Run("fake_oauth_token");
54}
55
56void FakeSigninManager::CompletePendingSignin() {
57  SetAuthenticatedUsername(GetUsernameForAuthInProgress());
58  set_auth_in_progress(std::string());
59}
60
61void FakeSigninManager::SignOut() {
62  if (IsSignoutProhibited())
63    return;
64  set_auth_in_progress(std::string());
65  authenticated_username_.clear();
66  content::NotificationService::current()->Notify(
67      chrome::NOTIFICATION_GOOGLE_SIGNED_OUT,
68      content::Source<Profile>(profile_),
69      content::NotificationService::NoDetails());
70}
71
72// static
73BrowserContextKeyedService* FakeSigninManager::Build(
74    content::BrowserContext* profile) {
75  return new FakeSigninManager(static_cast<Profile*>(profile));
76}
77
78#endif  // !defined (OS_CHROMEOS)
79