Chromium Code Reviews| Index: content/browser/web_contents/navigation_controller_impl_unittest.cc |
| =================================================================== |
| --- content/browser/web_contents/navigation_controller_impl_unittest.cc (revision 153705) |
| +++ content/browser/web_contents/navigation_controller_impl_unittest.cc (working copy) |
| @@ -1435,7 +1435,27 @@ |
| 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); |
| + EXPECT_FALSE(details.did_replace_entry); |
|
Charlie Reis
2012/08/29 23:16:20
This is the part that seems broken to me. If this
|
| + 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 +1467,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 +1523,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) { |