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