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)); |