Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(370)

Side by Side Diff: content/test/mock_render_thread.cc

Issue 8230034: Split most of RenderViewTest and associated classes into content. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ready for review! Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 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 #include "content/test/mock_render_thread.h"
6
7 #include "base/process_util.h"
8 #include "content/common/view_messages.h"
9 #include "ipc/ipc_message_utils.h"
10 #include "ipc/ipc_sync_message.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 namespace content {
14
15 MockRenderThread::MockRenderThread()
16 : routing_id_(0), opener_id_(0) {
17 }
18
19 MockRenderThread::~MockRenderThread() {
20 }
21
22 // Called by the Widget. Used to send messages to the browser.
23 // We short-circuit the mechanism and handle the messages right here on this
24 // class.
25 bool MockRenderThread::Send(IPC::Message* msg) {
26 // We need to simulate a synchronous channel, thus we are going to receive
27 // through this function messages, messages with reply and reply messages.
28 // We can only handle one synchronous message at a time.
29 if (msg->is_reply()) {
30 if (reply_deserializer_.get()) {
31 reply_deserializer_->SerializeOutputParameters(*msg);
32 reply_deserializer_.reset();
33 }
34 } else {
35 if (msg->is_sync()) {
36 // We actually need to handle deleting the reply deserializer for sync
37 // messages.
38 reply_deserializer_.reset(
39 static_cast<IPC::SyncMessage*>(msg)->GetReplyDeserializer());
40 }
41 OnMessageReceived(*msg);
42 }
43 delete msg;
44 return true;
45 }
46
47 MessageLoop* MockRenderThread::GetMessageLoop() {
48 return NULL;
49 }
50
51 IPC::SyncChannel* MockRenderThread::GetChannel() {
52 return NULL;
53 }
54
55 ResourceDispatcher* MockRenderThread::GetResourceDispatcher() {
56 return NULL;
57 }
58
59 std::string MockRenderThread::GetLocale() {
60 return std::string();
61 }
62
63 void MockRenderThread::AddRoute(int32 routing_id,
64 IPC::Channel::Listener* listener) {
65 EXPECT_EQ(routing_id_, routing_id);
66 widget_ = listener;
67 }
68
69 void MockRenderThread::RemoveRoute(int32 routing_id) {
70 EXPECT_EQ(routing_id_, routing_id);
71 widget_ = NULL;
72 }
73
74 void MockRenderThread::AddFilter(IPC::ChannelProxy::MessageFilter* filter) {
75 filter->OnFilterAdded(&sink());
76 }
77
78 void MockRenderThread::RemoveFilter(IPC::ChannelProxy::MessageFilter* filter) {
79 filter->OnFilterRemoved();
80 }
81
82 void MockRenderThread::SetOutgoingMessageFilter(
83 IPC::ChannelProxy::OutgoingMessageFilter* filter) {
84 }
85
86 void MockRenderThread::AddObserver(content::RenderProcessObserver* observer) {
87 }
88
89 void MockRenderThread::RemoveObserver(
90 content::RenderProcessObserver* observer) {
91 }
92
93 void MockRenderThread::WidgetHidden() {
94 }
95
96 void MockRenderThread::WidgetRestored() {
97 }
98
99 void MockRenderThread::EnsureWebKitInitialized() {
100 }
101
102 void MockRenderThread::RecordUserMetrics(const std::string& action) {
103 }
104
105 base::SharedMemoryHandle MockRenderThread::HostAllocateSharedMemoryBuffer(
106 uint32 buffer_size) {
107 base::SharedMemory shared_buf;
108 if (!shared_buf.CreateAndMapAnonymous(buffer_size)) {
109 NOTREACHED() << "Cannot map shared memory buffer";
110 return base::SharedMemory::NULLHandle();
111 }
112 base::SharedMemoryHandle handle;
113 shared_buf.GiveToProcess(base::GetCurrentProcessHandle(), &handle);
114 return handle;
115 }
116
117 void MockRenderThread::RegisterExtension(v8::Extension* extension) {
118 }
119
120 bool MockRenderThread::IsRegisteredExtension(
121 const std::string& v8_extension_name) const {
122 return false;
123 }
124
125 void MockRenderThread::ScheduleIdleHandler(double initial_delay_s) {
126 }
127
128 void MockRenderThread::IdleHandler() {
129 }
130
131 double MockRenderThread::GetIdleNotificationDelayInS() const {
132 return 0.0;
133 }
134
135 void MockRenderThread::SetIdleNotificationDelayInS(
136 double idle_notification_delay_in_s) {
137 }
138
139 #if defined(OS_WIN)
140 void MockRenderThread::PreCacheFont(const LOGFONT& log_font) {
141 }
142
143 void MockRenderThread::ReleaseCachedFonts() {
144 }
145
146 #endif // OS_WIN
147
148 void MockRenderThread::SendCloseMessage() {
149 ViewMsg_Close msg(routing_id_);
150 widget_->OnMessageReceived(msg);
151 }
152
153 // The Widget expects to be returned valid route_id.
154 void MockRenderThread::OnMsgCreateWidget(int opener_id,
155 WebKit::WebPopupType popup_type,
156 int* route_id) {
157 opener_id_ = opener_id;
158 *route_id = routing_id_;
159 }
160
161 bool MockRenderThread::OnMessageReceived(const IPC::Message& msg) {
162 // Save the message in the sink.
163 sink_.OnMessageReceived(msg);
164
165 bool handled = true;
166 bool msg_is_ok = true;
167 IPC_BEGIN_MESSAGE_MAP_EX(MockRenderThread, msg, msg_is_ok)
168 IPC_MESSAGE_HANDLER(ViewHostMsg_CreateWidget, OnMsgCreateWidget)
169 IPC_MESSAGE_UNHANDLED(handled = false)
170 IPC_END_MESSAGE_MAP_EX()
171 return handled;
172 }
173
174 #if defined(OS_WIN)
175 void MockRenderThread::OnDuplicateSection(
176 base::SharedMemoryHandle renderer_handle,
177 base::SharedMemoryHandle* browser_handle) {
178 // We don't have to duplicate the input handles since RenderViewTest does not
179 // separate a browser process from a renderer process.
180 *browser_handle = renderer_handle;
181 }
182 #endif // defined(OS_WIN)
183
184 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698