Fix infinite recursion on hiding panel when created during fullscreen mode.
[chromium-blink-merge.git] / chrome / browser / chromeos / login / login_manager_test.h
blobb05db4860117f540bd8352dd53724d9c9200b554
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.
5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_MANAGER_TEST_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_MANAGER_TEST_H_
8 #include "chrome/browser/chromeos/login/mock_login_utils.h"
9 #include "chrome/browser/chromeos/login/test/js_checker.h"
10 #include "chrome/test/base/in_process_browser_test.h"
12 namespace content {
13 class WebContents;
14 } // namespace content
16 namespace chromeos {
18 // Base class for Chrome OS out-of-box/login WebUI tests.
19 // If no special configuration is done launches out-of-box WebUI.
20 // To launch login UI use PRE_* test that will register user(s) and mark
21 // out-of-box as completed.
22 // Guarantees that WebUI has been initialized by waiting for
23 // NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE notification.
24 class LoginManagerTest : public InProcessBrowserTest {
25 public:
26 explicit LoginManagerTest(bool should_launch_browser);
28 // Overriden from InProcessBrowserTest.
29 virtual void CleanUpOnMainThread() OVERRIDE;
30 virtual void SetUpCommandLine(base::CommandLine* command_line) OVERRIDE;
31 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE;
32 virtual void SetUpOnMainThread() OVERRIDE;
34 // Registers user with given |username| on device.
35 // Should be called in PRE_* test.
36 // TODO(dzhioev): add ability to register users without PRE_* test.
37 void RegisterUser(const std::string& username);
39 // Set expected credentials for next login attempt.
40 void SetExpectedCredentials(const std::string& username,
41 const std::string& password);
43 // Tries to login with |username| and |password|. Returns false if attempt
44 // has failed.
45 bool TryToLogin(const std::string& username, const std::string& password);
47 // Tries to add user to session with |username| and |password|. Returns false
48 // if attempt has failed. this function does the same as TryToLogin but
49 // doesn't check that new user become active user.
50 bool AddUserTosession(const std::string& username,
51 const std::string& password);
53 // Login user with |username|. User should be registered using RegisterUser().
54 void LoginUser(const std::string& username);
56 // Add user with |username| to session.
57 void AddUser(const std::string& username);
59 // Executes given JS |expression| in |web_contents_| and checks
60 // that it is true.
61 void JSExpect(const std::string& expression);
63 MockLoginUtils& login_utils() { return *mock_login_utils_; }
65 content::WebContents* web_contents() { return web_contents_; }
67 private:
68 void InitializeWebContents();
70 void set_web_contents(content::WebContents* web_contents) {
71 web_contents_ = web_contents;
74 MockLoginUtils* mock_login_utils_;
75 bool should_launch_browser_;
76 content::WebContents* web_contents_;
77 test::JSChecker js_checker_;
79 DISALLOW_COPY_AND_ASSIGN(LoginManagerTest);
82 } // namespace chromeos
84 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_MANAGER_TEST_H_