| Index: content/browser/web_contents/navigation_controller_impl_unittest.cc
|
| diff --git a/content/browser/web_contents/navigation_controller_impl_unittest.cc b/content/browser/web_contents/navigation_controller_impl_unittest.cc
|
| index 5ea40efbae1ee57f5f2a58b2549de11426a7b989..e9c3e9ccf2e7c1703998099f543920054b917e02 100644
|
| --- a/content/browser/web_contents/navigation_controller_impl_unittest.cc
|
| +++ b/content/browser/web_contents/navigation_controller_impl_unittest.cc
|
| @@ -184,6 +184,97 @@ TEST_F(NavigationControllerTest, LoadURL) {
|
| EXPECT_EQ(contents()->GetMaxPageID(), 1);
|
| }
|
|
|
| +void CheckNavigationEntryMatchLoadParams(
|
| + NavigationController::LoadURLParams& load_params,
|
| + NavigationEntryImpl* entry) {
|
| + EXPECT_EQ(load_params.url, entry->GetURL());
|
| + EXPECT_EQ(load_params.referrer.url, entry->GetReferrer().url);
|
| + EXPECT_EQ(load_params.referrer.policy, entry->GetReferrer().policy);
|
| + EXPECT_EQ(load_params.transition_type, entry->GetTransitionType());
|
| + EXPECT_EQ(load_params.extra_headers, entry->extra_headers());
|
| +
|
| + EXPECT_EQ(load_params.is_renderer_initiated, entry->is_renderer_initiated());
|
| + EXPECT_EQ(load_params.base_url_for_data_url, entry->GetBaseURLForDataURL());
|
| + if (!load_params.virtual_url_for_data_url.is_empty()) {
|
| + EXPECT_EQ(load_params.virtual_url_for_data_url, entry->GetVirtualURL());
|
| + }
|
| + if (NavigationController::UA_OVERRIDE_INHERIT !=
|
| + load_params.override_user_agent) {
|
| + bool should_override = (NavigationController::UA_OVERRIDE_TRUE ==
|
| + load_params.override_user_agent);
|
| + EXPECT_EQ(should_override, entry->GetIsOverridingUserAgent());
|
| + }
|
| + EXPECT_EQ(load_params.browser_initiated_post_data,
|
| + entry->GetBrowserInitiatedPostData());
|
| + EXPECT_EQ(load_params.transferred_global_request_id,
|
| + entry->transferred_global_request_id());
|
| +}
|
| +
|
| +TEST_F(NavigationControllerTest, LoadURLWithParams) {
|
| + NavigationControllerImpl& controller = controller_impl();
|
| +
|
| + NavigationController::LoadURLParams load_params(GURL("http://foo"));
|
| + load_params.referrer = content::Referrer(GURL("http://referrer"),
|
| + WebKit::WebReferrerPolicyDefault);
|
| + load_params.transition_type = content::PAGE_TRANSITION_GENERATED;
|
| + load_params.extra_headers = "content-type: text/plain";
|
| + load_params.load_type = NavigationController::LOAD_TYPE_DEFAULT;
|
| + load_params.is_renderer_initiated = true;
|
| + load_params.override_user_agent = NavigationController::UA_OVERRIDE_TRUE;
|
| + load_params.transferred_global_request_id = content::GlobalRequestID(2,3);
|
| +
|
| + controller.LoadURLWithParams(load_params);
|
| + NavigationEntryImpl* entry =
|
| + NavigationEntryImpl::FromNavigationEntry(
|
| + controller.GetPendingEntry());
|
| +
|
| + CheckNavigationEntryMatchLoadParams(load_params, entry);
|
| +}
|
| +
|
| +TEST_F(NavigationControllerTest, LoadURLWithExtraParams_Data) {
|
| + NavigationControllerImpl& controller = controller_impl();
|
| +
|
| + NavigationController::LoadURLParams load_params(
|
| + GURL("data:text/html,dataurl"));
|
| + load_params.load_type = NavigationController::LOAD_TYPE_DATA;
|
| + load_params.base_url_for_data_url = GURL("http://foo");
|
| + load_params.virtual_url_for_data_url = GURL("about:blank");
|
| + load_params.override_user_agent = NavigationController::UA_OVERRIDE_FALSE;
|
| +
|
| + controller.LoadURLWithParams(load_params);
|
| + NavigationEntryImpl* entry =
|
| + NavigationEntryImpl::FromNavigationEntry(
|
| + controller.GetPendingEntry());
|
| +
|
| + CheckNavigationEntryMatchLoadParams(load_params, entry);
|
| +}
|
| +
|
| +TEST_F(NavigationControllerTest, LoadURLWithExtraParams_HttpPost) {
|
| + NavigationControllerImpl& controller = controller_impl();
|
| +
|
| + NavigationController::LoadURLParams load_params(GURL("https://posturl"));
|
| + load_params.transition_type = content::PAGE_TRANSITION_TYPED;
|
| + load_params.load_type =
|
| + NavigationController::LOAD_TYPE_BROWSER_INITIATED_HTTP_POST;
|
| + load_params.override_user_agent = NavigationController::UA_OVERRIDE_TRUE;
|
| +
|
| +
|
| + const unsigned char* raw_data =
|
| + reinterpret_cast<const unsigned char*>("d\n\0a2");
|
| + const int length = 5;
|
| + std::vector<unsigned char> post_data_vector(raw_data, raw_data+length);
|
| + scoped_refptr<base::RefCountedBytes> data =
|
| + base::RefCountedBytes::TakeVector(&post_data_vector);
|
| + load_params.browser_initiated_post_data = data.get();
|
| +
|
| + controller.LoadURLWithParams(load_params);
|
| + NavigationEntryImpl* entry =
|
| + NavigationEntryImpl::FromNavigationEntry(
|
| + controller.GetPendingEntry());
|
| +
|
| + CheckNavigationEntryMatchLoadParams(load_params, entry);
|
| +}
|
| +
|
| // Tests what happens when the same page is loaded again. Should not create a
|
| // new session history entry. This is what happens when you press enter in the
|
| // URL bar to reload: a pending entry is created and then it is discarded when
|
| @@ -512,9 +603,10 @@ TEST_F(NavigationControllerTest, LoadURL_RedirectAbortDoesntShowPendingURL) {
|
|
|
| // Now make a pending new navigation, initiated by the renderer.
|
| const GURL kNewURL("http://eh");
|
| - controller.LoadURLFromRenderer(
|
| - kNewURL, content::Referrer(), content::PAGE_TRANSITION_TYPED,
|
| - std::string());
|
| + NavigationController::LoadURLParams load_url_params(kNewURL);
|
| + load_url_params.transition_type = content::PAGE_TRANSITION_TYPED;
|
| + load_url_params.is_renderer_initiated = true;
|
| + controller.LoadURLWithParams(load_url_params);
|
| EXPECT_EQ(0U, notifications.size());
|
| EXPECT_EQ(-1, controller.GetPendingEntryIndex());
|
| EXPECT_TRUE(controller.GetPendingEntry());
|
| @@ -566,31 +658,6 @@ TEST_F(NavigationControllerTest, LoadURL_RedirectAbortDoesntShowPendingURL) {
|
| contents()->SetDelegate(NULL);
|
| }
|
|
|
| -// Test NavigationEntry is constructed correctly. No other logic tested.
|
| -TEST_F(NavigationControllerTest, PostURL) {
|
| - NavigationControllerImpl& controller = controller_impl();
|
| -
|
| - const GURL url("http://foo1");
|
| -
|
| - const int length = 5;
|
| - const unsigned char* raw_data =
|
| - reinterpret_cast<const unsigned char*>("d\n\0a2");
|
| - std::vector<unsigned char> post_data_vector(raw_data, raw_data+length);
|
| - scoped_refptr<base::RefCountedBytes> data =
|
| - base::RefCountedBytes::TakeVector(&post_data_vector);
|
| -
|
| - controller.PostURL(url, content::Referrer(), *data.get(), true);
|
| -
|
| - NavigationEntryImpl* post_entry =
|
| - NavigationEntryImpl::FromNavigationEntry(
|
| - controller.GetPendingEntry());
|
| -
|
| - EXPECT_TRUE(post_entry);
|
| - EXPECT_TRUE(post_entry->GetHasPostData());
|
| - EXPECT_EQ(data->front(),
|
| - post_entry->GetBrowserInitiatedPostData()->front());
|
| -}
|
| -
|
| TEST_F(NavigationControllerTest, Reload) {
|
| NavigationControllerImpl& controller = controller_impl();
|
| TestNotificationTracker notifications;
|
| @@ -2027,9 +2094,9 @@ TEST_F(NavigationControllerTest, DontShowRendererURLUntilCommit) {
|
|
|
| // For link clicks (renderer-initiated navigations), the active entry should
|
| // update before commit but the visible should not.
|
| - controller.LoadURLFromRenderer(url1, content::Referrer(),
|
| - content::PAGE_TRANSITION_LINK,
|
| - std::string());
|
| + NavigationController::LoadURLParams load_url_params(url1);
|
| + load_url_params.is_renderer_initiated = true;
|
| + controller.LoadURLWithParams(load_url_params);
|
| EXPECT_EQ(url1, controller.GetActiveEntry()->GetURL());
|
| EXPECT_EQ(url0, controller.GetVisibleEntry()->GetURL());
|
| EXPECT_TRUE(
|
|
|