| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 #include "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/bind.h" | 6 #include "base/bind.h" |
| 7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| (...skipping 794 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 805 TEST_F(NavigationControllerTest, LoadURL_AbortDoesntCancelPending) { | 805 TEST_F(NavigationControllerTest, LoadURL_AbortDoesntCancelPending) { |
| 806 NavigationControllerImpl& controller = controller_impl(); | 806 NavigationControllerImpl& controller = controller_impl(); |
| 807 TestNotificationTracker notifications; | 807 TestNotificationTracker notifications; |
| 808 RegisterForAllNavNotifications(¬ifications, &controller); | 808 RegisterForAllNavNotifications(¬ifications, &controller); |
| 809 | 809 |
| 810 // Set a WebContentsDelegate to listen for state changes. | 810 // Set a WebContentsDelegate to listen for state changes. |
| 811 scoped_ptr<TestWebContentsDelegate> delegate(new TestWebContentsDelegate()); | 811 scoped_ptr<TestWebContentsDelegate> delegate(new TestWebContentsDelegate()); |
| 812 EXPECT_FALSE(contents()->GetDelegate()); | 812 EXPECT_FALSE(contents()->GetDelegate()); |
| 813 contents()->SetDelegate(delegate.get()); | 813 contents()->SetDelegate(delegate.get()); |
| 814 | 814 |
| 815 // Without any navigations, the renderer starts at about:blank. | 815 // Start with a pending new navigation. |
| 816 const GURL kExistingURL("about:blank"); | |
| 817 | |
| 818 // Now make a pending new navigation. | |
| 819 const GURL kNewURL("http://eh"); | 816 const GURL kNewURL("http://eh"); |
| 820 controller.LoadURL( | 817 controller.LoadURL( |
| 821 kNewURL, Referrer(), PAGE_TRANSITION_TYPED, std::string()); | 818 kNewURL, Referrer(), PAGE_TRANSITION_TYPED, std::string()); |
| 822 EXPECT_EQ(0U, notifications.size()); | 819 EXPECT_EQ(0U, notifications.size()); |
| 823 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); | 820 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); |
| 824 EXPECT_TRUE(controller.GetPendingEntry()); | 821 EXPECT_TRUE(controller.GetPendingEntry()); |
| 825 EXPECT_EQ(-1, controller.GetLastCommittedEntryIndex()); | 822 EXPECT_EQ(-1, controller.GetLastCommittedEntryIndex()); |
| 826 EXPECT_EQ(1, delegate->navigation_state_change_count()); | 823 EXPECT_EQ(1, delegate->navigation_state_change_count()); |
| 827 | 824 |
| 828 // It may abort before committing, if it's a download or due to a stop or | 825 // It may abort before committing, if it's a download or due to a stop or |
| 829 // a new navigation from the user. | 826 // a new navigation from the user. |
| 830 ViewHostMsg_DidFailProvisionalLoadWithError_Params params; | 827 ViewHostMsg_DidFailProvisionalLoadWithError_Params params; |
| 831 params.frame_id = 1; | 828 params.frame_id = 1; |
| 832 params.is_main_frame = true; | 829 params.is_main_frame = true; |
| 833 params.error_code = net::ERR_ABORTED; | 830 params.error_code = net::ERR_ABORTED; |
| 834 params.error_description = string16(); | 831 params.error_description = string16(); |
| 835 params.url = kNewURL; | 832 params.url = kNewURL; |
| 836 params.showing_repost_interstitial = false; | 833 params.showing_repost_interstitial = false; |
| 837 test_rvh()->OnMessageReceived( | 834 test_rvh()->OnMessageReceived( |
| 838 ViewHostMsg_DidFailProvisionalLoadWithError(0, // routing_id | 835 ViewHostMsg_DidFailProvisionalLoadWithError(0, // routing_id |
| 839 params)); | 836 params)); |
| 840 | 837 |
| 841 // This should not clear the pending entry or notify of a navigation state | 838 // This should not clear the pending entry or notify of a navigation state |
| 842 // change, so that we keep displaying kNewURL (until the user clears it). | 839 // change, so that we keep displaying kNewURL (until the user clears it). |
| 843 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); | 840 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); |
| 844 EXPECT_TRUE(controller.GetPendingEntry()); | 841 EXPECT_TRUE(controller.GetPendingEntry()); |
| 845 EXPECT_EQ(-1, controller.GetLastCommittedEntryIndex()); | 842 EXPECT_EQ(-1, controller.GetLastCommittedEntryIndex()); |
| 846 EXPECT_EQ(1, delegate->navigation_state_change_count()); | 843 EXPECT_EQ(1, delegate->navigation_state_change_count()); |
| 844 NavigationEntry* pending_entry = controller.GetPendingEntry(); |
| 845 |
| 846 // Ensure that a reload keeps the same pending entry. |
| 847 controller.Reload(true); |
| 848 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); |
| 849 EXPECT_TRUE(controller.GetPendingEntry()); |
| 850 EXPECT_EQ(pending_entry, controller.GetPendingEntry()); |
| 851 EXPECT_EQ(-1, controller.GetLastCommittedEntryIndex()); |
| 847 | 852 |
| 848 contents()->SetDelegate(NULL); | 853 contents()->SetDelegate(NULL); |
| 849 } | 854 } |
| 850 | 855 |
| 851 // Tests that the pending URL is not visible during a renderer-initiated | 856 // Tests that the pending URL is not visible during a renderer-initiated |
| 852 // redirect and abort. See http://crbug.com/83031. | 857 // redirect and abort. See http://crbug.com/83031. |
| 853 TEST_F(NavigationControllerTest, LoadURL_RedirectAbortDoesntShowPendingURL) { | 858 TEST_F(NavigationControllerTest, LoadURL_RedirectAbortDoesntShowPendingURL) { |
| 854 NavigationControllerImpl& controller = controller_impl(); | 859 NavigationControllerImpl& controller = controller_impl(); |
| 855 TestNotificationTracker notifications; | 860 TestNotificationTracker notifications; |
| 856 RegisterForAllNavNotifications(¬ifications, &controller); | 861 RegisterForAllNavNotifications(¬ifications, &controller); |
| 857 | 862 |
| 863 // First make an existing committed entry. |
| 864 const GURL kExistingURL("http://foo/eh"); |
| 865 controller.LoadURL(kExistingURL, content::Referrer(), |
| 866 content::PAGE_TRANSITION_TYPED, std::string()); |
| 867 test_rvh()->SendNavigate(0, kExistingURL); |
| 868 EXPECT_TRUE(notifications.Check1AndReset( |
| 869 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); |
| 870 |
| 858 // Set a WebContentsDelegate to listen for state changes. | 871 // Set a WebContentsDelegate to listen for state changes. |
| 859 scoped_ptr<TestWebContentsDelegate> delegate(new TestWebContentsDelegate()); | 872 scoped_ptr<TestWebContentsDelegate> delegate(new TestWebContentsDelegate()); |
| 860 EXPECT_FALSE(contents()->GetDelegate()); | 873 EXPECT_FALSE(contents()->GetDelegate()); |
| 861 contents()->SetDelegate(delegate.get()); | 874 contents()->SetDelegate(delegate.get()); |
| 862 | 875 |
| 863 // Without any navigations, the renderer starts at about:blank. | |
| 864 const GURL kExistingURL("about:blank"); | |
| 865 | |
| 866 // Now make a pending new navigation, initiated by the renderer. | 876 // Now make a pending new navigation, initiated by the renderer. |
| 867 const GURL kNewURL("http://eh"); | 877 const GURL kNewURL("http://foo/bee"); |
| 868 NavigationController::LoadURLParams load_url_params(kNewURL); | 878 NavigationController::LoadURLParams load_url_params(kNewURL); |
| 869 load_url_params.transition_type = PAGE_TRANSITION_TYPED; | 879 load_url_params.transition_type = PAGE_TRANSITION_TYPED; |
| 870 load_url_params.is_renderer_initiated = true; | 880 load_url_params.is_renderer_initiated = true; |
| 871 controller.LoadURLWithParams(load_url_params); | 881 controller.LoadURLWithParams(load_url_params); |
| 872 EXPECT_EQ(0U, notifications.size()); | 882 EXPECT_EQ(0U, notifications.size()); |
| 873 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); | 883 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); |
| 874 EXPECT_TRUE(controller.GetPendingEntry()); | 884 EXPECT_TRUE(controller.GetPendingEntry()); |
| 875 EXPECT_EQ(-1, controller.GetLastCommittedEntryIndex()); | 885 EXPECT_EQ(0, controller.GetLastCommittedEntryIndex()); |
| 876 EXPECT_EQ(1, delegate->navigation_state_change_count()); | 886 EXPECT_EQ(0, delegate->navigation_state_change_count()); |
| 877 | 887 |
| 878 // There should be no visible entry (resulting in about:blank in the | 888 // The visible entry should be the last committed URL, not the pending one. |
| 879 // omnibox), because it was renderer-initiated and there's no last committed | 889 EXPECT_EQ(kExistingURL, controller.GetVisibleEntry()->GetURL()); |
| 880 // entry. | |
| 881 EXPECT_FALSE(controller.GetVisibleEntry()); | |
| 882 | 890 |
| 883 // Now the navigation redirects. | 891 // Now the navigation redirects. |
| 884 const GURL kRedirectURL("http://bee"); | 892 const GURL kRedirectURL("http://foo/see"); |
| 885 test_rvh()->OnMessageReceived( | 893 test_rvh()->OnMessageReceived( |
| 886 ViewHostMsg_DidRedirectProvisionalLoad(0, // routing_id | 894 ViewHostMsg_DidRedirectProvisionalLoad(0, // routing_id |
| 887 -1, // pending page_id | 895 -1, // pending page_id |
| 888 kNewURL, // old url | 896 kNewURL, // old url |
| 889 kRedirectURL)); // new url | 897 kRedirectURL)); // new url |
| 890 | 898 |
| 891 // We don't want to change the NavigationEntry's url, in case it cancels. | 899 // We don't want to change the NavigationEntry's url, in case it cancels. |
| 892 // Prevents regression of http://crbug.com/77786. | 900 // Prevents regression of http://crbug.com/77786. |
| 893 EXPECT_EQ(kNewURL, controller.GetPendingEntry()->GetURL()); | 901 EXPECT_EQ(kNewURL, controller.GetPendingEntry()->GetURL()); |
| 894 | 902 |
| 895 // It may abort before committing, if it's a download or due to a stop or | 903 // It may abort before committing, if it's a download or due to a stop or |
| 896 // a new navigation from the user. | 904 // a new navigation from the user. |
| 897 ViewHostMsg_DidFailProvisionalLoadWithError_Params params; | 905 ViewHostMsg_DidFailProvisionalLoadWithError_Params params; |
| 898 params.frame_id = 1; | 906 params.frame_id = 1; |
| 899 params.is_main_frame = true; | 907 params.is_main_frame = true; |
| 900 params.error_code = net::ERR_ABORTED; | 908 params.error_code = net::ERR_ABORTED; |
| 901 params.error_description = string16(); | 909 params.error_description = string16(); |
| 902 params.url = kRedirectURL; | 910 params.url = kRedirectURL; |
| 903 params.showing_repost_interstitial = false; | 911 params.showing_repost_interstitial = false; |
| 904 test_rvh()->OnMessageReceived( | 912 test_rvh()->OnMessageReceived( |
| 905 ViewHostMsg_DidFailProvisionalLoadWithError(0, // routing_id | 913 ViewHostMsg_DidFailProvisionalLoadWithError(0, // routing_id |
| 906 params)); | 914 params)); |
| 907 | 915 |
| 908 // This should not clear the pending entry or notify of a navigation state | 916 // This should not clear the pending entry or notify of a navigation state |
| 909 // change. | 917 // change. |
| 910 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); | 918 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); |
| 911 EXPECT_TRUE(controller.GetPendingEntry()); | 919 EXPECT_TRUE(controller.GetPendingEntry()); |
| 912 EXPECT_EQ(-1, controller.GetLastCommittedEntryIndex()); | 920 EXPECT_EQ(0, controller.GetLastCommittedEntryIndex()); |
| 913 EXPECT_EQ(1, delegate->navigation_state_change_count()); | 921 EXPECT_EQ(0, delegate->navigation_state_change_count()); |
| 914 | 922 |
| 915 // There should be no visible entry (resulting in about:blank in the | 923 // The visible entry should be the last committed URL, not the pending one, |
| 916 // omnibox), ensuring no spoof is possible. | 924 // so that no spoof is possible. |
| 917 EXPECT_FALSE(controller.GetVisibleEntry()); | 925 EXPECT_EQ(kExistingURL, controller.GetVisibleEntry()->GetURL()); |
| 918 | 926 |
| 919 contents()->SetDelegate(NULL); | 927 contents()->SetDelegate(NULL); |
| 920 } | 928 } |
| 921 | 929 |
| 922 // Ensure that NavigationEntries track which bindings their RenderViewHost had | 930 // Ensure that NavigationEntries track which bindings their RenderViewHost had |
| 923 // at the time they committed. http://crbug.com/173672. | 931 // at the time they committed. http://crbug.com/173672. |
| 924 TEST_F(NavigationControllerTest, LoadURL_WithBindings) { | 932 TEST_F(NavigationControllerTest, LoadURL_WithBindings) { |
| 925 NavigationControllerImpl& controller = controller_impl(); | 933 NavigationControllerImpl& controller = controller_impl(); |
| 926 TestNotificationTracker notifications; | 934 TestNotificationTracker notifications; |
| 927 RegisterForAllNavNotifications(¬ifications, &controller); | 935 RegisterForAllNavNotifications(¬ifications, &controller); |
| (...skipping 1556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2484 test_rvh()->SendNavigate(1, url1); | 2492 test_rvh()->SendNavigate(1, url1); |
| 2485 EXPECT_EQ(url1, controller.GetActiveEntry()->GetURL()); | 2493 EXPECT_EQ(url1, controller.GetActiveEntry()->GetURL()); |
| 2486 EXPECT_EQ(url1, controller.GetVisibleEntry()->GetURL()); | 2494 EXPECT_EQ(url1, controller.GetVisibleEntry()->GetURL()); |
| 2487 EXPECT_FALSE( | 2495 EXPECT_FALSE( |
| 2488 NavigationEntryImpl::FromNavigationEntry( | 2496 NavigationEntryImpl::FromNavigationEntry( |
| 2489 controller.GetLastCommittedEntry())->is_renderer_initiated()); | 2497 controller.GetLastCommittedEntry())->is_renderer_initiated()); |
| 2490 | 2498 |
| 2491 notifications.Reset(); | 2499 notifications.Reset(); |
| 2492 } | 2500 } |
| 2493 | 2501 |
| 2502 // Tests that the URLs for renderer-initiated navigations in new tabs are |
| 2503 // displayed to the user before commit, as long as the initial about:blank |
| 2504 // page has not been modified. If so, we must revert to showing about:blank. |
| 2505 // See http://crbug.com/9682. |
| 2506 TEST_F(NavigationControllerTest, ShowRendererURLInNewTabUntilModified) { |
| 2507 NavigationControllerImpl& controller = controller_impl(); |
| 2508 TestNotificationTracker notifications; |
| 2509 RegisterForAllNavNotifications(¬ifications, &controller); |
| 2510 |
| 2511 const GURL url("http://foo"); |
| 2512 |
| 2513 // For renderer-initiated navigations in new tabs (with no committed entries), |
| 2514 // we show the pending entry's URL as long as the about:blank page is not |
| 2515 // modified. |
| 2516 NavigationController::LoadURLParams load_url_params(url); |
| 2517 load_url_params.transition_type = PAGE_TRANSITION_LINK; |
| 2518 load_url_params.is_renderer_initiated = true; |
| 2519 controller.LoadURLWithParams(load_url_params); |
| 2520 EXPECT_EQ(url, controller.GetActiveEntry()->GetURL()); |
| 2521 EXPECT_EQ(url, controller.GetVisibleEntry()->GetURL()); |
| 2522 EXPECT_TRUE( |
| 2523 NavigationEntryImpl::FromNavigationEntry(controller.GetPendingEntry())-> |
| 2524 is_renderer_initiated()); |
| 2525 EXPECT_TRUE(controller.IsInitialNavigation()); |
| 2526 EXPECT_FALSE(test_rvh()->has_accessed_initial_document()); |
| 2527 |
| 2528 // There should be no title yet. |
| 2529 EXPECT_TRUE(contents()->GetTitle().empty()); |
| 2530 |
| 2531 // If something else modifies the contents of the about:blank page, then |
| 2532 // we must revert to showing about:blank to avoid a URL spoof. |
| 2533 test_rvh()->OnMessageReceived( |
| 2534 ViewHostMsg_DidAccessInitialDocument(0)); |
| 2535 EXPECT_TRUE(test_rvh()->has_accessed_initial_document()); |
| 2536 EXPECT_FALSE(controller.GetVisibleEntry()); |
| 2537 EXPECT_EQ(url, controller.GetActiveEntry()->GetURL()); |
| 2538 |
| 2539 notifications.Reset(); |
| 2540 } |
| 2541 |
| 2542 TEST_F(NavigationControllerTest, DontShowRendererURLInNewTabAfterCommit) { |
| 2543 NavigationControllerImpl& controller = controller_impl(); |
| 2544 TestNotificationTracker notifications; |
| 2545 RegisterForAllNavNotifications(¬ifications, &controller); |
| 2546 |
| 2547 const GURL url1("http://foo/eh"); |
| 2548 const GURL url2("http://foo/bee"); |
| 2549 |
| 2550 // For renderer-initiated navigations in new tabs (with no committed entries), |
| 2551 // we show the pending entry's URL as long as the about:blank page is not |
| 2552 // modified. |
| 2553 NavigationController::LoadURLParams load_url_params(url1); |
| 2554 load_url_params.transition_type = PAGE_TRANSITION_LINK; |
| 2555 load_url_params.is_renderer_initiated = true; |
| 2556 controller.LoadURLWithParams(load_url_params); |
| 2557 EXPECT_EQ(url1, controller.GetActiveEntry()->GetURL()); |
| 2558 EXPECT_EQ(url1, controller.GetVisibleEntry()->GetURL()); |
| 2559 EXPECT_TRUE( |
| 2560 NavigationEntryImpl::FromNavigationEntry(controller.GetPendingEntry())-> |
| 2561 is_renderer_initiated()); |
| 2562 EXPECT_TRUE(controller.IsInitialNavigation()); |
| 2563 EXPECT_FALSE(test_rvh()->has_accessed_initial_document()); |
| 2564 |
| 2565 // Simulate a commit and then starting a new pending navigation. |
| 2566 test_rvh()->SendNavigate(0, url1); |
| 2567 NavigationController::LoadURLParams load_url2_params(url2); |
| 2568 load_url2_params.transition_type = PAGE_TRANSITION_LINK; |
| 2569 load_url2_params.is_renderer_initiated = true; |
| 2570 controller.LoadURLWithParams(load_url2_params); |
| 2571 |
| 2572 // We should not consider this an initial navigation, and thus should |
| 2573 // not show the pending URL. |
| 2574 EXPECT_FALSE(test_rvh()->has_accessed_initial_document()); |
| 2575 EXPECT_FALSE(controller.IsInitialNavigation()); |
| 2576 EXPECT_TRUE(controller.GetVisibleEntry()); |
| 2577 EXPECT_EQ(url1, controller.GetVisibleEntry()->GetURL()); |
| 2578 |
| 2579 notifications.Reset(); |
| 2580 } |
| 2581 |
| 2494 // Tests that IsInPageNavigation returns appropriate results. Prevents | 2582 // Tests that IsInPageNavigation returns appropriate results. Prevents |
| 2495 // regression for bug 1126349. | 2583 // regression for bug 1126349. |
| 2496 TEST_F(NavigationControllerTest, IsInPageNavigation) { | 2584 TEST_F(NavigationControllerTest, IsInPageNavigation) { |
| 2497 NavigationControllerImpl& controller = controller_impl(); | 2585 NavigationControllerImpl& controller = controller_impl(); |
| 2498 // Navigate to URL with no refs. | 2586 // Navigate to URL with no refs. |
| 2499 const GURL url("http://www.google.com/home.html"); | 2587 const GURL url("http://www.google.com/home.html"); |
| 2500 test_rvh()->SendNavigate(0, url); | 2588 test_rvh()->SendNavigate(0, url); |
| 2501 | 2589 |
| 2502 // Reloading the page is not an in-page navigation. | 2590 // Reloading the page is not an in-page navigation. |
| 2503 EXPECT_FALSE(controller.IsURLInPageNavigation(url)); | 2591 EXPECT_FALSE(controller.IsURLInPageNavigation(url)); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2549 EXPECT_EQ(controller.GetEntryCount(), 1); | 2637 EXPECT_EQ(controller.GetEntryCount(), 1); |
| 2550 EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 0); | 2638 EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 0); |
| 2551 } | 2639 } |
| 2552 | 2640 |
| 2553 // Make sure that on cloning a WebContentsImpl and going back needs_reload is | 2641 // Make sure that on cloning a WebContentsImpl and going back needs_reload is |
| 2554 // false. | 2642 // false. |
| 2555 TEST_F(NavigationControllerTest, CloneAndGoBack) { | 2643 TEST_F(NavigationControllerTest, CloneAndGoBack) { |
| 2556 NavigationControllerImpl& controller = controller_impl(); | 2644 NavigationControllerImpl& controller = controller_impl(); |
| 2557 const GURL url1("http://foo1"); | 2645 const GURL url1("http://foo1"); |
| 2558 const GURL url2("http://foo2"); | 2646 const GURL url2("http://foo2"); |
| 2647 const string16 title(ASCIIToUTF16("Title")); |
| 2559 | 2648 |
| 2560 NavigateAndCommit(url1); | 2649 NavigateAndCommit(url1); |
| 2650 controller.GetActiveEntry()->SetTitle(title); |
| 2561 NavigateAndCommit(url2); | 2651 NavigateAndCommit(url2); |
| 2562 | 2652 |
| 2563 scoped_ptr<WebContents> clone(controller.GetWebContents()->Clone()); | 2653 scoped_ptr<WebContents> clone(controller.GetWebContents()->Clone()); |
| 2564 | 2654 |
| 2565 ASSERT_EQ(2, clone->GetController().GetEntryCount()); | 2655 ASSERT_EQ(2, clone->GetController().GetEntryCount()); |
| 2566 EXPECT_TRUE(clone->GetController().NeedsReload()); | 2656 EXPECT_TRUE(clone->GetController().NeedsReload()); |
| 2567 clone->GetController().GoBack(); | 2657 clone->GetController().GoBack(); |
| 2568 // Navigating back should have triggered needs_reload_ to go false. | 2658 // Navigating back should have triggered needs_reload_ to go false. |
| 2569 EXPECT_FALSE(clone->GetController().NeedsReload()); | 2659 EXPECT_FALSE(clone->GetController().NeedsReload()); |
| 2660 |
| 2661 // Ensure that the pending URL and its title are visible. |
| 2662 EXPECT_EQ(url1, clone->GetController().GetVisibleEntry()->GetURL()); |
| 2663 EXPECT_EQ(title, clone->GetTitle()); |
| 2570 } | 2664 } |
| 2571 | 2665 |
| 2572 // Make sure that cloning a WebContentsImpl doesn't copy interstitials. | 2666 // Make sure that cloning a WebContentsImpl doesn't copy interstitials. |
| 2573 TEST_F(NavigationControllerTest, CloneOmitsInterstitials) { | 2667 TEST_F(NavigationControllerTest, CloneOmitsInterstitials) { |
| 2574 NavigationControllerImpl& controller = controller_impl(); | 2668 NavigationControllerImpl& controller = controller_impl(); |
| 2575 const GURL url1("http://foo1"); | 2669 const GURL url1("http://foo1"); |
| 2576 const GURL url2("http://foo2"); | 2670 const GURL url2("http://foo2"); |
| 2577 | 2671 |
| 2578 NavigateAndCommit(url1); | 2672 NavigateAndCommit(url1); |
| 2579 NavigateAndCommit(url2); | 2673 NavigateAndCommit(url2); |
| (...skipping 866 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3446 PAGE_TRANSITION_LINK); | 3540 PAGE_TRANSITION_LINK); |
| 3447 session_helper_.AssertNavigationEquals(nav, | 3541 session_helper_.AssertNavigationEquals(nav, |
| 3448 windows_[0]->tabs[0]->navigations[0]); | 3542 windows_[0]->tabs[0]->navigations[0]); |
| 3449 nav.set_url(url2); | 3543 nav.set_url(url2); |
| 3450 session_helper_.AssertNavigationEquals(nav, | 3544 session_helper_.AssertNavigationEquals(nav, |
| 3451 windows_[0]->tabs[0]->navigations[1]); | 3545 windows_[0]->tabs[0]->navigations[1]); |
| 3452 } | 3546 } |
| 3453 */ | 3547 */ |
| 3454 | 3548 |
| 3455 } // namespace content | 3549 } // namespace content |
| OLD | NEW |