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.
5 #ifndef CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_UI_CONTROLLER_MOCK_H_
6 #define CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_UI_CONTROLLER_MOCK_H_
8 #include "base/basictypes.h"
9 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h"
10 #include "components/password_manager/core/common/password_manager_ui.h"
11 #include "content/public/browser/navigation_details.h"
15 } // namespace content
17 // This mock is used in tests to ensure that we're just testing the controller
18 // behavior, and not the behavior of the bits and pieces it relies upon (like
20 class ManagePasswordsUIControllerMock
21 : public ManagePasswordsUIController {
23 explicit ManagePasswordsUIControllerMock(
24 content::WebContents* contents);
25 virtual ~ManagePasswordsUIControllerMock();
27 // Navigation, surprisingly, is platform-specific; Android's settings page
28 // is native UI and therefore isn't available in a tab for unit tests.
30 // TODO(mkwst): Determine how to reasonably test this on that platform.
31 virtual void NavigateToPasswordManagerSettingsPage() OVERRIDE;
32 bool navigated_to_settings_page() const {
33 return navigated_to_settings_page_;
36 // We don't have a FormManager in tests, so stub these out.
37 virtual void SavePasswordInternal() OVERRIDE;
38 bool saved_password() const { return saved_password_; }
40 virtual void NeverSavePasswordInternal() OVERRIDE;
41 bool never_saved_password() const { return never_saved_password_; }
43 virtual const autofill::PasswordForm& PendingCredentials() const OVERRIDE;
44 void SetPendingCredentials(autofill::PasswordForm pending_credentials);
46 // Sneaky setters for testing.
47 void SetPasswordFormMap(const autofill::ConstPasswordFormMap& map) {
48 password_form_map_ = map;
50 void SetState(password_manager::ui::State state) { state_ = state; }
52 void SetTimer(base::ElapsedTimer* timer) { timer_.reset(timer); }
54 // True if this controller is installed on |web_contents()|.
55 bool IsInstalled() const;
57 using ManagePasswordsUIController::DidNavigateMainFrame;
60 bool navigated_to_settings_page_;
62 bool never_saved_password_;
64 autofill::PasswordForm pending_credentials_;
66 DISALLOW_COPY_AND_ASSIGN(ManagePasswordsUIControllerMock);
69 #endif // CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_UI_CONTROLLER_MOCK_H_