| 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..420beea84ab5559fe84a6a7da9b5d0718590d983 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,9 @@ 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()->AddPendingItem(
|
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
| EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex());
|
| }
|
| @@ -73,30 +73,26 @@ 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()->AddPendingItem(
|
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
| - [session_controller() addPendingItem:GURL("http://www.url.com/0")
|
| - referrer:Referrer()
|
| - transition:ui::PAGE_TRANSITION_TYPED
|
| - rendererInitiated:NO];
|
| + navigation_manager()->AddPendingItem(
|
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| 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()->AddPendingItem(
|
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
| - [session_controller() addPendingItem:GURL("http://www.url.com/0")
|
| - referrer:Referrer()
|
| - transition:ui::PAGE_TRANSITION_TYPED
|
| - rendererInitiated:NO];
|
| + navigation_manager()->AddPendingItem(
|
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
|
|
| EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex());
|
| @@ -123,10 +119,9 @@ 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()->AddPendingItem(
|
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
| [session_controller() addTransientItemWithURL:GURL("http://www.url.com/0")];
|
|
|
| @@ -137,10 +132,9 @@ 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()->AddPendingItem(
|
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
|
|
| EXPECT_FALSE(navigation_manager()->CanGoBack());
|
| @@ -149,20 +143,17 @@ 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()->AddPendingItem(
|
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
| - [session_controller() addPendingItem:GURL("http://www.url.com/0")
|
| - referrer:Referrer()
|
| - transition:ui::PAGE_TRANSITION_TYPED
|
| - rendererInitiated:NO];
|
| + navigation_manager()->AddPendingItem(
|
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
| - [session_controller() addPendingItem:GURL("http://www.url.com/1")
|
| - referrer:Referrer()
|
| - transition:ui::PAGE_TRANSITION_TYPED
|
| - rendererInitiated:NO];
|
| + navigation_manager()->AddPendingItem(
|
| + GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
|
|
| EXPECT_TRUE(navigation_manager()->CanGoBack());
|
| @@ -184,21 +175,18 @@ 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()->AddPendingItem(
|
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
| - [session_controller() addPendingItem:GURL("http://www.url.com/0")
|
| - referrer:Referrer()
|
| - transition:ui::PAGE_TRANSITION_TYPED
|
| - rendererInitiated:NO];
|
| + navigation_manager()->AddPendingItem(
|
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [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()->AddPendingItem(
|
| + GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
|
|
| // Pending entry should not allow going forward.
|
| EXPECT_FALSE(navigation_manager()->CanGoForward());
|
| @@ -215,10 +203,9 @@ 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()->AddPendingItem(
|
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
|
|
| EXPECT_FALSE(navigation_manager()->CanGoForward());
|
| @@ -227,20 +214,17 @@ 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()->AddPendingItem(
|
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
| - [session_controller() addPendingItem:GURL("http://www.url.com/0")
|
| - referrer:Referrer()
|
| - transition:ui::PAGE_TRANSITION_TYPED
|
| - rendererInitiated:NO];
|
| + navigation_manager()->AddPendingItem(
|
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
| - [session_controller() addPendingItem:GURL("http://www.url.com/1")
|
| - referrer:Referrer()
|
| - transition:ui::PAGE_TRANSITION_TYPED
|
| - rendererInitiated:NO];
|
| + navigation_manager()->AddPendingItem(
|
| + GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
|
|
| EXPECT_FALSE(navigation_manager()->CanGoForward());
|
| @@ -267,30 +251,27 @@ 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()->AddPendingItem(
|
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [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()->AddPendingItem(
|
| + GURL("http://www.url.com/redirect"), Referrer(),
|
| + ui::PAGE_TRANSITION_IS_REDIRECT_MASK,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
| - [session_controller() addPendingItem:GURL("http://www.url.com/1")
|
| - referrer:Referrer()
|
| - transition:ui::PAGE_TRANSITION_LINK
|
| - rendererInitiated:NO];
|
| + navigation_manager()->AddPendingItem(
|
| + GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
| - [session_controller() addPendingItem:GURL("http://www.url.com/2")
|
| - referrer:Referrer()
|
| - transition:ui::PAGE_TRANSITION_LINK
|
| - rendererInitiated:NO];
|
| + navigation_manager()->AddPendingItem(
|
| + GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [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()->AddPendingItem(
|
| + GURL("http://www.url.com/redirect"), Referrer(),
|
| + ui::PAGE_TRANSITION_IS_REDIRECT_MASK,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
| ASSERT_EQ(5, navigation_manager()->GetItemCount());
|
| ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex());
|
| @@ -494,20 +475,17 @@ 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()->AddPendingItem(
|
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
| - [session_controller() addPendingItem:GURL("http://www.url.com/1")
|
| - referrer:Referrer()
|
| - transition:ui::PAGE_TRANSITION_LINK
|
| - rendererInitiated:NO];
|
| + navigation_manager()->AddPendingItem(
|
| + GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
| - [session_controller() addPendingItem:GURL("http://www.url.com/2")
|
| - referrer:Referrer()
|
| - transition:ui::PAGE_TRANSITION_LINK
|
| - rendererInitiated:NO];
|
| + navigation_manager()->AddPendingItem(
|
| + GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| [session_controller() commitPendingItem];
|
| [session_controller() addTransientItemWithURL:GURL("http://www.url.com/1")];
|
| [session_controller() setPendingItemIndex:1];
|
| @@ -529,4 +507,15 @@ void OnNavigationItemCommitted(const LoadCommittedDetails&) override {}
|
| EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1));
|
| }
|
|
|
| +// Tests that desktop user agent can be enforced to use for next pending item.
|
| +TEST_F(NavigationManagerTest, OverrideDesktopUserAgent) {
|
| + navigation_manager()->OverrideDesktopUserAgentForNextPendingItem();
|
| + navigation_manager()->AddPendingItem(
|
| + GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
|
| + web::NavigationInitiationType::USER_INITIATED);
|
| + [session_controller() commitPendingItem];
|
| + NavigationItem* visible_item = navigation_manager()->GetVisibleItem();
|
| + EXPECT_TRUE(visible_item->IsOverridingUserAgent());
|
| +}
|
| +
|
| } // namespace web
|
|
|