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

Side by Side Diff: chrome/browser/tab_contents/navigation_controller_unittest.cc

Issue 3585002: Revert 60963 - Merge 58701 - Relanding this:... (Closed) Base URL: svn://svn.chromium.org/chrome/branches/517/src/
Patch Set: Created 10 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/path_service.h" 6 #include "base/path_service.h"
7 #include "base/scoped_ptr.h" 7 #include "base/scoped_ptr.h"
8 #include "base/stl_util-inl.h" 8 #include "base/stl_util-inl.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 1787 matching lines...) Expand 10 before | Expand all | Expand 10 after
1798 1798
1799 // And there should be a pending entry for url3. 1799 // And there should be a pending entry for url3.
1800 ASSERT_TRUE(other_controller.pending_entry()); 1800 ASSERT_TRUE(other_controller.pending_entry());
1801 1801
1802 EXPECT_EQ(url3, other_controller.pending_entry()->url()); 1802 EXPECT_EQ(url3, other_controller.pending_entry()->url());
1803 1803
1804 // And the session id should have been copied. 1804 // And the session id should have been copied.
1805 EXPECT_EQ(controller().session_id().id(), other_controller.session_id().id()); 1805 EXPECT_EQ(controller().session_id().id(), other_controller.session_id().id());
1806 } 1806 }
1807 1807
1808 // Tests that navigations initiated from the page (with the history object)
1809 // work as expected without navigation entries.
1810 TEST_F(NavigationControllerTest, HistoryNavigate) {
1811 const GURL url1("http://foo1");
1812 const GURL url2("http://foo2");
1813 const GURL url3("http://foo3");
1814
1815 NavigateAndCommit(url1);
1816 NavigateAndCommit(url2);
1817 NavigateAndCommit(url3);
1818 controller().GoBack();
1819 contents()->CommitPendingNavigation();
1820
1821 // Casts the TabContents to a RenderViewHostDelegate::BrowserIntegration so we
1822 // can call GoToEntryAtOffset which is private.
1823 RenderViewHostDelegate::BrowserIntegration* rvh_delegate =
1824 static_cast<RenderViewHostDelegate::BrowserIntegration*>(contents());
1825
1826 // Simulate the page calling history.back(), it should not create a pending
1827 // entry.
1828 rvh_delegate->GoToEntryAtOffset(-1);
1829 EXPECT_EQ(-1, controller().pending_entry_index());
1830 // The actual cross-navigation is suspended until the current RVH tells us
1831 // it unloaded, simulate that.
1832 contents()->ProceedWithCrossSiteNavigation();
1833 // Also make sure we told the page to navigate.
1834 const IPC::Message* message =
1835 process()->sink().GetFirstMessageMatching(ViewMsg_Navigate::ID);
1836 ASSERT_TRUE(message != NULL);
1837 Tuple1<ViewMsg_Navigate_Params> nav_params;
1838 ViewMsg_Navigate::Read(message, &nav_params);
1839 EXPECT_EQ(url1, nav_params.a.url);
1840 process()->sink().ClearMessages();
1841
1842 // Now test history.forward()
1843 rvh_delegate->GoToEntryAtOffset(1);
1844 EXPECT_EQ(-1, controller().pending_entry_index());
1845 // The actual cross-navigation is suspended until the current RVH tells us
1846 // it unloaded, simulate that.
1847 contents()->ProceedWithCrossSiteNavigation();
1848 message = process()->sink().GetFirstMessageMatching(ViewMsg_Navigate::ID);
1849 ASSERT_TRUE(message != NULL);
1850 ViewMsg_Navigate::Read(message, &nav_params);
1851 EXPECT_EQ(url3, nav_params.a.url);
1852 process()->sink().ClearMessages();
1853
1854 // Make sure an extravagant history.go() doesn't break.
1855 rvh_delegate->GoToEntryAtOffset(120); // Out of bounds.
1856 EXPECT_EQ(-1, controller().pending_entry_index());
1857 message = process()->sink().GetFirstMessageMatching(ViewMsg_Navigate::ID);
1858 EXPECT_TRUE(message == NULL);
1859 }
1860
1861 /* TODO(brettw) These test pass on my local machine but fail on the XP buildbot 1808 /* TODO(brettw) These test pass on my local machine but fail on the XP buildbot
1862 (but not Vista) cleaning up the directory after they run. 1809 (but not Vista) cleaning up the directory after they run.
1863 This should be fixed. 1810 This should be fixed.
1864 1811
1865 // A basic test case. Navigates to a single url, and make sure the history 1812 // A basic test case. Navigates to a single url, and make sure the history
1866 // db matches. 1813 // db matches.
1867 TEST_F(NavigationControllerHistoryTest, Basic) { 1814 TEST_F(NavigationControllerHistoryTest, Basic) {
1868 controller().LoadURL(url0, GURL(), PageTransition::LINK); 1815 controller().LoadURL(url0, GURL(), PageTransition::LINK);
1869 rvh()->SendNavigate(0, url0); 1816 rvh()->SendNavigate(0, url0);
1870 1817
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1933 PageTransition::LINK); 1880 PageTransition::LINK);
1934 session_helper_.AssertNavigationEquals(nav, 1881 session_helper_.AssertNavigationEquals(nav,
1935 windows_[0]->tabs[0]->navigations[0]); 1882 windows_[0]->tabs[0]->navigations[0]);
1936 nav.set_url(url2); 1883 nav.set_url(url2);
1937 session_helper_.AssertNavigationEquals(nav, 1884 session_helper_.AssertNavigationEquals(nav,
1938 windows_[0]->tabs[0]->navigations[1]); 1885 windows_[0]->tabs[0]->navigations[1]);
1939 } 1886 }
1940 */ 1887 */
1941 1888
1942 } // namespace 1889 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698