1 // Copyright 2015 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_TOOLBAR_TEST_TOOLBAR_ACTION_VIEW_CONTROLLER_H_
6 #define CHROME_BROWSER_UI_TOOLBAR_TEST_TOOLBAR_ACTION_VIEW_CONTROLLER_H_
8 #include "chrome/browser/ui/toolbar/toolbar_action_view_controller.h"
10 // A minimalistic and configurable ToolbarActionViewController for use in
12 class TestToolbarActionViewController
: public ToolbarActionViewController
{
14 explicit TestToolbarActionViewController(const std::string
& id
);
15 ~TestToolbarActionViewController() override
;
17 // ToolbarActionViewController:
18 std::string
GetId() const override
;
19 void SetDelegate(ToolbarActionViewDelegate
* delegate
) override
;
20 gfx::Image
GetIcon(content::WebContents
* web_contents
,
21 const gfx::Size
& size
) override
;
22 base::string16
GetActionName() const override
;
23 base::string16
GetAccessibleName(content::WebContents
* web_contents
)
25 base::string16
GetTooltip(content::WebContents
* web_contents
)
27 bool IsEnabled(content::WebContents
* web_contents
) const override
;
28 bool WantsToRun(content::WebContents
* web_contents
) const override
;
29 bool HasPopup(content::WebContents
* web_contents
) const override
;
30 void HidePopup() override
;
31 gfx::NativeView
GetPopupNativeView() override
;
32 ui::MenuModel
* GetContextMenu() override
;
33 bool ExecuteAction(bool by_user
) override
;
34 void UpdateState() override
;
35 bool DisabledClickOpensMenu() const override
;
37 // Instruct the controller to fake showing a popup.
38 void ShowPopup(bool by_user
);
40 // Configure the test controller. These also call UpdateDelegate().
41 void SetAccessibleName(const base::string16
& name
);
42 void SetTooltip(const base::string16
& tooltip
);
43 void SetEnabled(bool is_enabled
);
44 void SetWantsToRun(bool wants_to_run
);
45 void SetDisabledClickOpensMenu(bool disabled_click_opens_menu
);
47 int execute_action_count() const { return execute_action_count_
; }
50 // Updates the delegate, if one exists.
51 void UpdateDelegate();
53 // The id of the controller.
56 // The delegate of the controller, if one exists.
57 ToolbarActionViewDelegate
* delegate_
;
59 // The optional accessible name and tooltip; by default these are empty.
60 base::string16 accessible_name_
;
61 base::string16 tooltip_
;
63 // Whether or not the action is enabled. Defaults to true.
66 // Whether or not the action wants to run. Defaults to false.
69 // Whether or not a click on a disabled action should open the context menu.
70 bool disabled_click_opens_menu_
;
72 // The number of times the action would have been executed.
73 int execute_action_count_
;
75 DISALLOW_COPY_AND_ASSIGN(TestToolbarActionViewController
);
78 #endif // CHROME_BROWSER_UI_TOOLBAR_TEST_TOOLBAR_ACTION_VIEW_CONTROLLER_H_