Avi Drissman | 4a8573c | 2022-09-09 19:35:54 | [diff] [blame] | 1 | // Copyright 2010 The Chromium Authors |
[email protected] | 51a9ec4 | 2009-12-14 21:42:57 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
Devlin Cronin | e458a22 | 2019-12-30 22:39:37 | [diff] [blame] | 5 | #ifndef CHROME_BROWSER_UI_EXTENSIONS_EXTENSION_ACTION_TEST_HELPER_H_ |
6 | #define CHROME_BROWSER_UI_EXTENSIONS_EXTENSION_ACTION_TEST_HELPER_H_ | ||||
[email protected] | 51a9ec4 | 2009-12-14 21:42:57 | [diff] [blame] | 7 | |
avi | a2f4804a | 2015-12-24 23:11:13 | [diff] [blame] | 8 | #include <stddef.h> |
9 | |||||
dcheng | c963c714 | 2016-04-08 03:55:22 | [diff] [blame] | 10 | #include <memory> |
[email protected] | 51a9ec4 | 2009-12-14 21:42:57 | [diff] [blame] | 11 | #include <string> |
12 | |||||
Devlin Cronin | 5ce7d58 | 2021-05-05 23:01:03 | [diff] [blame] | 13 | #include "extensions/common/extension_id.h" |
[email protected] | 2e0a150 | 2014-05-14 02:59:43 | [diff] [blame] | 14 | #include "ui/gfx/native_widget_types.h" |
[email protected] | a39f1a9 | 2010-03-10 18:36:58 | [diff] [blame] | 15 | |
[email protected] | 51a9ec4 | 2009-12-14 21:42:57 | [diff] [blame] | 16 | class Browser; |
17 | |||||
[email protected] | 73333786 | 2009-12-19 01:27:51 | [diff] [blame] | 18 | namespace gfx { |
[email protected] | 866d940a | 2012-09-10 23:02:02 | [diff] [blame] | 19 | class Image; |
[email protected] | 73333786 | 2009-12-19 01:27:51 | [diff] [blame] | 20 | class Size; |
21 | } // namespace gfx | ||||
22 | |||||
Alison Gale | 9130192 | 2024-04-15 19:35:27 | [diff] [blame] | 23 | // TODO(crbug.com/40177062): A lot of this class can be cleaned up for |
Devlin Cronin | 5ce7d58 | 2021-05-05 23:01:03 | [diff] [blame] | 24 | // the new toolbar UI. Some of it may also be removable, since we now have |
25 | // the platform-abstract ExtensionsContainer class. | ||||
Devlin Cronin | e458a22 | 2019-12-30 22:39:37 | [diff] [blame] | 26 | class ExtensionActionTestHelper { |
[email protected] | 51a9ec4 | 2009-12-14 21:42:57 | [diff] [blame] | 27 | public: |
EmiliaPaz | b48d099 | 2024-10-22 22:25:12 | [diff] [blame] | 28 | static std::unique_ptr<ExtensionActionTestHelper> Create(Browser* browser); |
rdevlin.cronin | 0c1c08b | 2015-04-27 21:35:18 | [diff] [blame] | 29 | |
Peter Boström | 53c6c595 | 2021-09-17 09:41:26 | [diff] [blame] | 30 | ExtensionActionTestHelper(const ExtensionActionTestHelper&) = delete; |
31 | ExtensionActionTestHelper& operator=(const ExtensionActionTestHelper&) = | ||||
32 | delete; | ||||
33 | |||||
Sorin Jianu | adfd3bf | 2024-12-05 22:32:43 | [diff] [blame] | 34 | virtual ~ExtensionActionTestHelper() = default; |
[email protected] | 51a9ec4 | 2009-12-14 21:42:57 | [diff] [blame] | 35 | |
36 | // Returns the number of browser action buttons in the window toolbar. | ||||
Elly Fong-Jones | 914e0d5 | 2018-03-09 16:50:14 | [diff] [blame] | 37 | virtual int NumberOfBrowserActions() = 0; |
[email protected] | 51a9ec4 | 2009-12-14 21:42:57 | [diff] [blame] | 38 | |
Devlin Cronin | 5ce7d58 | 2021-05-05 23:01:03 | [diff] [blame] | 39 | // Returns true if there is an action for the given `id`. |
40 | virtual bool HasAction(const extensions::ExtensionId& id) = 0; | ||||
[email protected] | 53a7d2d | 2010-03-10 07:50:06 | [diff] [blame] | 41 | |
Keren Zhu | 321371e | 2024-05-15 19:49:52 | [diff] [blame] | 42 | // Simulates a user click on the action button for the given `id`. |
43 | virtual void Press(const extensions::ExtensionId& id) = 0; | ||||
44 | |||||
Devlin Cronin | 5ce7d58 | 2021-05-05 23:01:03 | [diff] [blame] | 45 | // Inspects the extension popup for the action with the given `id`. |
46 | virtual void InspectPopup(const extensions::ExtensionId& id) = 0; | ||||
[email protected] | 51a9ec4 | 2009-12-14 21:42:57 | [diff] [blame] | 47 | |
Devlin Cronin | 5ce7d58 | 2021-05-05 23:01:03 | [diff] [blame] | 48 | // Returns icon for the action for the given `id`. |
49 | virtual gfx::Image GetIcon(const extensions::ExtensionId& id) = 0; | ||||
[email protected] | 51a9ec4 | 2009-12-14 21:42:57 | [diff] [ |