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

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

Issue 2518783002: [ios] Removed -[CRWSessionController goDelta:]. (Closed)
Patch Set: Created 4 years, 1 month 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
« no previous file with comments | « ios/web/navigation/navigation_manager_impl.mm ('k') | ios/web/web_state/ui/crw_web_controller.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/web/navigation/navigation_manager_impl_unittest.mm
diff --git a/ios/web/navigation/navigation_manager_impl_unittest.mm b/ios/web/navigation/navigation_manager_impl_unittest.mm
index 85c465aa56786b95a205e3c7197c93e7a399dce0..7d519da6c45762d9ff1936c54ea8a43227736c63 100644
--- a/ios/web/navigation/navigation_manager_impl_unittest.mm
+++ b/ios/web/navigation/navigation_manager_impl_unittest.mm
@@ -251,4 +251,119 @@ TEST_F(NavigationManagerTest, CanGoForwardWithMultipleCommitedEntries) {
EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
}
+// Tests CanGoToOffset API for positive, negative and zero delta. Tested
+// navigation manager will have redirect entries to make sure they are
+// appropriately skipped.
+TEST_F(NavigationManagerTest, OffsetsWithoutPendingIndex) {
+ [session_controller() addPendingEntry:GURL("http://www.url.com/0")
+ referrer:Referrer()
+ transition:ui::PAGE_TRANSITION_LINK
+ rendererInitiated:NO];
+ [session_controller() commitPendingEntry];
+ [session_controller() addPendingEntry:GURL("http://www.url.com/redirect")
+ referrer:Referrer()
+ transition:ui::PAGE_TRANSITION_IS_REDIRECT_MASK
+ rendererInitiated:NO];
+ [session_controller() commitPendingEntry];
+ [session_controller() addPendingEntry:GURL("http://www.url.com/1")
+ referrer:Referrer()
+ transition:ui::PAGE_TRANSITION_LINK
+ rendererInitiated:NO];
+ [session_controller() commitPendingEntry];
+ [session_controller() addPendingEntry:GURL("http://www.url.com/2")
+ referrer:Referrer()
+ transition:ui::PAGE_TRANSITION_LINK
+ rendererInitiated:NO];
+ [session_controller() commitPendingEntry];
+ [session_controller() addPendingEntry:GURL("http://www.url.com/redirect")
+ referrer:Referrer()
+ transition:ui::PAGE_TRANSITION_IS_REDIRECT_MASK
+ rendererInitiated:NO];
+ [session_controller() commitPendingEntry];
+ ASSERT_EQ(5, navigation_manager()->GetItemCount());
+ ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex());
+
+ // Go to entry at index 1 and test API from that state.
+ [session_controller() goToEntryAtIndex:1];
+ ASSERT_EQ(1, navigation_manager()->GetCurrentItemIndex());
+ ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2));
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(2));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(3));
+
+ // Go to entry at index 2 and test API from that state.
+ [session_controller() goToEntryAtIndex:2];
+ ASSERT_EQ(2, navigation_manager()->GetCurrentItemIndex());
+ ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2));
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
+
+ // Go to entry at index 4 and test API from that state.
+ [session_controller() goToEntryAtIndex:4];
+ ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex());
+ ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
+
+ // Test with existing transient entry.
+ [session_controller() addTransientEntryWithURL:GURL("http://www.url.com")];
+ ASSERT_EQ(5, navigation_manager()->GetItemCount());
+ ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex());
+ ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2));
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
+
+ // Now test with pending item index.
+ [session_controller() discardNonCommittedEntries];
+
+ // Set pending index to 1 and test API from that state.
+ [session_controller() setPendingEntryIndex:1];
+ ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex());
+ ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex());
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2));
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(2));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(3));
+
+ // Set pending index to 2 and test API from that state.
+ [session_controller() setPendingEntryIndex:2];
+ ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex());
+ ASSERT_EQ(2, navigation_manager()->GetPendingItemIndex());
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2));
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
+
+ // Set pending index to 4 and committed entry to 1 and test.
+ [session_controller() goToEntryAtIndex:1];
+ [session_controller() setPendingEntryIndex:4];
+ ASSERT_EQ(1, navigation_manager()->GetCurrentItemIndex());
+ ASSERT_EQ(4, navigation_manager()->GetPendingItemIndex());
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
+
+ // Test with existing transient entry.
+ [session_controller() addTransientEntryWithURL:GURL("http://www.url.com")];
+ ASSERT_EQ(5, navigation_manager()->GetItemCount());
+ ASSERT_EQ(1, navigation_manager()->GetCurrentItemIndex());
+ ASSERT_EQ(4, navigation_manager()->GetPendingItemIndex());
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2));
+ EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
+ EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
+}
+
} // namespace web
« no previous file with comments | « ios/web/navigation/navigation_manager_impl.mm ('k') | ios/web/web_state/ui/crw_web_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698