Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / content / renderer / browser_plugin / mock_browser_plugin_manager.h
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 "content/public/renderer/browser_plugin_delegate.h"
12 #include "ipc/ipc_message_utils.h"
13 #include "ipc/ipc_test_sink.h"
14
15 namespace content {
16
17 class MockBrowserPlugin;
18
19 class MockBrowserPluginManager : public BrowserPluginManager {
20  public:
21   MockBrowserPluginManager(RenderViewImpl* render_view);
22
23   // BrowserPluginManager implementation.
24   virtual BrowserPlugin* CreateBrowserPlugin(
25       RenderViewImpl* render_view,
26       blink::WebFrame* frame,
27       scoped_ptr<BrowserPluginDelegate> delegate) OVERRIDE;
28
29   // Provides access to the messages that have been received by this thread.
30   IPC::TestSink& sink() { return sink_; }
31
32   // RenderViewObserver override.
33   virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
34   virtual bool Send(IPC::Message* msg) OVERRIDE;
35
36   // Returns the latest browser plugin that was created by this manager.
37   MockBrowserPlugin* last_plugin() { return last_plugin_; }
38
39  protected:
40   virtual ~MockBrowserPluginManager();
41
42   IPC::TestSink sink_;
43
44   // The last known good deserializer for sync messages.
45   scoped_ptr<IPC::MessageReplyDeserializer> reply_deserializer_;
46
47   MockBrowserPlugin* last_plugin_;
48
49   DISALLOW_COPY_AND_ASSIGN(MockBrowserPluginManager);
50 };
51
52 }  // namespace content
53
54 #endif  // CONTENT_RENDERER_BROWSER_PLUGIN_MOCK_BROWSER_PLUGIN_MANAGER_H_