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 91b4491c275cf5b02ae4159625d0b1d22e265105..04c6682584a37239e518f2f27826128be1655d70 100644 |
| --- a/ios/web/navigation/navigation_manager_impl_unittest.mm |
| +++ b/ios/web/navigation/navigation_manager_impl_unittest.mm |
| @@ -9,9 +9,11 @@ |
| #import "ios/web/navigation/crw_session_controller+private_constructors.h" |
| #import "ios/web/navigation/legacy_navigation_manager_impl.h" |
| #import "ios/web/navigation/navigation_manager_delegate.h" |
| +#import "ios/web/navigation/wk_based_navigation_manager_impl.h" |
| #include "ios/web/public/navigation_item.h" |
| #include "ios/web/public/test/fakes/test_browser_state.h" |
| #include "ios/web/test/test_url_constants.h" |
| +#import "ios/web/web_state/ui/web_view_navigation_proxy.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| #include "testing/platform_test.h" |
| #include "url/scheme_host_port.h" |
| @@ -21,6 +23,15 @@ |
| #error "This file requires ARC support." |
| #endif |
| +namespace { |
| + |
| +enum NavigationManagerChoice { |
|
Eugene But (OOO till 7-30)
2017/06/29 01:48:19
Do you want to explain in the comments why we have
danyao
2017/06/29 16:05:25
Done.
|
| + TEST_LEGACY_NAVIGATION_MANAGER, |
| + TEST_WK_BASED_NAVIGATION_MANAGER, |
| +}; |
| + |
| +} // namespace |
| + |
| namespace web { |
| namespace { |
| @@ -42,34 +53,48 @@ bool UrlRewriter(GURL* url, BrowserState* browser_state) { |
| class TestNavigationManagerDelegate : public NavigationManagerDelegate { |
| public: |
| bool reload_called() { return reload_called_; } |
| + void SetSessionController(CRWSessionController* session_controller) { |
| + session_controller_ = session_controller; |
| + } |
| private: |
| // NavigationManagerDelegate overrides. |
| - void GoToIndex(int index) override {} |
| + void GoToIndex(int index) override { |
| + if (session_controller_) { |
|
Eugene But (OOO till 7-30)
2017/06/29 01:48:19
No need for this check. It's perfectly fine to cal
danyao
2017/06/29 16:05:25
Done.
|
| + [session_controller_ goToItemAtIndex:index discardNonCommittedItems:NO]; |
| + } |
| + } |
| void LoadURLWithParams(const NavigationManager::WebLoadParams&) override {} |
| void Reload() override { reload_called_ = true; } |
| void OnNavigationItemsPruned(size_t pruned_item_count) override {} |
| void OnNavigationItemChanged() override {} |
| void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} |
| WebState* GetWebState() override { return nullptr; } |
| + WebViewNavigationProxy* GetWebViewNavigationProxy() const override { |
| + return nullptr; |
| + } |
| bool reload_called_ = false; |
| + CRWSessionController* session_controller_; |
| }; |
| } // namespace |
| // Programmatic test fixture for NavigationManagerImpl testing. |
| // GetParam() chooses whether to run tests on LegacyNavigationManagerImpl or |
| -// (the soon-to-be-implemented) WKBasedNavigationManagerImpl. |
| +// WKBasedNavigationManagerImpl. |
| // TODO(crbug.com/734150): cleanup the LegacyNavigationManagerImpl use case. |
| -class NavigationManagerTest : public PlatformTest, |
| - public ::testing::WithParamInterface<bool> { |
| +class NavigationManagerTest |
| + : public PlatformTest, |
| + public ::testing::WithParamInterface<NavigationManagerChoice> { |
| protected: |
| NavigationManagerTest() { |
| - bool test_legacy_navigation_manager = GetParam(); |
| - if (test_legacy_navigation_manager) { |
| + if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { |
|
Eugene But (OOO till 7-30)
2017/06/29 01:48:19
nit: Should this be switch-case instead of if else
danyao
2017/06/29 16:05:25
There are just two cases, and we don't expect more
|
| manager_.reset(new LegacyNavigationManagerImpl); |
| + controller_ = |
| + [[CRWSessionController alloc] initWithBrowserState:&browser_state_]; |
| + delegate_.SetSessionController(session_controller()); |
| } else { |
| - DCHECK(false) << "Not implemented."; |
| + manager_.reset(new WKBasedNavigationManagerImpl); |
| } |
| // Setup rewriter. |
| BrowserURLRewriter::GetInstance()->AddURLRewriter(UrlRewriter); |
| @@ -77,8 +102,6 @@ class NavigationManagerTest : public PlatformTest, |
| manager_->SetDelegate(&delegate_); |
| manager_->SetBrowserState(&browser_state_); |
| - controller_ = |
| - [[CRWSessionController alloc] initWithBrowserState:&browser_state_]; |
| manager_->SetSessionController(controller_); |
| } |
| CRWSessionController* session_controller() { return controller_; } |
| @@ -99,7 +122,6 @@ class NavigationManagerTest : public PlatformTest, |
| TEST_P(NavigationManagerTest, EmptyManager) { |
| EXPECT_EQ(0, navigation_manager()->GetItemCount()); |
| EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex()); |
| - EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex()); |
| EXPECT_FALSE(navigation_manager()->GetPendingItem()); |
| EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |
| EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(0)); |
| @@ -112,7 +134,7 @@ TEST_P(NavigationManagerTest, GetPendingItemIndexWithoutPendingEntry) { |
| GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |
| } |
| @@ -123,7 +145,7 @@ TEST_P(NavigationManagerTest, GetPendingItemIndexWithPendingEntry) { |
| GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| @@ -138,15 +160,17 @@ TEST_P(NavigationManagerTest, GetPendingItemIndexWithIndexedPendingEntry) { |
| GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |
| - [session_controller() setPendingItemIndex:0]; |
| + if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { |
| + [session_controller() setPendingItemIndex:0]; |
| + } |
| EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); |
| } |
| @@ -160,7 +184,11 @@ TEST_P(NavigationManagerTest, CanGoBackWithoutCommitedItem) { |
| // Tests that going back or negative offset is not possible if there is a |
| // transient item, but not committed items. |
| TEST_P(NavigationManagerTest, CanGoBackWithTransientItem) { |
| - [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; |
| + navigation_manager()->AddPendingItem( |
| + GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| + web::NavigationInitiationType::USER_INITIATED, |
| + web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| + navigation_manager()->AddTransientItem(GURL("http://www.url.com")); |
| EXPECT_FALSE(navigation_manager()->CanGoBack()); |
| EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); |
| @@ -173,8 +201,8 @@ TEST_P(NavigationManagerTest, CanGoBackWithTransientItemAndCommittedItem) { |
| GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| - [session_controller() addTransientItemWithURL:GURL("http://www.url.com/0")]; |
| + navigation_manager()->CommitPendingItem(); |
| + navigation_manager()->AddTransientItem(GURL("http://www.url.com/0")); |
| EXPECT_TRUE(navigation_manager()->CanGoBack()); |
| EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |
| @@ -187,7 +215,7 @@ TEST_P(NavigationManagerTest, CanGoBackWithSingleCommitedItem) { |
| GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| EXPECT_FALSE(navigation_manager()->CanGoBack()); |
| EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); |
| @@ -199,30 +227,30 @@ TEST_P(NavigationManagerTest, CanGoBackWithMultipleCommitedItems) { |
| GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| EXPECT_TRUE(navigation_manager()->CanGoBack()); |
| EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |
| - [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| + navigation_manager()->GoToIndex(1); |
| EXPECT_TRUE(navigation_manager()->CanGoBack()); |
| EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |
| - [session_controller() goToItemAtIndex:0 discardNonCommittedItems:NO]; |
| + navigation_manager()->GoToIndex(0); |
| EXPECT_FALSE(navigation_manager()->CanGoBack()); |
| EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); |
| - [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| + navigation_manager()->GoToIndex(1); |
| EXPECT_TRUE(navigation_manager()->CanGoBack()); |
| EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |
| } |
| @@ -241,7 +269,7 @@ TEST_P(NavigationManagerTest, CanGoForwardWithSingleCommitedItem) { |
| GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| EXPECT_FALSE(navigation_manager()->CanGoForward()); |
| EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |
| @@ -253,34 +281,34 @@ TEST_P(NavigationManagerTest, CanGoForwardWithMultipleCommitedEntries) { |
| GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| EXPECT_FALSE(navigation_manager()->CanGoForward()); |
| EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |
| - [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| + navigation_manager()->GoToIndex(1); |
| EXPECT_TRUE(navigation_manager()->CanGoForward()); |
| EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); |
| - [session_controller() goToItemAtIndex:0 discardNonCommittedItems:NO]; |
| + navigation_manager()->GoToIndex(0); |
| EXPECT_TRUE(navigation_manager()->CanGoForward()); |
| EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); |
| - [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| + navigation_manager()->GoToIndex(1); |
| EXPECT_TRUE(navigation_manager()->CanGoForward()); |
| EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); |
| - [session_controller() goToItemAtIndex:2 discardNonCommittedItems:NO]; |
| + navigation_manager()->GoToIndex(2); |
| EXPECT_FALSE(navigation_manager()->CanGoForward()); |
| EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |
| } |
| @@ -293,34 +321,34 @@ TEST_P(NavigationManagerTest, OffsetsWithoutPendingIndex) { |
| GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/redirect"), Referrer(), |
| ui::PAGE_TRANSITION_CLIENT_REDIRECT, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/redirect"), Referrer(), |
| ui::PAGE_TRANSITION_CLIENT_REDIRECT, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| ASSERT_EQ(5, navigation_manager()->GetItemCount()); |
| ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); |
| // Go to entry at index 1 and test API from that state. |
| - [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| + navigation_manager()->GoToIndex(1); |
| ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); |
| ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |
| EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); |
| @@ -344,7 +372,7 @@ TEST_P(NavigationManagerTest, OffsetsWithoutPendingIndex) { |
| EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000)); |
| // Go to entry at index 2 and test API from that state. |
| - [session_controller() goToItemAtIndex:2 discardNonCommittedItems:NO]; |
| + navigation_manager()->GoToIndex(2); |
| ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); |
| ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |
| EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |
| @@ -366,7 +394,7 @@ TEST_P(NavigationManagerTest, OffsetsWithoutPendingIndex) { |
| EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); |
| // Go to entry at index 4 and test API from that state. |
| - [session_controller() goToItemAtIndex:4 discardNonCommittedItems:NO]; |
| + navigation_manager()->GoToIndex(4); |
| ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); |
| ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |
| EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |
| @@ -388,7 +416,7 @@ TEST_P(NavigationManagerTest, OffsetsWithoutPendingIndex) { |
| EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); |
| // Test with existing transient entry. |
| - [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; |
| + navigation_manager()->AddTransientItem(GURL("http://www.url.com")); |
| ASSERT_EQ(5, navigation_manager()->GetItemCount()); |
| ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); |
| ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |
| @@ -413,10 +441,12 @@ TEST_P(NavigationManagerTest, OffsetsWithoutPendingIndex) { |
| EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); |
| // Now test with pending item index. |
| - [session_controller() discardNonCommittedItems]; |
| + navigation_manager()->DiscardNonCommittedItems(); |
| // Set pending index to 1 and test API from that state. |
| - [session_controller() setPendingItemIndex:1]; |
| + if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { |
| + [session_controller() setPendingItemIndex:1]; |
| + } |
| ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); |
| ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); |
| EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); |
| @@ -440,7 +470,9 @@ TEST_P(NavigationManagerTest, OffsetsWithoutPendingIndex) { |
| EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000)); |
| // Set pending index to 2 and test API from that state. |
| - [session_controller() setPendingItemIndex:2]; |
| + if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { |
| + [session_controller() setPendingItemIndex:2]; |
| + } |
| ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); |
| ASSERT_EQ(2, navigation_manager()->GetPendingItemIndex()); |
| EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |
| @@ -462,8 +494,10 @@ TEST_P(NavigationManagerTest, OffsetsWithoutPendingIndex) { |
| EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); |
| // Set pending index to 4 and committed entry to 1 and test. |
| - [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| - [session_controller() setPendingItemIndex:4]; |
| + navigation_manager()->GoToIndex(1); |
| + if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { |
| + [session_controller() setPendingItemIndex:4]; |
| + } |
| ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); |
| ASSERT_EQ(4, navigation_manager()->GetPendingItemIndex()); |
| EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |
| @@ -485,9 +519,11 @@ TEST_P(NavigationManagerTest, OffsetsWithoutPendingIndex) { |
| EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); |
| // Test with existing transient entry in the end of the stack. |
| - [session_controller() goToItemAtIndex:4 discardNonCommittedItems:NO]; |
| - [session_controller() setPendingItemIndex:-1]; |
| - [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; |
| + navigation_manager()->GoToIndex(4); |
| + if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { |
| + [session_controller() setPendingItemIndex:-1]; |
| + } |
| + navigation_manager()->AddTransientItem(GURL("http://www.url.com")); |
| ASSERT_EQ(5, navigation_manager()->GetItemCount()); |
| ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); |
| ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |
| @@ -522,19 +558,21 @@ TEST_P(NavigationManagerTest, OffsetsWithPendingTransientEntry) { |
| GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| - [session_controller() addTransientItemWithURL:GURL("http://www.url.com/1")]; |
| - [session_controller() setPendingItemIndex:1]; |
| + navigation_manager()->CommitPendingItem(); |
| + navigation_manager()->AddTransientItem(GURL("http://www.url.com/1")); |
| + if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { |
| + [session_controller() setPendingItemIndex:1]; |
| + } |
| ASSERT_EQ(3, navigation_manager()->GetItemCount()); |
| ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); |
| @@ -544,8 +582,10 @@ TEST_P(NavigationManagerTest, OffsetsWithPendingTransientEntry) { |
| // Now go forward to that middle transient item (pending index is 1, |
| // current index is 0). |
| - [session_controller() goToItemAtIndex:0 discardNonCommittedItems:NO]; |
| - [session_controller() setPendingItemIndex:1]; |
| + navigation_manager()->GoToIndex(0); |
| + if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { |
| + [session_controller() setPendingItemIndex:1]; |
| + } |
| ASSERT_EQ(3, navigation_manager()->GetItemCount()); |
| ASSERT_EQ(0, navigation_manager()->GetLastCommittedItemIndex()); |
| ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); |
| @@ -718,7 +758,7 @@ TEST_P(NavigationManagerTest, AddPendingItemIfDiffernetURL) { |
| existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |
| EXPECT_EQ(existing_url, |
| navigation_manager()->GetLastCommittedItem()->GetURL()); |
| @@ -742,7 +782,7 @@ TEST_P(NavigationManagerTest, NotAddSameUrlPendingItemIfNotFormSubmission) { |
| existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |
| EXPECT_TRUE(ui::PageTransitionCoreTypeIs( |
| navigation_manager()->GetLastCommittedItem()->GetTransitionType(), |
| @@ -767,7 +807,7 @@ TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfFormSubmission) { |
| existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |
| EXPECT_TRUE(ui::PageTransitionCoreTypeIs( |
| navigation_manager()->GetLastCommittedItem()->GetTransitionType(), |
| @@ -797,7 +837,7 @@ TEST_P(NavigationManagerTest, |
| existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |
| EXPECT_FALSE(navigation_manager()->GetPendingItem()); |
| EXPECT_EQ(1, navigation_manager()->GetItemCount()); |
| @@ -818,7 +858,7 @@ TEST_P(NavigationManagerTest, NotAddSameUrlPendingItemIfOverrideInherit) { |
| existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |
| EXPECT_TRUE(ui::PageTransitionCoreTypeIs( |
| navigation_manager()->GetLastCommittedItem()->GetTransitionType(), |
| @@ -841,7 +881,7 @@ TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfOverrideDesktop) { |
| existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::MOBILE); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |
| EXPECT_TRUE(ui::PageTransitionCoreTypeIs( |
| navigation_manager()->GetLastCommittedItem()->GetTransitionType(), |
| @@ -870,7 +910,7 @@ TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfOverrideMobile) { |
| existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::DESKTOP); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |
| EXPECT_TRUE(ui::PageTransitionCoreTypeIs( |
| navigation_manager()->GetLastCommittedItem()->GetTransitionType(), |
| @@ -897,7 +937,7 @@ TEST_P(NavigationManagerTest, OverrideUserAgentWithDesktop) { |
| GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::MOBILE); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| NavigationItem* last_committed_item = |
| navigation_manager()->GetLastCommittedItem(); |
| EXPECT_EQ(UserAgentType::MOBILE, last_committed_item->GetUserAgentType()); |
| @@ -920,7 +960,7 @@ TEST_P(NavigationManagerTest, OverrideUserAgentWithMobile) { |
| GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| NavigationItem* last_committed_item = |
| navigation_manager()->GetLastCommittedItem(); |
| last_committed_item->SetUserAgentType(UserAgentType::DESKTOP); |
| @@ -942,7 +982,7 @@ TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterInherit) { |
| GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |
| EXPECT_EQ(web::UserAgentType::MOBILE, |
| navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); |
| @@ -951,7 +991,7 @@ TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterInherit) { |
| GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |
| EXPECT_EQ(web::UserAgentType::MOBILE, |
| navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); |
| @@ -964,7 +1004,7 @@ TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterMobile) { |
| GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::MOBILE); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |
| EXPECT_EQ(web::UserAgentType::MOBILE, |
| navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); |
| @@ -973,7 +1013,7 @@ TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterMobile) { |
| GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |
| EXPECT_EQ(web::UserAgentType::MOBILE, |
| navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); |
| @@ -986,7 +1026,7 @@ TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterDesktop) { |
| GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::DESKTOP); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |
| EXPECT_EQ(web::UserAgentType::DESKTOP, |
| navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); |
| @@ -995,7 +1035,7 @@ TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterDesktop) { |
| GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |
| EXPECT_EQ(web::UserAgentType::DESKTOP, |
| navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); |
| @@ -1014,14 +1054,14 @@ TEST_P(NavigationManagerTest, UserAgentTypePropagationPastNativeItems) { |
| GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| web::NavigationItem* item1 = navigation_manager()->GetLastCommittedItem(); |
| ASSERT_EQ(web::UserAgentType::MOBILE, item1->GetUserAgentType()); |
| navigation_manager()->AddPendingItem( |
| item1->GetURL().ReplaceComponents(native_scheme_replacement), Referrer(), |
| ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| web::NavigationItem* native_item1 = |
| navigation_manager()->GetLastCommittedItem(); |
| ASSERT_EQ(web::UserAgentType::NONE, native_item1->GetUserAgentType()); |
| @@ -1029,7 +1069,7 @@ TEST_P(NavigationManagerTest, UserAgentTypePropagationPastNativeItems) { |
| GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| web::NavigationItem* item2 = navigation_manager()->GetLastCommittedItem(); |
| // Verify that |item1|'s UserAgentType is propagated to |item2|. |
| @@ -1043,7 +1083,7 @@ TEST_P(NavigationManagerTest, UserAgentTypePropagationPastNativeItems) { |
| item2->GetURL().ReplaceComponents(native_scheme_replacement), Referrer(), |
| ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| web::NavigationItem* native_item2 = |
| navigation_manager()->GetLastCommittedItem(); |
| ASSERT_EQ(web::UserAgentType::NONE, native_item2->GetUserAgentType()); |
| @@ -1051,7 +1091,7 @@ TEST_P(NavigationManagerTest, UserAgentTypePropagationPastNativeItems) { |
| GURL("http://www.3.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| web::NavigationItem* item3 = navigation_manager()->GetLastCommittedItem(); |
| // Verify that |item2|'s UserAgentType is propagated to |item3|. |
| @@ -1155,14 +1195,14 @@ TEST_P(NavigationManagerTest, ReloadLastCommittedItemWithNormalType) { |
| GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| GURL url_before_reload = GURL("http://www.url.com/1"); |
| navigation_manager()->AddPendingItem( |
| url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->Reload(web::ReloadType::NORMAL, |
| false /* check_for_repost */); |
| @@ -1182,22 +1222,22 @@ TEST_P(NavigationManagerTest, |
| GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| GURL url_before_reload = GURL("http://www.url.com/1"); |
| navigation_manager()->AddPendingItem( |
| url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| - [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| + navigation_manager()->GoToIndex(1); |
| EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); |
| navigation_manager()->Reload(web::ReloadType::NORMAL, |
| @@ -1277,7 +1317,7 @@ TEST_P(NavigationManagerTest, ReloadLastCommittedItemWithOriginalType) { |
| GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| @@ -1287,7 +1327,7 @@ TEST_P(NavigationManagerTest, ReloadLastCommittedItemWithOriginalType) { |
| ASSERT_TRUE(navigation_manager()->GetPendingItem()); |
| navigation_manager()->GetPendingItem()->SetOriginalRequestURL( |
| expected_original_url); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, |
| false /* check_for_repost */); |
| @@ -1307,7 +1347,7 @@ TEST_P(NavigationManagerTest, |
| GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| @@ -1317,15 +1357,15 @@ TEST_P(NavigationManagerTest, |
| ASSERT_TRUE(navigation_manager()->GetPendingItem()); |
| navigation_manager()->GetPendingItem()->SetOriginalRequestURL( |
| expected_original_url); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| navigation_manager()->AddPendingItem( |
| GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| - [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| + navigation_manager()->GoToIndex(1); |
| EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); |
| navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, |
| @@ -1349,7 +1389,7 @@ TEST_P(NavigationManagerTest, RewritingAppSpecificUrls) { |
| EXPECT_EQ(url1, navigation_manager()->GetPendingItem()->GetURL()); |
| // URL should not be rewritten because last committed URL is not app-specific. |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| GURL url2(url::SchemeHostPort(kSchemeToRewrite, "test2", 0).Serialize()); |
| navigation_manager()->AddPendingItem( |
| url2, Referrer(), ui::PAGE_TRANSITION_LINK, |
| @@ -1368,7 +1408,7 @@ TEST_P(NavigationManagerTest, RewritingAppSpecificUrls) { |
| EXPECT_EQ(rewritten_url3, navigation_manager()->GetPendingItem()->GetURL()); |
| // URL should be rewritten because last committed URL is app-specific. |
| - [session_controller() commitPendingItem]; |
| + navigation_manager()->CommitPendingItem(); |
| GURL url4(url::SchemeHostPort(kSchemeToRewrite, "test4", 0).Serialize()); |
| navigation_manager()->AddPendingItem( |
| url4, Referrer(), ui::PAGE_TRANSITION_LINK, |
| @@ -1406,6 +1446,6 @@ TEST_P(NavigationManagerTest, GetIndexOfItem) { |
| INSTANTIATE_TEST_CASE_P( |
| ProgrammaticNavigationManagerTest, |
| NavigationManagerTest, |
| - ::testing::Values(true /* test_legacy_navigation_manager */)); |
| + ::testing::Values(NavigationManagerChoice::TEST_LEGACY_NAVIGATION_MANAGER)); |
| } // namespace web |