• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_TEST_UTIL_H_
6 #define CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_TEST_UTIL_H_
7 
8 #include "base/basictypes.h"
9 #include "chrome/browser/extensions/context_menu_matcher.h"
10 #include "chrome/browser/renderer_context_menu/render_view_context_menu.h"
11 #include "url/gurl.h"
12 
13 class Browser;
14 
15 namespace content {
16 class WebContents;
17 }
18 namespace ui {
19 class MenuModel;
20 }
21 
22 class TestRenderViewContextMenu : public RenderViewContextMenu {
23  public:
24   TestRenderViewContextMenu(content::RenderFrameHost* render_frame_host,
25                             content::ContextMenuParams params);
26   virtual ~TestRenderViewContextMenu();
27 
28   // Factory.
29   // This is a lightweight method to create a test RenderViewContextMenu
30   // instance.
31   // Use the constructor if you want to create menu with fine-grained params.
32   static TestRenderViewContextMenu* Create(content::WebContents* web_contents,
33                                            const GURL& page_url,
34                                            const GURL& link_url,
35                                            const GURL& frame_url);
36 
37   // Implementation of pure virtuals in RenderViewContextMenu.
38   virtual void PlatformInit() OVERRIDE;
39   virtual void PlatformCancel() OVERRIDE;
40   virtual bool GetAcceleratorForCommandId(
41       int command_id,
42       ui::Accelerator* accelerator) OVERRIDE;
43 
44   // Returns true if command specified by |command_id| is present
45   // in the menu.
46   // List of command ids can be found in chrome/app/chrome_command_ids.h.
47   bool IsItemPresent(int command_id);
48 
49   // Searches for an menu item with |command_id|. If it's found, the return
50   // value is true and the model and index where it appears in that model are
51   // returned in |found_model| and |found_index|. Otherwise returns false.
52   bool GetMenuModelAndItemIndex(int command_id,
53                                 ui::MenuModel** found_model,
54                                 int* found_index);
55 
extension_items()56   extensions::ContextMenuMatcher& extension_items() { return extension_items_; }
57 
58  private:
59   DISALLOW_COPY_AND_ASSIGN(TestRenderViewContextMenu);
60 };
61 
62 #endif  // CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_TEST_UTIL_H_
63