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_EXTENSIONS_EXTENSION_ACTION_TEST_UTIL_H_
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_ACTION_TEST_UTIL_H_
10 #include "base/basictypes.h"
11 #include "base/memory/ref_counted.h"
12 #include "extensions/common/manifest.h"
20 namespace extensions
{
22 class ExtensionToolbarModel
;
24 namespace extension_action_test_util
{
26 // The different possible types of actions for an extension to have (we use
27 // this instead of ActionInfo::Type because we want a "none" option).
34 // TODO(devlin): Should we also pull out methods to test browser actions?
36 // Returns the number of page actions that are visible in the given
38 size_t GetVisiblePageActionCount(content::WebContents
* web_contents
);
40 // Returns the total number of page actions (visible or not) for the given
42 size_t GetTotalPageActionCount(content::WebContents
* web_contents
);
44 // Creates and returns an extension with the given |name| with the given
46 // Does not add the extension to the extension service or registry.
47 scoped_refptr
<const Extension
> CreateActionExtension(const std::string
& name
,
48 ActionType action_type
);
49 scoped_refptr
<const Extension
> CreateActionExtension(
50 const std::string
& name
,
51 ActionType action_type
,
52 Manifest::Location location
);
54 // Creates a new ExtensionToolbarModel for the given |profile|, and associates
55 // it with the profile as a keyed service.
56 // This should only be used in unit tests (since it assumes the existence of
57 // a TestExtensionSystem), but if running a browser test, the model should
58 // already be created.
59 ExtensionToolbarModel
* CreateToolbarModelForProfile(Profile
* profile
);
60 // Like above, but doesn't run the ExtensionSystem::ready() task for the new
62 ExtensionToolbarModel
* CreateToolbarModelForProfileWithoutWaitingForReady(
65 } // namespace extension_action_test_util
66 } // namespace extensions
68 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_ACTION_TEST_UTIL_H_