Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Side by Side Diff: ios/web/navigation/navigation_manager_impl_unittest.mm

Issue 2766063002: Remove the concept of currentItemIndex (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 private: 44 private:
45 TestBrowserState browser_state_; 45 TestBrowserState browser_state_;
46 TestNavigationManagerDelegate delegate_; 46 TestNavigationManagerDelegate delegate_;
47 std::unique_ptr<NavigationManagerImpl> manager_; 47 std::unique_ptr<NavigationManagerImpl> manager_;
48 base::scoped_nsobject<CRWSessionController> controller_; 48 base::scoped_nsobject<CRWSessionController> controller_;
49 }; 49 };
50 50
51 // Tests state of an empty navigation manager. 51 // Tests state of an empty navigation manager.
52 TEST_F(NavigationManagerTest, EmptyManager) { 52 TEST_F(NavigationManagerTest, EmptyManager) {
53 EXPECT_EQ(0, navigation_manager()->GetItemCount()); 53 EXPECT_EQ(0, navigation_manager()->GetItemCount());
54 EXPECT_EQ(-1, navigation_manager()->GetCurrentItemIndex()); 54 EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex());
55 EXPECT_EQ(-1, navigation_manager()->GetCurrentItemIndex()); 55 EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex());
56 EXPECT_FALSE(navigation_manager()->GetPendingItem()); 56 EXPECT_FALSE(navigation_manager()->GetPendingItem());
57 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 57 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex());
58 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(0)); 58 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(0));
59 } 59 }
60 60
61 // Tests that GetPendingItemIndex() returns -1 if there is no pending entry. 61 // Tests that GetPendingItemIndex() returns -1 if there is no pending entry.
62 TEST_F(NavigationManagerTest, GetPendingItemIndexWithoutPendingEntry) { 62 TEST_F(NavigationManagerTest, GetPendingItemIndexWithoutPendingEntry) {
63 navigation_manager()->AddPendingItem( 63 navigation_manager()->AddPendingItem(
64 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 64 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
65 web::NavigationInitiationType::USER_INITIATED); 65 web::NavigationInitiationType::USER_INITIATED);
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 navigation_manager()->AddPendingItem( 264 navigation_manager()->AddPendingItem(
265 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK, 265 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK,
266 web::NavigationInitiationType::USER_INITIATED); 266 web::NavigationInitiationType::USER_INITIATED);
267 [session_controller() commitPendingItem]; 267 [session_controller() commitPendingItem];
268 navigation_manager()->AddPendingItem( 268 navigation_manager()->AddPendingItem(
269 GURL("http://www.url.com/redirect"), Referrer(), 269 GURL("http://www.url.com/redirect"), Referrer(),
270 ui::PAGE_TRANSITION_IS_REDIRECT_MASK, 270 ui::PAGE_TRANSITION_IS_REDIRECT_MASK,
271 web::NavigationInitiationType::USER_INITIATED); 271 web::NavigationInitiationType::USER_INITIATED);
272 [session_controller() commitPendingItem]; 272 [session_controller() commitPendingItem];
273 ASSERT_EQ(5, navigation_manager()->GetItemCount()); 273 ASSERT_EQ(5, navigation_manager()->GetItemCount());
274 ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex()); 274 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex());
275 275
276 // Go to entry at index 1 and test API from that state. 276 // Go to entry at index 1 and test API from that state.
277 [session_controller() goToItemAtIndex:1]; 277 [session_controller() goToItemAtIndex:1];
278 ASSERT_EQ(1, navigation_manager()->GetCurrentItemIndex()); 278 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex());
279 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 279 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
280 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 280 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
281 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1)); 281 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1));
282 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); 282 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2));
283 EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2)); 283 EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2));
284 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 284 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
285 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); 285 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1));
286 EXPECT_TRUE(navigation_manager()->CanGoToOffset(2)); 286 EXPECT_TRUE(navigation_manager()->CanGoToOffset(2));
287 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2)); 287 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2));
288 EXPECT_FALSE(navigation_manager()->CanGoToOffset(3)); 288 EXPECT_FALSE(navigation_manager()->CanGoToOffset(3));
289 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3)); 289 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3));
290 // Test with large values. 290 // Test with large values.
291 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); 291 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX));
292 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); 292 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN));
293 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); 293 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000));
294 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); 294 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000));
295 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); 295 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX));
296 EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN)); 296 EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN));
297 EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000)); 297 EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000));
298 EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000)); 298 EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000));
299 299
300 // Go to entry at index 2 and test API from that state. 300 // Go to entry at index 2 and test API from that state.
301 [session_controller() goToItemAtIndex:2]; 301 [session_controller() goToItemAtIndex:2];
302 ASSERT_EQ(2, navigation_manager()->GetCurrentItemIndex()); 302 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex());
303 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 303 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
304 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 304 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
305 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1)); 305 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1));
306 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); 306 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2));
307 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2)); 307 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2));
308 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 308 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
309 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1)); 309 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1));
310 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); 310 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
311 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2)); 311 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2));
312 // Test with large values. 312 // Test with large values.
313 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); 313 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX));
314 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); 314 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN));
315 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); 315 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000));
316 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); 316 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000));
317 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); 317 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX));
318 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); 318 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN));
319 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); 319 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000));
320 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); 320 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000));
321 321
322 // Go to entry at index 4 and test API from that state. 322 // Go to entry at index 4 and test API from that state.
323 [session_controller() goToItemAtIndex:4]; 323 [session_controller() goToItemAtIndex:4];
324 ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex()); 324 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex());
325 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 325 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
326 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 326 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
327 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); 327 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1));
328 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); 328 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2));
329 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); 329 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2));
330 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 330 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
331 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); 331 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1));
332 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); 332 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
333 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); 333 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2));
334 // Test with large values. 334 // Test with large values.
335 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); 335 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX));
336 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); 336 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN));
337 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); 337 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000));
338 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); 338 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000));
339 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); 339 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX));
340 EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN)); 340 EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN));
341 EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000)); 341 EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000));
342 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); 342 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000));
343 343
344 // Test with existing transient entry. 344 // Test with existing transient entry.
345 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; 345 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")];
346 ASSERT_EQ(5, navigation_manager()->GetItemCount()); 346 ASSERT_EQ(5, navigation_manager()->GetItemCount());
347 ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex()); 347 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex());
348 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 348 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
349 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 349 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
350 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1)); 350 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1));
351 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); 351 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2));
352 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2)); 352 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2));
353 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3)); 353 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3));
354 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-3)); 354 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-3));
355 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 355 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
356 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); 356 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1));
357 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); 357 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
358 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); 358 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2));
359 // Test with large values. 359 // Test with large values.
360 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); 360 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX));
361 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); 361 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN));
362 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); 362 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000));
363 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); 363 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000));
364 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); 364 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX));
365 EXPECT_EQ(-2147483645, navigation_manager()->GetIndexForOffset(INT_MIN)); 365 EXPECT_EQ(-2147483645, navigation_manager()->GetIndexForOffset(INT_MIN));
366 EXPECT_EQ(-999999997, navigation_manager()->GetIndexForOffset(-1000000000)); 366 EXPECT_EQ(-999999997, navigation_manager()->GetIndexForOffset(-1000000000));
367 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); 367 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000));
368 368
369 // Now test with pending item index. 369 // Now test with pending item index.
370 [session_controller() discardNonCommittedItems]; 370 [session_controller() discardNonCommittedItems];
371 371
372 // Set pending index to 1 and test API from that state. 372 // Set pending index to 1 and test API from that state.
373 [session_controller() setPendingItemIndex:1]; 373 [session_controller() setPendingItemIndex:1];
374 ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex()); 374 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex());
375 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); 375 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex());
376 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 376 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
377 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1)); 377 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1));
378 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); 378 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2));
379 EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2)); 379 EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2));
380 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 380 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
381 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); 381 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1));
382 EXPECT_TRUE(navigation_manager()->CanGoToOffset(2)); 382 EXPECT_TRUE(navigation_manager()->CanGoToOffset(2));
383 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2)); 383 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2));
384 EXPECT_FALSE(navigation_manager()->CanGoToOffset(3)); 384 EXPECT_FALSE(navigation_manager()->CanGoToOffset(3));
385 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3)); 385 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3));
386 // Test with large values. 386 // Test with large values.
387 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); 387 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX));
388 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); 388 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN));
389 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); 389 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000));
390 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); 390 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000));
391 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); 391 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX));
392 EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN)); 392 EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN));
393 EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000)); 393 EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000));
394 EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000)); 394 EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000));
395 395
396 // Set pending index to 2 and test API from that state. 396 // Set pending index to 2 and test API from that state.
397 [session_controller() setPendingItemIndex:2]; 397 [session_controller() setPendingItemIndex:2];
398 ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex()); 398 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex());
399 ASSERT_EQ(2, navigation_manager()->GetPendingItemIndex()); 399 ASSERT_EQ(2, navigation_manager()->GetPendingItemIndex());
400 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 400 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
401 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1)); 401 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1));
402 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); 402 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2));
403 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2)); 403 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2));
404 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 404 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
405 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1)); 405 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1));
406 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); 406 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
407 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2)); 407 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2));
408 // Test with large values. 408 // Test with large values.
409 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); 409 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX));
410 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); 410 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN));
411 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); 411 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000));
412 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); 412 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000));
413 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); 413 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX));
414 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); 414 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN));
415 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); 415 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000));
416 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); 416 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000));
417 417
418 // Set pending index to 4 and committed entry to 1 and test. 418 // Set pending index to 4 and committed entry to 1 and test.
419 [session_controller() goToItemAtIndex:1]; 419 [session_controller() goToItemAtIndex:1];
420 [session_controller() setPendingItemIndex:4]; 420 [session_controller() setPendingItemIndex:4];
421 ASSERT_EQ(1, navigation_manager()->GetCurrentItemIndex()); 421 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex());
422 ASSERT_EQ(4, navigation_manager()->GetPendingItemIndex()); 422 ASSERT_EQ(4, navigation_manager()->GetPendingItemIndex());
423 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 423 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
424 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); 424 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1));
425 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); 425 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2));
426 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); 426 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2));
427 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 427 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
428 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); 428 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1));
429 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); 429 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
430 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); 430 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2));
431 // Test with large values. 431 // Test with large values.
432 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); 432 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX));
433 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); 433 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN));
434 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); 434 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000));
435 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); 435 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000));
436 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); 436 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX));
437 EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN)); 437 EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN));
438 EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000)); 438 EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000));
439 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); 439 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000));
440 440
441 // Test with existing transient entry in the end of the stack. 441 // Test with existing transient entry in the end of the stack.
442 [session_controller() goToItemAtIndex:4]; 442 [session_controller() goToItemAtIndex:4];
443 [session_controller() setPendingItemIndex:-1]; 443 [session_controller() setPendingItemIndex:-1];
444 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; 444 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")];
445 ASSERT_EQ(5, navigation_manager()->GetItemCount()); 445 ASSERT_EQ(5, navigation_manager()->GetItemCount());
446 ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex()); 446 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex());
447 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 447 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
448 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 448 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
449 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1)); 449 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1));
450 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); 450 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2));
451 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2)); 451 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2));
452 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3)); 452 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3));
453 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-3)); 453 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-3));
454 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 454 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
455 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); 455 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1));
456 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); 456 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
(...skipping 24 matching lines...) Expand all
481 web::NavigationInitiationType::USER_INITIATED); 481 web::NavigationInitiationType::USER_INITIATED);
482 [session_controller() commitPendingItem]; 482 [session_controller() commitPendingItem];
483 navigation_manager()->AddPendingItem( 483 navigation_manager()->AddPendingItem(
484 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK, 484 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK,
485 web::NavigationInitiationType::USER_INITIATED); 485 web::NavigationInitiationType::USER_INITIATED);
486 [session_controller() commitPendingItem]; 486 [session_controller() commitPendingItem];
487 [session_controller() addTransientItemWithURL:GURL("http://www.url.com/1")]; 487 [session_controller() addTransientItemWithURL:GURL("http://www.url.com/1")];
488 [session_controller() setPendingItemIndex:1]; 488 [session_controller() setPendingItemIndex:1];
489 489
490 ASSERT_EQ(3, navigation_manager()->GetItemCount()); 490 ASSERT_EQ(3, navigation_manager()->GetItemCount());
491 ASSERT_EQ(2, navigation_manager()->GetCurrentItemIndex()); 491 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex());
492 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); 492 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex());
493 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); 493 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1));
494 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); 494 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1));
495 495
496 // Now go forward to that middle transient item (pending index is 1, 496 // Now go forward to that middle transient item (pending index is 1,
497 // current index is 0). 497 // current index is 0).
498 [session_controller() goToItemAtIndex:0]; 498 [session_controller() goToItemAtIndex:0];
499 [session_controller() setPendingItemIndex:1]; 499 [session_controller() setPendingItemIndex:1];
500 ASSERT_EQ(3, navigation_manager()->GetItemCount()); 500 ASSERT_EQ(3, navigation_manager()->GetItemCount());
501 ASSERT_EQ(0, navigation_manager()->GetCurrentItemIndex()); 501 ASSERT_EQ(0, navigation_manager()->GetLastCommittedItemIndex());
502 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); 502 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex());
503 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); 503 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1));
504 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); 504 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1));
505 } 505 }
506 506
507 // Tests that desktop user agent can be enforced to use for next pending item. 507 // Tests that desktop user agent can be enforced to use for next pending item.
508 TEST_F(NavigationManagerTest, OverrideDesktopUserAgent) { 508 TEST_F(NavigationManagerTest, OverrideDesktopUserAgent) {
509 navigation_manager()->OverrideDesktopUserAgentForNextPendingItem(); 509 navigation_manager()->OverrideDesktopUserAgentForNextPendingItem();
510 navigation_manager()->AddPendingItem( 510 navigation_manager()->AddPendingItem(
511 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 511 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 608
609 GURL url_before_reload = navigation_manager()->GetVisibleItem()->GetURL(); 609 GURL url_before_reload = navigation_manager()->GetVisibleItem()->GetURL();
610 navigation_manager()->Reload(web::ReloadType::NORMAL, 610 navigation_manager()->Reload(web::ReloadType::NORMAL,
611 false /* check_for_repost */); 611 false /* check_for_repost */);
612 612
613 EXPECT_EQ(url_before_reload, 613 EXPECT_EQ(url_before_reload,
614 navigation_manager()->GetVisibleItem()->GetURL()); 614 navigation_manager()->GetVisibleItem()->GetURL());
615 } 615 }
616 616
617 } // namespace web 617 } // namespace web
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698