Chromium Code Reviews| 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 7506a80c0a79b36e7194035894ac0cab0dc5b980..e82556f46f9991d46e8a174d09a3872f2d8f6c29 100644 |
| --- a/ios/web/navigation/navigation_manager_impl_unittest.mm |
| +++ b/ios/web/navigation/navigation_manager_impl_unittest.mm |
| @@ -8,6 +8,7 @@ |
| #import "base/mac/scoped_nsobject.h" |
| #import "ios/web/navigation/crw_session_controller+private_constructors.h" |
| #import "ios/web/navigation/navigation_manager_delegate.h" |
| +#include "ios/web/public/navigation_item.h" |
| #include "ios/web/public/test/fakes/test_browser_state.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| #include "testing/platform_test.h" |
| @@ -62,10 +63,8 @@ void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} |
| // Tests that GetPendingItemIndex() returns -1 if there is no pending entry. |
| TEST_F(NavigationManagerTest, GetPendingItemIndexWithoutPendingEntry) { |
| - [session_controller() addPendingItem:GURL("http://www.url.com") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| [session_controller() commitPendingItem]; |
| EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |
| } |
| @@ -73,30 +72,22 @@ void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} |
| // Tests that GetPendingItemIndex() returns current item index if there is a |
| // pending entry. |
| TEST_F(NavigationManagerTest, GetPendingItemIndexWithPendingEntry) { |
| - [session_controller() addPendingItem:GURL("http://www.url.com") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| [session_controller() commitPendingItem]; |
| - [session_controller() addPendingItem:GURL("http://www.url.com/0") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); |
| } |
| // Tests that GetPendingItemIndex() returns same index as was set by |
| // -[CRWSessionController setPendingItemIndex:]. |
| TEST_F(NavigationManagerTest, GetPendingItemIndexWithIndexedPendingEntry) { |
| - [session_controller() addPendingItem:GURL("http://www.url.com") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| [session_controller() commitPendingItem]; |
| - [session_controller() addPendingItem:GURL("http://www.url.com/0") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| [session_controller() commitPendingItem]; |
| EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |
| @@ -123,10 +114,8 @@ void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} |
| // Tests that going back or negative offset is possible if there is a transient |
| // item and at least one committed item. |
| TEST_F(NavigationManagerTest, CanGoBackWithTransientItemAndCommittedItem) { |
| - [session_controller() addPendingItem:GURL("http://www.url.com") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| [session_controller() commitPendingItem]; |
| [session_controller() addTransientItemWithURL:GURL("http://www.url.com/0")]; |
| @@ -137,10 +126,8 @@ void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} |
| // Tests that going back or negative offset is not possible if there is ony one |
| // committed item and no transient item. |
| TEST_F(NavigationManagerTest, CanGoBackWithSingleCommitedItem) { |
| - [session_controller() addPendingItem:GURL("http://www.url.com") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| [session_controller() commitPendingItem]; |
| EXPECT_FALSE(navigation_manager()->CanGoBack()); |
| @@ -149,20 +136,14 @@ void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} |
| // Tests going back possibility with multiple committed items. |
| TEST_F(NavigationManagerTest, CanGoBackWithMultipleCommitedItems) { |
| - [session_controller() addPendingItem:GURL("http://www.url.com") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| [session_controller() commitPendingItem]; |
| - [session_controller() addPendingItem:GURL("http://www.url.com/0") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| [session_controller() commitPendingItem]; |
| - [session_controller() addPendingItem:GURL("http://www.url.com/1") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| [session_controller() commitPendingItem]; |
| EXPECT_TRUE(navigation_manager()->CanGoBack()); |
| @@ -184,21 +165,15 @@ void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} |
| // Tests that going forward or positive offset is not possible if there is a |
| // pending entry. |
| TEST_F(NavigationManagerTest, CanGoForwardWithPendingItem) { |
| - [session_controller() addPendingItem:GURL("http://www.url.com") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| [session_controller() commitPendingItem]; |
| - [session_controller() addPendingItem:GURL("http://www.url.com/0") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| [session_controller() commitPendingItem]; |
| [session_controller() goToItemAtIndex:0]; |
| - [session_controller() addPendingItem:GURL("http://www.url.com/1") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| // Pending entry should not allow going forward. |
| EXPECT_FALSE(navigation_manager()->CanGoForward()); |
| @@ -215,10 +190,8 @@ void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} |
| // Tests that going forward or positive offset is not possible if there is ony |
| // one committed item and no transient item. |
| TEST_F(NavigationManagerTest, CanGoForwardWithSingleCommitedItem) { |
| - [session_controller() addPendingItem:GURL("http://www.url.com") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| [session_controller() commitPendingItem]; |
| EXPECT_FALSE(navigation_manager()->CanGoForward()); |
| @@ -227,20 +200,14 @@ void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} |
| // Tests going forward possibility with multiple committed items. |
| TEST_F(NavigationManagerTest, CanGoForwardWithMultipleCommitedEntries) { |
| - [session_controller() addPendingItem:GURL("http://www.url.com") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| [session_controller() commitPendingItem]; |
| - [session_controller() addPendingItem:GURL("http://www.url.com/0") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| [session_controller() commitPendingItem]; |
| - [session_controller() addPendingItem:GURL("http://www.url.com/1") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_TYPED |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| [session_controller() commitPendingItem]; |
| EXPECT_FALSE(navigation_manager()->CanGoForward()); |
| @@ -267,30 +234,22 @@ void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} |
| // navigation manager will have redirect entries to make sure they are |
| // appropriately skipped. |
| TEST_F(NavigationManagerTest, OffsetsWithoutPendingIndex) { |
| - [session_controller() addPendingItem:GURL("http://www.url.com/0") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_LINK |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK); |
| [session_controller() commitPendingItem]; |
| - [session_controller() addPendingItem:GURL("http://www.url.com/redirect") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_IS_REDIRECT_MASK |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/redirect"), Referrer(), |
| + ui::PAGE_TRANSITION_IS_REDIRECT_MASK); |
| [session_controller() commitPendingItem]; |
| - [session_controller() addPendingItem:GURL("http://www.url.com/1") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_LINK |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK); |
| [session_controller() commitPendingItem]; |
| - [session_controller() addPendingItem:GURL("http://www.url.com/2") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_LINK |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK); |
| [session_controller() commitPendingItem]; |
| - [session_controller() addPendingItem:GURL("http://www.url.com/redirect") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_IS_REDIRECT_MASK |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/redirect"), Referrer(), |
| + ui::PAGE_TRANSITION_IS_REDIRECT_MASK); |
| [session_controller() commitPendingItem]; |
| ASSERT_EQ(5, navigation_manager()->GetItemCount()); |
| ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex()); |
| @@ -494,20 +453,14 @@ void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} |
| TEST_F(NavigationManagerTest, OffsetsWithPendingTransientEntry) { |
| // Create a transient item in the middle of the navigation stack and go back |
| // to it (pending index is 1, current index is 2). |
| - [session_controller() addPendingItem:GURL("http://www.url.com/0") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_LINK |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK); |
| [session_controller() commitPendingItem]; |
| - [session_controller() addPendingItem:GURL("http://www.url.com/1") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_LINK |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK); |
| [session_controller() commitPendingItem]; |
| - [session_controller() addPendingItem:GURL("http://www.url.com/2") |
| - referrer:Referrer() |
| - transition:ui::PAGE_TRANSITION_LINK |
| - rendererInitiated:NO]; |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK); |
| [session_controller() commitPendingItem]; |
| [session_controller() addTransientItemWithURL:GURL("http://www.url.com/1")]; |
| [session_controller() setPendingItemIndex:1]; |
| @@ -529,4 +482,21 @@ void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} |
| EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); |
| } |
| +// Tests that desktop user agent can be properly enforced to use for the next |
| +// and only next pending item. |
| +TEST_F(NavigationManagerTest, OverrideDesktopUserAgent) { |
| + navigation_manager()->OverrideDesktopUserAgentForNextPendingItem(); |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| + [session_controller() commitPendingItem]; |
| + NavigationItem* visible_item = navigation_manager()->GetVisibleItem(); |
| + EXPECT_TRUE(visible_item->IsOverridingUserAgent()); |
| + |
| + navigation_manager()->AddUserInitiatedPendingItem( |
| + GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED); |
| + [session_controller() commitPendingItem]; |
| + visible_item = navigation_manager()->GetVisibleItem(); |
| + EXPECT_FALSE(visible_item->IsOverridingUserAgent()); |
|
kkhorimoto
2017/02/15 23:02:06
Does this pass? Shouldn't the second piece of log
liaoyuke
2017/02/16 22:04:29
Done.
|
| +} |
| + |
| } // namespace web |