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

Side by Side Diff: chrome/browser/renderer_host/test/test_render_view_host.cc

Issue 6575009: Move files out of chrome\browser\renderer_host\test alongside their source. ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 10 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) 2010 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 "chrome/browser/renderer_host/test/test_render_view_host.h"
6
7 #include "chrome/browser/browser_url_handler.h"
8 #include "chrome/browser/renderer_host/site_instance.h"
9 #include "chrome/browser/renderer_host/test/test_backing_store.h"
10 #include "chrome/browser/tab_contents/navigation_controller.h"
11 #include "chrome/browser/tab_contents/test_tab_contents.h"
12 #include "chrome/common/dom_storage_common.h"
13 #include "chrome/common/render_messages.h"
14 #include "chrome/common/render_messages_params.h"
15 #include "chrome/test/testing_profile.h"
16 #include "ui/gfx/rect.h"
17 #include "webkit/glue/webpreferences.h"
18 #include "webkit/glue/password_form.h"
19
20 using webkit_glue::PasswordForm;
21
22 void InitNavigateParams(ViewHostMsg_FrameNavigate_Params* params,
23 int page_id,
24 const GURL& url,
25 PageTransition::Type transition) {
26 params->page_id = page_id;
27 params->url = url;
28 params->referrer = GURL();
29 params->transition = transition;
30 params->redirects = std::vector<GURL>();
31 params->should_update_history = false;
32 params->searchable_form_url = GURL();
33 params->searchable_form_encoding = std::string();
34 params->password_form = PasswordForm();
35 params->security_info = std::string();
36 params->gesture = NavigationGestureUser;
37 params->was_within_same_page = false;
38 params->is_post = false;
39 }
40
41 TestRenderViewHost::TestRenderViewHost(SiteInstance* instance,
42 RenderViewHostDelegate* delegate,
43 int routing_id)
44 : RenderViewHost(instance, delegate, routing_id,
45 kInvalidSessionStorageNamespaceId),
46 render_view_created_(false),
47 delete_counter_(NULL) {
48 // For normal RenderViewHosts, this is freed when |Shutdown()| is called.
49 // For TestRenderViewHost, the view is explicitly deleted in the destructor
50 // below, because TestRenderWidgetHostView::Destroy() doesn't |delete this|.
51 set_view(new TestRenderWidgetHostView(this));
52 }
53
54 TestRenderViewHost::~TestRenderViewHost() {
55 if (delete_counter_)
56 ++*delete_counter_;
57
58 // Since this isn't a traditional view, we have to delete it.
59 delete view();
60 }
61
62 bool TestRenderViewHost::CreateRenderView(const string16& frame_name) {
63 DCHECK(!render_view_created_);
64 render_view_created_ = true;
65 process()->ViewCreated();
66 return true;
67 }
68
69 bool TestRenderViewHost::IsRenderViewLive() const {
70 return render_view_created_;
71 }
72
73 bool TestRenderViewHost::TestOnMessageReceived(const IPC::Message& msg) {
74 return OnMessageReceived(msg);
75 }
76
77 void TestRenderViewHost::SendNavigate(int page_id, const GURL& url) {
78 SendNavigateWithTransition(page_id, url, PageTransition::LINK);
79 }
80
81 void TestRenderViewHost::SendNavigateWithTransition(
82 int page_id, const GURL& url, PageTransition::Type transition) {
83 ViewHostMsg_FrameNavigate_Params params;
84
85 params.page_id = page_id;
86 params.url = url;
87 params.referrer = GURL();
88 params.transition = transition;
89 params.redirects = std::vector<GURL>();
90 params.should_update_history = true;
91 params.searchable_form_url = GURL();
92 params.searchable_form_encoding = std::string();
93 params.password_form = PasswordForm();
94 params.security_info = std::string();
95 params.gesture = NavigationGestureUser;
96 params.contents_mime_type = std::string();
97 params.is_post = false;
98 params.is_content_filtered = false;
99 params.was_within_same_page = false;
100 params.http_status_code = 0;
101 params.socket_address.set_host("2001:db8::1");
102 params.socket_address.set_port(80);
103
104 ViewHostMsg_FrameNavigate msg(1, params);
105 OnMsgNavigate(msg);
106 }
107
108 TestRenderWidgetHostView::TestRenderWidgetHostView(RenderWidgetHost* rwh)
109 : rwh_(rwh),
110 is_showing_(false) {
111 }
112
113 TestRenderWidgetHostView::~TestRenderWidgetHostView() {
114 }
115
116 RenderWidgetHost* TestRenderWidgetHostView::GetRenderWidgetHost() const {
117 return NULL;
118 }
119
120 gfx::NativeView TestRenderWidgetHostView::GetNativeView() {
121 return NULL;
122 }
123
124 bool TestRenderWidgetHostView::HasFocus() {
125 return true;
126 }
127
128 void TestRenderWidgetHostView::Show() {
129 is_showing_ = true;
130 }
131
132 void TestRenderWidgetHostView::Hide() {
133 is_showing_ = false;
134 }
135
136 bool TestRenderWidgetHostView::IsShowing() {
137 return is_showing_;
138 }
139
140 void TestRenderWidgetHostView::RenderViewGone(base::TerminationStatus status,
141 int error_code) {
142 delete this;
143 }
144
145 gfx::Rect TestRenderWidgetHostView::GetViewBounds() const {
146 return gfx::Rect();
147 }
148
149 BackingStore* TestRenderWidgetHostView::AllocBackingStore(
150 const gfx::Size& size) {
151 return new TestBackingStore(rwh_, size);
152 }
153
154 #if defined(OS_MACOSX)
155
156 void TestRenderWidgetHostView::ShowPopupWithItems(
157 gfx::Rect bounds,
158 int item_height,
159 double item_font_size,
160 int selected_item,
161 const std::vector<WebMenuItem>& items,
162 bool right_aligned) {
163 }
164
165 gfx::Rect TestRenderWidgetHostView::GetViewCocoaBounds() const {
166 return gfx::Rect();
167 }
168
169 gfx::Rect TestRenderWidgetHostView::GetRootWindowRect() {
170 return gfx::Rect();
171 }
172
173 void TestRenderWidgetHostView::SetActive(bool active) {
174 // <viettrungluu@gmail.com>: Do I need to do anything here?
175 }
176
177 void TestRenderWidgetHostView::PluginFocusChanged(bool focused,
178 int plugin_id) {
179 }
180
181 void TestRenderWidgetHostView::StartPluginIme() {
182 }
183
184 bool TestRenderWidgetHostView::PostProcessEventForPluginIme(
185 const NativeWebKeyboardEvent& event) {
186 return false;
187 }
188
189 gfx::PluginWindowHandle
190 TestRenderWidgetHostView::AllocateFakePluginWindowHandle(
191 bool opaque,
192 bool root) {
193 return NULL;
194 }
195
196 void TestRenderWidgetHostView::DestroyFakePluginWindowHandle(
197 gfx::PluginWindowHandle window) {
198 }
199
200 void TestRenderWidgetHostView::AcceleratedSurfaceSetIOSurface(
201 gfx::PluginWindowHandle window,
202 int32 width,
203 int32 height,
204 uint64 surface_id) {
205 }
206
207 void TestRenderWidgetHostView::AcceleratedSurfaceSetTransportDIB(
208 gfx::PluginWindowHandle window,
209 int32 width,
210 int32 height,
211 TransportDIB::Handle transport_dib) {
212 }
213
214 void TestRenderWidgetHostView::AcceleratedSurfaceBuffersSwapped(
215 gfx::PluginWindowHandle window,
216 uint64 surface_id,
217 int renderer_id,
218 int32 route_id,
219 int gpu_host_id,
220 uint64 swap_buffers_count) {
221 }
222
223 void TestRenderWidgetHostView::GpuRenderingStateDidChange() {
224 }
225 #elif defined(OS_WIN)
226 void TestRenderWidgetHostView::WillWmDestroy() {
227 }
228
229 void TestRenderWidgetHostView::ShowCompositorHostWindow(bool show) {
230 }
231 #endif
232
233 gfx::PluginWindowHandle TestRenderWidgetHostView::AcquireCompositingSurface() {
234 return gfx::kNullPluginWindow;
235 }
236
237 bool TestRenderWidgetHostView::ContainsNativeView(
238 gfx::NativeView native_view) const {
239 return false;
240 }
241
242 TestRenderViewHostFactory::TestRenderViewHostFactory(
243 RenderProcessHostFactory* rph_factory)
244 : render_process_host_factory_(rph_factory) {
245 RenderViewHostFactory::RegisterFactory(this);
246 }
247
248 TestRenderViewHostFactory::~TestRenderViewHostFactory() {
249 RenderViewHostFactory::UnregisterFactory();
250 }
251
252 void TestRenderViewHostFactory::set_render_process_host_factory(
253 RenderProcessHostFactory* rph_factory) {
254 render_process_host_factory_ = rph_factory;
255 }
256
257 RenderViewHost* TestRenderViewHostFactory::CreateRenderViewHost(
258 SiteInstance* instance,
259 RenderViewHostDelegate* delegate,
260 int routing_id,
261 SessionStorageNamespace* session_storage) {
262 // See declaration of render_process_host_factory_ below.
263 instance->set_render_process_host_factory(render_process_host_factory_);
264 return new TestRenderViewHost(instance, delegate, routing_id);
265 }
266
267 RenderViewHostTestHarness::RenderViewHostTestHarness()
268 : rph_factory_(),
269 rvh_factory_(&rph_factory_),
270 contents_(NULL) {
271 }
272
273 RenderViewHostTestHarness::~RenderViewHostTestHarness() {
274 }
275
276 NavigationController& RenderViewHostTestHarness::controller() {
277 return contents_->controller();
278 }
279
280 TestTabContents* RenderViewHostTestHarness::contents() {
281 return contents_.get();
282 }
283
284 TestRenderViewHost* RenderViewHostTestHarness::rvh() {
285 return static_cast<TestRenderViewHost*>(contents_->render_view_host());
286 }
287
288 TestRenderViewHost* RenderViewHostTestHarness::pending_rvh() {
289 return static_cast<TestRenderViewHost*>(
290 contents_->render_manager()->pending_render_view_host());
291 }
292
293 TestRenderViewHost* RenderViewHostTestHarness::active_rvh() {
294 return pending_rvh() ? pending_rvh() : rvh();
295 }
296
297 TestingProfile* RenderViewHostTestHarness::profile() {
298 return profile_.get();
299 }
300
301 MockRenderProcessHost* RenderViewHostTestHarness::process() {
302 if (pending_rvh())
303 return static_cast<MockRenderProcessHost*>(pending_rvh()->process());
304 return static_cast<MockRenderProcessHost*>(rvh()->process());
305 }
306
307 void RenderViewHostTestHarness::DeleteContents() {
308 contents_.reset();
309 }
310
311 TestTabContents* RenderViewHostTestHarness::CreateTestTabContents() {
312 // See comment above profile_ decl for why we check for NULL here.
313 if (!profile_.get())
314 profile_.reset(new TestingProfile());
315
316 // This will be deleted when the TabContents goes away.
317 SiteInstance* instance = SiteInstance::CreateSiteInstance(profile_.get());
318
319 return new TestTabContents(profile_.get(), instance);
320 }
321
322 void RenderViewHostTestHarness::NavigateAndCommit(const GURL& url) {
323 contents()->NavigateAndCommit(url);
324 }
325
326 void RenderViewHostTestHarness::Reload() {
327 NavigationEntry* entry = controller().GetLastCommittedEntry();
328 DCHECK(entry);
329 controller().Reload(false);
330 rvh()->SendNavigate(entry->page_id(), entry->url());
331 }
332
333 void RenderViewHostTestHarness::SetUp() {
334 contents_.reset(CreateTestTabContents());
335 }
336
337 void RenderViewHostTestHarness::TearDown() {
338 contents_.reset();
339
340 // Make sure that we flush any messages related to TabContents destruction
341 // before we destroy the profile.
342 MessageLoop::current()->RunAllPending();
343
344 // Release the profile on the UI thread.
345 message_loop_.DeleteSoon(FROM_HERE, profile_.release());
346 message_loop_.RunAllPending();
347 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698