• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_UI_PASSWORDS_MANAGE_PASSWORDS_UI_CONTROLLER_MOCK_H_
6 #define CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_UI_CONTROLLER_MOCK_H_
7 
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"
12 
13 namespace content {
14 class WebContents;
15 }  // namespace content
16 
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
19 // FormManager).
20 class ManagePasswordsUIControllerMock
21     : public ManagePasswordsUIController {
22  public:
23   explicit ManagePasswordsUIControllerMock(
24       content::WebContents* contents);
25   virtual ~ManagePasswordsUIControllerMock();
26 
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.
29   //
30   // TODO(mkwst): Determine how to reasonably test this on that platform.
31   virtual void NavigateToPasswordManagerSettingsPage() OVERRIDE;
navigated_to_settings_page()32   bool navigated_to_settings_page() const {
33     return navigated_to_settings_page_;
34   }
35 
36   // We don't have a FormManager in tests, so stub these out.
37   virtual void SavePassword() OVERRIDE;
saved_password()38   bool saved_password() const { return saved_password_; }
39 
40   virtual void NeverSavePassword() OVERRIDE;
never_saved_password()41   bool never_saved_password() const { return never_saved_password_; }
42 
43   virtual const autofill::PasswordForm& PendingCredentials() const OVERRIDE;
44 
45   // Sneaky setters for testing.
SetPasswordFormMap(const autofill::PasswordFormMap & map)46   void SetPasswordFormMap(const autofill::PasswordFormMap& map) {
47     password_form_map_ = map;
48   }
SetState(password_manager::ui::State state)49   void SetState(password_manager::ui::State state) { state_ = state; }
50 
SetTimer(base::ElapsedTimer * timer)51   void SetTimer(base::ElapsedTimer* timer) { timer_.reset(timer); }
52 
53   // True if this controller is installed on |web_contents()|.
54   bool IsInstalled() const;
55 
56   using ManagePasswordsUIController::DidNavigateMainFrame;
57 
58  private:
59   bool navigated_to_settings_page_;
60   bool saved_password_;
61   bool never_saved_password_;
62 
63   autofill::PasswordForm pending_credentials_;
64 
65   DISALLOW_COPY_AND_ASSIGN(ManagePasswordsUIControllerMock);
66 };
67 
68 #endif  // CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_UI_CONTROLLER_MOCK_H_
69