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 |