| 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 #import "base/mac/scoped_nsobject.h" | 8 #import "base/mac/scoped_nsobject.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/navigation_manager_delegate.h" | 10 #import "ios/web/navigation/navigation_manager_delegate.h" |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 [session_controller() commitPendingItem]; | 169 [session_controller() commitPendingItem]; |
| 170 navigation_manager()->AddPendingItem( | 170 navigation_manager()->AddPendingItem( |
| 171 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 171 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| 172 web::NavigationInitiationType::USER_INITIATED, | 172 web::NavigationInitiationType::USER_INITIATED, |
| 173 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 173 web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| 174 [session_controller() commitPendingItem]; | 174 [session_controller() commitPendingItem]; |
| 175 | 175 |
| 176 EXPECT_TRUE(navigation_manager()->CanGoBack()); | 176 EXPECT_TRUE(navigation_manager()->CanGoBack()); |
| 177 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 177 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |
| 178 | 178 |
| 179 [session_controller() goToItemAtIndex:1]; | 179 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| 180 EXPECT_TRUE(navigation_manager()->CanGoBack()); | 180 EXPECT_TRUE(navigation_manager()->CanGoBack()); |
| 181 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 181 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |
| 182 | 182 |
| 183 [session_controller() goToItemAtIndex:0]; | 183 [session_controller() goToItemAtIndex:0 discardNonCommittedItems:NO]; |
| 184 EXPECT_FALSE(navigation_manager()->CanGoBack()); | 184 EXPECT_FALSE(navigation_manager()->CanGoBack()); |
| 185 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 185 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); |
| 186 | 186 |
| 187 [session_controller() goToItemAtIndex:1]; | 187 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| 188 EXPECT_TRUE(navigation_manager()->CanGoBack()); | 188 EXPECT_TRUE(navigation_manager()->CanGoBack()); |
| 189 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 189 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |
| 190 } | 190 } |
| 191 | 191 |
| 192 // Tests that going forward or positive offset is not possible without a | 192 // Tests that going forward or positive offset is not possible without a |
| 193 // committed item. | 193 // committed item. |
| 194 TEST_F(NavigationManagerTest, CanGoForwardWithoutCommitedItem) { | 194 TEST_F(NavigationManagerTest, CanGoForwardWithoutCommitedItem) { |
| 195 EXPECT_FALSE(navigation_manager()->CanGoForward()); | 195 EXPECT_FALSE(navigation_manager()->CanGoForward()); |
| 196 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 196 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |
| 197 } | 197 } |
| (...skipping 25 matching lines...) Expand all Loading... |
| 223 [session_controller() commitPendingItem]; | 223 [session_controller() commitPendingItem]; |
| 224 navigation_manager()->AddPendingItem( | 224 navigation_manager()->AddPendingItem( |
| 225 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 225 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| 226 web::NavigationInitiationType::USER_INITIATED, | 226 web::NavigationInitiationType::USER_INITIATED, |
| 227 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 227 web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| 228 [session_controller() commitPendingItem]; | 228 [session_controller() commitPendingItem]; |
| 229 | 229 |
| 230 EXPECT_FALSE(navigation_manager()->CanGoForward()); | 230 EXPECT_FALSE(navigation_manager()->CanGoForward()); |
| 231 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 231 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |
| 232 | 232 |
| 233 [session_controller() goToItemAtIndex:1]; | 233 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| 234 EXPECT_TRUE(navigation_manager()->CanGoForward()); | 234 EXPECT_TRUE(navigation_manager()->CanGoForward()); |
| 235 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 235 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); |
| 236 | 236 |
| 237 [session_controller() goToItemAtIndex:0]; | 237 [session_controller() goToItemAtIndex:0 discardNonCommittedItems:NO]; |
| 238 EXPECT_TRUE(navigation_manager()->CanGoForward()); | 238 EXPECT_TRUE(navigation_manager()->CanGoForward()); |
| 239 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 239 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); |
| 240 | 240 |
| 241 [session_controller() goToItemAtIndex:1]; | 241 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| 242 EXPECT_TRUE(navigation_manager()->CanGoForward()); | 242 EXPECT_TRUE(navigation_manager()->CanGoForward()); |
| 243 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 243 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); |
| 244 | 244 |
| 245 [session_controller() goToItemAtIndex:2]; | 245 [session_controller() goToItemAtIndex:2 discardNonCommittedItems:NO]; |
| 246 EXPECT_FALSE(navigation_manager()->CanGoForward()); | 246 EXPECT_FALSE(navigation_manager()->CanGoForward()); |
| 247 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 247 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |
| 248 } | 248 } |
| 249 | 249 |
| 250 // Tests CanGoToOffset API for positive, negative and zero delta. Tested | 250 // Tests CanGoToOffset API for positive, negative and zero delta. Tested |
| 251 // navigation manager will have redirect entries to make sure they are | 251 // navigation manager will have redirect entries to make sure they are |
| 252 // appropriately skipped. | 252 // appropriately skipped. |
| 253 TEST_F(NavigationManagerTest, OffsetsWithoutPendingIndex) { | 253 TEST_F(NavigationManagerTest, OffsetsWithoutPendingIndex) { |
| 254 navigation_manager()->AddPendingItem( | 254 navigation_manager()->AddPendingItem( |
| 255 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, | 255 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, |
| (...skipping 19 matching lines...) Expand all Loading... |
| 275 navigation_manager()->AddPendingItem( | 275 navigation_manager()->AddPendingItem( |
| 276 GURL("http://www.url.com/redirect"), Referrer(), | 276 GURL("http://www.url.com/redirect"), Referrer(), |
| 277 ui::PAGE_TRANSITION_CLIENT_REDIRECT, | 277 ui::PAGE_TRANSITION_CLIENT_REDIRECT, |
| 278 web::NavigationInitiationType::USER_INITIATED, | 278 web::NavigationInitiationType::USER_INITIATED, |
| 279 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 279 web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| 280 [session_controller() commitPendingItem]; | 280 [session_controller() commitPendingItem]; |
| 281 ASSERT_EQ(5, navigation_manager()->GetItemCount()); | 281 ASSERT_EQ(5, navigation_manager()->GetItemCount()); |
| 282 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 282 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); |
| 283 | 283 |
| 284 // Go to entry at index 1 and test API from that state. | 284 // Go to entry at index 1 and test API from that state. |
| 285 [session_controller() goToItemAtIndex:1]; | 285 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| 286 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 286 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); |
| 287 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 287 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |
| 288 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 288 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); |
| 289 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1)); | 289 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1)); |
| 290 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); | 290 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); |
| 291 EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2)); | 291 EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2)); |
| 292 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 292 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); |
| 293 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); | 293 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); |
| 294 EXPECT_TRUE(navigation_manager()->CanGoToOffset(2)); | 294 EXPECT_TRUE(navigation_manager()->CanGoToOffset(2)); |
| 295 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2)); | 295 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2)); |
| 296 EXPECT_FALSE(navigation_manager()->CanGoToOffset(3)); | 296 EXPECT_FALSE(navigation_manager()->CanGoToOffset(3)); |
| 297 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3)); | 297 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3)); |
| 298 // Test with large values. | 298 // Test with large values. |
| 299 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 299 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); |
| 300 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 300 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); |
| 301 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 301 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); |
| 302 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 302 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); |
| 303 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 303 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); |
| 304 EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN)); | 304 EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN)); |
| 305 EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000)); | 305 EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000)); |
| 306 EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000)); | 306 EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000)); |
| 307 | 307 |
| 308 // Go to entry at index 2 and test API from that state. | 308 // Go to entry at index 2 and test API from that state. |
| 309 [session_controller() goToItemAtIndex:2]; | 309 [session_controller() goToItemAtIndex:2 discardNonCommittedItems:NO]; |
| 310 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); | 310 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); |
| 311 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 311 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |
| 312 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 312 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |
| 313 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1)); | 313 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1)); |
| 314 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); | 314 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); |
| 315 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2)); | 315 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2)); |
| 316 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 316 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); |
| 317 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1)); | 317 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1)); |
| 318 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 318 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); |
| 319 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2)); | 319 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2)); |
| 320 // Test with large values. | 320 // Test with large values. |
| 321 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 321 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); |
| 322 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 322 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); |
| 323 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 323 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); |
| 324 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 324 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); |
| 325 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 325 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); |
| 326 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); | 326 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); |
| 327 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); | 327 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); |
| 328 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); | 328 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); |
| 329 | 329 |
| 330 // Go to entry at index 4 and test API from that state. | 330 // Go to entry at index 4 and test API from that state. |
| 331 [session_controller() goToItemAtIndex:4]; | 331 [session_controller() goToItemAtIndex:4 discardNonCommittedItems:NO]; |
| 332 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 332 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); |
| 333 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 333 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |
| 334 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 334 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |
| 335 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); | 335 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); |
| 336 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); | 336 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); |
| 337 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); | 337 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); |
| 338 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 338 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |
| 339 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); | 339 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); |
| 340 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 340 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); |
| 341 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); | 341 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 417 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 417 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); |
| 418 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 418 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); |
| 419 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 419 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); |
| 420 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 420 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); |
| 421 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 421 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); |
| 422 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); | 422 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); |
| 423 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); | 423 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); |
| 424 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); | 424 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); |
| 425 | 425 |
| 426 // Set pending index to 4 and committed entry to 1 and test. | 426 // Set pending index to 4 and committed entry to 1 and test. |
| 427 [session_controller() goToItemAtIndex:1]; | 427 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| 428 [session_controller() setPendingItemIndex:4]; | 428 [session_controller() setPendingItemIndex:4]; |
| 429 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 429 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); |
| 430 ASSERT_EQ(4, navigation_manager()->GetPendingItemIndex()); | 430 ASSERT_EQ(4, navigation_manager()->GetPendingItemIndex()); |
| 431 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 431 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |
| 432 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); | 432 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); |
| 433 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); | 433 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); |
| 434 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); | 434 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); |
| 435 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 435 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |
| 436 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); | 436 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); |
| 437 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 437 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); |
| 438 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); | 438 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); |
| 439 // Test with large values. | 439 // Test with large values. |
| 440 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 440 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); |
| 441 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 441 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); |
| 442 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 442 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); |
| 443 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 443 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); |
| 444 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 444 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); |
| 445 EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN)); | 445 EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN)); |
| 446 EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000)); | 446 EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000)); |
| 447 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); | 447 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); |
| 448 | 448 |
| 449 // Test with existing transient entry in the end of the stack. | 449 // Test with existing transient entry in the end of the stack. |
| 450 [session_controller() goToItemAtIndex:4]; | 450 [session_controller() goToItemAtIndex:4 discardNonCommittedItems:NO]; |
| 451 [session_controller() setPendingItemIndex:-1]; | 451 [session_controller() setPendingItemIndex:-1]; |
| 452 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; | 452 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; |
| 453 ASSERT_EQ(5, navigation_manager()->GetItemCount()); | 453 ASSERT_EQ(5, navigation_manager()->GetItemCount()); |
| 454 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 454 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); |
| 455 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 455 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |
| 456 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 456 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |
| 457 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1)); | 457 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1)); |
| 458 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); | 458 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); |
| 459 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2)); | 459 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2)); |
| 460 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3)); | 460 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3)); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 499 [session_controller() setPendingItemIndex:1]; | 499 [session_controller() setPendingItemIndex:1]; |
| 500 | 500 |
| 501 ASSERT_EQ(3, navigation_manager()->GetItemCount()); | 501 ASSERT_EQ(3, navigation_manager()->GetItemCount()); |
| 502 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); | 502 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); |
| 503 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); | 503 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); |
| 504 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); | 504 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); |
| 505 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); | 505 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); |
| 506 | 506 |
| 507 // Now go forward to that middle transient item (pending index is 1, | 507 // Now go forward to that middle transient item (pending index is 1, |
| 508 // current index is 0). | 508 // current index is 0). |
| 509 [session_controller() goToItemAtIndex:0]; | 509 [session_controller() goToItemAtIndex:0 discardNonCommittedItems:NO]; |
| 510 [session_controller() setPendingItemIndex:1]; | 510 [session_controller() setPendingItemIndex:1]; |
| 511 ASSERT_EQ(3, navigation_manager()->GetItemCount()); | 511 ASSERT_EQ(3, navigation_manager()->GetItemCount()); |
| 512 ASSERT_EQ(0, navigation_manager()->GetLastCommittedItemIndex()); | 512 ASSERT_EQ(0, navigation_manager()->GetLastCommittedItemIndex()); |
| 513 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); | 513 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); |
| 514 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); | 514 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); |
| 515 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); | 515 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); |
| 516 } | 516 } |
| 517 | 517 |
| 518 // Tests that when given a pending item, adding a new pending item replaces the | 518 // Tests that when given a pending item, adding a new pending item replaces the |
| 519 // existing pending item if their URLs are different. | 519 // existing pending item if their URLs are different. |
| (...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1152 web::NavigationInitiationType::USER_INITIATED, | 1152 web::NavigationInitiationType::USER_INITIATED, |
| 1153 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1153 web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| 1154 [session_controller() commitPendingItem]; | 1154 [session_controller() commitPendingItem]; |
| 1155 | 1155 |
| 1156 navigation_manager()->AddPendingItem( | 1156 navigation_manager()->AddPendingItem( |
| 1157 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1157 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| 1158 web::NavigationInitiationType::USER_INITIATED, | 1158 web::NavigationInitiationType::USER_INITIATED, |
| 1159 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1159 web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| 1160 [session_controller() commitPendingItem]; | 1160 [session_controller() commitPendingItem]; |
| 1161 | 1161 |
| 1162 [session_controller() goToItemAtIndex:1]; | 1162 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| 1163 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 1163 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); |
| 1164 | 1164 |
| 1165 navigation_manager()->Reload(web::ReloadType::NORMAL, | 1165 navigation_manager()->Reload(web::ReloadType::NORMAL, |
| 1166 false /* check_for_repost */); | 1166 false /* check_for_repost */); |
| 1167 EXPECT_TRUE(navigation_manager_delegate().reload_called()); | 1167 EXPECT_TRUE(navigation_manager_delegate().reload_called()); |
| 1168 | 1168 |
| 1169 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 1169 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |
| 1170 EXPECT_EQ(url_before_reload, | 1170 EXPECT_EQ(url_before_reload, |
| 1171 navigation_manager()->GetLastCommittedItem()->GetURL()); | 1171 navigation_manager()->GetLastCommittedItem()->GetURL()); |
| 1172 } | 1172 } |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1280 navigation_manager()->GetPendingItem()->SetOriginalRequestURL( | 1280 navigation_manager()->GetPendingItem()->SetOriginalRequestURL( |
| 1281 expected_original_url); | 1281 expected_original_url); |
| 1282 [session_controller() commitPendingItem]; | 1282 [session_controller() commitPendingItem]; |
| 1283 | 1283 |
| 1284 navigation_manager()->AddPendingItem( | 1284 navigation_manager()->AddPendingItem( |
| 1285 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 1285 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, |
| 1286 web::NavigationInitiationType::USER_INITIATED, | 1286 web::NavigationInitiationType::USER_INITIATED, |
| 1287 web::NavigationManager::UserAgentOverrideOption::INHERIT); | 1287 web::NavigationManager::UserAgentOverrideOption::INHERIT); |
| 1288 [session_controller() commitPendingItem]; | 1288 [session_controller() commitPendingItem]; |
| 1289 | 1289 |
| 1290 [session_controller() goToItemAtIndex:1]; | 1290 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| 1291 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 1291 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); |
| 1292 | 1292 |
| 1293 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, | 1293 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, |
| 1294 false /* check_for_repost */); | 1294 false /* check_for_repost */); |
| 1295 EXPECT_TRUE(navigation_manager_delegate().reload_called()); | 1295 EXPECT_TRUE(navigation_manager_delegate().reload_called()); |
| 1296 | 1296 |
| 1297 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 1297 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |
| 1298 EXPECT_EQ(expected_original_url, | 1298 EXPECT_EQ(expected_original_url, |
| 1299 navigation_manager()->GetLastCommittedItem()->GetURL()); | 1299 navigation_manager()->GetLastCommittedItem()->GetURL()); |
| 1300 } | 1300 } |
| 1301 | 1301 |
| 1302 } // namespace web | 1302 } // namespace web |
| OLD | NEW |