| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/crw_session_controller.h" | 5 #import "ios/web/navigation/crw_session_controller.h" |
| 6 | 6 |
| 7 #import <Foundation/Foundation.h> | 7 #import <Foundation/Foundation.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 DCHECK([self currentEntry]); | 40 DCHECK([self currentEntry]); |
| 41 return [self currentEntry].navigationItem->GetURL(); | 41 return [self currentEntry].navigationItem->GetURL(); |
| 42 } | 42 } |
| 43 @end | 43 @end |
| 44 | 44 |
| 45 namespace { | 45 namespace { |
| 46 | 46 |
| 47 class CRWSessionControllerTest : public PlatformTest { | 47 class CRWSessionControllerTest : public PlatformTest { |
| 48 protected: | 48 protected: |
| 49 void SetUp() override { | 49 void SetUp() override { |
| 50 session_controller_.reset( | 50 session_controller_.reset([[CRWSessionController alloc] |
| 51 [[CRWSessionController alloc] initWithWindowName:@"test window" | 51 initWithBrowserState:&browser_state_ |
| 52 openedByDOM:NO | 52 openedByDOM:NO]); |
| 53 browserState:&browser_state_]); | |
| 54 } | 53 } |
| 55 | 54 |
| 56 web::Referrer MakeReferrer(const std::string& url) { | 55 web::Referrer MakeReferrer(const std::string& url) { |
| 57 return web::Referrer(GURL(url), web::ReferrerPolicyDefault); | 56 return web::Referrer(GURL(url), web::ReferrerPolicyDefault); |
| 58 } | 57 } |
| 59 | 58 |
| 60 web::TestWebThreadBundle thread_bundle_; | 59 web::TestWebThreadBundle thread_bundle_; |
| 61 web::TestBrowserState browser_state_; | 60 web::TestBrowserState browser_state_; |
| 62 base::scoped_nsobject<CRWSessionController> session_controller_; | 61 base::scoped_nsobject<CRWSessionController> session_controller_; |
| 63 }; | 62 }; |
| 64 | 63 |
| 65 TEST_F(CRWSessionControllerTest, InitWithWindowName) { | 64 TEST_F(CRWSessionControllerTest, Init) { |
| 66 EXPECT_NSEQ(@"test window", [session_controller_ windowName]); | |
| 67 EXPECT_FALSE([session_controller_ isOpenedByDOM]); | 65 EXPECT_FALSE([session_controller_ isOpenedByDOM]); |
| 68 EXPECT_EQ(0U, [[session_controller_ entries] count]); | 66 EXPECT_EQ(0U, [[session_controller_ entries] count]); |
| 69 EXPECT_EQ(nil, [session_controller_ currentEntry]); | 67 EXPECT_EQ(nil, [session_controller_ currentEntry]); |
| 70 } | 68 } |
| 71 | 69 |
| 72 // Tests session controller state after setting a pending index. | 70 // Tests session controller state after setting a pending index. |
| 73 TEST_F(CRWSessionControllerTest, SetPendingIndex) { | 71 TEST_F(CRWSessionControllerTest, SetPendingIndex) { |
| 74 [session_controller_ | 72 [session_controller_ |
| 75 addPendingItem:GURL("http://www.example.com") | 73 addPendingItem:GURL("http://www.example.com") |
| 76 referrer:web::Referrer() | 74 referrer:web::Referrer() |
| (...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 503 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 501 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 504 [session_controller_ commitPendingItem]; | 502 [session_controller_ commitPendingItem]; |
| 505 [session_controller_ | 503 [session_controller_ |
| 506 addPendingItem:GURL("http://www.url.com/3") | 504 addPendingItem:GURL("http://www.url.com/3") |
| 507 referrer:web::Referrer() | 505 referrer:web::Referrer() |
| 508 transition:ui::PAGE_TRANSITION_TYPED | 506 transition:ui::PAGE_TRANSITION_TYPED |
| 509 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 507 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 510 | 508 |
| 511 // Create source session controller with 1 committed entry. | 509 // Create source session controller with 1 committed entry. |
| 512 base::scoped_nsobject<CRWSessionController> other_session_controller( | 510 base::scoped_nsobject<CRWSessionController> other_session_controller( |
| 513 [[CRWSessionController alloc] initWithWindowName:nil | 511 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ |
| 514 openedByDOM:NO | 512 openedByDOM:NO]); |
| 515 browserState:&browser_state_]); | |
| 516 [other_session_controller setWindowName:@"test-window"]; | |
| 517 [other_session_controller | 513 [other_session_controller |
| 518 addPendingItem:GURL("http://www.url.com/0") | 514 addPendingItem:GURL("http://www.url.com/0") |
| 519 referrer:web::Referrer() | 515 referrer:web::Referrer() |
| 520 transition:ui::PAGE_TRANSITION_TYPED | 516 transition:ui::PAGE_TRANSITION_TYPED |
| 521 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 517 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 522 [other_session_controller commitPendingItem]; | 518 [other_session_controller commitPendingItem]; |
| 523 [other_session_controller | 519 [other_session_controller |
| 524 addPendingItem:GURL("http://www.url.com/1") | 520 addPendingItem:GURL("http://www.url.com/1") |
| 525 referrer:web::Referrer() | 521 referrer:web::Referrer() |
| 526 transition:ui::PAGE_TRANSITION_TYPED | 522 transition:ui::PAGE_TRANSITION_TYPED |
| 527 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 523 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 528 | 524 |
| 529 // Insert and verify the state of target session controller. | 525 // Insert and verify the state of target session controller. |
| 530 [session_controller_ | 526 [session_controller_ |
| 531 insertStateFromSessionController:other_session_controller.get()]; | 527 insertStateFromSessionController:other_session_controller.get()]; |
| 532 | 528 |
| 533 EXPECT_NSEQ(@"test-window", [session_controller_ windowName]); | |
| 534 EXPECT_EQ(2U, [[session_controller_ entries] count]); | 529 EXPECT_EQ(2U, [[session_controller_ entries] count]); |
| 535 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]); | 530 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]); |
| 536 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]); | 531 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]); |
| 537 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); | 532 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); |
| 538 | 533 |
| 539 EXPECT_EQ(GURL("http://www.url.com/0"), | 534 EXPECT_EQ(GURL("http://www.url.com/0"), |
| 540 [session_controller_ URLForSessionAtIndex:0]); | 535 [session_controller_ URLForSessionAtIndex:0]); |
| 541 EXPECT_EQ(GURL("http://www.url.com/2"), | 536 EXPECT_EQ(GURL("http://www.url.com/2"), |
| 542 [session_controller_ URLForSessionAtIndex:1]); | 537 [session_controller_ URLForSessionAtIndex:1]); |
| 543 EXPECT_EQ(GURL("http://www.url.com/3"), | 538 EXPECT_EQ(GURL("http://www.url.com/3"), |
| (...skipping 11 matching lines...) Expand all Loading... |
| 555 [session_controller_ commitPendingItem]; | 550 [session_controller_ commitPendingItem]; |
| 556 [session_controller_ | 551 [session_controller_ |
| 557 addPendingItem:GURL("http://www.url.com/1") | 552 addPendingItem:GURL("http://www.url.com/1") |
| 558 referrer:web::Referrer() | 553 referrer:web::Referrer() |
| 559 transition:ui::PAGE_TRANSITION_TYPED | 554 transition:ui::PAGE_TRANSITION_TYPED |
| 560 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 555 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 561 [session_controller_ commitPendingItem]; | 556 [session_controller_ commitPendingItem]; |
| 562 | 557 |
| 563 // Create empty source session controller. | 558 // Create empty source session controller. |
| 564 base::scoped_nsobject<CRWSessionController> other_session_controller( | 559 base::scoped_nsobject<CRWSessionController> other_session_controller( |
| 565 [[CRWSessionController alloc] initWithWindowName:nil | 560 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ |
| 566 openedByDOM:NO | 561 openedByDOM:NO]); |
| 567 browserState:&browser_state_]); | |
| 568 [other_session_controller setWindowName:@"test-window"]; | |
| 569 | 562 |
| 570 // Insert and verify the state of target session controller. | 563 // Insert and verify the state of target session controller. |
| 571 [session_controller_ | 564 [session_controller_ |
| 572 insertStateFromSessionController:other_session_controller.get()]; | 565 insertStateFromSessionController:other_session_controller.get()]; |
| 573 | |
| 574 EXPECT_NSEQ(@"test-window", [session_controller_ windowName]); | |
| 575 EXPECT_EQ(2U, [[session_controller_ entries] count]); | 566 EXPECT_EQ(2U, [[session_controller_ entries] count]); |
| 576 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]); | 567 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]); |
| 577 EXPECT_EQ(0, [session_controller_ previousNavigationIndex]); | 568 EXPECT_EQ(0, [session_controller_ previousNavigationIndex]); |
| 578 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); | 569 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); |
| 579 EXPECT_FALSE([session_controller_ pendingEntry]); | 570 EXPECT_FALSE([session_controller_ pendingEntry]); |
| 580 EXPECT_EQ(GURL("http://www.url.com/0"), | 571 EXPECT_EQ(GURL("http://www.url.com/0"), |
| 581 [session_controller_ URLForSessionAtIndex:0]); | 572 [session_controller_ URLForSessionAtIndex:0]); |
| 582 EXPECT_EQ(GURL("http://www.url.com/1"), | 573 EXPECT_EQ(GURL("http://www.url.com/1"), |
| 583 [session_controller_ URLForSessionAtIndex:1]); | 574 [session_controller_ URLForSessionAtIndex:1]); |
| 584 } | 575 } |
| 585 | 576 |
| 586 // Tests inserting session controller state to empty session controller. | 577 // Tests inserting session controller state to empty session controller. |
| 587 TEST_F(CRWSessionControllerTest, InsertStateToEmptySessionController) { | 578 TEST_F(CRWSessionControllerTest, InsertStateToEmptySessionController) { |
| 588 // Create source session controller with 2 committed entries and one | 579 // Create source session controller with 2 committed entries and one |
| 589 // pending entry. | 580 // pending entry. |
| 590 base::scoped_nsobject<CRWSessionController> other_session_controller( | 581 base::scoped_nsobject<CRWSessionController> other_session_controller( |
| 591 [[CRWSessionController alloc] initWithWindowName:nil | 582 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ |
| 592 openedByDOM:NO | 583 openedByDOM:NO]); |
| 593 browserState:&browser_state_]); | |
| 594 [other_session_controller setWindowName:@"test-window"]; | |
| 595 [other_session_controller | 584 [other_session_controller |
| 596 addPendingItem:GURL("http://www.url.com/0") | 585 addPendingItem:GURL("http://www.url.com/0") |
| 597 referrer:web::Referrer() | 586 referrer:web::Referrer() |
| 598 transition:ui::PAGE_TRANSITION_TYPED | 587 transition:ui::PAGE_TRANSITION_TYPED |
| 599 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 588 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 600 [other_session_controller commitPendingItem]; | 589 [other_session_controller commitPendingItem]; |
| 601 [other_session_controller | 590 [other_session_controller |
| 602 addPendingItem:GURL("http://www.url.com/1") | 591 addPendingItem:GURL("http://www.url.com/1") |
| 603 referrer:web::Referrer() | 592 referrer:web::Referrer() |
| 604 transition:ui::PAGE_TRANSITION_TYPED | 593 transition:ui::PAGE_TRANSITION_TYPED |
| 605 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 594 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 606 [other_session_controller commitPendingItem]; | 595 [other_session_controller commitPendingItem]; |
| 607 [other_session_controller | 596 [other_session_controller |
| 608 addPendingItem:GURL("http://www.url.com/2") | 597 addPendingItem:GURL("http://www.url.com/2") |
| 609 referrer:web::Referrer() | 598 referrer:web::Referrer() |
| 610 transition:ui::PAGE_TRANSITION_TYPED | 599 transition:ui::PAGE_TRANSITION_TYPED |
| 611 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 600 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 612 | 601 |
| 613 // Insert and verify the state of target session controller. | 602 // Insert and verify the state of target session controller. |
| 614 [session_controller_ | 603 [session_controller_ |
| 615 insertStateFromSessionController:other_session_controller.get()]; | 604 insertStateFromSessionController:other_session_controller.get()]; |
| 616 | 605 |
| 617 EXPECT_NSEQ(@"test-window", [session_controller_ windowName]); | |
| 618 EXPECT_EQ(2U, [[session_controller_ entries] count]); | 606 EXPECT_EQ(2U, [[session_controller_ entries] count]); |
| 619 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]); | 607 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]); |
| 620 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]); | 608 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]); |
| 621 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); | 609 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); |
| 622 EXPECT_FALSE([session_controller_ pendingEntry]); | 610 EXPECT_FALSE([session_controller_ pendingEntry]); |
| 623 EXPECT_EQ(GURL("http://www.url.com/0"), | 611 EXPECT_EQ(GURL("http://www.url.com/0"), |
| 624 [session_controller_ URLForSessionAtIndex:0]); | 612 [session_controller_ URLForSessionAtIndex:0]); |
| 625 EXPECT_EQ(GURL("http://www.url.com/1"), | 613 EXPECT_EQ(GURL("http://www.url.com/1"), |
| 626 [session_controller_ URLForSessionAtIndex:1]); | 614 [session_controller_ URLForSessionAtIndex:1]); |
| 627 } | 615 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 640 [session_controller_ | 628 [session_controller_ |
| 641 addPendingItem:GURL("http://www.url.com/3") | 629 addPendingItem:GURL("http://www.url.com/3") |
| 642 referrer:web::Referrer() | 630 referrer:web::Referrer() |
| 643 transition:ui::PAGE_TRANSITION_TYPED | 631 transition:ui::PAGE_TRANSITION_TYPED |
| 644 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 632 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 645 [session_controller_ commitPendingItem]; | 633 [session_controller_ commitPendingItem]; |
| 646 [session_controller_ setPendingItemIndex:0]; | 634 [session_controller_ setPendingItemIndex:0]; |
| 647 | 635 |
| 648 // Create source session controller with 1 committed entry. | 636 // Create source session controller with 1 committed entry. |
| 649 base::scoped_nsobject<CRWSessionController> other_session_controller( | 637 base::scoped_nsobject<CRWSessionController> other_session_controller( |
| 650 [[CRWSessionController alloc] initWithWindowName:nil | 638 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ |
| 651 openedByDOM:NO | 639 openedByDOM:NO]); |
| 652 browserState:&browser_state_]); | |
| 653 [other_session_controller setWindowName:@"test-window"]; | |
| 654 [other_session_controller | 640 [other_session_controller |
| 655 addPendingItem:GURL("http://www.url.com/0") | 641 addPendingItem:GURL("http://www.url.com/0") |
| 656 referrer:web::Referrer() | 642 referrer:web::Referrer() |
| 657 transition:ui::PAGE_TRANSITION_TYPED | 643 transition:ui::PAGE_TRANSITION_TYPED |
| 658 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 644 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 659 [other_session_controller commitPendingItem]; | 645 [other_session_controller commitPendingItem]; |
| 660 | 646 |
| 661 // Insert and verify the state of target session controller. | 647 // Insert and verify the state of target session controller. |
| 662 [session_controller_ | 648 [session_controller_ |
| 663 insertStateFromSessionController:other_session_controller.get()]; | 649 insertStateFromSessionController:other_session_controller.get()]; |
| 664 | 650 |
| 665 EXPECT_NSEQ(@"test-window", [session_controller_ windowName]); | |
| 666 EXPECT_EQ(3U, [[session_controller_ entries] count]); | 651 EXPECT_EQ(3U, [[session_controller_ entries] count]); |
| 667 EXPECT_EQ(2, [session_controller_ currentNavigationIndex]); | 652 EXPECT_EQ(2, [session_controller_ currentNavigationIndex]); |
| 668 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]); | 653 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]); |
| 669 EXPECT_EQ(1, [session_controller_ pendingItemIndex]); | 654 EXPECT_EQ(1, [session_controller_ pendingItemIndex]); |
| 670 EXPECT_EQ(GURL("http://www.url.com/0"), | 655 EXPECT_EQ(GURL("http://www.url.com/0"), |
| 671 [session_controller_ URLForSessionAtIndex:0]); | 656 [session_controller_ URLForSessionAtIndex:0]); |
| 672 EXPECT_EQ(GURL("http://www.url.com/2"), | 657 EXPECT_EQ(GURL("http://www.url.com/2"), |
| 673 [session_controller_ URLForSessionAtIndex:1]); | 658 [session_controller_ URLForSessionAtIndex:1]); |
| 674 EXPECT_EQ(GURL("http://www.url.com/2"), | 659 EXPECT_EQ(GURL("http://www.url.com/2"), |
| 675 [[session_controller_ pendingEntry] navigationItem]->GetURL()); | 660 [[session_controller_ pendingEntry] navigationItem]->GetURL()); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 698 navigation_item->SetReferrer(referrer_object); | 683 navigation_item->SetReferrer(referrer_object); |
| 699 navigation_item->SetTitle(base::SysNSStringToUTF16(title)); | 684 navigation_item->SetTitle(base::SysNSStringToUTF16(title)); |
| 700 navigation_item->SetTransitionType(ui::PAGE_TRANSITION_TYPED); | 685 navigation_item->SetTransitionType(ui::PAGE_TRANSITION_TYPED); |
| 701 | 686 |
| 702 return navigation_item; | 687 return navigation_item; |
| 703 } | 688 } |
| 704 | 689 |
| 705 TEST_F(CRWSessionControllerTest, CreateWithEmptyNavigations) { | 690 TEST_F(CRWSessionControllerTest, CreateWithEmptyNavigations) { |
| 706 std::vector<std::unique_ptr<web::NavigationItem>> items; | 691 std::vector<std::unique_ptr<web::NavigationItem>> items; |
| 707 base::scoped_nsobject<CRWSessionController> controller( | 692 base::scoped_nsobject<CRWSessionController> controller( |
| 708 [[CRWSessionController alloc] initWithNavigationItems:std::move(items) | 693 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ |
| 709 currentIndex:0 | 694 navigationItems:std::move(items) |
| 710 browserState:&browser_state_]); | 695 currentIndex:0]); |
| 711 EXPECT_EQ(controller.get().entries.count, 0U); | 696 EXPECT_EQ(controller.get().entries.count, 0U); |
| 712 EXPECT_EQ(controller.get().currentNavigationIndex, -1); | 697 EXPECT_EQ(controller.get().currentNavigationIndex, -1); |
| 713 EXPECT_EQ(controller.get().previousNavigationIndex, -1); | 698 EXPECT_EQ(controller.get().previousNavigationIndex, -1); |
| 714 EXPECT_FALSE(controller.get().currentEntry); | 699 EXPECT_FALSE(controller.get().currentEntry); |
| 715 } | 700 } |
| 716 | 701 |
| 717 TEST_F(CRWSessionControllerTest, CreateWithNavList) { | 702 TEST_F(CRWSessionControllerTest, CreateWithNavList) { |
| 718 std::vector<std::unique_ptr<web::NavigationItem>> items; | 703 std::vector<std::unique_ptr<web::NavigationItem>> items; |
| 719 items.push_back(CreateNavigationItem("http://www.google.com", | 704 items.push_back(CreateNavigationItem("http://www.google.com", |
| 720 "http://www.referrer.com", @"Google")); | 705 "http://www.referrer.com", @"Google")); |
| 721 items.push_back(CreateNavigationItem("http://www.yahoo.com", | 706 items.push_back(CreateNavigationItem("http://www.yahoo.com", |
| 722 "http://www.google.com", @"Yahoo")); | 707 "http://www.google.com", @"Yahoo")); |
| 723 items.push_back(CreateNavigationItem("http://www.espn.com", | 708 items.push_back(CreateNavigationItem("http://www.espn.com", |
| 724 "http://www.nothing.com", @"ESPN")); | 709 "http://www.nothing.com", @"ESPN")); |
| 725 base::scoped_nsobject<CRWSessionController> controller( | 710 base::scoped_nsobject<CRWSessionController> controller( |
| 726 [[CRWSessionController alloc] initWithNavigationItems:std::move(items) | 711 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ |
| 727 currentIndex:1 | 712 navigationItems:std::move(items) |
| 728 browserState:&browser_state_]); | 713 currentIndex:1]); |
| 729 | 714 |
| 730 EXPECT_EQ(controller.get().entries.count, 3U); | 715 EXPECT_EQ(controller.get().entries.count, 3U); |
| 731 EXPECT_EQ(controller.get().currentNavigationIndex, 1); | 716 EXPECT_EQ(controller.get().currentNavigationIndex, 1); |
| 732 EXPECT_EQ(controller.get().previousNavigationIndex, -1); | 717 EXPECT_EQ(controller.get().previousNavigationIndex, -1); |
| 733 // Sanity check the current entry, the CRWSessionEntry unit test will ensure | 718 // Sanity check the current entry, the CRWSessionEntry unit test will ensure |
| 734 // the entire object is created properly. | 719 // the entire object is created properly. |
| 735 CRWSessionEntry* current_entry = controller.get().currentEntry; | 720 CRWSessionEntry* current_entry = controller.get().currentEntry; |
| 736 EXPECT_EQ(current_entry.navigationItem->GetURL(), | 721 EXPECT_EQ(current_entry.navigationItem->GetURL(), |
| 737 GURL("http://www.yahoo.com")); | 722 GURL("http://www.yahoo.com")); |
| 738 } | 723 } |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 778 | 763 |
| 779 TEST_F(CRWSessionControllerTest, PushNewEntry) { | 764 TEST_F(CRWSessionControllerTest, PushNewEntry) { |
| 780 std::vector<std::unique_ptr<web::NavigationItem>> items; | 765 std::vector<std::unique_ptr<web::NavigationItem>> items; |
| 781 items.push_back(CreateNavigationItem("http://www.firstpage.com", | 766 items.push_back(CreateNavigationItem("http://www.firstpage.com", |
| 782 "http://www.starturl.com", @"First")); | 767 "http://www.starturl.com", @"First")); |
| 783 items.push_back(CreateNavigationItem("http://www.secondpage.com", | 768 items.push_back(CreateNavigationItem("http://www.secondpage.com", |
| 784 "http://www.firstpage.com", @"Second")); | 769 "http://www.firstpage.com", @"Second")); |
| 785 items.push_back(CreateNavigationItem("http://www.thirdpage.com", | 770 items.push_back(CreateNavigationItem("http://www.thirdpage.com", |
| 786 "http://www.secondpage.com", @"Third")); | 771 "http://www.secondpage.com", @"Third")); |
| 787 base::scoped_nsobject<CRWSessionController> controller( | 772 base::scoped_nsobject<CRWSessionController> controller( |
| 788 [[CRWSessionController alloc] initWithNavigationItems:std::move(items) | 773 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ |
| 789 currentIndex:0 | 774 navigationItems:std::move(items) |
| 790 browserState:&browser_state_]); | 775 currentIndex:0]); |
| 791 | 776 |
| 792 GURL pushPageGurl1("http://www.firstpage.com/#push1"); | 777 GURL pushPageGurl1("http://www.firstpage.com/#push1"); |
| 793 NSString* stateObject1 = @"{'foo': 1}"; | 778 NSString* stateObject1 = @"{'foo': 1}"; |
| 794 [controller pushNewItemWithURL:pushPageGurl1 | 779 [controller pushNewItemWithURL:pushPageGurl1 |
| 795 stateObject:stateObject1 | 780 stateObject:stateObject1 |
| 796 transition:ui::PAGE_TRANSITION_LINK]; | 781 transition:ui::PAGE_TRANSITION_LINK]; |
| 797 CRWSessionEntry* pushedEntry = [controller currentEntry]; | 782 CRWSessionEntry* pushedEntry = [controller currentEntry]; |
| 798 web::NavigationItemImpl* pushedItem = pushedEntry.navigationItemImpl; | 783 web::NavigationItemImpl* pushedItem = pushedEntry.navigationItemImpl; |
| 799 NSUInteger expectedCount = 2; | 784 NSUInteger expectedCount = 2; |
| 800 EXPECT_EQ(expectedCount, controller.get().entries.count); | 785 EXPECT_EQ(expectedCount, controller.get().entries.count); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 830 "http://foo.com#bar", @"Third")); | 815 "http://foo.com#bar", @"Third")); |
| 831 items.push_back( | 816 items.push_back( |
| 832 CreateNavigationItem("http://foo.com", "http://google.com", @"Fourth")); | 817 CreateNavigationItem("http://foo.com", "http://google.com", @"Fourth")); |
| 833 // Push state navigation. | 818 // Push state navigation. |
| 834 items.push_back( | 819 items.push_back( |
| 835 CreateNavigationItem("http://foo.com/bar", "http://foo.com", @"Fifth")); | 820 CreateNavigationItem("http://foo.com/bar", "http://foo.com", @"Fifth")); |
| 836 // Push state navigation. | 821 // Push state navigation. |
| 837 items.push_back(CreateNavigationItem("http://foo.com/bar#bar", | 822 items.push_back(CreateNavigationItem("http://foo.com/bar#bar", |
| 838 "http://foo.com/bar", @"Sixth")); | 823 "http://foo.com/bar", @"Sixth")); |
| 839 base::scoped_nsobject<CRWSessionController> controller( | 824 base::scoped_nsobject<CRWSessionController> controller( |
| 840 [[CRWSessionController alloc] initWithNavigationItems:std::move(items) | 825 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ |
| 841 currentIndex:0 | 826 navigationItems:std::move(items) |
| 842 browserState:&browser_state_]); | 827 currentIndex:0]); |
| 843 web::NavigationItemImpl* item0 = | 828 web::NavigationItemImpl* item0 = |
| 844 static_cast<web::NavigationItemImpl*>([controller items][0]); | 829 static_cast<web::NavigationItemImpl*>([controller items][0]); |
| 845 web::NavigationItemImpl* item1 = | 830 web::NavigationItemImpl* item1 = |
| 846 static_cast<web::NavigationItemImpl*>([controller items][1]); | 831 static_cast<web::NavigationItemImpl*>([controller items][1]); |
| 847 web::NavigationItemImpl* item2 = | 832 web::NavigationItemImpl* item2 = |
| 848 static_cast<web::NavigationItemImpl*>([controller items][2]); | 833 static_cast<web::NavigationItemImpl*>([controller items][2]); |
| 849 web::NavigationItemImpl* item3 = | 834 web::NavigationItemImpl* item3 = |
| 850 static_cast<web::NavigationItemImpl*>([controller items][3]); | 835 static_cast<web::NavigationItemImpl*>([controller items][3]); |
| 851 web::NavigationItemImpl* item4 = | 836 web::NavigationItemImpl* item4 = |
| 852 static_cast<web::NavigationItemImpl*>([controller items][4]); | 837 static_cast<web::NavigationItemImpl*>([controller items][4]); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 874 | 859 |
| 875 TEST_F(CRWSessionControllerTest, UpdateCurrentEntry) { | 860 TEST_F(CRWSessionControllerTest, UpdateCurrentEntry) { |
| 876 std::vector<std::unique_ptr<web::NavigationItem>> items; | 861 std::vector<std::unique_ptr<web::NavigationItem>> items; |
| 877 items.push_back(CreateNavigationItem("http://www.firstpage.com", | 862 items.push_back(CreateNavigationItem("http://www.firstpage.com", |
| 878 "http://www.starturl.com", @"First")); | 863 "http://www.starturl.com", @"First")); |
| 879 items.push_back(CreateNavigationItem("http://www.secondpage.com", | 864 items.push_back(CreateNavigationItem("http://www.secondpage.com", |
| 880 "http://www.firstpage.com", @"Second")); | 865 "http://www.firstpage.com", @"Second")); |
| 881 items.push_back(CreateNavigationItem("http://www.thirdpage.com", | 866 items.push_back(CreateNavigationItem("http://www.thirdpage.com", |
| 882 "http://www.secondpage.com", @"Third")); | 867 "http://www.secondpage.com", @"Third")); |
| 883 base::scoped_nsobject<CRWSessionController> controller( | 868 base::scoped_nsobject<CRWSessionController> controller( |
| 884 [[CRWSessionController alloc] initWithNavigationItems:std::move(items) | 869 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ |
| 885 currentIndex:0 | 870 navigationItems:std::move(items) |
| 886 browserState:&browser_state_]); | 871 currentIndex:0]); |
| 887 | 872 |
| 888 GURL replacePageGurl1("http://www.firstpage.com/#replace1"); | 873 GURL replacePageGurl1("http://www.firstpage.com/#replace1"); |
| 889 NSString* stateObject1 = @"{'foo': 1}"; | 874 NSString* stateObject1 = @"{'foo': 1}"; |
| 890 | 875 |
| 891 // Replace current entry and check the size of history and fields of the | 876 // Replace current entry and check the size of history and fields of the |
| 892 // modified entry. | 877 // modified entry. |
| 893 [controller updateCurrentItemWithURL:replacePageGurl1 | 878 [controller updateCurrentItemWithURL:replacePageGurl1 |
| 894 stateObject:stateObject1]; | 879 stateObject:stateObject1]; |
| 895 CRWSessionEntry* replacedEntry = [controller currentEntry]; | 880 CRWSessionEntry* replacedEntry = [controller currentEntry]; |
| 896 web::NavigationItemImpl* replacedItem = replacedEntry.navigationItemImpl; | 881 web::NavigationItemImpl* replacedItem = replacedEntry.navigationItemImpl; |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1158 [session_controller_ | 1143 [session_controller_ |
| 1159 addPendingItem:GURL("http://www.example.com/0") | 1144 addPendingItem:GURL("http://www.example.com/0") |
| 1160 referrer:MakeReferrer("http://www.example.com/b") | 1145 referrer:MakeReferrer("http://www.example.com/b") |
| 1161 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT | 1146 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT |
| 1162 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; | 1147 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; |
| 1163 [session_controller_ commitPendingItem]; | 1148 [session_controller_ commitPendingItem]; |
| 1164 EXPECT_EQ(0U, [session_controller_ backwardEntries].count); | 1149 EXPECT_EQ(0U, [session_controller_ backwardEntries].count); |
| 1165 } | 1150 } |
| 1166 | 1151 |
| 1167 } // anonymous namespace | 1152 } // anonymous namespace |
| OLD | NEW |