blob: 2d32bda80ffbd59b09650858f1301772cc6ebc88 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_TEST_UTIL_H_
#define CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_TEST_UTIL_H_
#include "base/basictypes.h"
#include "chrome/browser/extensions/context_menu_matcher.h"
#include "chrome/browser/renderer_context_menu/render_view_context_menu.h"
#include "url/gurl.h"
class Browser;
namespace content {
class WebContents;
}
namespace ui {
class MenuModel;
}
class TestRenderViewContextMenu : public RenderViewContextMenu {
public:
TestRenderViewContextMenu(content::RenderFrameHost* render_frame_host,
content::ContextMenuParams params);
virtual ~TestRenderViewContextMenu();
// Factory.
// This is a lightweight method to create a test RenderViewContextMenu
// instance.
// Use the constructor if you want to create menu with fine-grained params.
static TestRenderViewContextMenu* Create(content::WebContents* web_contents,
const GURL& page_url,
const GURL& link_url,
const GURL& frame_url);
// Implementation of pure virtuals in RenderViewContextMenu.
virtual void PlatformInit() OVERRIDE;
virtual void PlatformCancel() OVERRIDE;
virtual bool GetAcceleratorForCommandId(
int command_id,
ui::Accelerator* accelerator) OVERRIDE;
// Returns true if command specified by |command_id| is present
// in the menu.
// List of command ids can be found in chrome/app/chrome_command_ids.h.
bool IsItemPresent(int command_id);
// 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.
bool GetMenuModelAndItemIndex(int command_id,
ui::MenuModel** found_model,
int* found_index);
extensions::ContextMenuMatcher& extension_items() { return extension_items_; }
private:
DISALLOW_COPY_AND_ASSIGN(TestRenderViewContextMenu);
};
#endif // CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_TEST_UTIL_H_