Index: chrome/browser/chromeos/login/existing_user_controller.h |
diff --git a/chrome/browser/chromeos/login/existing_user_controller.h b/chrome/browser/chromeos/login/existing_user_controller.h |
index f648b225bf57ce2b5f8172a56395b7881480d445..451fda2017dd9107fd4ad07134bba7e7923dc61e 100644 |
--- a/chrome/browser/chromeos/login/existing_user_controller.h |
+++ b/chrome/browser/chromeos/login/existing_user_controller.h |
@@ -21,6 +21,7 @@ |
#include "chrome/browser/chromeos/login/user_manager.h" |
#include "chrome/browser/chromeos/wm_message_listener.h" |
#include "gfx/size.h" |
+#include "testing/gtest/include/gtest/gtest_prod.h" |
namespace chromeos { |
@@ -50,6 +51,11 @@ class ExistingUserController : public WmMessageListener::Observer, |
ExistingUserController(const std::vector<UserManager::User>& users, |
const gfx::Rect& background_bounds); |
+ // Returns the current existing user controller if it has been created. |
+ static ExistingUserController* current_controller() { |
+ return current_controller_; |
+ } |
+ |
// Creates and shows the appropriate set of windows. |
void Init(); |
@@ -66,6 +72,7 @@ class ExistingUserController : public WmMessageListener::Observer, |
private: |
friend class DeleteTask<ExistingUserController>; |
+ friend class MockLoginPerformerDelegate; |
~ExistingUserController(); |
@@ -129,6 +136,10 @@ class ExistingUserController : public WmMessageListener::Observer, |
// Send message to window manager to enable/disable click on other windows. |
void SendSetLoginState(bool is_login); |
+ void set_login_performer_delegate(LoginPerformer::Delegate* d) { |
+ login_performer_delegate_.reset(d); |
+ } |
+ |
// Bounds of the background window. |
const gfx::Rect background_bounds_; |
@@ -145,6 +156,10 @@ class ExistingUserController : public WmMessageListener::Observer, |
// Used to execute login operations. |
scoped_ptr<LoginPerformer> login_performer_; |
+ // Delegate for login performer to be overridden by tests. |
+ // |this| is used if |login_performer_delegate_| is NULL. |
+ scoped_ptr<LoginPerformer::Delegate> login_performer_delegate_; |
+ |
// Index of selected view (user). |
size_t selected_view_index_; |
@@ -155,9 +170,9 @@ class ExistingUserController : public WmMessageListener::Observer, |
// See comment in ProcessWmMessage. |
base::OneShotTimer<ExistingUserController> delete_timer_; |
- // Pointer to the instance that was scheduled to be deleted soon or NULL |
- // if there is no such instance. |
- static ExistingUserController* delete_scheduled_instance_; |
+ // Pointer to the current instance of the controller to be used by |
+ // automation tests. |
+ static ExistingUserController* current_controller_; |
// Pointer to shown message bubble. We don't need to delete it because |
// it will be deleted on bubble closing. |
@@ -175,6 +190,8 @@ class ExistingUserController : public WmMessageListener::Observer, |
// Factory of callbacks. |
ScopedRunnableMethodFactory<ExistingUserController> method_factory_; |
+ FRIEND_TEST_ALL_PREFIXES(ExistingUserControllerTest, NewUserLogin); |
+ |
DISALLOW_COPY_AND_ASSIGN(ExistingUserController); |
}; |