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