| Index: chrome/browser/extensions/extension_context_menu_model_unittest.cc
|
| diff --git a/chrome/browser/extensions/extension_context_menu_model_unittest.cc b/chrome/browser/extensions/extension_context_menu_model_unittest.cc
|
| index cd15d523b7fac6535766c3ef250072647331841d..f02d6e3390af570bd1ba1a856140fd1e659d1253 100644
|
| --- a/chrome/browser/extensions/extension_context_menu_model_unittest.cc
|
| +++ b/chrome/browser/extensions/extension_context_menu_model_unittest.cc
|
| @@ -6,11 +6,8 @@
|
|
|
| #include "chrome/browser/extensions/extension_service.h"
|
| #include "chrome/browser/extensions/extension_service_test_base.h"
|
| -#include "chrome/browser/extensions/menu_manager.h"
|
| -#include "chrome/browser/extensions/menu_manager_factory.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/host_desktop.h"
|
| -#include "chrome/common/extensions/api/context_menus.h"
|
| #include "chrome/test/base/test_browser_window.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| #include "extensions/browser/extension_system.h"
|
| @@ -20,83 +17,25 @@
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace extensions {
|
| +namespace {
|
|
|
| class ExtensionContextMenuModelTest : public ExtensionServiceTestBase {
|
| - public:
|
| - ExtensionContextMenuModelTest();
|
| -
|
| - // Build an extension to pass to the menu constructor. It needs an
|
| - // ExtensionAction.
|
| - scoped_refptr<Extension> BuildExtension();
|
| -
|
| - // Creates an extension menu item for |extension| with the given |context|
|
| - // and adds it to |manager|. Refreshes |model| to show new item.
|
| - void AddContextItemAndRefreshModel(MenuManager* manager,
|
| - Extension* extension,
|
| - MenuItem::Context context,
|
| - ExtensionContextMenuModel* model);
|
| -
|
| - // Reinitializes the given |model|.
|
| - void RefreshMenu(ExtensionContextMenuModel* model);
|
| -
|
| - // Returns the number of extension menu items that show up in |model|.
|
| - int CountExtensionItems(ExtensionContextMenuModel* model);
|
| -
|
| - private:
|
| - int cur_id_;
|
| };
|
| -
|
| -ExtensionContextMenuModelTest::ExtensionContextMenuModelTest()
|
| - : cur_id_(0) {}
|
| -
|
| -scoped_refptr<Extension> ExtensionContextMenuModelTest::BuildExtension() {
|
| - return ExtensionBuilder()
|
| - .SetManifest(
|
| - DictionaryBuilder()
|
| - .Set("name", "Page Action Extension")
|
| - .Set("version", "1")
|
| - .Set("manifest_version", 2)
|
| - .Set("page_action",
|
| - DictionaryBuilder().Set("default_title", "Hello")))
|
| - .Build();
|
| -}
|
| -
|
| -void ExtensionContextMenuModelTest::AddContextItemAndRefreshModel(
|
| - MenuManager* manager,
|
| - Extension* extension,
|
| - MenuItem::Context context,
|
| - ExtensionContextMenuModel* model) {
|
| - MenuItem::Type type = MenuItem::NORMAL;
|
| - MenuItem::ContextList contexts(context);
|
| - const MenuItem::ExtensionKey key(extension->id());
|
| - MenuItem::Id id(false, key);
|
| - id.uid = ++cur_id_;
|
| - manager->AddContextItem(extension, new MenuItem(id,
|
| - "test",
|
| - false, // checked
|
| - true, // enabled
|
| - type,
|
| - contexts));
|
| - RefreshMenu(model);
|
| -}
|
| -
|
| -void ExtensionContextMenuModelTest::RefreshMenu(
|
| - ExtensionContextMenuModel* model) {
|
| - model->InitMenu(model->GetExtension());
|
| -}
|
| -
|
| -int ExtensionContextMenuModelTest::CountExtensionItems(
|
| - ExtensionContextMenuModel* model) {
|
| - return model->extension_items_count_;
|
| -}
|
| -
|
| -namespace {
|
|
|
| // Tests that applicable menu items are disabled when a ManagementPolicy
|
| // prohibits them.
|
| TEST_F(ExtensionContextMenuModelTest, PolicyDisablesItems) {
|
| InitializeEmptyExtensionService();
|
| - scoped_refptr<Extension> extension = BuildExtension();
|
| + // Build an extension to pass to the menu constructor. It needs an
|
| + // ExtensionAction.
|
| + scoped_refptr<Extension> extension = ExtensionBuilder()
|
| + .SetManifest(DictionaryBuilder()
|
| + .Set("name", "Page Action Extension")
|
| + .Set("version", "1")
|
| + .Set("manifest_version", 2)
|
| + .Set("page_action", DictionaryBuilder()
|
| + .Set("default_title", "Hello")))
|
| + .Build();
|
| ASSERT_TRUE(extension.get());
|
| service_->AddExtension(extension.get());
|
|
|
| @@ -107,7 +46,7 @@
|
| Browser browser(params);
|
|
|
| scoped_refptr<ExtensionContextMenuModel> menu(
|
| - new ExtensionContextMenuModel(extension.get(), &browser));
|
| + new ExtensionContextMenuModel(extension.get(), &browser, NULL));
|
|
|
| extensions::ExtensionSystem* system =
|
| extensions::ExtensionSystem::Get(profile_.get());
|
| @@ -127,64 +66,5 @@
|
| system->management_policy()->UnregisterAllProviders();
|
| }
|
|
|
| -TEST_F(ExtensionContextMenuModelTest, ExtensionItemTest) {
|
| - InitializeEmptyExtensionService();
|
| - scoped_refptr<Extension> extension = BuildExtension();
|
| - ASSERT_TRUE(extension.get());
|
| - service_->AddExtension(extension.get());
|
| -
|
| - // Create a Browser for the ExtensionContextMenuModel to use.
|
| - Browser::CreateParams params(profile_.get(), chrome::GetActiveDesktop());
|
| - TestBrowserWindow test_window;
|
| - params.window = &test_window;
|
| - Browser browser(params);
|
| -
|
| - // Create a MenuManager for adding context items.
|
| - MenuManager* manager = static_cast<MenuManager*>(
|
| - (MenuManagerFactory::GetInstance()->SetTestingFactoryAndUse(
|
| - profile_.get(), &MenuManagerFactory::BuildServiceInstanceForTesting)));
|
| - ASSERT_TRUE(manager);
|
| -
|
| - scoped_refptr<ExtensionContextMenuModel> menu(
|
| - new ExtensionContextMenuModel(extension.get(), &browser));
|
| -
|
| - // There should be no extension items yet.
|
| - EXPECT_EQ(0, CountExtensionItems(menu));
|
| -
|
| - // Add a browser action menu item for |extension| to |manager|.
|
| - AddContextItemAndRefreshModel(
|
| - manager, extension.get(), MenuItem::BROWSER_ACTION, menu);
|
| -
|
| - // Since |extension| has a page action, the browser action menu item should
|
| - // not be present.
|
| - EXPECT_EQ(0, CountExtensionItems(menu));
|
| -
|
| - // Add a page action menu item and reset the context menu.
|
| - AddContextItemAndRefreshModel(
|
| - manager, extension.get(), MenuItem::PAGE_ACTION, menu);
|
| -
|
| - // The page action item should be present because |extension| has a page
|
| - // action.
|
| - EXPECT_EQ(1, CountExtensionItems(menu));
|
| -
|
| - // Create more page action items to test top level menu item limitations.
|
| - for (int i = 0; i < api::context_menus::ACTION_MENU_TOP_LEVEL_LIMIT; ++i)
|
| - AddContextItemAndRefreshModel(
|
| - manager, extension.get(), MenuItem::PAGE_ACTION, menu);
|
| -
|
| - // The menu should only have a limited number of extension items, since they
|
| - // are all top level items, and we limit the number of top level extension
|
| - // items.
|
| - EXPECT_EQ(api::context_menus::ACTION_MENU_TOP_LEVEL_LIMIT,
|
| - CountExtensionItems(menu));
|
| -
|
| - AddContextItemAndRefreshModel(
|
| - manager, extension.get(), MenuItem::PAGE_ACTION, menu);
|
| -
|
| - // Adding another top level item should not increase the count.
|
| - EXPECT_EQ(api::context_menus::ACTION_MENU_TOP_LEVEL_LIMIT,
|
| - CountExtensionItems(menu));
|
| -}
|
| -
|
| } // namespace
|
| } // namespace extensions
|
|
|