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

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

Issue 11308297: Merge 167856 - Ensure a transient entry is discarded on in-page navigations. (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1312/src/
Patch Set: Created 8 years 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 | Annotate | Revision Log
« no previous file with comments | « content/browser/web_contents/navigation_controller_impl.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 2135 matching lines...) Expand 10 before | Expand all | Expand 10 after
2146 // Tests the transient entry, making sure it goes away with all navigations. 2146 // Tests the transient entry, making sure it goes away with all navigations.
2147 TEST_F(NavigationControllerTest, TransientEntry) { 2147 TEST_F(NavigationControllerTest, TransientEntry) {
2148 NavigationControllerImpl& controller = controller_impl(); 2148 NavigationControllerImpl& controller = controller_impl();
2149 TestNotificationTracker notifications; 2149 TestNotificationTracker notifications;
2150 RegisterForAllNavNotifications(&notifications, &controller); 2150 RegisterForAllNavNotifications(&notifications, &controller);
2151 2151
2152 const GURL url0("http://foo/0"); 2152 const GURL url0("http://foo/0");
2153 const GURL url1("http://foo/1"); 2153 const GURL url1("http://foo/1");
2154 const GURL url2("http://foo/2"); 2154 const GURL url2("http://foo/2");
2155 const GURL url3("http://foo/3"); 2155 const GURL url3("http://foo/3");
2156 const GURL url3_ref("http://foo/3#bar");
2156 const GURL url4("http://foo/4"); 2157 const GURL url4("http://foo/4");
2157 const GURL transient_url("http://foo/transient"); 2158 const GURL transient_url("http://foo/transient");
2158 2159
2159 controller.LoadURL( 2160 controller.LoadURL(
2160 url0, Referrer(), PAGE_TRANSITION_TYPED, std::string()); 2161 url0, Referrer(), PAGE_TRANSITION_TYPED, std::string());
2161 test_rvh()->SendNavigate(0, url0); 2162 test_rvh()->SendNavigate(0, url0);
2162 controller.LoadURL( 2163 controller.LoadURL(
2163 url1, Referrer(), PAGE_TRANSITION_TYPED, std::string()); 2164 url1, Referrer(), PAGE_TRANSITION_TYPED, std::string());
2164 test_rvh()->SendNavigate(1, url1); 2165 test_rvh()->SendNavigate(1, url1);
2165 2166
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
2260 controller.AddTransientEntry(transient_entry); 2261 controller.AddTransientEntry(transient_entry);
2261 EXPECT_EQ(transient_url, controller.GetActiveEntry()->GetURL()); 2262 EXPECT_EQ(transient_url, controller.GetActiveEntry()->GetURL());
2262 EXPECT_TRUE(controller.CanGoForward()); 2263 EXPECT_TRUE(controller.CanGoForward());
2263 controller.GoForward(); 2264 controller.GoForward();
2264 // We should have navigated, transient entry should be gone. 2265 // We should have navigated, transient entry should be gone.
2265 EXPECT_EQ(url3, controller.GetActiveEntry()->GetURL()); 2266 EXPECT_EQ(url3, controller.GetActiveEntry()->GetURL());
2266 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL()); 2267 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL());
2267 test_rvh()->SendNavigate(3, url3); 2268 test_rvh()->SendNavigate(3, url3);
2268 EXPECT_EQ(url3, controller.GetVisibleEntry()->GetURL()); 2269 EXPECT_EQ(url3, controller.GetVisibleEntry()->GetURL());
2269 2270
2271 // Add a transient and do an in-page navigation, replacing the current entry.
2272 transient_entry = new NavigationEntryImpl;
2273 transient_entry->SetURL(transient_url);
2274 controller.AddTransientEntry(transient_entry);
2275 EXPECT_EQ(transient_url, controller.GetActiveEntry()->GetURL());
2276 test_rvh()->SendNavigate(3, url3_ref);
2277 // Transient entry should be gone.
2278 EXPECT_EQ(url3_ref, controller.GetActiveEntry()->GetURL());
2279
2270 // Ensure the URLs are correct. 2280 // Ensure the URLs are correct.
2271 EXPECT_EQ(controller.GetEntryCount(), 5); 2281 EXPECT_EQ(controller.GetEntryCount(), 5);
2272 EXPECT_EQ(controller.GetEntryAtIndex(0)->GetURL(), url0); 2282 EXPECT_EQ(controller.GetEntryAtIndex(0)->GetURL(), url0);
2273 EXPECT_EQ(controller.GetEntryAtIndex(1)->GetURL(), url1); 2283 EXPECT_EQ(controller.GetEntryAtIndex(1)->GetURL(), url1);
2274 EXPECT_EQ(controller.GetEntryAtIndex(2)->GetURL(), url2); 2284 EXPECT_EQ(controller.GetEntryAtIndex(2)->GetURL(), url2);
2275 EXPECT_EQ(controller.GetEntryAtIndex(3)->GetURL(), url3); 2285 EXPECT_EQ(controller.GetEntryAtIndex(3)->GetURL(), url3_ref);
2276 EXPECT_EQ(controller.GetEntryAtIndex(4)->GetURL(), url4); 2286 EXPECT_EQ(controller.GetEntryAtIndex(4)->GetURL(), url4);
2277 } 2287 }
2278 2288
2279 // Test that Reload initiates a new navigation to a transient entry's URL. 2289 // Test that Reload initiates a new navigation to a transient entry's URL.
2280 TEST_F(NavigationControllerTest, ReloadTransient) { 2290 TEST_F(NavigationControllerTest, ReloadTransient) {
2281 NavigationControllerImpl& controller = controller_impl(); 2291 NavigationControllerImpl& controller = controller_impl();
2282 const GURL url0("http://foo/0"); 2292 const GURL url0("http://foo/0");
2283 const GURL url1("http://foo/1"); 2293 const GURL url1("http://foo/1");
2284 const GURL transient_url("http://foo/transient"); 2294 const GURL transient_url("http://foo/transient");
2285 2295
(...skipping 883 matching lines...) Expand 10 before | Expand all | Expand 10 after
3169 PAGE_TRANSITION_LINK); 3179 PAGE_TRANSITION_LINK);
3170 session_helper_.AssertNavigationEquals(nav, 3180 session_helper_.AssertNavigationEquals(nav,
3171 windows_[0]->tabs[0]->navigations[0]); 3181 windows_[0]->tabs[0]->navigations[0]);
3172 nav.set_url(url2); 3182 nav.set_url(url2);
3173 session_helper_.AssertNavigationEquals(nav, 3183 session_helper_.AssertNavigationEquals(nav,
3174 windows_[0]->tabs[0]->navigations[1]); 3184 windows_[0]->tabs[0]->navigations[1]);
3175 } 3185 }
3176 */ 3186 */
3177 3187
3178 } // namespace content 3188 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/web_contents/navigation_controller_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698