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

Side by Side Diff: content/browser/frame_host/navigation_controller_impl_unittest.cc

Issue 2225343002: Navigation: move RestoreType and ReloadType into a separate file (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase+ Created 4 years, 4 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/browser/frame_host/navigation_controller_impl.h" 5 #include "content/browser/frame_host/navigation_controller_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 } 204 }
205 205
206 void SetUp() override { 206 void SetUp() override {
207 RenderViewHostImplTestHarness::SetUp(); 207 RenderViewHostImplTestHarness::SetUp();
208 WebContents* web_contents = RenderViewHostImplTestHarness::web_contents(); 208 WebContents* web_contents = RenderViewHostImplTestHarness::web_contents();
209 ASSERT_TRUE(web_contents); // The WebContents should be created by now. 209 ASSERT_TRUE(web_contents); // The WebContents should be created by now.
210 WebContentsObserver::Observe(web_contents); 210 WebContentsObserver::Observe(web_contents);
211 } 211 }
212 212
213 // WebContentsObserver: 213 // WebContentsObserver:
214 void DidStartNavigationToPendingEntry( 214 void DidStartNavigationToPendingEntry(const GURL& url,
215 const GURL& url, 215 ReloadType reload_type) override {
216 NavigationController::ReloadType reload_type) override {
217 navigated_url_ = url; 216 navigated_url_ = url;
218 } 217 }
219 218
220 void NavigationEntryCommitted( 219 void NavigationEntryCommitted(
221 const LoadCommittedDetails& load_details) override { 220 const LoadCommittedDetails& load_details) override {
222 navigation_entry_committed_counter_++; 221 navigation_entry_committed_counter_++;
223 } 222 }
224 223
225 const GURL& navigated_url() const { 224 const GURL& navigated_url() const {
226 return navigated_url_; 225 return navigated_url_;
(...skipping 1739 matching lines...) Expand 10 before | Expand all | Expand 10 after
1966 params.nav_entry_id = entry_id; 1965 params.nav_entry_id = entry_id;
1967 params.did_create_new_entry = false; 1966 params.did_create_new_entry = false;
1968 1967
1969 EXPECT_EQ(0U, notifications.size()); 1968 EXPECT_EQ(0U, notifications.size());
1970 LoadCommittedDetailsObserver observer(contents()); 1969 LoadCommittedDetailsObserver observer(contents());
1971 main_test_rfh()->PrepareForCommit(); 1970 main_test_rfh()->PrepareForCommit();
1972 main_test_rfh()->SendNavigateWithParams(&params); 1971 main_test_rfh()->SendNavigateWithParams(&params);
1973 EXPECT_EQ(1U, navigation_entry_committed_counter_); 1972 EXPECT_EQ(1U, navigation_entry_committed_counter_);
1974 navigation_entry_committed_counter_ = 0; 1973 navigation_entry_committed_counter_ = 0;
1975 1974
1976 EXPECT_EQ(NAVIGATION_TYPE_SAME_PAGE, observer.details().type); 1975 EXPECT_EQ(NavigationType::SAME_PAGE, observer.details().type);
1977 EXPECT_EQ(controller.GetEntryCount(), 1); 1976 EXPECT_EQ(controller.GetEntryCount(), 1);
1978 EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 0); 1977 EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 0);
1979 EXPECT_TRUE(controller.GetLastCommittedEntry()); 1978 EXPECT_TRUE(controller.GetLastCommittedEntry());
1980 EXPECT_EQ(controller.GetPendingEntryIndex(), -1); 1979 EXPECT_EQ(controller.GetPendingEntryIndex(), -1);
1981 EXPECT_FALSE(controller.GetPendingEntry()); 1980 EXPECT_FALSE(controller.GetPendingEntry());
1982 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL()); 1981 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL());
1983 1982
1984 EXPECT_FALSE(controller.CanGoBack()); 1983 EXPECT_FALSE(controller.CanGoBack());
1985 EXPECT_FALSE(controller.CanGoForward()); 1984 EXPECT_FALSE(controller.CanGoForward());
1986 } 1985 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
2035 params.did_create_new_entry = false; 2034 params.did_create_new_entry = false;
2036 params.method = "GET"; 2035 params.method = "GET";
2037 2036
2038 EXPECT_EQ(0U, notifications.size()); 2037 EXPECT_EQ(0U, notifications.size());
2039 LoadCommittedDetailsObserver observer(contents()); 2038 LoadCommittedDetailsObserver observer(contents());
2040 main_test_rfh()->PrepareForCommit(); 2039 main_test_rfh()->PrepareForCommit();
2041 main_test_rfh()->SendNavigateWithParams(&params); 2040 main_test_rfh()->SendNavigateWithParams(&params);
2042 EXPECT_EQ(1U, navigation_entry_committed_counter_); 2041 EXPECT_EQ(1U, navigation_entry_committed_counter_);
2043 navigation_entry_committed_counter_ = 0; 2042 navigation_entry_committed_counter_ = 0;
2044 2043
2045 EXPECT_EQ(NAVIGATION_TYPE_SAME_PAGE, observer.details().type); 2044 EXPECT_EQ(NavigationType::SAME_PAGE, observer.details().type);
2046 EXPECT_EQ(controller.GetEntryCount(), 1); 2045 EXPECT_EQ(controller.GetEntryCount(), 1);
2047 EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 0); 2046 EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 0);
2048 EXPECT_TRUE(controller.GetLastCommittedEntry()); 2047 EXPECT_TRUE(controller.GetLastCommittedEntry());
2049 EXPECT_EQ(controller.GetPendingEntryIndex(), -1); 2048 EXPECT_EQ(controller.GetPendingEntryIndex(), -1);
2050 EXPECT_FALSE(controller.GetPendingEntry()); 2049 EXPECT_FALSE(controller.GetPendingEntry());
2051 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL()); 2050 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL());
2052 EXPECT_FALSE(controller.GetVisibleEntry()->GetHasPostData()); 2051 EXPECT_FALSE(controller.GetVisibleEntry()->GetHasPostData());
2053 2052
2054 EXPECT_FALSE(controller.CanGoBack()); 2053 EXPECT_FALSE(controller.CanGoBack());
2055 EXPECT_FALSE(controller.CanGoForward()); 2054 EXPECT_FALSE(controller.CanGoForward());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2087 params.page_state = PageState::CreateFromURL(url2); 2086 params.page_state = PageState::CreateFromURL(url2);
2088 2087
2089 LoadCommittedDetailsObserver observer(contents()); 2088 LoadCommittedDetailsObserver observer(contents());
2090 2089
2091 EXPECT_EQ(0U, notifications.size()); 2090 EXPECT_EQ(0U, notifications.size());
2092 main_test_rfh()->PrepareForCommit(); 2091 main_test_rfh()->PrepareForCommit();
2093 main_test_rfh()->SendNavigateWithParams(&params); 2092 main_test_rfh()->SendNavigateWithParams(&params);
2094 EXPECT_EQ(1U, navigation_entry_committed_counter_); 2093 EXPECT_EQ(1U, navigation_entry_committed_counter_);
2095 navigation_entry_committed_counter_ = 0; 2094 navigation_entry_committed_counter_ = 0;
2096 2095
2097 EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, observer.details().type); 2096 EXPECT_EQ(NavigationType::NEW_PAGE, observer.details().type);
2098 EXPECT_EQ(controller.GetEntryCount(), 1); 2097 EXPECT_EQ(controller.GetEntryCount(), 1);
2099 EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 0); 2098 EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 0);
2100 EXPECT_TRUE(controller.GetLastCommittedEntry()); 2099 EXPECT_TRUE(controller.GetLastCommittedEntry());
2101 EXPECT_EQ(controller.GetPendingEntryIndex(), -1); 2100 EXPECT_EQ(controller.GetPendingEntryIndex(), -1);
2102 EXPECT_FALSE(controller.GetPendingEntry()); 2101 EXPECT_FALSE(controller.GetPendingEntry());
2103 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL()); 2102 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL());
2104 2103
2105 EXPECT_FALSE(controller.CanGoBack()); 2104 EXPECT_FALSE(controller.CanGoBack());
2106 EXPECT_FALSE(controller.CanGoForward()); 2105 EXPECT_FALSE(controller.CanGoForward());
2107 } 2106 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
2148 params.intended_as_new_entry = true; 2147 params.intended_as_new_entry = true;
2149 params.did_create_new_entry = false; 2148 params.did_create_new_entry = false;
2150 params.url = url1; 2149 params.url = url1;
2151 params.transition = ui::PAGE_TRANSITION_TYPED; 2150 params.transition = ui::PAGE_TRANSITION_TYPED;
2152 params.page_state = PageState::CreateFromURL(url1); 2151 params.page_state = PageState::CreateFromURL(url1);
2153 2152
2154 LoadCommittedDetailsObserver observer(contents()); 2153 LoadCommittedDetailsObserver observer(contents());
2155 2154
2156 main_test_rfh()->PrepareForCommit(); 2155 main_test_rfh()->PrepareForCommit();
2157 main_test_rfh()->SendNavigateWithParams(&params); 2156 main_test_rfh()->SendNavigateWithParams(&params);
2158 EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, observer.details().type); 2157 EXPECT_EQ(NavigationType::EXISTING_PAGE, observer.details().type);
2159 } 2158 }
2160 2159
2161 // Tests navigation via link click within a subframe. A new navigation entry 2160 // Tests navigation via link click within a subframe. A new navigation entry
2162 // should be created. 2161 // should be created.
2163 TEST_F(NavigationControllerTest, NewSubframe) { 2162 TEST_F(NavigationControllerTest, NewSubframe) {
2164 NavigationControllerImpl& controller = controller_impl(); 2163 NavigationControllerImpl& controller = controller_impl();
2165 TestNotificationTracker notifications; 2164 TestNotificationTracker notifications;
2166 RegisterForAllNavNotifications(&notifications, &controller); 2165 RegisterForAllNavNotifications(&notifications, &controller);
2167 2166
2168 const GURL url1("http://foo1"); 2167 const GURL url1("http://foo1");
(...skipping 798 matching lines...) Expand 10 before | Expand all | Expand 10 after
2967 browser_context()); 2966 browser_context());
2968 entry->SetPageID(0); 2967 entry->SetPageID(0);
2969 entry->SetTitle(base::ASCIIToUTF16("Title")); 2968 entry->SetTitle(base::ASCIIToUTF16("Title"));
2970 entry->SetPageState(PageState::CreateFromEncodedData("state")); 2969 entry->SetPageState(PageState::CreateFromEncodedData("state"));
2971 const base::Time timestamp = base::Time::Now(); 2970 const base::Time timestamp = base::Time::Now();
2972 entry->SetTimestamp(timestamp); 2971 entry->SetTimestamp(timestamp);
2973 entries.push_back(std::move(entry)); 2972 entries.push_back(std::move(entry));
2974 std::unique_ptr<WebContentsImpl> our_contents(static_cast<WebContentsImpl*>( 2973 std::unique_ptr<WebContentsImpl> our_contents(static_cast<WebContentsImpl*>(
2975 WebContents::Create(WebContents::CreateParams(browser_context())))); 2974 WebContents::Create(WebContents::CreateParams(browser_context()))));
2976 NavigationControllerImpl& our_controller = our_contents->GetController(); 2975 NavigationControllerImpl& our_controller = our_contents->GetController();
2977 our_controller.Restore( 2976 our_controller.Restore(0, RestoreType::LAST_SESSION_EXITED_CLEANLY, &entries);
2978 0,
2979 NavigationController::RESTORE_LAST_SESSION_EXITED_CLEANLY,
2980 &entries);
2981 ASSERT_EQ(0u, entries.size()); 2977 ASSERT_EQ(0u, entries.size());
2982 2978
2983 // Before navigating to the restored entry, it should have a restore_type 2979 // Before navigating to the restored entry, it should have a restore_type
2984 // and no SiteInstance. 2980 // and no SiteInstance.
2985 ASSERT_EQ(1, our_controller.GetEntryCount()); 2981 ASSERT_EQ(1, our_controller.GetEntryCount());
2986 EXPECT_EQ(NavigationEntryImpl::RESTORE_LAST_SESSION_EXITED_CLEANLY, 2982 EXPECT_EQ(RestoreType::LAST_SESSION_EXITED_CLEANLY,
2987 our_controller.GetEntryAtIndex(0)->restore_type()); 2983 our_controller.GetEntryAtIndex(0)->restore_type());
2988 EXPECT_FALSE(our_controller.GetEntryAtIndex(0)->site_instance()); 2984 EXPECT_FALSE(our_controller.GetEntryAtIndex(0)->site_instance());
2989 2985
2990 // After navigating, we should have one entry, and it should be "pending". 2986 // After navigating, we should have one entry, and it should be "pending".
2991 our_controller.GoToIndex(0); 2987 our_controller.GoToIndex(0);
2992 EXPECT_EQ(1, our_controller.GetEntryCount()); 2988 EXPECT_EQ(1, our_controller.GetEntryCount());
2993 EXPECT_EQ(our_controller.GetEntryAtIndex(0), 2989 EXPECT_EQ(our_controller.GetEntryAtIndex(0),
2994 our_controller.GetPendingEntry()); 2990 our_controller.GetPendingEntry());
2995 EXPECT_EQ(0, our_controller.GetEntryAtIndex(0)->GetPageID()); 2991 EXPECT_EQ(0, our_controller.GetEntryAtIndex(0)->GetPageID());
2996 2992
(...skipping 18 matching lines...) Expand all
3015 3011
3016 // There should be no longer any pending entry and one committed one. This 3012 // There should be no longer any pending entry and one committed one. This
3017 // means that we were able to locate the entry, assign its site instance, and 3013 // means that we were able to locate the entry, assign its site instance, and
3018 // commit it properly. 3014 // commit it properly.
3019 EXPECT_EQ(1, our_controller.GetEntryCount()); 3015 EXPECT_EQ(1, our_controller.GetEntryCount());
3020 EXPECT_EQ(0, our_controller.GetLastCommittedEntryIndex()); 3016 EXPECT_EQ(0, our_controller.GetLastCommittedEntryIndex());
3021 EXPECT_FALSE(our_controller.GetPendingEntry()); 3017 EXPECT_FALSE(our_controller.GetPendingEntry());
3022 EXPECT_EQ( 3018 EXPECT_EQ(
3023 url, 3019 url,
3024 our_controller.GetLastCommittedEntry()->site_instance()->GetSiteURL()); 3020 our_controller.GetLastCommittedEntry()->site_instance()->GetSiteURL());
3025 EXPECT_EQ(NavigationEntryImpl::RESTORE_NONE, 3021 EXPECT_EQ(RestoreType::NONE,
3026 our_controller.GetEntryAtIndex(0)->restore_type()); 3022 our_controller.GetEntryAtIndex(0)->restore_type());
3027 3023
3028 // Timestamp should have been updated. 3024 // Timestamp should have been updated.
3029 EXPECT_GE(our_controller.GetEntryAtIndex(0)->GetTimestamp(), timestamp); 3025 EXPECT_GE(our_controller.GetEntryAtIndex(0)->GetTimestamp(), timestamp);
3030 } 3026 }
3031 3027
3032 // Tests that we can still navigate to a restored entry after a different 3028 // Tests that we can still navigate to a restored entry after a different
3033 // navigation fails and clears the pending entry. http://crbug.com/90085 3029 // navigation fails and clears the pending entry. http://crbug.com/90085
3034 TEST_F(NavigationControllerTest, RestoreNavigateAfterFailure) { 3030 TEST_F(NavigationControllerTest, RestoreNavigateAfterFailure) {
3035 // Create a NavigationController with a restored set of tabs. 3031 // Create a NavigationController with a restored set of tabs.
3036 GURL url("http://foo"); 3032 GURL url("http://foo");
3037 std::vector<std::unique_ptr<NavigationEntry>> entries; 3033 std::vector<std::unique_ptr<NavigationEntry>> entries;
3038 std::unique_ptr<NavigationEntry> new_entry = 3034 std::unique_ptr<NavigationEntry> new_entry =
3039 NavigationControllerImpl::CreateNavigationEntry( 3035 NavigationControllerImpl::CreateNavigationEntry(
3040 url, Referrer(), ui::PAGE_TRANSITION_RELOAD, false, std::string(), 3036 url, Referrer(), ui::PAGE_TRANSITION_RELOAD, false, std::string(),
3041 browser_context()); 3037 browser_context());
3042 new_entry->SetPageID(0); 3038 new_entry->SetPageID(0);
3043 new_entry->SetTitle(base::ASCIIToUTF16("Title")); 3039 new_entry->SetTitle(base::ASCIIToUTF16("Title"));
3044 new_entry->SetPageState(PageState::CreateFromEncodedData("state")); 3040 new_entry->SetPageState(PageState::CreateFromEncodedData("state"));
3045 entries.push_back(std::move(new_entry)); 3041 entries.push_back(std::move(new_entry));
3046 std::unique_ptr<WebContentsImpl> our_contents(static_cast<WebContentsImpl*>( 3042 std::unique_ptr<WebContentsImpl> our_contents(static_cast<WebContentsImpl*>(
3047 WebContents::Create(WebContents::CreateParams(browser_context())))); 3043 WebContents::Create(WebContents::CreateParams(browser_context()))));
3048 NavigationControllerImpl& our_controller = our_contents->GetController(); 3044 NavigationControllerImpl& our_controller = our_contents->GetController();
3049 our_controller.Restore( 3045 our_controller.Restore(0, RestoreType::LAST_SESSION_EXITED_CLEANLY, &entries);
3050 0, NavigationController::RESTORE_LAST_SESSION_EXITED_CLEANLY, &entries);
3051 ASSERT_EQ(0u, entries.size()); 3046 ASSERT_EQ(0u, entries.size());
3052 3047
3053 // Ensure the RenderFrame is initialized before simulating events coming from 3048 // Ensure the RenderFrame is initialized before simulating events coming from
3054 // it. 3049 // it.
3055 main_test_rfh()->InitializeRenderFrameIfNeeded(); 3050 main_test_rfh()->InitializeRenderFrameIfNeeded();
3056 3051
3057 // Before navigating to the restored entry, it should have a restore_type 3052 // Before navigating to the restored entry, it should have a restore_type
3058 // and no SiteInstance. 3053 // and no SiteInstance.
3059 NavigationEntry* entry = our_controller.GetEntryAtIndex(0); 3054 NavigationEntry* entry = our_controller.GetEntryAtIndex(0);
3060 EXPECT_EQ(NavigationEntryImpl::RESTORE_LAST_SESSION_EXITED_CLEANLY, 3055 EXPECT_EQ(RestoreType::LAST_SESSION_EXITED_CLEANLY,
3061 our_controller.GetEntryAtIndex(0)->restore_type()); 3056 our_controller.GetEntryAtIndex(0)->restore_type());
3062 EXPECT_FALSE(our_controller.GetEntryAtIndex(0)->site_instance()); 3057 EXPECT_FALSE(our_controller.GetEntryAtIndex(0)->site_instance());
3063 3058
3064 // After navigating, we should have one entry, and it should be "pending". 3059 // After navigating, we should have one entry, and it should be "pending".
3065 our_controller.GoToIndex(0); 3060 our_controller.GoToIndex(0);
3066 EXPECT_EQ(1, our_controller.GetEntryCount()); 3061 EXPECT_EQ(1, our_controller.GetEntryCount());
3067 EXPECT_EQ(our_controller.GetEntryAtIndex(0), 3062 EXPECT_EQ(our_controller.GetEntryAtIndex(0),
3068 our_controller.GetPendingEntry()); 3063 our_controller.GetPendingEntry());
3069 EXPECT_EQ(0, our_controller.GetEntryAtIndex(0)->GetPageID()); 3064 EXPECT_EQ(0, our_controller.GetEntryAtIndex(0)->GetPageID());
3070 3065
(...skipping 25 matching lines...) Expand all
3096 main_rfh->PrepareForCommit(); 3091 main_rfh->PrepareForCommit();
3097 main_rfh->SendNavigateWithParams(&params); 3092 main_rfh->SendNavigateWithParams(&params);
3098 3093
3099 // There should be no pending entry and one committed one. 3094 // There should be no pending entry and one committed one.
3100 EXPECT_EQ(1, our_controller.GetEntryCount()); 3095 EXPECT_EQ(1, our_controller.GetEntryCount());
3101 EXPECT_EQ(0, our_controller.GetLastCommittedEntryIndex()); 3096 EXPECT_EQ(0, our_controller.GetLastCommittedEntryIndex());
3102 EXPECT_FALSE(our_controller.GetPendingEntry()); 3097 EXPECT_FALSE(our_controller.GetPendingEntry());
3103 EXPECT_EQ( 3098 EXPECT_EQ(
3104 url, 3099 url,
3105 our_controller.GetLastCommittedEntry()->site_instance()->GetSiteURL()); 3100 our_controller.GetLastCommittedEntry()->site_instance()->GetSiteURL());
3106 EXPECT_EQ(NavigationEntryImpl::RESTORE_NONE, 3101 EXPECT_EQ(RestoreType::NONE,
3107 our_controller.GetEntryAtIndex(0)->restore_type()); 3102 our_controller.GetEntryAtIndex(0)->restore_type());
3108 } 3103 }
3109 3104
3110 // Make sure that the page type and stuff is correct after an interstitial. 3105 // Make sure that the page type and stuff is correct after an interstitial.
3111 TEST_F(NavigationControllerTest, Interstitial) { 3106 TEST_F(NavigationControllerTest, Interstitial) {
3112 NavigationControllerImpl& controller = controller_impl(); 3107 NavigationControllerImpl& controller = controller_impl();
3113 // First navigate somewhere normal. 3108 // First navigate somewhere normal.
3114 const GURL url1("http://foo"); 3109 const GURL url1("http://foo");
3115 controller.LoadURL( 3110 controller.LoadURL(
3116 url1, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); 3111 url1, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string());
(...skipping 1502 matching lines...) Expand 10 before | Expand all | Expand 10 after
4619 std::string(), browser_context()); 4614 std::string(), browser_context());
4620 entry->SetPageID(static_cast<int>(i)); 4615 entry->SetPageID(static_cast<int>(i));
4621 entries.push_back(std::move(entry)); 4616 entries.push_back(std::move(entry));
4622 } 4617 }
4623 4618
4624 // Create a WebContents with restored entries. 4619 // Create a WebContents with restored entries.
4625 std::unique_ptr<TestWebContents> source_contents( 4620 std::unique_ptr<TestWebContents> source_contents(
4626 static_cast<TestWebContents*>(CreateTestWebContents())); 4621 static_cast<TestWebContents*>(CreateTestWebContents()));
4627 NavigationControllerImpl& source_controller = 4622 NavigationControllerImpl& source_controller =
4628 source_contents->GetController(); 4623 source_contents->GetController();
4629 source_controller.Restore( 4624 source_controller.Restore(entries.size() - 1,
4630 entries.size() - 1, 4625 RestoreType::LAST_SESSION_EXITED_CLEANLY, &entries);
4631 NavigationController::RESTORE_LAST_SESSION_EXITED_CLEANLY,
4632 &entries);
4633 ASSERT_EQ(0u, entries.size()); 4626 ASSERT_EQ(0u, entries.size());
4634 source_controller.LoadIfNecessary(); 4627 source_controller.LoadIfNecessary();
4635 source_contents->CommitPendingNavigation(); 4628 source_contents->CommitPendingNavigation();
4636 4629
4637 // Load a page, then copy state from |source_contents|. 4630 // Load a page, then copy state from |source_contents|.
4638 NavigateAndCommit(kInitialUrl); 4631 NavigateAndCommit(kInitialUrl);
4639 contents()->ExpectSetHistoryOffsetAndLength(2, 3); 4632 contents()->ExpectSetHistoryOffsetAndLength(2, 3);
4640 controller_impl().CopyStateFromAndPrune(&source_controller, false); 4633 controller_impl().CopyStateFromAndPrune(&source_controller, false);
4641 ASSERT_EQ(3, controller_impl().GetEntryCount()); 4634 ASSERT_EQ(3, controller_impl().GetEntryCount());
4642 4635
(...skipping 536 matching lines...) Expand 10 before | Expand all | Expand 10 after
5179 params.url_is_unreachable = true; 5172 params.url_is_unreachable = true;
5180 5173
5181 // Navigate to new page. 5174 // Navigate to new page.
5182 { 5175 {
5183 LoadCommittedDetailsObserver observer(contents()); 5176 LoadCommittedDetailsObserver observer(contents());
5184 main_test_rfh()->SendRendererInitiatedNavigationRequest(url, false); 5177 main_test_rfh()->SendRendererInitiatedNavigationRequest(url, false);
5185 main_test_rfh()->PrepareForCommit(); 5178 main_test_rfh()->PrepareForCommit();
5186 main_test_rfh()->SendNavigateWithParams(&params); 5179 main_test_rfh()->SendNavigateWithParams(&params);
5187 EXPECT_EQ(PAGE_TYPE_ERROR, 5180 EXPECT_EQ(PAGE_TYPE_ERROR,
5188 controller_impl().GetLastCommittedEntry()->GetPageType()); 5181 controller_impl().GetLastCommittedEntry()->GetPageType());
5189 EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, observer.details().type); 5182 EXPECT_EQ(NavigationType::NEW_PAGE, observer.details().type);
5190 } 5183 }
5191 5184
5192 // Navigate to existing page. 5185 // Navigate to existing page.
5193 { 5186 {
5194 params.did_create_new_entry = false; 5187 params.did_create_new_entry = false;
5195 LoadCommittedDetailsObserver observer(contents()); 5188 LoadCommittedDetailsObserver observer(contents());
5196 main_test_rfh()->SendRendererInitiatedNavigationRequest(url, false); 5189 main_test_rfh()->SendRendererInitiatedNavigationRequest(url, false);
5197 main_test_rfh()->PrepareForCommit(); 5190 main_test_rfh()->PrepareForCommit();
5198 main_test_rfh()->SendNavigateWithParams(&params); 5191 main_test_rfh()->SendNavigateWithParams(&params);
5199 EXPECT_EQ(PAGE_TYPE_ERROR, 5192 EXPECT_EQ(PAGE_TYPE_ERROR,
5200 controller_impl().GetLastCommittedEntry()->GetPageType()); 5193 controller_impl().GetLastCommittedEntry()->GetPageType());
5201 EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, observer.details().type); 5194 EXPECT_EQ(NavigationType::EXISTING_PAGE, observer.details().type);
5202 } 5195 }
5203 5196
5204 // Navigate to same page. 5197 // Navigate to same page.
5205 // Note: The call to LoadURL() creates a pending entry in order to trigger the 5198 // Note: The call to LoadURL() creates a pending entry in order to trigger the
5206 // same-page transition. 5199 // same-page transition.
5207 controller_impl().LoadURL( 5200 controller_impl().LoadURL(
5208 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); 5201 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string());
5209 params.nav_entry_id = controller_impl().GetPendingEntry()->GetUniqueID(); 5202 params.nav_entry_id = controller_impl().GetPendingEntry()->GetUniqueID();
5210 params.transition = ui::PAGE_TRANSITION_TYPED; 5203 params.transition = ui::PAGE_TRANSITION_TYPED;
5211 { 5204 {
5212 LoadCommittedDetailsObserver observer(contents()); 5205 LoadCommittedDetailsObserver observer(contents());
5213 main_test_rfh()->PrepareForCommit(); 5206 main_test_rfh()->PrepareForCommit();
5214 main_test_rfh()->SendNavigateWithParams(&params); 5207 main_test_rfh()->SendNavigateWithParams(&params);
5215 EXPECT_EQ(PAGE_TYPE_ERROR, 5208 EXPECT_EQ(PAGE_TYPE_ERROR,
5216 controller_impl().GetLastCommittedEntry()->GetPageType()); 5209 controller_impl().GetLastCommittedEntry()->GetPageType());
5217 EXPECT_EQ(NAVIGATION_TYPE_SAME_PAGE, observer.details().type); 5210 EXPECT_EQ(NavigationType::SAME_PAGE, observer.details().type);
5218 } 5211 }
5219 5212
5220 // Navigate in page. 5213 // Navigate in page.
5221 params.url = GURL("http://foo#foo"); 5214 params.url = GURL("http://foo#foo");
5222 params.transition = ui::PAGE_TRANSITION_LINK; 5215 params.transition = ui::PAGE_TRANSITION_LINK;
5223 params.was_within_same_page = true; 5216 params.was_within_same_page = true;
5224 { 5217 {
5225 LoadCommittedDetailsObserver observer(contents()); 5218 LoadCommittedDetailsObserver observer(contents());
5226 main_test_rfh()->SendRendererInitiatedNavigationRequest(params.url, false); 5219 main_test_rfh()->SendRendererInitiatedNavigationRequest(params.url, false);
5227 main_test_rfh()->PrepareForCommit(); 5220 main_test_rfh()->PrepareForCommit();
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
5330 EXPECT_EQ(default_ssl_status.connection_status, 5323 EXPECT_EQ(default_ssl_status.connection_status,
5331 observer.details().ssl_status.connection_status); 5324 observer.details().ssl_status.connection_status);
5332 EXPECT_EQ(default_ssl_status.content_status, 5325 EXPECT_EQ(default_ssl_status.content_status,
5333 observer.details().ssl_status.content_status); 5326 observer.details().ssl_status.content_status);
5334 EXPECT_EQ(default_ssl_status.sct_statuses, 5327 EXPECT_EQ(default_ssl_status.sct_statuses,
5335 observer.details().ssl_status.sct_statuses); 5328 observer.details().ssl_status.sct_statuses);
5336 EXPECT_EQ(1, main_test_rfh()->GetProcess()->bad_msg_count()); 5329 EXPECT_EQ(1, main_test_rfh()->GetProcess()->bad_msg_count());
5337 } 5330 }
5338 5331
5339 } // namespace content 5332 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698