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 83b3b183aae50ae9fec2f0568ff5ea40e250ea0b..4b343cb2b2caa42ddc37ce8e8e3d9c1eb6dd4a75 100644 |
| --- a/ios/web/navigation/navigation_manager_util_unittest.mm |
| +++ b/ios/web/navigation/navigation_manager_util_unittest.mm |
| @@ -7,7 +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_impl.h" |
| +#import "ios/web/navigation/legacy_navigation_manager_impl.h" |
| #import "ios/web/public/navigation_item.h" |
| #include "ios/web/public/test/fakes/test_browser_state.h" |
| #include "testing/platform_test.h" |
| @@ -18,16 +18,26 @@ |
| namespace web { |
| -// Test fixture testing navigation_manager_util.h functions. |
| -class NavigationManagerUtilTest : public PlatformTest { |
| +// Parameterized fixture testing navigation_manager_util.h functions. |
| +// GetParam() chooses whether to run the tests on LegacyNavigationManagerImpl |
| +// or (the soon-to-be-added) WKBasedNavigationManagerImpl. |
| +// TODO(crbug.com/734150): cleanup LegacyNavigationManagerImpl use case. |
| +class NavigationManagerUtilTest : public PlatformTest, |
| + public ::testing::WithParamInterface<bool> { |
| protected: |
| NavigationManagerUtilTest() |
| : controller_([[CRWSessionController alloc] |
| initWithBrowserState:&browser_state_]) { |
| - manager_.SetSessionController(controller_); |
| + bool test_legacy_navigation_manager = GetParam(); |
| + if (test_legacy_navigation_manager) { |
| + manager_.reset(new LegacyNavigationManagerImpl); |
| + manager_->SetSessionController(controller_); |
| + } else { |
| + DCHECK(false) << "Not yet implemented."; |
| + } |
| } |
| - NavigationManagerImpl manager_; |
| + std::unique_ptr<NavigationManagerImpl> manager_; |
| CRWSessionController* controller_; |
| private: |
| @@ -38,36 +48,41 @@ class NavigationManagerUtilTest : public PlatformTest { |
| // GetItemWithUniqueID functions. |
| // TODO(crbug.com/733658): test was incorrectly moved to a separate target |
| // and not run and a refactoring broke it. Disable until the issue is fixed. |
| -TEST_F(NavigationManagerUtilTest, DISABLED_GetCommittedItemWithUniqueID) { |
| +TEST_P(NavigationManagerUtilTest, DISABLED_GetCommittedItemWithUniqueID) { |
| // Start with NavigationManager that only has a pending item. |
| - manager_.AddPendingItem( |
| + manager_->AddPendingItem( |
| GURL("http://chromium.org"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| web::NavigationInitiationType::USER_INITIATED, |
| web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| - NavigationItem* item = manager_.GetPendingItem(); |
| + NavigationItem* item = manager_->GetPendingItem(); |
| int unique_id = item->GetUniqueID(); |
| - EXPECT_FALSE(GetCommittedItemWithUniqueID(&manager_, unique_id)); |
| - EXPECT_EQ(item, GetItemWithUniqueID(&manager_, unique_id)); |
| - EXPECT_EQ(-1, GetCommittedItemIndexWithUniqueID(&manager_, unique_id)); |
| + EXPECT_FALSE(GetCommittedItemWithUniqueID(manager_.get(), unique_id)); |
| + EXPECT_EQ(item, GetItemWithUniqueID(manager_.get(), unique_id)); |
| + EXPECT_EQ(-1, GetCommittedItemIndexWithUniqueID(manager_.get(), unique_id)); |
| // Commit that pending item. |
| [controller_ commitPendingItem]; |
| - EXPECT_EQ(item, GetCommittedItemWithUniqueID(&manager_, unique_id)); |
| - EXPECT_EQ(item, GetItemWithUniqueID(&manager_, unique_id)); |
| - EXPECT_EQ(0, GetCommittedItemIndexWithUniqueID(&manager_, unique_id)); |
| + EXPECT_EQ(item, GetCommittedItemWithUniqueID(manager_.get(), unique_id)); |
| + EXPECT_EQ(item, GetItemWithUniqueID(manager_.get(), unique_id)); |
| + EXPECT_EQ(0, GetCommittedItemIndexWithUniqueID(manager_.get(), unique_id)); |
| // Remove committed item. |
| - manager_.RemoveItemAtIndex(0); |
| - EXPECT_FALSE(GetCommittedItemWithUniqueID(&manager_, unique_id)); |
| - EXPECT_FALSE(GetItemWithUniqueID(&manager_, unique_id)); |
| - EXPECT_EQ(-1, GetCommittedItemIndexWithUniqueID(&manager_, unique_id)); |
| + manager_->RemoveItemAtIndex(0); |
| + EXPECT_FALSE(GetCommittedItemWithUniqueID(manager_.get(), unique_id)); |
| + EXPECT_FALSE(GetItemWithUniqueID(manager_.get(), unique_id)); |
| + EXPECT_EQ(-1, GetCommittedItemIndexWithUniqueID(manager_.get(), unique_id)); |
| // Add transient item. |
| [controller_ addTransientItemWithURL:GURL("http://chromium.org")]; |
| - item = manager_.GetTransientItem(); |
| - EXPECT_FALSE(GetCommittedItemWithUniqueID(&manager_, unique_id)); |
| - EXPECT_EQ(item, GetItemWithUniqueID(&manager_, unique_id)); |
| - EXPECT_EQ(-1, GetCommittedItemIndexWithUniqueID(&manager_, unique_id)); |
| + item = manager_->GetTransientItem(); |
| + EXPECT_FALSE(GetCommittedItemWithUniqueID(manager_.get(), unique_id)); |
| + EXPECT_EQ(item, GetItemWithUniqueID(manager_.get(), unique_id)); |
| + EXPECT_EQ(-1, GetCommittedItemIndexWithUniqueID(manager_.get(), unique_id)); |
| } |
| +INSTANTIATE_TEST_CASE_P( |
| + ProgrammaticNavigationManagerUtilTest, |
| + NavigationManagerUtilTest, |
| + ::testing::Values(true /* test_legacy_navigation_manager */)); |
|
Eugene But (OOO till 7-30)
2017/06/20 22:49:03
ditto
danyao
2017/06/20 23:00:45
Please see comment in previous file.
|
| + |
| } // namespace web |