Chromium Code Reviews| Index: ios/web/navigation/navigation_manager_util_unittest.mm |
| diff --git a/ios/web/navigation/navigation_manager_util_unittest.mm b/ios/web/navigation/navigation_manager_util_unittest.mm |
| index 1b26ca6b553c796848e40a0b6c55dff295b508d6..2edd60b1cada59038af0701fb78517d193d738cc 100644 |
| --- a/ios/web/navigation/navigation_manager_util_unittest.mm |
| +++ b/ios/web/navigation/navigation_manager_util_unittest.mm |
| @@ -7,6 +7,7 @@ |
| #include "base/memory/ptr_util.h" |
| #import "ios/web/navigation/crw_session_controller+private_constructors.h" |
| #import "ios/web/navigation/crw_session_controller.h" |
| +#import "ios/web/navigation/navigation_manager_delegate.h" |
| #import "ios/web/navigation/navigation_manager_impl.h" |
| #import "ios/web/public/navigation_item.h" |
| #include "ios/web/public/test/fakes/test_browser_state.h" |
| @@ -18,16 +19,31 @@ |
| namespace web { |
| +class UtilTestNavigationManagerDelegate : public NavigationManagerDelegate { |
|
Eugene But (OOO till 7-30)
2017/06/16 03:41:06
Would it make sense to move it to web/public/test/
kkhorimoto
2017/06/21 20:50:18
NavigationManagerDelegate is not a public interfac
|
| + public: |
| + void GoToIndex(int index) override {} |
| + void LoadURLWithParams(const NavigationManager::WebLoadParams&) override {} |
| + void Reload() override {} |
| + void OnNavigationItemsPruned(size_t pruned_item_count) override {} |
| + void OnNavigationItemChanged() override {} |
| + void OnNavigationItemCommitted( |
| + const LoadCommittedDetails& load_details) override {} |
| + WebState* GetWebState() override { return nullptr; } |
| +}; |
| + |
| // Test fixture testing navigation_manager_util.h functions. |
| class NavigationManagerUtilTest : public PlatformTest { |
| protected: |
| NavigationManagerUtilTest() |
| : controller_([[CRWSessionController alloc] |
| initWithBrowserState:&browser_state_]) { |
| + manager_.SetBrowserState(&browser_state_); |
| + manager_.SetDelegate(&delegate_); |
| manager_.SetSessionController(controller_); |
| } |
| NavigationManagerImpl manager_; |
| + UtilTestNavigationManagerDelegate delegate_; |
| CRWSessionController* controller_; |
| private: |
| @@ -49,12 +65,18 @@ |
| EXPECT_EQ(-1, GetCommittedItemIndexWithUniqueID(&manager_, unique_id)); |
| // Commit that pending item. |
| - [controller_ commitPendingItem]; |
| + manager_.CommitPendingItem(); |
| EXPECT_EQ(item, GetCommittedItemWithUniqueID(&manager_, unique_id)); |
| EXPECT_EQ(item, GetItemWithUniqueID(&manager_, unique_id)); |
| EXPECT_EQ(0, GetCommittedItemIndexWithUniqueID(&manager_, unique_id)); |
| - // Remove committed item. |
| + // Commit another navigation so that the current item is updated. This allows |
| + // for removing the item with |unique_id|. |
| + manager_.AddPendingItem( |
| + GURL("http://test.org"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| + web::NavigationInitiationType::USER_INITIATED, |
| + web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| + manager_.CommitPendingItem(); |
| manager_.RemoveItemAtIndex(0); |
| EXPECT_FALSE(GetCommittedItemWithUniqueID(&manager_, unique_id)); |
| EXPECT_FALSE(GetItemWithUniqueID(&manager_, unique_id)); |
| @@ -63,6 +85,7 @@ |
| // Add transient item. |
| [controller_ addTransientItemWithURL:GURL("http://chromium.org")]; |
| item = manager_.GetTransientItem(); |
| + unique_id = item->GetUniqueID(); |
| EXPECT_FALSE(GetCommittedItemWithUniqueID(&manager_, unique_id)); |
| EXPECT_EQ(item, GetItemWithUniqueID(&manager_, unique_id)); |
| EXPECT_EQ(-1, GetCommittedItemIndexWithUniqueID(&manager_, unique_id)); |