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 |