Home | History | Annotate | Download | only in login
      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 
     11 namespace 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.
     20 class 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