Index: content/browser/web_contents/navigation_controller_impl_unittest.cc |
=================================================================== |
--- content/browser/web_contents/navigation_controller_impl_unittest.cc (revision 153953) |
+++ content/browser/web_contents/navigation_controller_impl_unittest.cc (working copy) |
@@ -1435,7 +1435,28 @@ |
EXPECT_TRUE(notifications.Check1AndReset( |
content::NOTIFICATION_NAV_ENTRY_COMMITTED)); |
- // First navigation. |
+ // Ensure main page navigation to same url respects the was_within_same_page |
+ // hint provided in the params. |
+ ViewHostMsg_FrameNavigate_Params self_params; |
+ self_params.page_id = 0; |
+ self_params.url = url1; |
+ self_params.transition = content::PAGE_TRANSITION_LINK; |
+ self_params.should_update_history = false; |
+ self_params.gesture = NavigationGestureUser; |
+ self_params.is_post = false; |
+ self_params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url1)); |
+ self_params.was_within_same_page = true; |
+ |
+ content::LoadCommittedDetails details; |
+ EXPECT_TRUE(controller.RendererDidNavigate(self_params, &details)); |
+ EXPECT_TRUE(notifications.Check1AndReset( |
+ content::NOTIFICATION_NAV_ENTRY_COMMITTED)); |
+ EXPECT_TRUE(details.is_in_page); |
+ // TODO(tsepez): check why |did_replace_entry| is returned as false. |
+ EXPECT_FALSE(details.did_replace_entry); |
+ EXPECT_EQ(1, controller.GetEntryCount()); |
+ |
+ // Fragment navigation to a new page_id. |
const GURL url2("http://foo#a"); |
ViewHostMsg_FrameNavigate_Params params; |
params.page_id = 1; |
@@ -1447,7 +1468,6 @@ |
params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2)); |
// This should generate a new entry. |
- content::LoadCommittedDetails details; |
EXPECT_TRUE(controller.RendererDidNavigate(params, &details)); |
EXPECT_TRUE(notifications.Check1AndReset( |
content::NOTIFICATION_NAV_ENTRY_COMMITTED)); |
@@ -1504,6 +1524,8 @@ |
EXPECT_TRUE(notifications.Check1AndReset( |
content::NOTIFICATION_NAV_ENTRY_COMMITTED)); |
EXPECT_FALSE(details.is_in_page); |
+ EXPECT_EQ(3, controller.GetEntryCount()); |
+ EXPECT_EQ(2, controller.GetCurrentEntryIndex()); |
} |
TEST_F(NavigationControllerTest, InPage_Replace) { |