Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7286)

Unified Diff: chrome/browser/chromeos/login/login_manager_test_helper.h

Issue 270563002: Componentize LoginManagerTest. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/login_manager_test_helper.h
diff --git a/chrome/browser/chromeos/login/login_manager_test_helper.h b/chrome/browser/chromeos/login/login_manager_test_helper.h
new file mode 100644
index 0000000000000000000000000000000000000000..09abb3255f1ed610d5278fc15499ef921b92126c
--- /dev/null
+++ b/chrome/browser/chromeos/login/login_manager_test_helper.h
@@ -0,0 +1,76 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_MANAGER_TEST_HELPER_H_
+#define CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_MANAGER_TEST_HELPER_H_
+
+#include <string>
+
+#include "base/compiler_specific.h"
+#include "base/macros.h"
+#include "chrome/browser/chromeos/login/mock_login_utils.h"
+
+namespace chromeos {
+
+// Helper class for Chrome OS multi-user browser tests. Provides mock login
+// utils. Tests may subclass LoginManagerTest or use this helper directly.
+// If no special configuration is done launches out-of-box WebUI.
+// To launch login UI use a PRE_* test that will register user(s) and mark
+// out-of-box as completed.
+// Guarantees that WebUI has been initialized by waiting for
+// NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE notification.
+class LoginManagerTestHelper {
+ public:
+ LoginManagerTestHelper();
+ ~LoginManagerTestHelper();
+
+ // Adds flags for LoginManager and multi-profiles.
+ void SetUpCommandLine(base::CommandLine* command_line);
+
+ // Creates the mock login utils.
+ void SetUpLoginUtils(bool should_launch_browser);
+
+ // Waits for NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE.
+ void WaitForLoginWebUI();
+
+ void CloseLoginWebUI();
+
+ // Registers user with given |username| on device.
+ // Should be called in PRE_* test.
+ // TODO(dzhioev): add ability to register users without PRE_* test.
+ void RegisterUser(const std::string& username);
+
+ // Sets expected credentials for next login attempt.
+ void SetExpectedCredentials(const std::string& username,
+ const std::string& password);
+
+ // Tries to log in with |username| and |password|. Returns false if attempt
+ // has failed.
+ bool TryToLogIn(const std::string& username, const std::string& password);
+
+ // Tries to add user to session with |username| and |password|. Returns false
+ // if attempt has failed. This function does the same as TryToLogIn but
+ // doesn't check that the new user became the active user.
+ bool AddUserToSession(const std::string& username,
+ const std::string& password);
+
+ // Logs in user with |username|. User should be registered with
+ // RegisterUser().
+ void LogInUser(const std::string& username);
+
+ // Adds user with |username| to session.
+ void AddUser(const std::string& username);
+
+ MockLoginUtils& mock_login_utils() { return *mock_login_utils_; }
+
+ private:
+ MockLoginUtils* mock_login_utils_;
+ bool web_ui_visible_;
+
+ DISALLOW_COPY_AND_ASSIGN(LoginManagerTestHelper);
+};
+
+} // namespace chromeos
+
+#endif // CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_MANAGER_TEST_HELPER_H_
« no previous file with comments | « chrome/browser/chromeos/login/login_manager_test.cc ('k') | chrome/browser/chromeos/login/login_manager_test_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698