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 |