| // Copyright 2015 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_UI_TOOLBAR_TEST_TOOLBAR_ACTION_VIEW_CONTROLLER_H_ |
| #define CHROME_BROWSER_UI_TOOLBAR_TEST_TOOLBAR_ACTION_VIEW_CONTROLLER_H_ |
| |
| #include "base/macros.h" |
| #include "chrome/browser/ui/toolbar/toolbar_action_view_controller.h" |
| |
| // A minimalistic and configurable ToolbarActionViewController for use in |
| // testing. |
| class TestToolbarActionViewController : public ToolbarActionViewController { |
| public: |
| explicit TestToolbarActionViewController(const std::string& id); |
| ~TestToolbarActionViewController() override; |
| |
| // ToolbarActionViewController: |
| std::string GetId() const override; |
| void SetDelegate(ToolbarActionViewDelegate* delegate) override; |
| gfx::Image GetIcon(content::WebContents* web_contents, |
| const gfx::Size& size) override; |
| base::string16 GetActionName() const override; |
| base::string16 GetAccessibleName(content::WebContents* web_contents) |
| const override; |
| base::string16 GetTooltip(content::WebContents* web_contents) |
| const override; |
| bool IsEnabled(content::WebContents* web_contents) const override; |
| bool WantsToRun(content::WebContents* web_contents) const override; |
| bool HasPopup(content::WebContents* web_contents) const override; |
| bool IsShowingPopup() const override; |
| void HidePopup() override; |
| gfx::NativeView GetPopupNativeView() override; |
| ui::MenuModel* GetContextMenu() override; |
| bool ExecuteAction(bool by_user) override; |
| void UpdateState() override; |
| bool DisabledClickOpensMenu() const override; |
| |
| // Instruct the controller to fake showing a popup. |
| void ShowPopup(bool by_user); |
| |
| // Configure the test controller. These also call UpdateDelegate(). |
| void SetAccessibleName(const base::string16& name); |
| void SetTooltip(const base::string16& tooltip); |
| void SetEnabled(bool is_enabled); |
| void SetWantsToRun(bool wants_to_run); |
| void SetDisabledClickOpensMenu(bool disabled_click_opens_menu); |
| |
| int execute_action_count() const { return execute_action_count_; } |
| |
| private: |
| // Updates the delegate, if one exists. |
| void UpdateDelegate(); |
| |
| // The id of the controller. |
| std::string id_; |
| |
| // The delegate of the controller, if one exists. |
| ToolbarActionViewDelegate* delegate_ = nullptr; |
| |
| // The optional accessible name and tooltip; by default these are empty. |
| base::string16 accessible_name_; |
| base::string16 tooltip_; |
| |
| // Whether or not the action is enabled. |
| bool is_enabled_ = true; |
| |
| // Whether or not the action wants to run. |
| bool wants_to_run_ = false; |
| |
| // Whether or not a click on a disabled action should open the context menu. |
| bool disabled_click_opens_menu_ = false; |
| |
| // The number of times the action would have been executed. |
| int execute_action_count_ = 0; |
| |
| // True if a popup is (supposedly) currently showing. |
| bool popup_showing_ = false; |
| |
| DISALLOW_COPY_AND_ASSIGN(TestToolbarActionViewController); |
| }; |
| |
| #endif // CHROME_BROWSER_UI_TOOLBAR_TEST_TOOLBAR_ACTION_VIEW_CONTROLLER_H_ |