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

Unified Diff: content/test/test_render_frame_host.cc

Issue 953503002: PlzNavigate: test updates post beforeUnload IPC refactor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move some methods around. Created 5 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 side-by-side diff with in-line comments
Download patch
Index: content/test/test_render_frame_host.cc
diff --git a/content/test/test_render_frame_host.cc b/content/test/test_render_frame_host.cc
index 9249d2609ab7ce9f6e779c4223cb2112a8edbb0e..1e03dd9398222383fc405565a935c5d8df31d097 100644
--- a/content/test/test_render_frame_host.cc
+++ b/content/test/test_render_frame_host.cc
@@ -189,65 +189,80 @@ void TestRenderFrameHost::SendNavigateWithParameters(
void TestRenderFrameHost::SendBeginNavigationWithURL(const GURL& url,
bool has_user_gesture) {
- BeginNavigationParams begin_params("GET", std::string(), net::LOAD_NORMAL,
- has_user_gesture);
- CommonNavigationParams common_params;
- common_params.url = url;
- common_params.referrer = Referrer(GURL(), blink::WebReferrerPolicyDefault);
- common_params.transition = ui::PAGE_TRANSITION_LINK;
- OnBeginNavigation(common_params, begin_params,
- scoped_refptr<ResourceRequestBody>());
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableBrowserSideNavigation)) {
+ BeginNavigationParams begin_params("GET", std::string(), net::LOAD_NORMAL,
+ has_user_gesture);
+ CommonNavigationParams common_params;
+ common_params.url = url;
+ common_params.referrer = Referrer(GURL(), blink::WebReferrerPolicyDefault);
+ common_params.transition = ui::PAGE_TRANSITION_LINK;
+ OnBeginNavigation(common_params, begin_params,
+ scoped_refptr<ResourceRequestBody>());
+ }
}
void TestRenderFrameHost::DidDisownOpener() {
OnDidDisownOpener();
}
-void TestRenderFrameHost::PrepareForCommit(const GURL& url) {
+void TestRenderFrameHost::PrepareForCommit() {
+ PrepareForCommitInternal(nullptr);
+}
+
+void TestRenderFrameHost::PrepareForCommitWithServerRedirect(
+ const GURL& redirect_url) {
+ PrepareForCommitInternal(&redirect_url);
+}
+
+void TestRenderFrameHost::SendBeforeUnloadHandlersPresent(bool present) {
+ OnBeforeUnloadHandlersPresent(present);
+}
+
+void TestRenderFrameHost::SendUnloadHandlersPresent(bool present) {
+ OnUnloadHandlersPresent(present);
+}
+
+void TestRenderFrameHost::PrepareForCommitInternal(
+ const GURL* redirect_url) {
if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnableBrowserSideNavigation)) {
+ // Non PlzNavigate
SendBeforeUnloadACK(true);
return;
}
// PlzNavigate
- // Simulate the network stack commit without any redirects.
NavigationRequest* request =
static_cast<NavigatorImpl*>(frame_tree_node_->navigator())
->GetNavigationRequestForNodeForTesting(frame_tree_node_);
+ CHECK(request);
- // We are simulating a renderer-initiated user-initiated navigation.
- if (!request) {
- SendBeginNavigationWithURL(url, true);
- request = static_cast<NavigatorImpl*>(frame_tree_node_->navigator())
- ->GetNavigationRequestForNodeForTesting(frame_tree_node_);
- }
- ASSERT_TRUE(request);
-
- // We may not have simulated the renderer response to the navigation request.
- // Do that now.
+ // Simulate a beforeUnload ACK from the renderer if it's being expected.
clamy 2015/02/25 14:29:49 nit: s/it's being expected/the browser is waiting
carlosk 2015/02/25 16:08:00 Done.
if (request->state() == NavigationRequest::WAITING_FOR_RENDERER_RESPONSE)
SendBeforeUnloadACK(true);
// We have already simulated the IO thread commit. Only the
// DidCommitProvisionalLoad from the renderer is missing.
- if (request->state() == NavigationRequest::RESPONSE_STARTED)
+ if (request->state() == NavigationRequest::RESPONSE_STARTED) {
+ CHECK(!redirect_url) << "Unable to simulate server redirect to \"" <<
clamy 2015/02/25 14:29:49 I noticed you like to add log to the CHECKs. This
carlosk 2015/02/25 16:08:00 I think this still makes it easier when running a
clamy 2015/02/25 17:10:33 I would be fine if this was a DCHECK, but it is a
carlosk 2015/02/25 19:30:21 Acknowledged.
+ redirect_url << "\"";
return;
+ }
+
+ CHECK(request->state() == NavigationRequest::STARTED);
- ASSERT_TRUE(request->state() == NavigationRequest::STARTED);
TestNavigationURLLoader* url_loader =
static_cast<TestNavigationURLLoader*>(request->loader_for_testing());
- ASSERT_TRUE(url_loader);
- scoped_refptr<ResourceResponse> response(new ResourceResponse);
- url_loader->CallOnResponseStarted(response, MakeEmptyStream());
-}
+ CHECK(url_loader);
-void TestRenderFrameHost::SendBeforeUnloadHandlersPresent(bool present) {
- OnBeforeUnloadHandlersPresent(present);
-}
+ // If a |redirect_url| was provided, simulate a server redirect
+ if (redirect_url)
+ url_loader->SimulateServerRedirect(*redirect_url);
-void TestRenderFrameHost::SendUnloadHandlersPresent(bool present) {
- OnUnloadHandlersPresent(present);
+ // Simulate the network stack commit
+ scoped_refptr<ResourceResponse> response(new ResourceResponse);
+ url_loader->CallOnResponseStarted(response, MakeEmptyStream());
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698