OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/test/test_render_frame_host.h" | 5 #include "content/test/test_render_frame_host.h" |
6 | 6 |
7 #include "content/browser/frame_host/frame_tree.h" | 7 #include "content/browser/frame_host/frame_tree.h" |
| 8 #include "content/common/frame_messages.h" |
8 #include "content/test/test_render_view_host.h" | 9 #include "content/test/test_render_view_host.h" |
9 | 10 |
| 11 namespace { |
| 12 |
| 13 const int64 kFrameId = 13UL; |
| 14 |
| 15 } // namespace |
| 16 |
10 namespace content { | 17 namespace content { |
11 | 18 |
12 TestRenderFrameHost::TestRenderFrameHost(RenderViewHostImpl* render_view_host, | 19 TestRenderFrameHost::TestRenderFrameHost(RenderViewHostImpl* render_view_host, |
13 RenderFrameHostDelegate* delegate, | 20 RenderFrameHostDelegate* delegate, |
14 FrameTree* frame_tree, | 21 FrameTree* frame_tree, |
15 FrameTreeNode* frame_tree_node, | 22 FrameTreeNode* frame_tree_node, |
16 int routing_id, | 23 int routing_id, |
17 bool is_swapped_out) | 24 bool is_swapped_out) |
18 : RenderFrameHostImpl(render_view_host, | 25 : RenderFrameHostImpl(render_view_host, |
19 delegate, | 26 delegate, |
20 frame_tree, | 27 frame_tree, |
21 frame_tree_node, | 28 frame_tree_node, |
22 routing_id, | 29 routing_id, |
23 is_swapped_out) { | 30 is_swapped_out) { |
24 // Allow TestRenderViewHosts to easily access their main frame RFH. | 31 // Allow TestRenderViewHosts to easily access their main frame RFH. |
25 if (frame_tree_node == frame_tree->root()) { | 32 if (frame_tree_node == frame_tree->root()) { |
26 static_cast<TestRenderViewHost*>(render_view_host)-> | 33 static_cast<TestRenderViewHost*>(render_view_host)-> |
27 set_main_render_frame_host(this); | 34 set_main_render_frame_host(this); |
28 } | 35 } |
29 } | 36 } |
30 | 37 |
31 TestRenderFrameHost::~TestRenderFrameHost() {} | 38 TestRenderFrameHost::~TestRenderFrameHost() {} |
32 | 39 |
| 40 void TestRenderFrameHost::SendNavigate(int page_id, const GURL& url) { |
| 41 SendNavigateWithTransition(page_id, url, PAGE_TRANSITION_LINK); |
| 42 } |
| 43 |
| 44 void TestRenderFrameHost::SendNavigateWithTransition( |
| 45 int page_id, |
| 46 const GURL& url, |
| 47 PageTransition transition) { |
| 48 SendNavigateWithTransitionAndResponseCode(page_id, url, transition, 200); |
| 49 } |
| 50 |
| 51 void TestRenderFrameHost::SendNavigateWithTransitionAndResponseCode( |
| 52 int page_id, |
| 53 const GURL& url, PageTransition transition, |
| 54 int response_code) { |
| 55 // DidStartProvisionalLoad may delete the pending entry that holds |url|, |
| 56 // so we keep a copy of it to use in SendNavigateWithParameters. |
| 57 GURL url_copy(url); |
| 58 OnDidStartProvisionalLoadForFrame(kFrameId, -1, true, url_copy); |
| 59 SendNavigateWithParameters( |
| 60 page_id, url_copy, transition, url_copy, response_code, 0); |
| 61 } |
| 62 |
| 63 void TestRenderFrameHost::SendNavigateWithOriginalRequestURL( |
| 64 int page_id, |
| 65 const GURL& url, |
| 66 const GURL& original_request_url) { |
| 67 OnDidStartProvisionalLoadForFrame(kFrameId, -1, true, url); |
| 68 SendNavigateWithParameters( |
| 69 page_id, url, PAGE_TRANSITION_LINK, original_request_url, 200, 0); |
| 70 } |
| 71 |
| 72 void TestRenderFrameHost::SendNavigateWithParams( |
| 73 FrameHostMsg_DidCommitProvisionalLoad_Params* params) { |
| 74 params->frame_id = kFrameId; |
| 75 FrameHostMsg_DidCommitProvisionalLoad msg(1, *params); |
| 76 OnNavigate(msg); |
| 77 } |
| 78 |
| 79 void TestRenderFrameHost::SendNavigateWithParameters( |
| 80 int page_id, |
| 81 const GURL& url, |
| 82 PageTransition transition, |
| 83 const GURL& original_request_url, |
| 84 int response_code, |
| 85 const base::FilePath* file_path_for_history_item) { |
| 86 FrameHostMsg_DidCommitProvisionalLoad_Params params; |
| 87 params.page_id = page_id; |
| 88 params.frame_id = kFrameId; |
| 89 params.url = url; |
| 90 params.referrer = Referrer(); |
| 91 params.transition = transition; |
| 92 params.redirects = std::vector<GURL>(); |
| 93 params.should_update_history = true; |
| 94 params.searchable_form_url = GURL(); |
| 95 params.searchable_form_encoding = std::string(); |
| 96 params.security_info = std::string(); |
| 97 params.gesture = NavigationGestureUser; |
| 98 params.is_post = false; |
| 99 params.was_within_same_page = false; |
| 100 params.http_status_code = response_code; |
| 101 params.socket_address.set_host("2001:db8::1"); |
| 102 params.socket_address.set_port(80); |
| 103 params.original_request_url = original_request_url; |
| 104 |
| 105 params.page_state = PageState::CreateForTesting( |
| 106 url, |
| 107 false, |
| 108 file_path_for_history_item ? "data" : NULL, |
| 109 file_path_for_history_item); |
| 110 |
| 111 FrameHostMsg_DidCommitProvisionalLoad msg(1, params); |
| 112 OnNavigate(msg); |
| 113 } |
| 114 |
33 } // namespace content | 115 } // namespace content |
OLD | NEW |