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

Unified Diff: ios/web/navigation/crw_session_controller_unittest.mm

Issue 2821173002: Handle correctly start and commit of non-latest navigations. (Closed)
Patch Set: Use web::GetDisplayTitleForUrl Created 3 years, 8 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: ios/web/navigation/crw_session_controller_unittest.mm
diff --git a/ios/web/navigation/crw_session_controller_unittest.mm b/ios/web/navigation/crw_session_controller_unittest.mm
index 6e7eb9880adf28ff6953ad3649cc89b0bd1724e5..b23a26b5f028a90b09e4f5c02ba2d44d5adf758d 100644
--- a/ios/web/navigation/crw_session_controller_unittest.mm
+++ b/ios/web/navigation/crw_session_controller_unittest.mm
@@ -372,7 +372,7 @@ TEST_F(CRWSessionControllerTest, commitPendingItemWithExistingForwardItems) {
[session_controller_ commitPendingItem];
// Go back to the first item.
- [session_controller_ goToItemAtIndex:0];
+ [session_controller_ goToItemAtIndex:0 discardNonCommittedItems:NO];
// Create and commit a new pending item.
[session_controller_
@@ -416,7 +416,7 @@ TEST_F(CRWSessionControllerTest, commitPendingItemIndex) {
ASSERT_EQ(3U, [session_controller_ items].size());
// Go to the middle, and commit first pending item index.
- [session_controller_ goToItemAtIndex:1];
+ [session_controller_ goToItemAtIndex:1 discardNonCommittedItems:NO];
[session_controller_ setPendingItemIndex:0];
ASSERT_EQ(0, [session_controller_ pendingItemIndex]);
web::NavigationItem* pending_item = [session_controller_ pendingItem];
@@ -824,16 +824,16 @@ TEST_F(CRWSessionControllerTest, PreviousNavigationItem) {
EXPECT_EQ(session_controller_.get().previousItemIndex, 1);
- [session_controller_ goToItemAtIndex:1];
+ [session_controller_ goToItemAtIndex:1 discardNonCommittedItems:NO];
EXPECT_EQ(session_controller_.get().previousItemIndex, 2);
- [session_controller_ goToItemAtIndex:0];
+ [session_controller_ goToItemAtIndex:0 discardNonCommittedItems:NO];
EXPECT_EQ(session_controller_.get().previousItemIndex, 1);
- [session_controller_ goToItemAtIndex:1];
+ [session_controller_ goToItemAtIndex:1 discardNonCommittedItems:NO];
EXPECT_EQ(session_controller_.get().previousItemIndex, 0);
- [session_controller_ goToItemAtIndex:2];
+ [session_controller_ goToItemAtIndex:2 discardNonCommittedItems:NO];
EXPECT_EQ(session_controller_.get().previousItemIndex, 1);
}
@@ -999,11 +999,11 @@ TEST_F(CRWSessionControllerTest, TestBackwardForwardItems) {
EXPECT_TRUE([session_controller_ forwardItems].empty());
EXPECT_EQ("http://www.example.com/redirect", backItems[0]->GetURL().spec());
- [session_controller_ goToItemAtIndex:1];
+ [session_controller_ goToItemAtIndex:1 discardNonCommittedItems:NO];
EXPECT_EQ(1U, [session_controller_ backwardItems].size());
EXPECT_EQ(1U, [session_controller_ forwardItems].size());
- [session_controller_ goToItemAtIndex:0];
+ [session_controller_ goToItemAtIndex:0 discardNonCommittedItems:NO];
web::NavigationItemList forwardItems = [session_controller_ forwardItems];
EXPECT_EQ(0U, [session_controller_ backwardItems].size());
EXPECT_EQ(2U, forwardItems.size());
@@ -1052,8 +1052,20 @@ TEST_F(CRWSessionControllerTest, GoToItemAtIndex) {
EXPECT_TRUE([session_controller_ pendingItem]);
EXPECT_TRUE([session_controller_ transientItem]);
+ // Going back and forth without discaring transient and pending items.
+ [session_controller_ goToItemAtIndex:1 discardNonCommittedItems:NO];
+ EXPECT_EQ(1, session_controller_.get().lastCommittedItemIndex);
+ EXPECT_EQ(3, session_controller_.get().previousItemIndex);
+ EXPECT_TRUE(session_controller_.get().pendingItem);
+ EXPECT_TRUE(session_controller_.get().transientItem);
+ [session_controller_ goToItemAtIndex:3 discardNonCommittedItems:NO];
+ EXPECT_EQ(3, session_controller_.get().lastCommittedItemIndex);
+ EXPECT_EQ(1, session_controller_.get().previousItemIndex);
+ EXPECT_TRUE(session_controller_.get().pendingItem);
+ EXPECT_TRUE(session_controller_.get().transientItem);
+
// Going back should discard transient and pending items.
- [session_controller_ goToItemAtIndex:1];
+ [session_controller_ goToItemAtIndex:1 discardNonCommittedItems:YES];
EXPECT_EQ(1, session_controller_.get().lastCommittedItemIndex);
EXPECT_EQ(3, session_controller_.get().previousItemIndex);
EXPECT_FALSE(session_controller_.get().pendingItem);
@@ -1062,21 +1074,22 @@ TEST_F(CRWSessionControllerTest, GoToItemAtIndex) {
// Going forward should discard transient item.
[session_controller_ addTransientItemWithURL:GURL("http://www.example.com")];
EXPECT_TRUE(session_controller_.get().transientItem);
- [session_controller_ goToItemAtIndex:2];
+ [session_controller_ goToItemAtIndex:2 discardNonCommittedItems:YES];
EXPECT_EQ(2, session_controller_.get().lastCommittedItemIndex);
EXPECT_EQ(1, session_controller_.get().previousItemIndex);
EXPECT_FALSE(session_controller_.get().transientItem);
// Out of bounds navigations should be no-op.
- [session_controller_ goToItemAtIndex:-1];
+ [session_controller_ goToItemAtIndex:-1 discardNonCommittedItems:NO];
EXPECT_EQ(2, session_controller_.get().lastCommittedItemIndex);
EXPECT_EQ(1, session_controller_.get().previousItemIndex);
- [session_controller_ goToItemAtIndex:NSIntegerMax];
+ [session_controller_ goToItemAtIndex:NSIntegerMax
+ discardNonCommittedItems:NO];
EXPECT_EQ(2, session_controller_.get().lastCommittedItemIndex);
EXPECT_EQ(1, session_controller_.get().previousItemIndex);
// Going to current index should not change the previous index.
- [session_controller_ goToItemAtIndex:2];
+ [session_controller_ goToItemAtIndex:2 discardNonCommittedItems:NO];
EXPECT_EQ(2, session_controller_.get().lastCommittedItemIndex);
EXPECT_EQ(1, session_controller_.get().previousItemIndex);
}
« no previous file with comments | « ios/web/navigation/crw_session_controller.mm ('k') | ios/web/navigation/navigation_manager_impl_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698