summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_context_menu_browsertest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions/extension_context_menu_browsertest.cc')
-rw-r--r--chrome/browser/extensions/extension_context_menu_browsertest.cc101
1 files changed, 45 insertions, 56 deletions
diff --git a/chrome/browser/extensions/extension_context_menu_browsertest.cc b/chrome/browser/extensions/extension_context_menu_browsertest.cc
index 10bf72e..442d2ab 100644
--- a/chrome/browser/extensions/extension_context_menu_browsertest.cc
+++ b/chrome/browser/extensions/extension_context_menu_browsertest.cc
@@ -39,6 +39,36 @@ class TestRenderViewContextMenu : public RenderViewContextMenu {
virtual ~TestRenderViewContextMenu() {}
+ bool HasExtensionItemWithLabel(const std::string& label) {
+ string16 label16 = UTF8ToUTF16(label);
+ std::map<int, MenuItem::Id>::iterator i;
+ for (i = extension_item_map_.begin(); i != extension_item_map_.end(); ++i) {
+ const MenuItem::Id& id = i->second;
+ string16 tmp_label;
+ EXPECT_TRUE(GetItemLabel(id, &tmp_label));
+ if (tmp_label == label16)
+ return true;
+ }
+ return false;
+ }
+
+ // Looks in the menu for an extension item with |id|, and if it is found and
+ // has a label, that is put in |result| and we return true. Otherwise returns
+ // false.
+ bool GetItemLabel(const MenuItem::Id& id, string16* result) {
+ int command_id = 0;
+ if (!FindCommandId(id, &command_id))
+ return false;
+
+ MenuModel* model = NULL;
+ int index = -1;
+ if (!GetMenuModelAndItemIndex(command_id, &model, &index)) {
+ return false;
+ }
+ *result = model->GetLabelAt(index);
+ return true;
+ }
+
// Searches for an menu item with |command_id|. If it's found, the return
// value is true and the model and index where it appears in that model are
// returned in |found_model| and |found_index|. Otherwise returns false.
@@ -65,8 +95,17 @@ class TestRenderViewContextMenu : public RenderViewContextMenu {
return false;
}
- extensions::ContextMenuMatcher& extension_items() {
- return extension_items_;
+ // Given an extension menu item id, tries to find the corresponding command id
+ // in the menu.
+ bool FindCommandId(const MenuItem::Id& id, int* command_id) {
+ std::map<int, MenuItem::Id>::const_iterator i;
+ for (i = extension_item_map_.begin(); i != extension_item_map_.end(); ++i) {
+ if (i->second == id) {
+ *command_id = i->first;
+ return true;
+ }
+ }
+ return false;
}
protected:
@@ -158,7 +197,7 @@ class ExtensionContextMenuBrowserTest : public ExtensionBrowserTest {
const std::string& label) {
scoped_ptr<TestRenderViewContextMenu> menu(
CreateMenu(browser(), page_url, link_url, frame_url));
- return MenuHasExtensionItemWithLabel(menu.get(), label);
+ return menu->HasExtensionItemWithLabel(label);
}
// This creates an extension that starts |enabled| and then switches to
@@ -194,56 +233,6 @@ class ExtensionContextMenuBrowserTest : public ExtensionBrowserTest {
ASSERT_TRUE(update.WaitUntilSatisfied());
ASSERT_EQ(!enabled, menu->IsCommandIdEnabled(command_id));
}
-
- bool MenuHasExtensionItemWithLabel(TestRenderViewContextMenu* menu,
- const std::string& label) {
- string16 label16 = UTF8ToUTF16(label);
- std::map<int, MenuItem::Id>::iterator i;
- for (i = menu->extension_items().extension_item_map_.begin();
- i != menu->extension_items().extension_item_map_.end(); ++i) {
- const MenuItem::Id& id = i->second;
- string16 tmp_label;
- EXPECT_TRUE(GetItemLabel(menu, id, &tmp_label));
- if (tmp_label == label16)
- return true;
- }
- return false;
- }
-
- // Looks in the menu for an extension item with |id|, and if it is found and
- // has a label, that is put in |result| and we return true. Otherwise returns
- // false.
- bool GetItemLabel(TestRenderViewContextMenu* menu,
- const MenuItem::Id& id,
- string16* result) {
- int command_id = 0;
- if (!FindCommandId(menu, id, &command_id))
- return false;
-
- MenuModel* model = NULL;
- int index = -1;
- if (!menu->GetMenuModelAndItemIndex(command_id, &model, &index)) {
- return false;
- }
- *result = model->GetLabelAt(index);
- return true;
- }
-
- // Given an extension menu item id, tries to find the corresponding command id
- // in the menu.
- bool FindCommandId(TestRenderViewContextMenu* menu,
- const MenuItem::Id& id,
- int* command_id) {
- std::map<int, MenuItem::Id>::const_iterator i;
- for (i = menu->extension_items().extension_item_map_.begin();
- i != menu->extension_items().extension_item_map_.end(); ++i) {
- if (i->second == id) {
- *command_id = i->first;
- return true;
- }
- }
- return false;
- }
};
// Tests adding a simple context menu item.
@@ -313,7 +302,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionContextMenuBrowserTest, LongTitle) {
ASSERT_TRUE(listener.WaitUntilSatisfied());
// Make sure we have an item registered with a long title.
- size_t limit = extensions::ContextMenuMatcher::kMaxExtensionItemTitleLength;
+ size_t limit = RenderViewContextMenu::kMaxExtensionItemTitleLength;
MenuItem::List items = GetItems();
ASSERT_EQ(1u, items.size());
MenuItem* item = items.at(0);
@@ -326,7 +315,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionContextMenuBrowserTest, LongTitle) {
CreateMenu(browser(), url, GURL(), GURL()));
string16 label;
- ASSERT_TRUE(GetItemLabel(menu.get(), item->id(), &label));
+ ASSERT_TRUE(menu->GetItemLabel(item->id(), &label));
ASSERT_TRUE(label.size() <= limit);
}
@@ -591,7 +580,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionContextMenuBrowserLazyTest, EventPage) {
MenuItem::Id id(false, extension->id());
id.string_uid = "checkbox1";
int command_id = -1;
- ASSERT_TRUE(FindCommandId(menu.get(), id, &command_id));
+ ASSERT_TRUE(menu->FindCommandId(id, &command_id));
EXPECT_FALSE(menu->IsCommandIdChecked(command_id));
// Executing the checkbox also fires the onClicked event.