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

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

Issue 11428119: Merge 167856 - Ensure a transient entry is discarded on in-page navigations. (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1271/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/file_util.h" 5 #include "base/file_util.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/path_service.h" 7 #include "base/path_service.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 1953 matching lines...) Expand 10 before | Expand all | Expand 10 after
1964 // Tests the transient entry, making sure it goes away with all navigations. 1964 // Tests the transient entry, making sure it goes away with all navigations.
1965 TEST_F(NavigationControllerTest, TransientEntry) { 1965 TEST_F(NavigationControllerTest, TransientEntry) {
1966 NavigationControllerImpl& controller = controller_impl(); 1966 NavigationControllerImpl& controller = controller_impl();
1967 TestNotificationTracker notifications; 1967 TestNotificationTracker notifications;
1968 RegisterForAllNavNotifications(&notifications, &controller); 1968 RegisterForAllNavNotifications(&notifications, &controller);
1969 1969
1970 const GURL url0("http://foo/0"); 1970 const GURL url0("http://foo/0");
1971 const GURL url1("http://foo/1"); 1971 const GURL url1("http://foo/1");
1972 const GURL url2("http://foo/2"); 1972 const GURL url2("http://foo/2");
1973 const GURL url3("http://foo/3"); 1973 const GURL url3("http://foo/3");
1974 const GURL url3_ref("http://foo/3#bar");
1974 const GURL url4("http://foo/4"); 1975 const GURL url4("http://foo/4");
1975 const GURL transient_url("http://foo/transient"); 1976 const GURL transient_url("http://foo/transient");
1976 1977
1977 controller.LoadURL( 1978 controller.LoadURL(
1978 url0, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string()); 1979 url0, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
1979 test_rvh()->SendNavigate(0, url0); 1980 test_rvh()->SendNavigate(0, url0);
1980 controller.LoadURL( 1981 controller.LoadURL(
1981 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string()); 1982 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
1982 test_rvh()->SendNavigate(1, url1); 1983 test_rvh()->SendNavigate(1, url1);
1983 1984
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
2078 controller.AddTransientEntry(transient_entry); 2079 controller.AddTransientEntry(transient_entry);
2079 EXPECT_EQ(transient_url, controller.GetActiveEntry()->GetURL()); 2080 EXPECT_EQ(transient_url, controller.GetActiveEntry()->GetURL());
2080 EXPECT_TRUE(controller.CanGoForward()); 2081 EXPECT_TRUE(controller.CanGoForward());
2081 controller.GoForward(); 2082 controller.GoForward();
2082 // We should have navigated, transient entry should be gone. 2083 // We should have navigated, transient entry should be gone.
2083 EXPECT_EQ(url3, controller.GetActiveEntry()->GetURL()); 2084 EXPECT_EQ(url3, controller.GetActiveEntry()->GetURL());
2084 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL()); 2085 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL());
2085 test_rvh()->SendNavigate(3, url3); 2086 test_rvh()->SendNavigate(3, url3);
2086 EXPECT_EQ(url3, controller.GetVisibleEntry()->GetURL()); 2087 EXPECT_EQ(url3, controller.GetVisibleEntry()->GetURL());
2087 2088
2089 // Add a transient and do an in-page navigation, replacing the current entry.
2090 transient_entry = new NavigationEntryImpl;
2091 transient_entry->SetURL(transient_url);
2092 controller.AddTransientEntry(transient_entry);
2093 EXPECT_EQ(transient_url, controller.GetActiveEntry()->GetURL());
2094 test_rvh()->SendNavigate(3, url3_ref);
2095 // Transient entry should be gone.
2096 EXPECT_EQ(url3_ref, controller.GetActiveEntry()->GetURL());
2097
2088 // Ensure the URLs are correct. 2098 // Ensure the URLs are correct.
2089 EXPECT_EQ(controller.GetEntryCount(), 5); 2099 EXPECT_EQ(controller.GetEntryCount(), 5);
2090 EXPECT_EQ(controller.GetEntryAtIndex(0)->GetURL(), url0); 2100 EXPECT_EQ(controller.GetEntryAtIndex(0)->GetURL(), url0);
2091 EXPECT_EQ(controller.GetEntryAtIndex(1)->GetURL(), url1); 2101 EXPECT_EQ(controller.GetEntryAtIndex(1)->GetURL(), url1);
2092 EXPECT_EQ(controller.GetEntryAtIndex(2)->GetURL(), url2); 2102 EXPECT_EQ(controller.GetEntryAtIndex(2)->GetURL(), url2);
2093 EXPECT_EQ(controller.GetEntryAtIndex(3)->GetURL(), url3); 2103 EXPECT_EQ(controller.GetEntryAtIndex(3)->GetURL(), url3_ref);
2094 EXPECT_EQ(controller.GetEntryAtIndex(4)->GetURL(), url4); 2104 EXPECT_EQ(controller.GetEntryAtIndex(4)->GetURL(), url4);
2095 } 2105 }
2096 2106
2097 // Test that Reload initiates a new navigation to a transient entry's URL. 2107 // Test that Reload initiates a new navigation to a transient entry's URL.
2098 TEST_F(NavigationControllerTest, ReloadTransient) { 2108 TEST_F(NavigationControllerTest, ReloadTransient) {
2099 NavigationControllerImpl& controller = controller_impl(); 2109 NavigationControllerImpl& controller = controller_impl();
2100 const GURL url0("http://foo/0"); 2110 const GURL url0("http://foo/0");
2101 const GURL url1("http://foo/1"); 2111 const GURL url1("http://foo/1");
2102 const GURL transient_url("http://foo/transient"); 2112 const GURL transient_url("http://foo/transient");
2103 2113
(...skipping 794 matching lines...) Expand 10 before | Expand all | Expand 10 after
2898 TabNavigation nav(0, url0, GURL(), string16(), 2908 TabNavigation nav(0, url0, GURL(), string16(),
2899 webkit_glue::CreateHistoryStateForURL(url0), 2909 webkit_glue::CreateHistoryStateForURL(url0),
2900 content::PAGE_TRANSITION_LINK); 2910 content::PAGE_TRANSITION_LINK);
2901 session_helper_.AssertNavigationEquals(nav, 2911 session_helper_.AssertNavigationEquals(nav,
2902 windows_[0]->tabs[0]->navigations[0]); 2912 windows_[0]->tabs[0]->navigations[0]);
2903 nav.set_url(url2); 2913 nav.set_url(url2);
2904 session_helper_.AssertNavigationEquals(nav, 2914 session_helper_.AssertNavigationEquals(nav,
2905 windows_[0]->tabs[0]->navigations[1]); 2915 windows_[0]->tabs[0]->navigations[1]);
2906 } 2916 }
2907 */ 2917 */
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