1// Copyright 2013 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 CHROME_BROWSER_CHROMEOS_LOGIN_FAKE_LOGIN_UTILS_H_ 6#define CHROME_BROWSER_CHROMEOS_LOGIN_FAKE_LOGIN_UTILS_H_ 7 8#include "chrome/browser/chromeos/login/login_utils.h" 9#include "chromeos/login/auth/user_context.h" 10 11namespace chromeos { 12 13// This class emulates behavior of LoginUtils for browser tests. 14// It provides: 15// * Fake authentication. You can configure expected usernames and password for 16// next auth attempt. 17// * Preparing of profiles for authenticated users. 18// * Launching browser for user, if |should_launch_browser_| set. 19// * Correct communication with LoginDisplayHost and UserManager. 20class FakeLoginUtils : public LoginUtils { 21 public: 22 FakeLoginUtils(); 23 virtual ~FakeLoginUtils(); 24 virtual void RespectLocalePreference(Profile*, 25 const base::Closure& callback) OVERRIDE; 26 virtual void DoBrowserLaunch(Profile* profile, 27 LoginDisplayHost* login_host) OVERRIDE; 28 virtual void PrepareProfile(const UserContext& user_context, 29 bool has_cookies, 30 bool has_active_session, 31 LoginUtils::Delegate* delegate) OVERRIDE; 32 virtual void DelegateDeleted(LoginUtils::Delegate* delegate) OVERRIDE; 33 virtual void CompleteOffTheRecordLogin(const GURL& start_url) OVERRIDE; 34 virtual scoped_refptr<Authenticator> CreateAuthenticator( 35 AuthStatusConsumer* consumer) OVERRIDE; 36 virtual bool RestartToApplyPerSessionFlagsIfNeed(Profile* profile, 37 bool early_restart) OVERRIDE; 38 39 void SetExpectedCredentials(const UserContext& user_context); 40 void set_should_launch_browser(bool should_launch_browser) { 41 should_launch_browser_ = should_launch_browser; 42 } 43 44 private: 45 scoped_refptr<Authenticator> authenticator_; 46 UserContext expected_user_context_; 47 bool should_launch_browser_; 48 49 DISALLOW_COPY_AND_ASSIGN(FakeLoginUtils); 50}; 51 52} // namespace chromeos 53 54#endif // CHROME_BROWSER_CHROMEOS_LOGIN_FAKE_LOGIN_UTILS_H_ 55