mock_browser_plugin_manager.h revision 2385ea399aae016c0806a4f9ef3c9cfe3d2a39df
1// Copyright (c) 2012 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 CONTENT_RENDERER_BROWSER_PLUGIN_MOCK_BROWSER_PLUGIN_MANAGER_H_
6#define CONTENT_RENDERER_BROWSER_PLUGIN_MOCK_BROWSER_PLUGIN_MANAGER_H_
7
8#include "content/renderer/browser_plugin/browser_plugin_manager.h"
9
10#include "base/memory/scoped_ptr.h"
11#include "ipc/ipc_message_utils.h"
12#include "ipc/ipc_test_sink.h"
13
14namespace content {
15
16class MockBrowserPluginManager : public BrowserPluginManager {
17 public:
18  MockBrowserPluginManager(RenderViewImpl* render_view);
19
20  // BrowserPluginManager implementation.
21  virtual BrowserPlugin* CreateBrowserPlugin(
22      RenderViewImpl* render_view,
23      WebKit::WebFrame* frame,
24      const WebKit::WebPluginParams& params) OVERRIDE;
25  virtual void AllocateInstanceID(BrowserPlugin* browser_plugin) OVERRIDE;
26
27  // Provides access to the messages that have been received by this thread.
28  IPC::TestSink& sink() { return sink_; }
29
30  // RenderViewObserver override.
31  virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
32  virtual bool Send(IPC::Message* msg) OVERRIDE;
33 protected:
34  virtual ~MockBrowserPluginManager();
35  void AllocateInstanceIDACK(BrowserPlugin* browser_plugin,
36                             int guest_instance_id);
37
38  IPC::TestSink sink_;
39
40  // The last known good deserializer for sync messages.
41  scoped_ptr<IPC::MessageReplyDeserializer> reply_deserializer_;
42
43  int guest_instance_id_counter_;
44
45  DISALLOW_COPY_AND_ASSIGN(MockBrowserPluginManager);
46};
47
48}  // namespace content
49
50#endif  // CONTENT_RENDERER_BROWSER_PLUGIN_MOCK_BROWSER_PLUGIN_MANAGER_H_
51