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 CHROME_BROWSER_CHROMEOS_LOGIN_LOCK_SCREEN_LOCKER_TESTER_H_ 6#define CHROME_BROWSER_CHROMEOS_LOGIN_LOCK_SCREEN_LOCKER_TESTER_H_ 7 8#include <string> 9 10#include "base/basictypes.h" 11 12namespace views { 13class Widget; 14} // namespace views 15 16namespace chromeos { 17 18class UserContext; 19 20namespace test { 21 22// ScreenLockerTester provides access to the private state/function 23// of ScreenLocker class. Used to implement unit tests. 24class ScreenLockerTester { 25 public: 26 ScreenLockerTester(); 27 virtual ~ScreenLockerTester(); 28 29 // Returns true if the screen is locked. 30 virtual bool IsLocked(); 31 32 // Injects MockAuthenticator that uses the credentials in |user_context|. 33 virtual void InjectMockAuthenticator(const UserContext& user_context); 34 35 // Sets the password text. 36 virtual void SetPassword(const std::string& password) = 0; 37 38 // Gets the password text. 39 virtual std::string GetPassword() = 0; 40 41 // Emulates entring a password. 42 virtual void EnterPassword(const std::string& password) = 0; 43 44 // Emulates the ready message from window manager. 45 virtual void EmulateWindowManagerReady() = 0; 46 47 // Returns the widget for screen locker window. 48 virtual views::Widget* GetWidget() const = 0; 49 50 virtual views::Widget* GetChildWidget() const = 0; 51}; 52 53} // namespace test 54 55} // namespace chromeos 56 57#endif // CHROME_BROWSER_CHROMEOS_LOGIN_LOCK_SCREEN_LOCKER_TESTER_H_ 58