Chromium Code Reviews| 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 "base/guid.h" | 7 #include "base/guid.h" |
| 8 #include "content/browser/frame_host/frame_tree.h" | 8 #include "content/browser/frame_host/frame_tree.h" |
| 9 #include "content/browser/frame_host/navigation_handle_impl.h" | 9 #include "content/browser/frame_host/navigation_handle_impl.h" |
| 10 #include "content/browser/frame_host/navigation_request.h" | 10 #include "content/browser/frame_host/navigation_request.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 57 render_view_host, | 57 render_view_host, |
| 58 delegate, | 58 delegate, |
| 59 rwh_delegate, | 59 rwh_delegate, |
| 60 frame_tree, | 60 frame_tree, |
| 61 frame_tree_node, | 61 frame_tree_node, |
| 62 routing_id, | 62 routing_id, |
| 63 widget_routing_id, | 63 widget_routing_id, |
| 64 flags), | 64 flags), |
| 65 child_creation_observer_(delegate ? delegate->GetAsWebContents() : NULL), | 65 child_creation_observer_(delegate ? delegate->GetAsWebContents() : NULL), |
| 66 contents_mime_type_("text/html"), | 66 contents_mime_type_("text/html"), |
| 67 simulate_history_list_was_cleared_(false) {} | 67 simulate_history_list_was_cleared_(false), |
| 68 last_commit_was_error_page_(false) {} | |
| 68 | 69 |
| 69 TestRenderFrameHost::~TestRenderFrameHost() { | 70 TestRenderFrameHost::~TestRenderFrameHost() { |
| 70 } | 71 } |
| 71 | 72 |
| 72 TestRenderViewHost* TestRenderFrameHost::GetRenderViewHost() { | 73 TestRenderViewHost* TestRenderFrameHost::GetRenderViewHost() { |
| 73 return static_cast<TestRenderViewHost*>( | 74 return static_cast<TestRenderViewHost*>( |
| 74 RenderFrameHostImpl::GetRenderViewHost()); | 75 RenderFrameHostImpl::GetRenderViewHost()); |
| 75 } | 76 } |
| 76 | 77 |
| 77 MockRenderProcessHost* TestRenderFrameHost::GetProcess() { | 78 MockRenderProcessHost* TestRenderFrameHost::GetProcess() { |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 150 params.method = "GET"; | 151 params.method = "GET"; |
| 151 params.http_status_code = 200; | 152 params.http_status_code = 200; |
| 152 params.socket_address.set_host("2001:db8::1"); | 153 params.socket_address.set_host("2001:db8::1"); |
| 153 params.socket_address.set_port(80); | 154 params.socket_address.set_port(80); |
| 154 params.history_list_was_cleared = simulate_history_list_was_cleared_; | 155 params.history_list_was_cleared = simulate_history_list_was_cleared_; |
| 155 params.original_request_url = url; | 156 params.original_request_url = url; |
| 156 | 157 |
| 157 url::Replacements<char> replacements; | 158 url::Replacements<char> replacements; |
| 158 replacements.ClearRef(); | 159 replacements.ClearRef(); |
| 159 params.was_within_same_page = | 160 params.was_within_same_page = |
| 160 url.ReplaceComponents(replacements) == | 161 (GetLastCommittedURL().is_valid() && |
| 161 GetLastCommittedURL().ReplaceComponents(replacements); | 162 !last_commit_was_error_page_ && |
| 163 url.ReplaceComponents(replacements) == | |
| 164 GetLastCommittedURL().ReplaceComponents(replacements)); | |
|
Charlie Reis
2016/10/27 20:51:24
This replacements check seems wrong to me, but may
nasko
2016/10/27 21:22:34
Unit tests can definitely use some more love : ).
| |
| 162 | 165 |
| 163 params.page_state = PageState::CreateForTesting(url, false, nullptr, nullptr); | 166 params.page_state = PageState::CreateForTesting(url, false, nullptr, nullptr); |
| 164 | 167 |
| 165 SendNavigateWithParams(¶ms); | 168 SendNavigateWithParams(¶ms); |
| 166 } | 169 } |
| 167 | 170 |
| 168 void TestRenderFrameHost::SimulateNavigationError(const GURL& url, | 171 void TestRenderFrameHost::SimulateNavigationError(const GURL& url, |
| 169 int error_code) { | 172 int error_code) { |
| 170 if (IsBrowserSideNavigationEnabled()) { | 173 if (IsBrowserSideNavigationEnabled()) { |
| 171 NavigationRequest* request = frame_tree_node_->navigation_request(); | 174 NavigationRequest* request = frame_tree_node_->navigation_request(); |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 346 // check corner cases (like about:blank) should specify the origin param | 349 // check corner cases (like about:blank) should specify the origin param |
| 347 // manually. | 350 // manually. |
| 348 url::Origin origin(url_copy); | 351 url::Origin origin(url_copy); |
| 349 params.origin = origin; | 352 params.origin = origin; |
| 350 | 353 |
| 351 url::Replacements<char> replacements; | 354 url::Replacements<char> replacements; |
| 352 replacements.ClearRef(); | 355 replacements.ClearRef(); |
| 353 params.was_within_same_page = | 356 params.was_within_same_page = |
| 354 !ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_RELOAD) && | 357 !ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_RELOAD) && |
| 355 !ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_TYPED) && | 358 !ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_TYPED) && |
| 356 url_copy.ReplaceComponents(replacements) == | 359 (GetLastCommittedURL().is_valid() && |
| 357 GetLastCommittedURL().ReplaceComponents(replacements); | 360 !last_commit_was_error_page_ && |
| 361 url_copy.ReplaceComponents(replacements) == | |
| 362 GetLastCommittedURL().ReplaceComponents(replacements)); | |
| 358 | 363 |
| 359 params.page_state = | 364 params.page_state = |
| 360 PageState::CreateForTesting(url_copy, false, nullptr, nullptr); | 365 PageState::CreateForTesting(url_copy, false, nullptr, nullptr); |
| 361 | 366 |
| 362 if (!callback.is_null()) | 367 if (!callback.is_null()) |
| 363 callback.Run(¶ms); | 368 callback.Run(¶ms); |
| 364 | 369 |
| 365 SendNavigateWithParams(¶ms); | 370 SendNavigateWithParams(¶ms); |
| 366 } | 371 } |
| 367 | 372 |
| 368 void TestRenderFrameHost::SendNavigateWithParams( | 373 void TestRenderFrameHost::SendNavigateWithParams( |
| 369 FrameHostMsg_DidCommitProvisionalLoad_Params* params) { | 374 FrameHostMsg_DidCommitProvisionalLoad_Params* params) { |
| 370 FrameHostMsg_DidCommitProvisionalLoad msg(GetRoutingID(), *params); | 375 FrameHostMsg_DidCommitProvisionalLoad msg(GetRoutingID(), *params); |
| 371 OnDidCommitProvisionalLoad(msg); | 376 OnDidCommitProvisionalLoad(msg); |
| 377 last_commit_was_error_page_ = params->url_is_unreachable; | |
| 372 } | 378 } |
| 373 | 379 |
| 374 void TestRenderFrameHost::SendRendererInitiatedNavigationRequest( | 380 void TestRenderFrameHost::SendRendererInitiatedNavigationRequest( |
| 375 const GURL& url, | 381 const GURL& url, |
| 376 bool has_user_gesture) { | 382 bool has_user_gesture) { |
| 377 // Since this is renderer-initiated navigation, the RenderFrame must be | 383 // Since this is renderer-initiated navigation, the RenderFrame must be |
| 378 // initialized. Do it if it hasn't happened yet. | 384 // initialized. Do it if it hasn't happened yet. |
| 379 InitializeRenderFrameIfNeeded(); | 385 InitializeRenderFrameIfNeeded(); |
| 380 | 386 |
| 381 if (IsBrowserSideNavigationEnabled()) { | 387 if (IsBrowserSideNavigationEnabled()) { |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 465 // PlzNavigate: NavigationHandle::WillStartRequest has already been called at | 471 // PlzNavigate: NavigationHandle::WillStartRequest has already been called at |
| 466 // this point. | 472 // this point. |
| 467 if (!navigation_handle() || IsBrowserSideNavigationEnabled()) | 473 if (!navigation_handle() || IsBrowserSideNavigationEnabled()) |
| 468 return; | 474 return; |
| 469 navigation_handle()->CallWillStartRequestForTesting( | 475 navigation_handle()->CallWillStartRequestForTesting( |
| 470 false /* is_post */, Referrer(GURL(), blink::WebReferrerPolicyDefault), | 476 false /* is_post */, Referrer(GURL(), blink::WebReferrerPolicyDefault), |
| 471 true /* user_gesture */, transition, false /* is_external_protocol */); | 477 true /* user_gesture */, transition, false /* is_external_protocol */); |
| 472 } | 478 } |
| 473 | 479 |
| 474 } // namespace content | 480 } // namespace content |
| OLD | NEW |