Chromium Code Reviews| OLD | NEW | 
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #import "ios/web/navigation/navigation_manager_impl.h" | 5 #import "ios/web/navigation/navigation_manager_impl.h" | 
| 6 | 6 | 
| 7 #include "base/logging.h" | 7 #include "base/logging.h" | 
| 8 #include "base/mac/bind_objc_block.h" | 8 #include "base/mac/bind_objc_block.h" | 
| 9 #import "ios/web/navigation/crw_session_controller+private_constructors.h" | 9 #import "ios/web/navigation/crw_session_controller+private_constructors.h" | 
| 10 #import "ios/web/navigation/legacy_navigation_manager_impl.h" | 10 #import "ios/web/navigation/legacy_navigation_manager_impl.h" | 
| 11 #import "ios/web/navigation/navigation_manager_delegate.h" | 11 #import "ios/web/navigation/navigation_manager_delegate.h" | 
| 12 #import "ios/web/navigation/wk_based_navigation_manager_impl.h" | |
| 12 #include "ios/web/public/navigation_item.h" | 13 #include "ios/web/public/navigation_item.h" | 
| 13 #include "ios/web/public/test/fakes/test_browser_state.h" | 14 #include "ios/web/public/test/fakes/test_browser_state.h" | 
| 14 #include "ios/web/test/test_url_constants.h" | 15 #include "ios/web/test/test_url_constants.h" | 
| 16 #import "ios/web/web_state/ui/web_view_navigation_proxy.h" | |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" | 
| 16 #include "testing/platform_test.h" | 18 #include "testing/platform_test.h" | 
| 17 #include "url/scheme_host_port.h" | 19 #include "url/scheme_host_port.h" | 
| 18 #include "url/url_util.h" | 20 #include "url/url_util.h" | 
| 19 | 21 | 
| 20 #if !defined(__has_feature) || !__has_feature(objc_arc) | 22 #if !defined(__has_feature) || !__has_feature(objc_arc) | 
| 21 #error "This file requires ARC support." | 23 #error "This file requires ARC support." | 
| 22 #endif | 24 #endif | 
| 23 | 25 | 
| 26 namespace { | |
| 27 | |
| 28 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.
 
 | |
| 29 TEST_LEGACY_NAVIGATION_MANAGER, | |
| 30 TEST_WK_BASED_NAVIGATION_MANAGER, | |
| 31 }; | |
| 32 | |
| 33 } // namespace | |
| 34 | |
| 24 namespace web { | 35 namespace web { | 
| 25 namespace { | 36 namespace { | 
| 26 | 37 | 
| 27 // URL scheme that will be rewritten by UrlRewriter installed in | 38 // URL scheme that will be rewritten by UrlRewriter installed in | 
| 28 // NavigationManagerTest fixture. Scheme will be changed to kTestWebUIScheme. | 39 // NavigationManagerTest fixture. Scheme will be changed to kTestWebUIScheme. | 
| 29 const char kSchemeToRewrite[] = "navigationmanagerschemetorewrite"; | 40 const char kSchemeToRewrite[] = "navigationmanagerschemetorewrite"; | 
| 30 | 41 | 
| 31 // Replaces |kSchemeToRewrite| scheme with |kTestWebUIScheme|. | 42 // Replaces |kSchemeToRewrite| scheme with |kTestWebUIScheme|. | 
| 32 bool UrlRewriter(GURL* url, BrowserState* browser_state) { | 43 bool UrlRewriter(GURL* url, BrowserState* browser_state) { | 
| 33 if (url->scheme() == kSchemeToRewrite) { | 44 if (url->scheme() == kSchemeToRewrite) { | 
| 34 GURL::Replacements scheme_replacements; | 45 GURL::Replacements scheme_replacements; | 
| 35 scheme_replacements.SetSchemeStr(kTestWebUIScheme); | 46 scheme_replacements.SetSchemeStr(kTestWebUIScheme); | 
| 36 *url = url->ReplaceComponents(scheme_replacements); | 47 *url = url->ReplaceComponents(scheme_replacements); | 
| 37 } | 48 } | 
| 38 return false; | 49 return false; | 
| 39 } | 50 } | 
| 40 | 51 | 
| 41 // Stub class for NavigationManagerDelegate. | 52 // Stub class for NavigationManagerDelegate. | 
| 42 class TestNavigationManagerDelegate : public NavigationManagerDelegate { | 53 class TestNavigationManagerDelegate : public NavigationManagerDelegate { | 
| 43 public: | 54 public: | 
| 44 bool reload_called() { return reload_called_; } | 55 bool reload_called() { return reload_called_; } | 
| 56 void SetSessionController(CRWSessionController* session_controller) { | |
| 57 session_controller_ = session_controller; | |
| 58 } | |
| 45 | 59 | 
| 46 private: | 60 private: | 
| 47 // NavigationManagerDelegate overrides. | 61 // NavigationManagerDelegate overrides. | 
| 48 void GoToIndex(int index) override {} | 62 void GoToIndex(int index) override { | 
| 63 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.
 
 | |
| 64 [session_controller_ goToItemAtIndex:index discardNonCommittedItems:NO]; | |
| 65 } | |
| 66 } | |
| 49 void LoadURLWithParams(const NavigationManager::WebLoadParams&) override {} | 67 void LoadURLWithParams(const NavigationManager::WebLoadParams&) override {} | 
| 50 void Reload() override { reload_called_ = true; } | 68 void Reload() override { reload_called_ = true; } | 
| 51 void OnNavigationItemsPruned(size_t pruned_item_count) override {} | 69 void OnNavigationItemsPruned(size_t pruned_item_count) override {} | 
| 52 void OnNavigationItemChanged() override {} | 70 void OnNavigationItemChanged() override {} | 
| 53 void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} | 71 void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} | 
| 54 WebState* GetWebState() override { return nullptr; } | 72 WebState* GetWebState() override { return nullptr; } | 
| 73 WebViewNavigationProxy* GetWebViewNavigationProxy() const override { | |
| 74 return nullptr; | |
| 75 } | |
| 55 | 76 | 
| 56 bool reload_called_ = false; | 77 bool reload_called_ = false; | 
| 78 CRWSessionController* session_controller_; | |
| 57 }; | 79 }; | 
| 58 } // namespace | 80 } // namespace | 
| 59 | 81 | 
| 60 // Programmatic test fixture for NavigationManagerImpl testing. | 82 // Programmatic test fixture for NavigationManagerImpl testing. | 
| 61 // GetParam() chooses whether to run tests on LegacyNavigationManagerImpl or | 83 // GetParam() chooses whether to run tests on LegacyNavigationManagerImpl or | 
| 62 // (the soon-to-be-implemented) WKBasedNavigationManagerImpl. | 84 // WKBasedNavigationManagerImpl. | 
| 63 // TODO(crbug.com/734150): cleanup the LegacyNavigationManagerImpl use case. | 85 // TODO(crbug.com/734150): cleanup the LegacyNavigationManagerImpl use case. | 
| 64 class NavigationManagerTest : public PlatformTest, | 86 class NavigationManagerTest | 
| 65 public ::testing::WithParamInterface<bool> { | 87 : public PlatformTest, | 
| 88 public ::testing::WithParamInterface<NavigationManagerChoice> { | |
| 66 protected: | 89 protected: | 
| 67 NavigationManagerTest() { | 90 NavigationManagerTest() { | 
| 68 bool test_legacy_navigation_manager = GetParam(); | 91 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
 
 | |
| 69 if (test_legacy_navigation_manager) { | |
| 70 manager_.reset(new LegacyNavigationManagerImpl); | 92 manager_.reset(new LegacyNavigationManagerImpl); | 
| 93 controller_ = | |
| 94 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]; | |
| 95 delegate_.SetSessionController(session_controller()); | |
| 71 } else { | 96 } else { | 
| 72 DCHECK(false) << "Not implemented."; | 97 manager_.reset(new WKBasedNavigationManagerImpl); | 
| 73 } | 98 } | 
| 74 // Setup rewriter. | 99 // Setup rewriter. | 
| 75 BrowserURLRewriter::GetInstance()->AddURLRewriter(UrlRewriter); | 100 BrowserURLRewriter::GetInstance()->AddURLRewriter(UrlRewriter); | 
| 76 url::AddStandardScheme(kSchemeToRewrite, url::SCHEME_WITHOUT_PORT); | 101 url::AddStandardScheme(kSchemeToRewrite, url::SCHEME_WITHOUT_PORT); | 
| 77 | 102 | 
| 78 manager_->SetDelegate(&delegate_); | 103 manager_->SetDelegate(&delegate_); | 
| 79 manager_->SetBrowserState(&browser_state_); | 104 manager_->SetBrowserState(&browser_state_); | 
| 80 controller_ = | |
| 81 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]; | |
| 82 manager_->SetSessionController(controller_); | 105 manager_->SetSessionController(controller_); | 
| 83 } | 106 } | 
| 84 CRWSessionController* session_controller() { return controller_; } | 107 CRWSessionController* session_controller() { return controller_; } | 
| 85 NavigationManagerImpl* navigation_manager() { return manager_.get(); } | 108 NavigationManagerImpl* navigation_manager() { return manager_.get(); } | 
| 86 | 109 | 
| 87 TestNavigationManagerDelegate navigation_manager_delegate() { | 110 TestNavigationManagerDelegate navigation_manager_delegate() { | 
| 88 return delegate_; | 111 return delegate_; | 
| 89 } | 112 } | 
| 90 | 113 | 
| 91 private: | 114 private: | 
| 92 TestBrowserState browser_state_; | 115 TestBrowserState browser_state_; | 
| 93 TestNavigationManagerDelegate delegate_; | 116 TestNavigationManagerDelegate delegate_; | 
| 94 std::unique_ptr<NavigationManagerImpl> manager_; | 117 std::unique_ptr<NavigationManagerImpl> manager_; | 
| 95 CRWSessionController* controller_; | 118 CRWSessionController* controller_; | 
| 96 }; | 119 }; | 
| 97 | 120 | 
| 98 // Tests state of an empty navigation manager. | 121 // Tests state of an empty navigation manager. | 
| 99 TEST_P(NavigationManagerTest, EmptyManager) { | 122 TEST_P(NavigationManagerTest, EmptyManager) { | 
| 100 EXPECT_EQ(0, navigation_manager()->GetItemCount()); | 123 EXPECT_EQ(0, navigation_manager()->GetItemCount()); | 
| 101 EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex()); | 124 EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex()); | 
| 102 EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex()); | |
| 103 EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 125 EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 
| 104 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 126 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
| 105 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(0)); | 127 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(0)); | 
| 106 EXPECT_EQ(-1, navigation_manager()->GetPreviousItemIndex()); | 128 EXPECT_EQ(-1, navigation_manager()->GetPreviousItemIndex()); | 
| 107 } | 129 } | 
| 108 | 130 | 
| 109 // Tests that GetPendingItemIndex() returns -1 if there is no pending entry. | 131 // Tests that GetPendingItemIndex() returns -1 if there is no pending entry. | 
| 110 TEST_P(NavigationManagerTest, GetPendingItemIndexWithoutPendingEntry) { | 132 TEST_P(NavigationManagerTest, GetPendingItemIndexWithoutPendingEntry) { | 
| 111 navigation_manager()->AddPendingItem( | 133 navigation_manager()->AddPendingItem( | 
| 112 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 134 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 113 web::NavigationInitiationType::USER_INITIATED, | 135 web::NavigationInitiationType::USER_INITIATED, | 
| 114 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 136 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 115 [session_controller() commitPendingItem]; | 137 navigation_manager()->CommitPendingItem(); | 
| 116 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 138 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
| 117 } | 139 } | 
| 118 | 140 | 
| 119 // Tests that GetPendingItemIndex() returns current item index if there is a | 141 // Tests that GetPendingItemIndex() returns current item index if there is a | 
| 120 // pending entry. | 142 // pending entry. | 
| 121 TEST_P(NavigationManagerTest, GetPendingItemIndexWithPendingEntry) { | 143 TEST_P(NavigationManagerTest, GetPendingItemIndexWithPendingEntry) { | 
| 122 navigation_manager()->AddPendingItem( | 144 navigation_manager()->AddPendingItem( | 
| 123 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 145 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 124 web::NavigationInitiationType::USER_INITIATED, | 146 web::NavigationInitiationType::USER_INITIATED, | 
| 125 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 147 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 126 [session_controller() commitPendingItem]; | 148 navigation_manager()->CommitPendingItem(); | 
| 127 navigation_manager()->AddPendingItem( | 149 navigation_manager()->AddPendingItem( | 
| 128 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 150 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 129 web::NavigationInitiationType::USER_INITIATED, | 151 web::NavigationInitiationType::USER_INITIATED, | 
| 130 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 152 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 131 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); | 153 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); | 
| 132 } | 154 } | 
| 133 | 155 | 
| 134 // Tests that GetPendingItemIndex() returns same index as was set by | 156 // Tests that GetPendingItemIndex() returns same index as was set by | 
| 135 // -[CRWSessionController setPendingItemIndex:]. | 157 // -[CRWSessionController setPendingItemIndex:]. | 
| 136 TEST_P(NavigationManagerTest, GetPendingItemIndexWithIndexedPendingEntry) { | 158 TEST_P(NavigationManagerTest, GetPendingItemIndexWithIndexedPendingEntry) { | 
| 137 navigation_manager()->AddPendingItem( | 159 navigation_manager()->AddPendingItem( | 
| 138 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 160 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 139 web::NavigationInitiationType::USER_INITIATED, | 161 web::NavigationInitiationType::USER_INITIATED, | 
| 140 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 162 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 141 [session_controller() commitPendingItem]; | 163 navigation_manager()->CommitPendingItem(); | 
| 142 navigation_manager()->AddPendingItem( | 164 navigation_manager()->AddPendingItem( | 
| 143 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 165 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 144 web::NavigationInitiationType::USER_INITIATED, | 166 web::NavigationInitiationType::USER_INITIATED, | 
| 145 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 167 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 146 [session_controller() commitPendingItem]; | 168 navigation_manager()->CommitPendingItem(); | 
| 147 | 169 | 
| 148 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 170 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
| 149 [session_controller() setPendingItemIndex:0]; | 171 if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { | 
| 172 [session_controller() setPendingItemIndex:0]; | |
| 173 } | |
| 150 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); | 174 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); | 
| 151 } | 175 } | 
| 152 | 176 | 
| 153 // Tests that going back or negative offset is not possible without a committed | 177 // Tests that going back or negative offset is not possible without a committed | 
| 154 // item. | 178 // item. | 
| 155 TEST_P(NavigationManagerTest, CanGoBackWithoutCommitedItem) { | 179 TEST_P(NavigationManagerTest, CanGoBackWithoutCommitedItem) { | 
| 156 EXPECT_FALSE(navigation_manager()->CanGoBack()); | 180 EXPECT_FALSE(navigation_manager()->CanGoBack()); | 
| 157 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 181 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 
| 158 } | 182 } | 
| 159 | 183 | 
| 160 // Tests that going back or negative offset is not possible if there is a | 184 // Tests that going back or negative offset is not possible if there is a | 
| 161 // transient item, but not committed items. | 185 // transient item, but not committed items. | 
| 162 TEST_P(NavigationManagerTest, CanGoBackWithTransientItem) { | 186 TEST_P(NavigationManagerTest, CanGoBackWithTransientItem) { | 
| 163 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; | 187 navigation_manager()->AddPendingItem( | 
| 188 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | |
| 189 web::NavigationInitiationType::USER_INITIATED, | |
| 190 web::NavigationManager::UserAgentOverrideOption::INHERIT); | |
| 191 navigation_manager()->AddTransientItem(GURL("http://www.url.com")); | |
| 164 | 192 | 
| 165 EXPECT_FALSE(navigation_manager()->CanGoBack()); | 193 EXPECT_FALSE(navigation_manager()->CanGoBack()); | 
| 166 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 194 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 
| 167 } | 195 } | 
| 168 | 196 | 
| 169 // Tests that going back or negative offset is possible if there is a transient | 197 // Tests that going back or negative offset is possible if there is a transient | 
| 170 // item and at least one committed item. | 198 // item and at least one committed item. | 
| 171 TEST_P(NavigationManagerTest, CanGoBackWithTransientItemAndCommittedItem) { | 199 TEST_P(NavigationManagerTest, CanGoBackWithTransientItemAndCommittedItem) { | 
| 172 navigation_manager()->AddPendingItem( | 200 navigation_manager()->AddPendingItem( | 
| 173 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 201 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 174 web::NavigationInitiationType::USER_INITIATED, | 202 web::NavigationInitiationType::USER_INITIATED, | 
| 175 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 203 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 176 [session_controller() commitPendingItem]; | 204 navigation_manager()->CommitPendingItem(); | 
| 177 [session_controller() addTransientItemWithURL:GURL("http://www.url.com/0")]; | 205 navigation_manager()->AddTransientItem(GURL("http://www.url.com/0")); | 
| 178 | 206 | 
| 179 EXPECT_TRUE(navigation_manager()->CanGoBack()); | 207 EXPECT_TRUE(navigation_manager()->CanGoBack()); | 
| 180 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 208 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
| 181 } | 209 } | 
| 182 | 210 | 
| 183 // Tests that going back or negative offset is not possible if there is ony one | 211 // Tests that going back or negative offset is not possible if there is ony one | 
| 184 // committed item and no transient item. | 212 // committed item and no transient item. | 
| 185 TEST_P(NavigationManagerTest, CanGoBackWithSingleCommitedItem) { | 213 TEST_P(NavigationManagerTest, CanGoBackWithSingleCommitedItem) { | 
| 186 navigation_manager()->AddPendingItem( | 214 navigation_manager()->AddPendingItem( | 
| 187 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 215 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 188 web::NavigationInitiationType::USER_INITIATED, | 216 web::NavigationInitiationType::USER_INITIATED, | 
| 189 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 217 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 190 [session_controller() commitPendingItem]; | 218 navigation_manager()->CommitPendingItem(); | 
| 191 | 219 | 
| 192 EXPECT_FALSE(navigation_manager()->CanGoBack()); | 220 EXPECT_FALSE(navigation_manager()->CanGoBack()); | 
| 193 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 221 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 
| 194 } | 222 } | 
| 195 | 223 | 
| 196 // Tests going back possibility with multiple committed items. | 224 // Tests going back possibility with multiple committed items. | 
| 197 TEST_P(NavigationManagerTest, CanGoBackWithMultipleCommitedItems) { | 225 TEST_P(NavigationManagerTest, CanGoBackWithMultipleCommitedItems) { | 
| 198 navigation_manager()->AddPendingItem( | 226 navigation_manager()->AddPendingItem( | 
| 199 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 227 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 200 web::NavigationInitiationType::USER_INITIATED, | 228 web::NavigationInitiationType::USER_INITIATED, | 
| 201 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 229 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 202 [session_controller() commitPendingItem]; | 230 navigation_manager()->CommitPendingItem(); | 
| 203 navigation_manager()->AddPendingItem( | 231 navigation_manager()->AddPendingItem( | 
| 204 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 232 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 205 web::NavigationInitiationType::USER_INITIATED, | 233 web::NavigationInitiationType::USER_INITIATED, | 
| 206 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 234 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 207 [session_controller() commitPendingItem]; | 235 navigation_manager()->CommitPendingItem(); | 
| 208 navigation_manager()->AddPendingItem( | 236 navigation_manager()->AddPendingItem( | 
| 209 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 237 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 210 web::NavigationInitiationType::USER_INITIATED, | 238 web::NavigationInitiationType::USER_INITIATED, | 
| 211 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 239 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 212 [session_controller() commitPendingItem]; | 240 navigation_manager()->CommitPendingItem(); | 
| 213 | 241 | 
| 214 EXPECT_TRUE(navigation_manager()->CanGoBack()); | 242 EXPECT_TRUE(navigation_manager()->CanGoBack()); | 
| 215 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 243 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
| 216 | 244 | 
| 217 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; | 245 navigation_manager()->GoToIndex(1); | 
| 218 EXPECT_TRUE(navigation_manager()->CanGoBack()); | 246 EXPECT_TRUE(navigation_manager()->CanGoBack()); | 
| 219 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 247 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
| 220 | 248 | 
| 221 [session_controller() goToItemAtIndex:0 discardNonCommittedItems:NO]; | 249 navigation_manager()->GoToIndex(0); | 
| 222 EXPECT_FALSE(navigation_manager()->CanGoBack()); | 250 EXPECT_FALSE(navigation_manager()->CanGoBack()); | 
| 223 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 251 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 
| 224 | 252 | 
| 225 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; | 253 navigation_manager()->GoToIndex(1); | 
| 226 EXPECT_TRUE(navigation_manager()->CanGoBack()); | 254 EXPECT_TRUE(navigation_manager()->CanGoBack()); | 
| 227 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 255 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
| 228 } | 256 } | 
| 229 | 257 | 
| 230 // Tests that going forward or positive offset is not possible without a | 258 // Tests that going forward or positive offset is not possible without a | 
| 231 // committed item. | 259 // committed item. | 
| 232 TEST_P(NavigationManagerTest, CanGoForwardWithoutCommitedItem) { | 260 TEST_P(NavigationManagerTest, CanGoForwardWithoutCommitedItem) { | 
| 233 EXPECT_FALSE(navigation_manager()->CanGoForward()); | 261 EXPECT_FALSE(navigation_manager()->CanGoForward()); | 
| 234 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 262 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
| 235 } | 263 } | 
| 236 | 264 | 
| 237 // Tests that going forward or positive offset is not possible if there is ony | 265 // Tests that going forward or positive offset is not possible if there is ony | 
| 238 // one committed item and no transient item. | 266 // one committed item and no transient item. | 
| 239 TEST_P(NavigationManagerTest, CanGoForwardWithSingleCommitedItem) { | 267 TEST_P(NavigationManagerTest, CanGoForwardWithSingleCommitedItem) { | 
| 240 navigation_manager()->AddPendingItem( | 268 navigation_manager()->AddPendingItem( | 
| 241 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 269 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 242 web::NavigationInitiationType::USER_INITIATED, | 270 web::NavigationInitiationType::USER_INITIATED, | 
| 243 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 271 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 244 [session_controller() commitPendingItem]; | 272 navigation_manager()->CommitPendingItem(); | 
| 245 | 273 | 
| 246 EXPECT_FALSE(navigation_manager()->CanGoForward()); | 274 EXPECT_FALSE(navigation_manager()->CanGoForward()); | 
| 247 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 275 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
| 248 } | 276 } | 
| 249 | 277 | 
| 250 // Tests going forward possibility with multiple committed items. | 278 // Tests going forward possibility with multiple committed items. | 
| 251 TEST_P(NavigationManagerTest, CanGoForwardWithMultipleCommitedEntries) { | 279 TEST_P(NavigationManagerTest, CanGoForwardWithMultipleCommitedEntries) { | 
| 252 navigation_manager()->AddPendingItem( | 280 navigation_manager()->AddPendingItem( | 
| 253 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 281 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 254 web::NavigationInitiationType::USER_INITIATED, | 282 web::NavigationInitiationType::USER_INITIATED, | 
| 255 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 283 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 256 [session_controller() commitPendingItem]; | 284 navigation_manager()->CommitPendingItem(); | 
| 257 navigation_manager()->AddPendingItem( | 285 navigation_manager()->AddPendingItem( | 
| 258 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 286 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 259 web::NavigationInitiationType::USER_INITIATED, | 287 web::NavigationInitiationType::USER_INITIATED, | 
| 260 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 288 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 261 [session_controller() commitPendingItem]; | 289 navigation_manager()->CommitPendingItem(); | 
| 262 navigation_manager()->AddPendingItem( | 290 navigation_manager()->AddPendingItem( | 
| 263 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 291 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 264 web::NavigationInitiationType::USER_INITIATED, | 292 web::NavigationInitiationType::USER_INITIATED, | 
| 265 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 293 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 266 [session_controller() commitPendingItem]; | 294 navigation_manager()->CommitPendingItem(); | 
| 267 | 295 | 
| 268 EXPECT_FALSE(navigation_manager()->CanGoForward()); | 296 EXPECT_FALSE(navigation_manager()->CanGoForward()); | 
| 269 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 297 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
| 270 | 298 | 
| 271 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; | 299 navigation_manager()->GoToIndex(1); | 
| 272 EXPECT_TRUE(navigation_manager()->CanGoForward()); | 300 EXPECT_TRUE(navigation_manager()->CanGoForward()); | 
| 273 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 301 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 
| 274 | 302 | 
| 275 [session_controller() goToItemAtIndex:0 discardNonCommittedItems:NO]; | 303 navigation_manager()->GoToIndex(0); | 
| 276 EXPECT_TRUE(navigation_manager()->CanGoForward()); | 304 EXPECT_TRUE(navigation_manager()->CanGoForward()); | 
| 277 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 305 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 
| 278 | 306 | 
| 279 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; | 307 navigation_manager()->GoToIndex(1); | 
| 280 EXPECT_TRUE(navigation_manager()->CanGoForward()); | 308 EXPECT_TRUE(navigation_manager()->CanGoForward()); | 
| 281 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 309 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 
| 282 | 310 | 
| 283 [session_controller() goToItemAtIndex:2 discardNonCommittedItems:NO]; | 311 navigation_manager()->GoToIndex(2); | 
| 284 EXPECT_FALSE(navigation_manager()->CanGoForward()); | 312 EXPECT_FALSE(navigation_manager()->CanGoForward()); | 
| 285 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 313 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
| 286 } | 314 } | 
| 287 | 315 | 
| 288 // Tests CanGoToOffset API for positive, negative and zero delta. Tested | 316 // Tests CanGoToOffset API for positive, negative and zero delta. Tested | 
| 289 // navigation manager will have redirect entries to make sure they are | 317 // navigation manager will have redirect entries to make sure they are | 
| 290 // appropriately skipped. | 318 // appropriately skipped. | 
| 291 TEST_P(NavigationManagerTest, OffsetsWithoutPendingIndex) { | 319 TEST_P(NavigationManagerTest, OffsetsWithoutPendingIndex) { | 
| 292 navigation_manager()->AddPendingItem( | 320 navigation_manager()->AddPendingItem( | 
| 293 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, | 321 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, | 
| 294 web::NavigationInitiationType::USER_INITIATED, | 322 web::NavigationInitiationType::USER_INITIATED, | 
| 295 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 323 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 296 [session_controller() commitPendingItem]; | 324 navigation_manager()->CommitPendingItem(); | 
| 297 navigation_manager()->AddPendingItem( | 325 navigation_manager()->AddPendingItem( | 
| 298 GURL("http://www.url.com/redirect"), Referrer(), | 326 GURL("http://www.url.com/redirect"), Referrer(), | 
| 299 ui::PAGE_TRANSITION_CLIENT_REDIRECT, | 327 ui::PAGE_TRANSITION_CLIENT_REDIRECT, | 
| 300 web::NavigationInitiationType::USER_INITIATED, | 328 web::NavigationInitiationType::USER_INITIATED, | 
| 301 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 329 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 302 [session_controller() commitPendingItem]; | 330 navigation_manager()->CommitPendingItem(); | 
| 303 navigation_manager()->AddPendingItem( | 331 navigation_manager()->AddPendingItem( | 
| 304 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK, | 332 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK, | 
| 305 web::NavigationInitiationType::USER_INITIATED, | 333 web::NavigationInitiationType::USER_INITIATED, | 
| 306 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 334 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 307 [session_controller() commitPendingItem]; | 335 navigation_manager()->CommitPendingItem(); | 
| 308 navigation_manager()->AddPendingItem( | 336 navigation_manager()->AddPendingItem( | 
| 309 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK, | 337 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK, | 
| 310 web::NavigationInitiationType::USER_INITIATED, | 338 web::NavigationInitiationType::USER_INITIATED, | 
| 311 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 339 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 312 [session_controller() commitPendingItem]; | 340 navigation_manager()->CommitPendingItem(); | 
| 313 navigation_manager()->AddPendingItem( | 341 navigation_manager()->AddPendingItem( | 
| 314 GURL("http://www.url.com/redirect"), Referrer(), | 342 GURL("http://www.url.com/redirect"), Referrer(), | 
| 315 ui::PAGE_TRANSITION_CLIENT_REDIRECT, | 343 ui::PAGE_TRANSITION_CLIENT_REDIRECT, | 
| 316 web::NavigationInitiationType::USER_INITIATED, | 344 web::NavigationInitiationType::USER_INITIATED, | 
| 317 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 345 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 318 [session_controller() commitPendingItem]; | 346 navigation_manager()->CommitPendingItem(); | 
| 319 ASSERT_EQ(5, navigation_manager()->GetItemCount()); | 347 ASSERT_EQ(5, navigation_manager()->GetItemCount()); | 
| 320 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 348 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 
| 321 | 349 | 
| 322 // Go to entry at index 1 and test API from that state. | 350 // Go to entry at index 1 and test API from that state. | 
| 323 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; | 351 navigation_manager()->GoToIndex(1); | 
| 324 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 352 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 
| 325 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 353 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
| 326 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 354 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 
| 327 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1)); | 355 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1)); | 
| 328 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); | 356 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); | 
| 329 EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2)); | 357 EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2)); | 
| 330 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 358 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 
| 331 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); | 359 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); | 
| 332 EXPECT_TRUE(navigation_manager()->CanGoToOffset(2)); | 360 EXPECT_TRUE(navigation_manager()->CanGoToOffset(2)); | 
| 333 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2)); | 361 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2)); | 
| 334 EXPECT_FALSE(navigation_manager()->CanGoToOffset(3)); | 362 EXPECT_FALSE(navigation_manager()->CanGoToOffset(3)); | 
| 335 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3)); | 363 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3)); | 
| 336 // Test with large values. | 364 // Test with large values. | 
| 337 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 365 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 
| 338 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 366 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 
| 339 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 367 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 
| 340 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 368 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 
| 341 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 369 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 
| 342 EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN)); | 370 EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN)); | 
| 343 EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000)); | 371 EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000)); | 
| 344 EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000)); | 372 EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000)); | 
| 345 | 373 | 
| 346 // Go to entry at index 2 and test API from that state. | 374 // Go to entry at index 2 and test API from that state. | 
| 347 [session_controller() goToItemAtIndex:2 discardNonCommittedItems:NO]; | 375 navigation_manager()->GoToIndex(2); | 
| 348 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); | 376 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); | 
| 349 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 377 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
| 350 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 378 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
| 351 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1)); | 379 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1)); | 
| 352 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); | 380 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); | 
| 353 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2)); | 381 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2)); | 
| 354 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 382 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 
| 355 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1)); | 383 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1)); | 
| 356 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 384 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 
| 357 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2)); | 385 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2)); | 
| 358 // Test with large values. | 386 // Test with large values. | 
| 359 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 387 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 
| 360 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 388 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 
| 361 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 389 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 
| 362 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 390 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 
| 363 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 391 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 
| 364 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); | 392 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); | 
| 365 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); | 393 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); | 
| 366 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); | 394 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); | 
| 367 | 395 | 
| 368 // Go to entry at index 4 and test API from that state. | 396 // Go to entry at index 4 and test API from that state. | 
| 369 [session_controller() goToItemAtIndex:4 discardNonCommittedItems:NO]; | 397 navigation_manager()->GoToIndex(4); | 
| 370 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 398 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 
| 371 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 399 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
| 372 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 400 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
| 373 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); | 401 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); | 
| 374 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); | 402 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); | 
| 375 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); | 403 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); | 
| 376 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 404 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
| 377 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); | 405 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); | 
| 378 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 406 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 
| 379 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); | 407 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); | 
| 380 // Test with large values. | 408 // Test with large values. | 
| 381 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 409 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 
| 382 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 410 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 
| 383 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 411 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 
| 384 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 412 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 
| 385 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 413 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 
| 386 EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN)); | 414 EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN)); | 
| 387 EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000)); | 415 EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000)); | 
| 388 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); | 416 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); | 
| 389 | 417 | 
| 390 // Test with existing transient entry. | 418 // Test with existing transient entry. | 
| 391 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; | 419 navigation_manager()->AddTransientItem(GURL("http://www.url.com")); | 
| 392 ASSERT_EQ(5, navigation_manager()->GetItemCount()); | 420 ASSERT_EQ(5, navigation_manager()->GetItemCount()); | 
| 393 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 421 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 
| 394 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 422 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
| 395 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 423 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
| 396 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1)); | 424 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1)); | 
| 397 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); | 425 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); | 
| 398 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2)); | 426 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2)); | 
| 399 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3)); | 427 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3)); | 
| 400 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-3)); | 428 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-3)); | 
| 401 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 429 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
| 402 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); | 430 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); | 
| 403 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 431 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 
| 404 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); | 432 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); | 
| 405 // Test with large values. | 433 // Test with large values. | 
| 406 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 434 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 
| 407 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 435 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 
| 408 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 436 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 
| 409 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 437 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 
| 410 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 438 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 
| 411 EXPECT_EQ(-2147483645, navigation_manager()->GetIndexForOffset(INT_MIN)); | 439 EXPECT_EQ(-2147483645, navigation_manager()->GetIndexForOffset(INT_MIN)); | 
| 412 EXPECT_EQ(-999999997, navigation_manager()->GetIndexForOffset(-1000000000)); | 440 EXPECT_EQ(-999999997, navigation_manager()->GetIndexForOffset(-1000000000)); | 
| 413 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); | 441 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); | 
| 414 | 442 | 
| 415 // Now test with pending item index. | 443 // Now test with pending item index. | 
| 416 [session_controller() discardNonCommittedItems]; | 444 navigation_manager()->DiscardNonCommittedItems(); | 
| 417 | 445 | 
| 418 // Set pending index to 1 and test API from that state. | 446 // Set pending index to 1 and test API from that state. | 
| 419 [session_controller() setPendingItemIndex:1]; | 447 if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { | 
| 448 [session_controller() setPendingItemIndex:1]; | |
| 449 } | |
| 420 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 450 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 
| 421 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); | 451 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); | 
| 422 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 452 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 
| 423 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1)); | 453 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1)); | 
| 424 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); | 454 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); | 
| 425 EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2)); | 455 EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2)); | 
| 426 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 456 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 
| 427 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); | 457 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); | 
| 428 EXPECT_TRUE(navigation_manager()->CanGoToOffset(2)); | 458 EXPECT_TRUE(navigation_manager()->CanGoToOffset(2)); | 
| 429 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2)); | 459 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2)); | 
| 430 EXPECT_FALSE(navigation_manager()->CanGoToOffset(3)); | 460 EXPECT_FALSE(navigation_manager()->CanGoToOffset(3)); | 
| 431 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3)); | 461 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3)); | 
| 432 // Test with large values. | 462 // Test with large values. | 
| 433 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 463 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 
| 434 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 464 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 
| 435 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 465 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 
| 436 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 466 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 
| 437 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 467 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 
| 438 EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN)); | 468 EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN)); | 
| 439 EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000)); | 469 EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000)); | 
| 440 EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000)); | 470 EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000)); | 
| 441 | 471 | 
| 442 // Set pending index to 2 and test API from that state. | 472 // Set pending index to 2 and test API from that state. | 
| 443 [session_controller() setPendingItemIndex:2]; | 473 if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { | 
| 474 [session_controller() setPendingItemIndex:2]; | |
| 475 } | |
| 444 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 476 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 
| 445 ASSERT_EQ(2, navigation_manager()->GetPendingItemIndex()); | 477 ASSERT_EQ(2, navigation_manager()->GetPendingItemIndex()); | 
| 446 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 478 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
| 447 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1)); | 479 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1)); | 
| 448 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); | 480 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); | 
| 449 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2)); | 481 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2)); | 
| 450 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 482 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 
| 451 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1)); | 483 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1)); | 
| 452 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 484 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 
| 453 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2)); | 485 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2)); | 
| 454 // Test with large values. | 486 // Test with large values. | 
| 455 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 487 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 
| 456 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 488 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 
| 457 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 489 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 
| 458 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 490 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 
| 459 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 491 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 
| 460 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); | 492 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); | 
| 461 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); | 493 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); | 
| 462 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); | 494 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); | 
| 463 | 495 | 
| 464 // Set pending index to 4 and committed entry to 1 and test. | 496 // Set pending index to 4 and committed entry to 1 and test. | 
| 465 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; | 497 navigation_manager()->GoToIndex(1); | 
| 466 [session_controller() setPendingItemIndex:4]; | 498 if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { | 
| 499 [session_controller() setPendingItemIndex:4]; | |
| 500 } | |
| 467 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 501 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 
| 468 ASSERT_EQ(4, navigation_manager()->GetPendingItemIndex()); | 502 ASSERT_EQ(4, navigation_manager()->GetPendingItemIndex()); | 
| 469 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 503 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
| 470 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); | 504 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); | 
| 471 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); | 505 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); | 
| 472 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); | 506 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); | 
| 473 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 507 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
| 474 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); | 508 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); | 
| 475 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 509 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 
| 476 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); | 510 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); | 
| 477 // Test with large values. | 511 // Test with large values. | 
| 478 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 512 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 
| 479 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 513 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 
| 480 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 514 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 
| 481 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 515 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 
| 482 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 516 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 
| 483 EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN)); | 517 EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN)); | 
| 484 EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000)); | 518 EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000)); | 
| 485 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); | 519 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); | 
| 486 | 520 | 
| 487 // Test with existing transient entry in the end of the stack. | 521 // Test with existing transient entry in the end of the stack. | 
| 488 [session_controller() goToItemAtIndex:4 discardNonCommittedItems:NO]; | 522 navigation_manager()->GoToIndex(4); | 
| 489 [session_controller() setPendingItemIndex:-1]; | 523 if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { | 
| 490 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; | 524 [session_controller() setPendingItemIndex:-1]; | 
| 525 } | |
| 526 navigation_manager()->AddTransientItem(GURL("http://www.url.com")); | |
| 491 ASSERT_EQ(5, navigation_manager()->GetItemCount()); | 527 ASSERT_EQ(5, navigation_manager()->GetItemCount()); | 
| 492 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 528 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 
| 493 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 529 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
| 494 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 530 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
| 495 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1)); | 531 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1)); | 
| 496 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); | 532 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); | 
| 497 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2)); | 533 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2)); | 
| 498 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3)); | 534 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3)); | 
| 499 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-3)); | 535 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-3)); | 
| 500 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 536 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
| (...skipping 14 matching lines...) Expand all Loading... | |
| 515 // Tests offsets with pending transient entries (specifically gong back and | 551 // Tests offsets with pending transient entries (specifically gong back and | 
| 516 // forward from a pending navigation entry that is added to the middle of the | 552 // forward from a pending navigation entry that is added to the middle of the | 
| 517 // navigation stack). | 553 // navigation stack). | 
| 518 TEST_P(NavigationManagerTest, OffsetsWithPendingTransientEntry) { | 554 TEST_P(NavigationManagerTest, OffsetsWithPendingTransientEntry) { | 
| 519 // Create a transient item in the middle of the navigation stack and go back | 555 // Create a transient item in the middle of the navigation stack and go back | 
| 520 // to it (pending index is 1, current index is 2). | 556 // to it (pending index is 1, current index is 2). | 
| 521 navigation_manager()->AddPendingItem( | 557 navigation_manager()->AddPendingItem( | 
| 522 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, | 558 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, | 
| 523 web::NavigationInitiationType::USER_INITIATED, | 559 web::NavigationInitiationType::USER_INITIATED, | 
| 524 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 560 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 525 [session_controller() commitPendingItem]; | 561 navigation_manager()->CommitPendingItem(); | 
| 526 navigation_manager()->AddPendingItem( | 562 navigation_manager()->AddPendingItem( | 
| 527 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK, | 563 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK, | 
| 528 web::NavigationInitiationType::USER_INITIATED, | 564 web::NavigationInitiationType::USER_INITIATED, | 
| 529 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 565 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 530 [session_controller() commitPendingItem]; | 566 navigation_manager()->CommitPendingItem(); | 
| 531 navigation_manager()->AddPendingItem( | 567 navigation_manager()->AddPendingItem( | 
| 532 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK, | 568 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK, | 
| 533 web::NavigationInitiationType::USER_INITIATED, | 569 web::NavigationInitiationType::USER_INITIATED, | 
| 534 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 570 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 535 [session_controller() commitPendingItem]; | 571 navigation_manager()->CommitPendingItem(); | 
| 536 [session_controller() addTransientItemWithURL:GURL("http://www.url.com/1")]; | 572 navigation_manager()->AddTransientItem(GURL("http://www.url.com/1")); | 
| 537 [session_controller() setPendingItemIndex:1]; | 573 if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { | 
| 574 [session_controller() setPendingItemIndex:1]; | |
| 575 } | |
| 538 | 576 | 
| 539 ASSERT_EQ(3, navigation_manager()->GetItemCount()); | 577 ASSERT_EQ(3, navigation_manager()->GetItemCount()); | 
| 540 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); | 578 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); | 
| 541 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); | 579 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); | 
| 542 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); | 580 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); | 
| 543 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); | 581 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); | 
| 544 | 582 | 
| 545 // Now go forward to that middle transient item (pending index is 1, | 583 // Now go forward to that middle transient item (pending index is 1, | 
| 546 // current index is 0). | 584 // current index is 0). | 
| 547 [session_controller() goToItemAtIndex:0 discardNonCommittedItems:NO]; | 585 navigation_manager()->GoToIndex(0); | 
| 548 [session_controller() setPendingItemIndex:1]; | 586 if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { | 
| 587 [session_controller() setPendingItemIndex:1]; | |
| 588 } | |
| 549 ASSERT_EQ(3, navigation_manager()->GetItemCount()); | 589 ASSERT_EQ(3, navigation_manager()->GetItemCount()); | 
| 550 ASSERT_EQ(0, navigation_manager()->GetLastCommittedItemIndex()); | 590 ASSERT_EQ(0, navigation_manager()->GetLastCommittedItemIndex()); | 
| 551 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); | 591 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); | 
| 552 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); | 592 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); | 
| 553 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); | 593 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); | 
| 554 } | 594 } | 
| 555 | 595 | 
| 556 // Tests that when given a pending item, adding a new pending item replaces the | 596 // Tests that when given a pending item, adding a new pending item replaces the | 
| 557 // existing pending item if their URLs are different. | 597 // existing pending item if their URLs are different. | 
| 558 TEST_P(NavigationManagerTest, ReplacePendingItemIfDiffernetURL) { | 598 TEST_P(NavigationManagerTest, ReplacePendingItemIfDiffernetURL) { | 
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 711 } | 751 } | 
| 712 | 752 | 
| 713 // Tests that when the last committed item exists, adding a pending item | 753 // Tests that when the last committed item exists, adding a pending item | 
| 714 // succeeds if the new item's URL is different from the last committed item. | 754 // succeeds if the new item's URL is different from the last committed item. | 
| 715 TEST_P(NavigationManagerTest, AddPendingItemIfDiffernetURL) { | 755 TEST_P(NavigationManagerTest, AddPendingItemIfDiffernetURL) { | 
| 716 GURL existing_url = GURL("http://www.existing.com"); | 756 GURL existing_url = GURL("http://www.existing.com"); | 
| 717 navigation_manager()->AddPendingItem( | 757 navigation_manager()->AddPendingItem( | 
| 718 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 758 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 719 web::NavigationInitiationType::USER_INITIATED, | 759 web::NavigationInitiationType::USER_INITIATED, | 
| 720 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 760 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 721 [session_controller() commitPendingItem]; | 761 navigation_manager()->CommitPendingItem(); | 
| 722 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 762 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 723 EXPECT_EQ(existing_url, | 763 EXPECT_EQ(existing_url, | 
| 724 navigation_manager()->GetLastCommittedItem()->GetURL()); | 764 navigation_manager()->GetLastCommittedItem()->GetURL()); | 
| 725 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 765 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 726 | 766 | 
| 727 GURL new_url = GURL("http://www.new.com"); | 767 GURL new_url = GURL("http://www.new.com"); | 
| 728 navigation_manager()->AddPendingItem( | 768 navigation_manager()->AddPendingItem( | 
| 729 new_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 769 new_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 730 web::NavigationInitiationType::USER_INITIATED, | 770 web::NavigationInitiationType::USER_INITIATED, | 
| 731 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 771 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 732 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 772 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
| 733 EXPECT_EQ(new_url, navigation_manager()->GetPendingItem()->GetURL()); | 773 EXPECT_EQ(new_url, navigation_manager()->GetPendingItem()->GetURL()); | 
| 734 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 774 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 735 } | 775 } | 
| 736 | 776 | 
| 737 // Tests that when the last committed item exists, adding a pending item with | 777 // Tests that when the last committed item exists, adding a pending item with | 
| 738 // the same URL fails if the new item is not form submission. | 778 // the same URL fails if the new item is not form submission. | 
| 739 TEST_P(NavigationManagerTest, NotAddSameUrlPendingItemIfNotFormSubmission) { | 779 TEST_P(NavigationManagerTest, NotAddSameUrlPendingItemIfNotFormSubmission) { | 
| 740 GURL existing_url = GURL("http://www.existing.com"); | 780 GURL existing_url = GURL("http://www.existing.com"); | 
| 741 navigation_manager()->AddPendingItem( | 781 navigation_manager()->AddPendingItem( | 
| 742 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 782 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 743 web::NavigationInitiationType::USER_INITIATED, | 783 web::NavigationInitiationType::USER_INITIATED, | 
| 744 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 784 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 745 [session_controller() commitPendingItem]; | 785 navigation_manager()->CommitPendingItem(); | 
| 746 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 786 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 747 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 787 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
| 748 navigation_manager()->GetLastCommittedItem()->GetTransitionType(), | 788 navigation_manager()->GetLastCommittedItem()->GetTransitionType(), | 
| 749 ui::PAGE_TRANSITION_TYPED)); | 789 ui::PAGE_TRANSITION_TYPED)); | 
| 750 EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 790 EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 
| 751 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 791 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 752 | 792 | 
| 753 navigation_manager()->AddPendingItem( | 793 navigation_manager()->AddPendingItem( | 
| 754 existing_url, Referrer(), ui::PAGE_TRANSITION_LINK, | 794 existing_url, Referrer(), ui::PAGE_TRANSITION_LINK, | 
| 755 web::NavigationInitiationType::USER_INITIATED, | 795 web::NavigationInitiationType::USER_INITIATED, | 
| 756 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 796 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 757 EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 797 EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 
| 758 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 798 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 759 } | 799 } | 
| 760 | 800 | 
| 761 // Tests that when the last committed item exists, adding a pending item with | 801 // Tests that when the last committed item exists, adding a pending item with | 
| 762 // the same URL succeeds if the new item is a form submission while the last | 802 // the same URL succeeds if the new item is a form submission while the last | 
| 763 // committed item is not. | 803 // committed item is not. | 
| 764 TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfFormSubmission) { | 804 TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfFormSubmission) { | 
| 765 GURL existing_url = GURL("http://www.existing.com"); | 805 GURL existing_url = GURL("http://www.existing.com"); | 
| 766 navigation_manager()->AddPendingItem( | 806 navigation_manager()->AddPendingItem( | 
| 767 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 807 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 768 web::NavigationInitiationType::USER_INITIATED, | 808 web::NavigationInitiationType::USER_INITIATED, | 
| 769 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 809 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 770 [session_controller() commitPendingItem]; | 810 navigation_manager()->CommitPendingItem(); | 
| 771 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 811 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 772 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 812 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
| 773 navigation_manager()->GetLastCommittedItem()->GetTransitionType(), | 813 navigation_manager()->GetLastCommittedItem()->GetTransitionType(), | 
| 774 ui::PAGE_TRANSITION_TYPED)); | 814 ui::PAGE_TRANSITION_TYPED)); | 
| 775 EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 815 EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 
| 776 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 816 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 777 | 817 | 
| 778 // Add if new transition is a form submission. | 818 // Add if new transition is a form submission. | 
| 779 navigation_manager()->AddPendingItem( | 819 navigation_manager()->AddPendingItem( | 
| 780 existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, | 820 existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, | 
| 781 web::NavigationInitiationType::USER_INITIATED, | 821 web::NavigationInitiationType::USER_INITIATED, | 
| 782 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 822 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 783 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 823 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
| 784 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 824 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
| 785 navigation_manager()->GetPendingItem()->GetTransitionType(), | 825 navigation_manager()->GetPendingItem()->GetTransitionType(), | 
| 786 ui::PAGE_TRANSITION_FORM_SUBMIT)); | 826 ui::PAGE_TRANSITION_FORM_SUBMIT)); | 
| 787 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 827 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 788 } | 828 } | 
| 789 | 829 | 
| 790 // Tests that when the last committed item exists, adding a pending item with | 830 // Tests that when the last committed item exists, adding a pending item with | 
| 791 // the same URL fails if both the new item and the last committed item are form | 831 // the same URL fails if both the new item and the last committed item are form | 
| 792 // submissions. | 832 // submissions. | 
| 793 TEST_P(NavigationManagerTest, | 833 TEST_P(NavigationManagerTest, | 
| 794 NotAddSameUrlPendingItemIfDuplicateFormSubmission) { | 834 NotAddSameUrlPendingItemIfDuplicateFormSubmission) { | 
| 795 GURL existing_url = GURL("http://www.existing.com"); | 835 GURL existing_url = GURL("http://www.existing.com"); | 
| 796 navigation_manager()->AddPendingItem( | 836 navigation_manager()->AddPendingItem( | 
| 797 existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, | 837 existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, | 
| 798 web::NavigationInitiationType::USER_INITIATED, | 838 web::NavigationInitiationType::USER_INITIATED, | 
| 799 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 839 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 800 [session_controller() commitPendingItem]; | 840 navigation_manager()->CommitPendingItem(); | 
| 801 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 841 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 802 EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 842 EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 
| 803 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 843 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 804 | 844 | 
| 805 navigation_manager()->AddPendingItem( | 845 navigation_manager()->AddPendingItem( | 
| 806 existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, | 846 existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, | 
| 807 web::NavigationInitiationType::USER_INITIATED, | 847 web::NavigationInitiationType::USER_INITIATED, | 
| 808 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 848 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 809 EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 849 EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 
| 810 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 850 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 811 } | 851 } | 
| 812 | 852 | 
| 813 // Tests that when the last committed item exists, adding a pending item with | 853 // Tests that when the last committed item exists, adding a pending item with | 
| 814 // the same URL fails if the user agent override option is INHERIT. | 854 // the same URL fails if the user agent override option is INHERIT. | 
| 815 TEST_P(NavigationManagerTest, NotAddSameUrlPendingItemIfOverrideInherit) { | 855 TEST_P(NavigationManagerTest, NotAddSameUrlPendingItemIfOverrideInherit) { | 
| 816 GURL existing_url = GURL("http://www.existing.com"); | 856 GURL existing_url = GURL("http://www.existing.com"); | 
| 817 navigation_manager()->AddPendingItem( | 857 navigation_manager()->AddPendingItem( | 
| 818 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 858 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 819 web::NavigationInitiationType::USER_INITIATED, | 859 web::NavigationInitiationType::USER_INITIATED, | 
| 820 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 860 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 821 [session_controller() commitPendingItem]; | 861 navigation_manager()->CommitPendingItem(); | 
| 822 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 862 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 823 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 863 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
| 824 navigation_manager()->GetLastCommittedItem()->GetTransitionType(), | 864 navigation_manager()->GetLastCommittedItem()->GetTransitionType(), | 
| 825 ui::PAGE_TRANSITION_TYPED)); | 865 ui::PAGE_TRANSITION_TYPED)); | 
| 826 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 866 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 827 | 867 | 
| 828 navigation_manager()->AddPendingItem( | 868 navigation_manager()->AddPendingItem( | 
| 829 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, | 869 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, | 
| 830 web::NavigationInitiationType::USER_INITIATED, | 870 web::NavigationInitiationType::USER_INITIATED, | 
| 831 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 871 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 832 EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 872 EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 
| 833 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 873 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 834 } | 874 } | 
| 835 | 875 | 
| 836 // Tests that when the last committed item exists, adding a pending item with | 876 // Tests that when the last committed item exists, adding a pending item with | 
| 837 // the same URL succeeds if the user agent override option is DESKTOP. | 877 // the same URL succeeds if the user agent override option is DESKTOP. | 
| 838 TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfOverrideDesktop) { | 878 TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfOverrideDesktop) { | 
| 839 GURL existing_url = GURL("http://www.existing.com"); | 879 GURL existing_url = GURL("http://www.existing.com"); | 
| 840 navigation_manager()->AddPendingItem( | 880 navigation_manager()->AddPendingItem( | 
| 841 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 881 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 842 web::NavigationInitiationType::USER_INITIATED, | 882 web::NavigationInitiationType::USER_INITIATED, | 
| 843 web::NavigationManager::UserAgentOverrideOption::MOBILE); | 883 web::NavigationManager::UserAgentOverrideOption::MOBILE); | 
| 844 [session_controller() commitPendingItem]; | 884 navigation_manager()->CommitPendingItem(); | 
| 845 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 885 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 846 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 886 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
| 847 navigation_manager()->GetLastCommittedItem()->GetTransitionType(), | 887 navigation_manager()->GetLastCommittedItem()->GetTransitionType(), | 
| 848 ui::PAGE_TRANSITION_TYPED)); | 888 ui::PAGE_TRANSITION_TYPED)); | 
| 849 EXPECT_EQ(web::UserAgentType::MOBILE, | 889 EXPECT_EQ(web::UserAgentType::MOBILE, | 
| 850 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 890 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
| 851 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 891 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 852 | 892 | 
| 853 navigation_manager()->AddPendingItem( | 893 navigation_manager()->AddPendingItem( | 
| 854 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, | 894 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, | 
| 855 web::NavigationInitiationType::USER_INITIATED, | 895 web::NavigationInitiationType::USER_INITIATED, | 
| 856 web::NavigationManager::UserAgentOverrideOption::DESKTOP); | 896 web::NavigationManager::UserAgentOverrideOption::DESKTOP); | 
| 857 | 897 | 
| 858 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 898 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
| 859 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 899 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
| 860 navigation_manager()->GetPendingItem()->GetTransitionType(), | 900 navigation_manager()->GetPendingItem()->GetTransitionType(), | 
| 861 ui::PAGE_TRANSITION_RELOAD)); | 901 ui::PAGE_TRANSITION_RELOAD)); | 
| 862 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 902 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 863 } | 903 } | 
| 864 | 904 | 
| 865 // Tests that when the last committed item exists, adding a pending item with | 905 // Tests that when the last committed item exists, adding a pending item with | 
| 866 // the same URL succeeds if the user agent override option is MOBILE. | 906 // the same URL succeeds if the user agent override option is MOBILE. | 
| 867 TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfOverrideMobile) { | 907 TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfOverrideMobile) { | 
| 868 GURL existing_url = GURL("http://www.existing.com"); | 908 GURL existing_url = GURL("http://www.existing.com"); | 
| 869 navigation_manager()->AddPendingItem( | 909 navigation_manager()->AddPendingItem( | 
| 870 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 910 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 871 web::NavigationInitiationType::USER_INITIATED, | 911 web::NavigationInitiationType::USER_INITIATED, | 
| 872 web::NavigationManager::UserAgentOverrideOption::DESKTOP); | 912 web::NavigationManager::UserAgentOverrideOption::DESKTOP); | 
| 873 [session_controller() commitPendingItem]; | 913 navigation_manager()->CommitPendingItem(); | 
| 874 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 914 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 875 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 915 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
| 876 navigation_manager()->GetLastCommittedItem()->GetTransitionType(), | 916 navigation_manager()->GetLastCommittedItem()->GetTransitionType(), | 
| 877 ui::PAGE_TRANSITION_TYPED)); | 917 ui::PAGE_TRANSITION_TYPED)); | 
| 878 EXPECT_EQ(web::UserAgentType::DESKTOP, | 918 EXPECT_EQ(web::UserAgentType::DESKTOP, | 
| 879 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 919 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
| 880 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 920 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 881 | 921 | 
| 882 navigation_manager()->AddPendingItem( | 922 navigation_manager()->AddPendingItem( | 
| 883 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, | 923 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, | 
| 884 web::NavigationInitiationType::USER_INITIATED, | 924 web::NavigationInitiationType::USER_INITIATED, | 
| 885 web::NavigationManager::UserAgentOverrideOption::MOBILE); | 925 web::NavigationManager::UserAgentOverrideOption::MOBILE); | 
| 886 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 926 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
| 887 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 927 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
| 888 navigation_manager()->GetPendingItem()->GetTransitionType(), | 928 navigation_manager()->GetPendingItem()->GetTransitionType(), | 
| 889 ui::PAGE_TRANSITION_RELOAD)); | 929 ui::PAGE_TRANSITION_RELOAD)); | 
| 890 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 930 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 891 } | 931 } | 
| 892 | 932 | 
| 893 // Tests that desktop user agent can be enforced to use for next pending item | 933 // Tests that desktop user agent can be enforced to use for next pending item | 
| 894 // when UserAgentOverrideOption is DESKTOP. | 934 // when UserAgentOverrideOption is DESKTOP. | 
| 895 TEST_P(NavigationManagerTest, OverrideUserAgentWithDesktop) { | 935 TEST_P(NavigationManagerTest, OverrideUserAgentWithDesktop) { | 
| 896 navigation_manager()->AddPendingItem( | 936 navigation_manager()->AddPendingItem( | 
| 897 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 937 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 898 web::NavigationInitiationType::USER_INITIATED, | 938 web::NavigationInitiationType::USER_INITIATED, | 
| 899 web::NavigationManager::UserAgentOverrideOption::MOBILE); | 939 web::NavigationManager::UserAgentOverrideOption::MOBILE); | 
| 900 [session_controller() commitPendingItem]; | 940 navigation_manager()->CommitPendingItem(); | 
| 901 NavigationItem* last_committed_item = | 941 NavigationItem* last_committed_item = | 
| 902 navigation_manager()->GetLastCommittedItem(); | 942 navigation_manager()->GetLastCommittedItem(); | 
| 903 EXPECT_EQ(UserAgentType::MOBILE, last_committed_item->GetUserAgentType()); | 943 EXPECT_EQ(UserAgentType::MOBILE, last_committed_item->GetUserAgentType()); | 
| 904 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 944 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 905 | 945 | 
| 906 navigation_manager()->AddPendingItem( | 946 navigation_manager()->AddPendingItem( | 
| 907 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 947 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 908 web::NavigationInitiationType::USER_INITIATED, | 948 web::NavigationInitiationType::USER_INITIATED, | 
| 909 web::NavigationManager::UserAgentOverrideOption::DESKTOP); | 949 web::NavigationManager::UserAgentOverrideOption::DESKTOP); | 
| 910 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 950 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
| 911 EXPECT_EQ(UserAgentType::DESKTOP, | 951 EXPECT_EQ(UserAgentType::DESKTOP, | 
| 912 navigation_manager()->GetPendingItem()->GetUserAgentType()); | 952 navigation_manager()->GetPendingItem()->GetUserAgentType()); | 
| 913 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 953 EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
| 914 } | 954 } | 
| 915 | 955 | 
| 916 // Tests that mobile user agent can be enforced to use for next pending item | 956 // Tests that mobile user agent can be enforced to use for next pending item | 
| 917 // when UserAgentOverrideOption is MOBILE. | 957 // when UserAgentOverrideOption is MOBILE. | 
| 918 TEST_P(NavigationManagerTest, OverrideUserAgentWithMobile) { | 958 TEST_P(NavigationManagerTest, OverrideUserAgentWithMobile) { | 
| 919 navigation_manager()->AddPendingItem( | 959 navigation_manager()->AddPendingItem( | 
| 920 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 960 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 921 web::NavigationInitiationType::USER_INITIATED, | 961 web::NavigationInitiationType::USER_INITIATED, | 
| 922 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 962 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 923 [session_controller() commitPendingItem]; | 963 navigation_manager()->CommitPendingItem(); | 
| 924 NavigationItem* last_committed_item = | 964 NavigationItem* last_committed_item = | 
| 925 navigation_manager()->GetLastCommittedItem(); | 965 navigation_manager()->GetLastCommittedItem(); | 
| 926 last_committed_item->SetUserAgentType(UserAgentType::DESKTOP); | 966 last_committed_item->SetUserAgentType(UserAgentType::DESKTOP); | 
| 927 EXPECT_EQ(UserAgentType::DESKTOP, last_committed_item->GetUserAgentType()); | 967 EXPECT_EQ(UserAgentType::DESKTOP, last_committed_item->GetUserAgentType()); | 
| 928 | 968 | 
| 929 navigation_manager()->AddPendingItem( | 969 navigation_manager()->AddPendingItem( | 
| 930 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 970 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 931 web::NavigationInitiationType::USER_INITIATED, | 971 web::NavigationInitiationType::USER_INITIATED, | 
| 932 web::NavigationManager::UserAgentOverrideOption::MOBILE); | 972 web::NavigationManager::UserAgentOverrideOption::MOBILE); | 
| 933 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 973 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
| 934 EXPECT_EQ(UserAgentType::MOBILE, | 974 EXPECT_EQ(UserAgentType::MOBILE, | 
| 935 navigation_manager()->GetPendingItem()->GetUserAgentType()); | 975 navigation_manager()->GetPendingItem()->GetUserAgentType()); | 
| 936 } | 976 } | 
| 937 | 977 | 
| 938 // Tests that the UserAgentType of an INHERIT item is propagated to subsequent | 978 // Tests that the UserAgentType of an INHERIT item is propagated to subsequent | 
| 939 // item when UserAgentOverrideOption is INHERIT | 979 // item when UserAgentOverrideOption is INHERIT | 
| 940 TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterInherit) { | 980 TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterInherit) { | 
| 941 navigation_manager()->AddPendingItem( | 981 navigation_manager()->AddPendingItem( | 
| 942 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 982 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 943 web::NavigationInitiationType::USER_INITIATED, | 983 web::NavigationInitiationType::USER_INITIATED, | 
| 944 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 984 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 945 [session_controller() commitPendingItem]; | 985 navigation_manager()->CommitPendingItem(); | 
| 946 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 986 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 947 EXPECT_EQ(web::UserAgentType::MOBILE, | 987 EXPECT_EQ(web::UserAgentType::MOBILE, | 
| 948 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 988 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
| 949 | 989 | 
| 950 navigation_manager()->AddPendingItem( | 990 navigation_manager()->AddPendingItem( | 
| 951 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 991 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 952 web::NavigationInitiationType::USER_INITIATED, | 992 web::NavigationInitiationType::USER_INITIATED, | 
| 953 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 993 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 954 [session_controller() commitPendingItem]; | 994 navigation_manager()->CommitPendingItem(); | 
| 955 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 995 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 956 EXPECT_EQ(web::UserAgentType::MOBILE, | 996 EXPECT_EQ(web::UserAgentType::MOBILE, | 
| 957 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 997 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
| 958 } | 998 } | 
| 959 | 999 | 
| 960 // Tests that the UserAgentType of a MOBILE item is propagated to subsequent | 1000 // Tests that the UserAgentType of a MOBILE item is propagated to subsequent | 
| 961 // item when UserAgentOverrideOption is INHERIT | 1001 // item when UserAgentOverrideOption is INHERIT | 
| 962 TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterMobile) { | 1002 TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterMobile) { | 
| 963 navigation_manager()->AddPendingItem( | 1003 navigation_manager()->AddPendingItem( | 
| 964 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1004 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 965 web::NavigationInitiationType::USER_INITIATED, | 1005 web::NavigationInitiationType::USER_INITIATED, | 
| 966 web::NavigationManager::UserAgentOverrideOption::MOBILE); | 1006 web::NavigationManager::UserAgentOverrideOption::MOBILE); | 
| 967 [session_controller() commitPendingItem]; | 1007 navigation_manager()->CommitPendingItem(); | 
| 968 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 1008 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 969 EXPECT_EQ(web::UserAgentType::MOBILE, | 1009 EXPECT_EQ(web::UserAgentType::MOBILE, | 
| 970 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 1010 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
| 971 | 1011 | 
| 972 navigation_manager()->AddPendingItem( | 1012 navigation_manager()->AddPendingItem( | 
| 973 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1013 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 974 web::NavigationInitiationType::USER_INITIATED, | 1014 web::NavigationInitiationType::USER_INITIATED, | 
| 975 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1015 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 976 [session_controller() commitPendingItem]; | 1016 navigation_manager()->CommitPendingItem(); | 
| 977 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 1017 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 978 EXPECT_EQ(web::UserAgentType::MOBILE, | 1018 EXPECT_EQ(web::UserAgentType::MOBILE, | 
| 979 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 1019 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
| 980 } | 1020 } | 
| 981 | 1021 | 
| 982 // Tests that the UserAgentType of a DESKTOP item is propagated to subsequent | 1022 // Tests that the UserAgentType of a DESKTOP item is propagated to subsequent | 
| 983 // item when UserAgentOverrideOption is INHERIT | 1023 // item when UserAgentOverrideOption is INHERIT | 
| 984 TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterDesktop) { | 1024 TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterDesktop) { | 
| 985 navigation_manager()->AddPendingItem( | 1025 navigation_manager()->AddPendingItem( | 
| 986 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1026 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 987 web::NavigationInitiationType::USER_INITIATED, | 1027 web::NavigationInitiationType::USER_INITIATED, | 
| 988 web::NavigationManager::UserAgentOverrideOption::DESKTOP); | 1028 web::NavigationManager::UserAgentOverrideOption::DESKTOP); | 
| 989 [session_controller() commitPendingItem]; | 1029 navigation_manager()->CommitPendingItem(); | 
| 990 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 1030 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 991 EXPECT_EQ(web::UserAgentType::DESKTOP, | 1031 EXPECT_EQ(web::UserAgentType::DESKTOP, | 
| 992 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 1032 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
| 993 | 1033 | 
| 994 navigation_manager()->AddPendingItem( | 1034 navigation_manager()->AddPendingItem( | 
| 995 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1035 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 996 web::NavigationInitiationType::USER_INITIATED, | 1036 web::NavigationInitiationType::USER_INITIATED, | 
| 997 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1037 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 998 [session_controller() commitPendingItem]; | 1038 navigation_manager()->CommitPendingItem(); | 
| 999 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 1039 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 1000 EXPECT_EQ(web::UserAgentType::DESKTOP, | 1040 EXPECT_EQ(web::UserAgentType::DESKTOP, | 
| 1001 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 1041 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
| 1002 } | 1042 } | 
| 1003 | 1043 | 
| 1004 // Tests that the UserAgentType is propagated to subsequent NavigationItems if | 1044 // Tests that the UserAgentType is propagated to subsequent NavigationItems if | 
| 1005 // a native URL exists in between naviations. | 1045 // a native URL exists in between naviations. | 
| 1006 TEST_P(NavigationManagerTest, UserAgentTypePropagationPastNativeItems) { | 1046 TEST_P(NavigationManagerTest, UserAgentTypePropagationPastNativeItems) { | 
| 1007 // GURL::Replacements that will replace a GURL's scheme with the test native | 1047 // GURL::Replacements that will replace a GURL's scheme with the test native | 
| 1008 // scheme. | 1048 // scheme. | 
| 1009 GURL::Replacements native_scheme_replacement; | 1049 GURL::Replacements native_scheme_replacement; | 
| 1010 native_scheme_replacement.SetSchemeStr(kTestNativeContentScheme); | 1050 native_scheme_replacement.SetSchemeStr(kTestNativeContentScheme); | 
| 1011 | 1051 | 
| 1012 // Create two non-native navigations that are separated by a native one. | 1052 // Create two non-native navigations that are separated by a native one. | 
| 1013 navigation_manager()->AddPendingItem( | 1053 navigation_manager()->AddPendingItem( | 
| 1014 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1054 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 1015 web::NavigationInitiationType::USER_INITIATED, | 1055 web::NavigationInitiationType::USER_INITIATED, | 
| 1016 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1056 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1017 [session_controller() commitPendingItem]; | 1057 navigation_manager()->CommitPendingItem(); | 
| 1018 web::NavigationItem* item1 = navigation_manager()->GetLastCommittedItem(); | 1058 web::NavigationItem* item1 = navigation_manager()->GetLastCommittedItem(); | 
| 1019 ASSERT_EQ(web::UserAgentType::MOBILE, item1->GetUserAgentType()); | 1059 ASSERT_EQ(web::UserAgentType::MOBILE, item1->GetUserAgentType()); | 
| 1020 navigation_manager()->AddPendingItem( | 1060 navigation_manager()->AddPendingItem( | 
| 1021 item1->GetURL().ReplaceComponents(native_scheme_replacement), Referrer(), | 1061 item1->GetURL().ReplaceComponents(native_scheme_replacement), Referrer(), | 
| 1022 ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED, | 1062 ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED, | 
| 1023 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1063 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1024 [session_controller() commitPendingItem]; | 1064 navigation_manager()->CommitPendingItem(); | 
| 1025 web::NavigationItem* native_item1 = | 1065 web::NavigationItem* native_item1 = | 
| 1026 navigation_manager()->GetLastCommittedItem(); | 1066 navigation_manager()->GetLastCommittedItem(); | 
| 1027 ASSERT_EQ(web::UserAgentType::NONE, native_item1->GetUserAgentType()); | 1067 ASSERT_EQ(web::UserAgentType::NONE, native_item1->GetUserAgentType()); | 
| 1028 navigation_manager()->AddPendingItem( | 1068 navigation_manager()->AddPendingItem( | 
| 1029 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1069 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 1030 web::NavigationInitiationType::USER_INITIATED, | 1070 web::NavigationInitiationType::USER_INITIATED, | 
| 1031 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1071 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1032 [session_controller() commitPendingItem]; | 1072 navigation_manager()->CommitPendingItem(); | 
| 1033 web::NavigationItem* item2 = navigation_manager()->GetLastCommittedItem(); | 1073 web::NavigationItem* item2 = navigation_manager()->GetLastCommittedItem(); | 
| 1034 | 1074 | 
| 1035 // Verify that |item1|'s UserAgentType is propagated to |item2|. | 1075 // Verify that |item1|'s UserAgentType is propagated to |item2|. | 
| 1036 EXPECT_EQ(item1->GetUserAgentType(), item2->GetUserAgentType()); | 1076 EXPECT_EQ(item1->GetUserAgentType(), item2->GetUserAgentType()); | 
| 1037 | 1077 | 
| 1038 // Update |item2|'s UA type to DESKTOP and add a third non-native navigation, | 1078 // Update |item2|'s UA type to DESKTOP and add a third non-native navigation, | 
| 1039 // once again separated by a native one. | 1079 // once again separated by a native one. | 
| 1040 item2->SetUserAgentType(web::UserAgentType::DESKTOP); | 1080 item2->SetUserAgentType(web::UserAgentType::DESKTOP); | 
| 1041 ASSERT_EQ(web::UserAgentType::DESKTOP, item2->GetUserAgentType()); | 1081 ASSERT_EQ(web::UserAgentType::DESKTOP, item2->GetUserAgentType()); | 
| 1042 navigation_manager()->AddPendingItem( | 1082 navigation_manager()->AddPendingItem( | 
| 1043 item2->GetURL().ReplaceComponents(native_scheme_replacement), Referrer(), | 1083 item2->GetURL().ReplaceComponents(native_scheme_replacement), Referrer(), | 
| 1044 ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED, | 1084 ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED, | 
| 1045 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1085 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1046 [session_controller() commitPendingItem]; | 1086 navigation_manager()->CommitPendingItem(); | 
| 1047 web::NavigationItem* native_item2 = | 1087 web::NavigationItem* native_item2 = | 
| 1048 navigation_manager()->GetLastCommittedItem(); | 1088 navigation_manager()->GetLastCommittedItem(); | 
| 1049 ASSERT_EQ(web::UserAgentType::NONE, native_item2->GetUserAgentType()); | 1089 ASSERT_EQ(web::UserAgentType::NONE, native_item2->GetUserAgentType()); | 
| 1050 navigation_manager()->AddPendingItem( | 1090 navigation_manager()->AddPendingItem( | 
| 1051 GURL("http://www.3.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1091 GURL("http://www.3.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 1052 web::NavigationInitiationType::USER_INITIATED, | 1092 web::NavigationInitiationType::USER_INITIATED, | 
| 1053 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1093 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1054 [session_controller() commitPendingItem]; | 1094 navigation_manager()->CommitPendingItem(); | 
| 1055 web::NavigationItem* item3 = navigation_manager()->GetLastCommittedItem(); | 1095 web::NavigationItem* item3 = navigation_manager()->GetLastCommittedItem(); | 
| 1056 | 1096 | 
| 1057 // Verify that |item2|'s UserAgentType is propagated to |item3|. | 1097 // Verify that |item2|'s UserAgentType is propagated to |item3|. | 
| 1058 EXPECT_EQ(item2->GetUserAgentType(), item3->GetUserAgentType()); | 1098 EXPECT_EQ(item2->GetUserAgentType(), item3->GetUserAgentType()); | 
| 1059 } | 1099 } | 
| 1060 | 1100 | 
| 1061 // Tests that adding transient item for a pending item with mobile user agent | 1101 // Tests that adding transient item for a pending item with mobile user agent | 
| 1062 // type results in a transient item with mobile user agent type. | 1102 // type results in a transient item with mobile user agent type. | 
| 1063 TEST_P(NavigationManagerTest, AddTransientItemForMobilePendingItem) { | 1103 TEST_P(NavigationManagerTest, AddTransientItemForMobilePendingItem) { | 
| 1064 navigation_manager()->AddPendingItem( | 1104 navigation_manager()->AddPendingItem( | 
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1148 navigation_manager()->GetPendingItem()->GetURL()); | 1188 navigation_manager()->GetPendingItem()->GetURL()); | 
| 1149 } | 1189 } | 
| 1150 | 1190 | 
| 1151 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of | 1191 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of | 
| 1152 // the last committed item unchanged when there is no pending item. | 1192 // the last committed item unchanged when there is no pending item. | 
| 1153 TEST_P(NavigationManagerTest, ReloadLastCommittedItemWithNormalType) { | 1193 TEST_P(NavigationManagerTest, ReloadLastCommittedItemWithNormalType) { | 
| 1154 navigation_manager()->AddPendingItem( | 1194 navigation_manager()->AddPendingItem( | 
| 1155 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1195 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 1156 web::NavigationInitiationType::USER_INITIATED, | 1196 web::NavigationInitiationType::USER_INITIATED, | 
| 1157 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1197 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1158 [session_controller() commitPendingItem]; | 1198 navigation_manager()->CommitPendingItem(); | 
| 1159 | 1199 | 
| 1160 GURL url_before_reload = GURL("http://www.url.com/1"); | 1200 GURL url_before_reload = GURL("http://www.url.com/1"); | 
| 1161 navigation_manager()->AddPendingItem( | 1201 navigation_manager()->AddPendingItem( | 
| 1162 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, | 1202 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 1163 web::NavigationInitiationType::USER_INITIATED, | 1203 web::NavigationInitiationType::USER_INITIATED, | 
| 1164 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1204 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1165 [session_controller() commitPendingItem]; | 1205 navigation_manager()->CommitPendingItem(); | 
| 1166 | 1206 | 
| 1167 navigation_manager()->Reload(web::ReloadType::NORMAL, | 1207 navigation_manager()->Reload(web::ReloadType::NORMAL, | 
| 1168 false /* check_for_repost */); | 1208 false /* check_for_repost */); | 
| 1169 EXPECT_TRUE(navigation_manager_delegate().reload_called()); | 1209 EXPECT_TRUE(navigation_manager_delegate().reload_called()); | 
| 1170 | 1210 | 
| 1171 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 1211 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 1172 EXPECT_EQ(url_before_reload, | 1212 EXPECT_EQ(url_before_reload, | 
| 1173 navigation_manager()->GetLastCommittedItem()->GetURL()); | 1213 navigation_manager()->GetLastCommittedItem()->GetURL()); | 
| 1174 } | 1214 } | 
| 1175 | 1215 | 
| 1176 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of | 1216 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of | 
| 1177 // the last committed item unchanged when there is no pending item, but there | 1217 // the last committed item unchanged when there is no pending item, but there | 
| 1178 // forward items after last committed item. | 1218 // forward items after last committed item. | 
| 1179 TEST_P(NavigationManagerTest, | 1219 TEST_P(NavigationManagerTest, | 
| 1180 ReloadLastCommittedItemWithNormalTypeWithForwardItems) { | 1220 ReloadLastCommittedItemWithNormalTypeWithForwardItems) { | 
| 1181 navigation_manager()->AddPendingItem( | 1221 navigation_manager()->AddPendingItem( | 
| 1182 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1222 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 1183 web::NavigationInitiationType::USER_INITIATED, | 1223 web::NavigationInitiationType::USER_INITIATED, | 
| 1184 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1224 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1185 [session_controller() commitPendingItem]; | 1225 navigation_manager()->CommitPendingItem(); | 
| 1186 | 1226 | 
| 1187 GURL url_before_reload = GURL("http://www.url.com/1"); | 1227 GURL url_before_reload = GURL("http://www.url.com/1"); | 
| 1188 navigation_manager()->AddPendingItem( | 1228 navigation_manager()->AddPendingItem( | 
| 1189 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, | 1229 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 1190 web::NavigationInitiationType::USER_INITIATED, | 1230 web::NavigationInitiationType::USER_INITIATED, | 
| 1191 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1231 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1192 [session_controller() commitPendingItem]; | 1232 navigation_manager()->CommitPendingItem(); | 
| 1193 | 1233 | 
| 1194 navigation_manager()->AddPendingItem( | 1234 navigation_manager()->AddPendingItem( | 
| 1195 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1235 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 1196 web::NavigationInitiationType::USER_INITIATED, | 1236 web::NavigationInitiationType::USER_INITIATED, | 
| 1197 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1237 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1198 [session_controller() commitPendingItem]; | 1238 navigation_manager()->CommitPendingItem(); | 
| 1199 | 1239 | 
| 1200 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; | 1240 navigation_manager()->GoToIndex(1); | 
| 1201 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 1241 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 
| 1202 | 1242 | 
| 1203 navigation_manager()->Reload(web::ReloadType::NORMAL, | 1243 navigation_manager()->Reload(web::ReloadType::NORMAL, | 
| 1204 false /* check_for_repost */); | 1244 false /* check_for_repost */); | 
| 1205 EXPECT_TRUE(navigation_manager_delegate().reload_called()); | 1245 EXPECT_TRUE(navigation_manager_delegate().reload_called()); | 
| 1206 | 1246 | 
| 1207 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 1247 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 1208 EXPECT_EQ(url_before_reload, | 1248 EXPECT_EQ(url_before_reload, | 
| 1209 navigation_manager()->GetLastCommittedItem()->GetURL()); | 1249 navigation_manager()->GetLastCommittedItem()->GetURL()); | 
| 1210 } | 1250 } | 
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1270 } | 1310 } | 
| 1271 | 1311 | 
| 1272 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL | 1312 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL | 
| 1273 // changes the last committed item's url to its original request url when there | 1313 // changes the last committed item's url to its original request url when there | 
| 1274 // is no pending item. | 1314 // is no pending item. | 
| 1275 TEST_P(NavigationManagerTest, ReloadLastCommittedItemWithOriginalType) { | 1315 TEST_P(NavigationManagerTest, ReloadLastCommittedItemWithOriginalType) { | 
| 1276 navigation_manager()->AddPendingItem( | 1316 navigation_manager()->AddPendingItem( | 
| 1277 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1317 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 1278 web::NavigationInitiationType::USER_INITIATED, | 1318 web::NavigationInitiationType::USER_INITIATED, | 
| 1279 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1319 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1280 [session_controller() commitPendingItem]; | 1320 navigation_manager()->CommitPendingItem(); | 
| 1281 | 1321 | 
| 1282 navigation_manager()->AddPendingItem( | 1322 navigation_manager()->AddPendingItem( | 
| 1283 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1323 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 1284 web::NavigationInitiationType::USER_INITIATED, | 1324 web::NavigationInitiationType::USER_INITIATED, | 
| 1285 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1325 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1286 GURL expected_original_url = GURL("http://www.url.com/1/original"); | 1326 GURL expected_original_url = GURL("http://www.url.com/1/original"); | 
| 1287 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 1327 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
| 1288 navigation_manager()->GetPendingItem()->SetOriginalRequestURL( | 1328 navigation_manager()->GetPendingItem()->SetOriginalRequestURL( | 
| 1289 expected_original_url); | 1329 expected_original_url); | 
| 1290 [session_controller() commitPendingItem]; | 1330 navigation_manager()->CommitPendingItem(); | 
| 1291 | 1331 | 
| 1292 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, | 1332 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, | 
| 1293 false /* check_for_repost */); | 1333 false /* check_for_repost */); | 
| 1294 EXPECT_TRUE(navigation_manager_delegate().reload_called()); | 1334 EXPECT_TRUE(navigation_manager_delegate().reload_called()); | 
| 1295 | 1335 | 
| 1296 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 1336 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 1297 EXPECT_EQ(expected_original_url, | 1337 EXPECT_EQ(expected_original_url, | 
| 1298 navigation_manager()->GetLastCommittedItem()->GetURL()); | 1338 navigation_manager()->GetLastCommittedItem()->GetURL()); | 
| 1299 } | 1339 } | 
| 1300 | 1340 | 
| 1301 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL | 1341 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL | 
| 1302 // changes the last committed item's url to its original request url when there | 1342 // changes the last committed item's url to its original request url when there | 
| 1303 // is no pending item, but there are forward items after last committed item. | 1343 // is no pending item, but there are forward items after last committed item. | 
| 1304 TEST_P(NavigationManagerTest, | 1344 TEST_P(NavigationManagerTest, | 
| 1305 ReloadLastCommittedItemWithOriginalTypeWithForwardItems) { | 1345 ReloadLastCommittedItemWithOriginalTypeWithForwardItems) { | 
| 1306 navigation_manager()->AddPendingItem( | 1346 navigation_manager()->AddPendingItem( | 
| 1307 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1347 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 1308 web::NavigationInitiationType::USER_INITIATED, | 1348 web::NavigationInitiationType::USER_INITIATED, | 
| 1309 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1349 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1310 [session_controller() commitPendingItem]; | 1350 navigation_manager()->CommitPendingItem(); | 
| 1311 | 1351 | 
| 1312 navigation_manager()->AddPendingItem( | 1352 navigation_manager()->AddPendingItem( | 
| 1313 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1353 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 1314 web::NavigationInitiationType::USER_INITIATED, | 1354 web::NavigationInitiationType::USER_INITIATED, | 
| 1315 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1355 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1316 GURL expected_original_url = GURL("http://www.url.com/1/original"); | 1356 GURL expected_original_url = GURL("http://www.url.com/1/original"); | 
| 1317 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 1357 ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
| 1318 navigation_manager()->GetPendingItem()->SetOriginalRequestURL( | 1358 navigation_manager()->GetPendingItem()->SetOriginalRequestURL( | 
| 1319 expected_original_url); | 1359 expected_original_url); | 
| 1320 [session_controller() commitPendingItem]; | 1360 navigation_manager()->CommitPendingItem(); | 
| 1321 | 1361 | 
| 1322 navigation_manager()->AddPendingItem( | 1362 navigation_manager()->AddPendingItem( | 
| 1323 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1363 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
| 1324 web::NavigationInitiationType::USER_INITIATED, | 1364 web::NavigationInitiationType::USER_INITIATED, | 
| 1325 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1365 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1326 [session_controller() commitPendingItem]; | 1366 navigation_manager()->CommitPendingItem(); | 
| 1327 | 1367 | 
| 1328 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; | 1368 navigation_manager()->GoToIndex(1); | 
| 1329 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 1369 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 
| 1330 | 1370 | 
| 1331 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, | 1371 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, | 
| 1332 false /* check_for_repost */); | 1372 false /* check_for_repost */); | 
| 1333 EXPECT_TRUE(navigation_manager_delegate().reload_called()); | 1373 EXPECT_TRUE(navigation_manager_delegate().reload_called()); | 
| 1334 | 1374 | 
| 1335 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 1375 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
| 1336 EXPECT_EQ(expected_original_url, | 1376 EXPECT_EQ(expected_original_url, | 
| 1337 navigation_manager()->GetLastCommittedItem()->GetURL()); | 1377 navigation_manager()->GetLastCommittedItem()->GetURL()); | 
| 1338 } | 1378 } | 
| 1339 | 1379 | 
| 1340 // Tests that app-specific URLs are not rewritten for renderer-initiated loads | 1380 // Tests that app-specific URLs are not rewritten for renderer-initiated loads | 
| 1341 // unless requested by a page with app-specific url. | 1381 // unless requested by a page with app-specific url. | 
| 1342 TEST_P(NavigationManagerTest, RewritingAppSpecificUrls) { | 1382 TEST_P(NavigationManagerTest, RewritingAppSpecificUrls) { | 
| 1343 // URL should not be rewritten as there is no committed URL. | 1383 // URL should not be rewritten as there is no committed URL. | 
| 1344 GURL url1(url::SchemeHostPort(kSchemeToRewrite, "test", 0).Serialize()); | 1384 GURL url1(url::SchemeHostPort(kSchemeToRewrite, "test", 0).Serialize()); | 
| 1345 navigation_manager()->AddPendingItem( | 1385 navigation_manager()->AddPendingItem( | 
| 1346 url1, Referrer(), ui::PAGE_TRANSITION_LINK, | 1386 url1, Referrer(), ui::PAGE_TRANSITION_LINK, | 
| 1347 web::NavigationInitiationType::RENDERER_INITIATED, | 1387 web::NavigationInitiationType::RENDERER_INITIATED, | 
| 1348 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1388 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1349 EXPECT_EQ(url1, navigation_manager()->GetPendingItem()->GetURL()); | 1389 EXPECT_EQ(url1, navigation_manager()->GetPendingItem()->GetURL()); | 
| 1350 | 1390 | 
| 1351 // URL should not be rewritten because last committed URL is not app-specific. | 1391 // URL should not be rewritten because last committed URL is not app-specific. | 
| 1352 [session_controller() commitPendingItem]; | 1392 navigation_manager()->CommitPendingItem(); | 
| 1353 GURL url2(url::SchemeHostPort(kSchemeToRewrite, "test2", 0).Serialize()); | 1393 GURL url2(url::SchemeHostPort(kSchemeToRewrite, "test2", 0).Serialize()); | 
| 1354 navigation_manager()->AddPendingItem( | 1394 navigation_manager()->AddPendingItem( | 
| 1355 url2, Referrer(), ui::PAGE_TRANSITION_LINK, | 1395 url2, Referrer(), ui::PAGE_TRANSITION_LINK, | 
| 1356 web::NavigationInitiationType::RENDERER_INITIATED, | 1396 web::NavigationInitiationType::RENDERER_INITIATED, | 
| 1357 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1397 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1358 EXPECT_EQ(url2, navigation_manager()->GetPendingItem()->GetURL()); | 1398 EXPECT_EQ(url2, navigation_manager()->GetPendingItem()->GetURL()); | 
| 1359 | 1399 | 
| 1360 // URL should be rewritten for user initiated navigations. | 1400 // URL should be rewritten for user initiated navigations. | 
| 1361 GURL url3(url::SchemeHostPort(kSchemeToRewrite, "test3", 0).Serialize()); | 1401 GURL url3(url::SchemeHostPort(kSchemeToRewrite, "test3", 0).Serialize()); | 
| 1362 navigation_manager()->AddPendingItem( | 1402 navigation_manager()->AddPendingItem( | 
| 1363 url3, Referrer(), ui::PAGE_TRANSITION_LINK, | 1403 url3, Referrer(), ui::PAGE_TRANSITION_LINK, | 
| 1364 web::NavigationInitiationType::USER_INITIATED, | 1404 web::NavigationInitiationType::USER_INITIATED, | 
| 1365 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1405 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1366 GURL rewritten_url3( | 1406 GURL rewritten_url3( | 
| 1367 url::SchemeHostPort(kTestWebUIScheme, "test3", 0).Serialize()); | 1407 url::SchemeHostPort(kTestWebUIScheme, "test3", 0).Serialize()); | 
| 1368 EXPECT_EQ(rewritten_url3, navigation_manager()->GetPendingItem()->GetURL()); | 1408 EXPECT_EQ(rewritten_url3, navigation_manager()->GetPendingItem()->GetURL()); | 
| 1369 | 1409 | 
| 1370 // URL should be rewritten because last committed URL is app-specific. | 1410 // URL should be rewritten because last committed URL is app-specific. | 
| 1371 [session_controller() commitPendingItem]; | 1411 navigation_manager()->CommitPendingItem(); | 
| 1372 GURL url4(url::SchemeHostPort(kSchemeToRewrite, "test4", 0).Serialize()); | 1412 GURL url4(url::SchemeHostPort(kSchemeToRewrite, "test4", 0).Serialize()); | 
| 1373 navigation_manager()->AddPendingItem( | 1413 navigation_manager()->AddPendingItem( | 
| 1374 url4, Referrer(), ui::PAGE_TRANSITION_LINK, | 1414 url4, Referrer(), ui::PAGE_TRANSITION_LINK, | 
| 1375 web::NavigationInitiationType::RENDERER_INITIATED, | 1415 web::NavigationInitiationType::RENDERER_INITIATED, | 
| 1376 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1416 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
| 1377 GURL rewritten_url4( | 1417 GURL rewritten_url4( | 
| 1378 url::SchemeHostPort(kTestWebUIScheme, "test4", 0).Serialize()); | 1418 url::SchemeHostPort(kTestWebUIScheme, "test4", 0).Serialize()); | 
| 1379 EXPECT_EQ(rewritten_url4, navigation_manager()->GetPendingItem()->GetURL()); | 1419 EXPECT_EQ(rewritten_url4, navigation_manager()->GetPendingItem()->GetURL()); | 
| 1380 } | 1420 } | 
| 1381 | 1421 | 
| (...skipping 17 matching lines...) Expand all Loading... | |
| 1399 web::NavigationItem::Create(); | 1439 web::NavigationItem::Create(); | 
| 1400 // Verify GetIndexOfItem() results. | 1440 // Verify GetIndexOfItem() results. | 
| 1401 EXPECT_EQ(0, navigation_manager()->GetIndexOfItem(item0)); | 1441 EXPECT_EQ(0, navigation_manager()->GetIndexOfItem(item0)); | 
| 1402 EXPECT_EQ(1, navigation_manager()->GetIndexOfItem(item1)); | 1442 EXPECT_EQ(1, navigation_manager()->GetIndexOfItem(item1)); | 
| 1403 EXPECT_EQ(-1, navigation_manager()->GetIndexOfItem(item_not_found.get())); | 1443 EXPECT_EQ(-1, navigation_manager()->GetIndexOfItem(item_not_found.get())); | 
| 1404 } | 1444 } | 
| 1405 | 1445 | 
| 1406 INSTANTIATE_TEST_CASE_P( | 1446 INSTANTIATE_TEST_CASE_P( | 
| 1407 ProgrammaticNavigationManagerTest, | 1447 ProgrammaticNavigationManagerTest, | 
| 1408 NavigationManagerTest, | 1448 NavigationManagerTest, | 
| 1409 ::testing::Values(true /* test_legacy_navigation_manager */)); | 1449 ::testing::Values(NavigationManagerChoice::TEST_LEGACY_NAVIGATION_MANAGER)); | 
| 1410 | 1450 | 
| 1411 } // namespace web | 1451 } // namespace web | 
| OLD | NEW |