Index: chrome/browser/renderer_context_menu/render_view_context_menu_test_util.cc |
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu_test_util.cc b/chrome/browser/renderer_context_menu/render_view_context_menu_test_util.cc |
index 53536656b496b5d44f83074db7557cf093a701d5..e3b4eb8b599d78d53399d7adfbdd065015cc691d 100644 |
--- a/chrome/browser/renderer_context_menu/render_view_context_menu_test_util.cc |
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu_test_util.cc |
@@ -3,6 +3,10 @@ |
// found in the LICENSE file. |
#include "chrome/browser/renderer_context_menu/render_view_context_menu_test_util.h" |
+#include "content/public/browser/web_contents.h" |
+#include "ui/base/models/menu_model.h" |
+ |
+using ui::MenuModel; |
TestRenderViewContextMenu::TestRenderViewContextMenu( |
content::RenderFrameHost* render_frame_host, |
@@ -11,6 +15,22 @@ TestRenderViewContextMenu::TestRenderViewContextMenu( |
TestRenderViewContextMenu::~TestRenderViewContextMenu() {} |
+// static |
+TestRenderViewContextMenu* TestRenderViewContextMenu::Create( |
+ content::WebContents* web_contents, |
+ const GURL& page_url, |
+ const GURL& link_url, |
+ const GURL& frame_url) { |
+ content::ContextMenuParams params; |
+ params.page_url = page_url; |
+ params.link_url = link_url; |
+ params.frame_url = frame_url; |
+ TestRenderViewContextMenu* menu = |
+ new TestRenderViewContextMenu(web_contents->GetMainFrame(), params); |
+ menu->Init(); |
+ return menu; |
+} |
+ |
void TestRenderViewContextMenu::PlatformInit() {} |
void TestRenderViewContextMenu::PlatformCancel() {} |
@@ -18,9 +38,34 @@ void TestRenderViewContextMenu::PlatformCancel() {} |
bool TestRenderViewContextMenu::GetAcceleratorForCommandId( |
int command_id, |
ui::Accelerator* accelerator) { |
+ // None of our commands have accelerators, so always return false. |
return false; |
} |
bool TestRenderViewContextMenu::IsItemPresent(int command_id) { |
return menu_model_.GetIndexOfCommandId(command_id) != -1; |
} |
+ |
+bool TestRenderViewContextMenu::GetMenuModelAndItemIndex( |
+ int command_id, |
+ MenuModel** found_model, |
+ int* found_index) { |
+ std::vector<MenuModel*> models_to_search; |
+ models_to_search.push_back(&menu_model_); |
+ |
+ while (!models_to_search.empty()) { |
+ MenuModel* model = models_to_search.back(); |
+ models_to_search.pop_back(); |
+ for (int i = 0; i < model->GetItemCount(); i++) { |
+ if (model->GetCommandIdAt(i) == command_id) { |
+ *found_model = model; |
+ *found_index = i; |
+ return true; |
+ } else if (model->GetTypeAt(i) == MenuModel::TYPE_SUBMENU) { |
+ models_to_search.push_back(model->GetSubmenuModelAt(i)); |
+ } |
+ } |
+ } |
+ |
+ return false; |
+} |