| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 1829 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1840 const GURL url1("http://foo1"); | 1840 const GURL url1("http://foo1"); |
| 1841 const GURL url2("http://foo2"); | 1841 const GURL url2("http://foo2"); |
| 1842 const GURL url3("http://foo3"); | 1842 const GURL url3("http://foo3"); |
| 1843 | 1843 |
| 1844 NavigateAndCommit(url1); | 1844 NavigateAndCommit(url1); |
| 1845 NavigateAndCommit(url2); | 1845 NavigateAndCommit(url2); |
| 1846 | 1846 |
| 1847 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents()); | 1847 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents()); |
| 1848 NavigationController& other_controller = other_contents->controller(); | 1848 NavigationController& other_controller = other_contents->controller(); |
| 1849 other_contents->NavigateAndCommit(url3); | 1849 other_contents->NavigateAndCommit(url3); |
| 1850 other_contents->ExpectSetHistoryLengthAndPrune( |
| 1851 other_controller.GetEntryAtIndex(0)->site_instance(), 2, |
| 1852 other_controller.GetEntryAtIndex(0)->page_id()); |
| 1850 other_controller.CopyStateFromAndPrune(&controller(), false); | 1853 other_controller.CopyStateFromAndPrune(&controller(), false); |
| 1851 | 1854 |
| 1852 // other_controller should now contain the 3 urls: url1, url2 and url3. | 1855 // other_controller should now contain the 3 urls: url1, url2 and url3. |
| 1853 | 1856 |
| 1854 ASSERT_EQ(3, other_controller.entry_count()); | 1857 ASSERT_EQ(3, other_controller.entry_count()); |
| 1855 | 1858 |
| 1856 ASSERT_EQ(2, other_controller.GetCurrentEntryIndex()); | 1859 ASSERT_EQ(2, other_controller.GetCurrentEntryIndex()); |
| 1857 | 1860 |
| 1858 EXPECT_EQ(url1, other_controller.GetEntryAtIndex(0)->url()); | 1861 EXPECT_EQ(url1, other_controller.GetEntryAtIndex(0)->url()); |
| 1859 EXPECT_EQ(url2, other_controller.GetEntryAtIndex(1)->url()); | 1862 EXPECT_EQ(url2, other_controller.GetEntryAtIndex(1)->url()); |
| 1860 EXPECT_EQ(url3, other_controller.GetEntryAtIndex(2)->url()); | 1863 EXPECT_EQ(url3, other_controller.GetEntryAtIndex(2)->url()); |
| 1861 } | 1864 } |
| 1862 | 1865 |
| 1863 // Test CopyStateFromAndPrune with 2 urls, the first selected and nothing in | 1866 // Test CopyStateFromAndPrune with 2 urls, the first selected and nothing in |
| 1864 // the target. | 1867 // the target. |
| 1865 TEST_F(NavigationControllerTest, CopyStateFromAndPrune2) { | 1868 TEST_F(NavigationControllerTest, CopyStateFromAndPrune2) { |
| 1866 const GURL url1("http://foo1"); | 1869 const GURL url1("http://foo1"); |
| 1867 const GURL url2("http://foo2"); | 1870 const GURL url2("http://foo2"); |
| 1868 const GURL url3("http://foo3"); | 1871 const GURL url3("http://foo3"); |
| 1869 | 1872 |
| 1870 NavigateAndCommit(url1); | 1873 NavigateAndCommit(url1); |
| 1871 NavigateAndCommit(url2); | 1874 NavigateAndCommit(url2); |
| 1872 controller().GoBack(); | 1875 controller().GoBack(); |
| 1873 | 1876 |
| 1874 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents()); | 1877 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents()); |
| 1875 NavigationController& other_controller = other_contents->controller(); | 1878 NavigationController& other_controller = other_contents->controller(); |
| 1879 other_contents->ExpectSetHistoryLengthAndPrune(NULL, 1, -1); |
| 1876 other_controller.CopyStateFromAndPrune(&controller(), false); | 1880 other_controller.CopyStateFromAndPrune(&controller(), false); |
| 1877 | 1881 |
| 1878 // other_controller should now contain the 1 url: url1. | 1882 // other_controller should now contain the 1 url: url1. |
| 1879 | 1883 |
| 1880 ASSERT_EQ(1, other_controller.entry_count()); | 1884 ASSERT_EQ(1, other_controller.entry_count()); |
| 1881 | 1885 |
| 1882 ASSERT_EQ(0, other_controller.GetCurrentEntryIndex()); | 1886 ASSERT_EQ(0, other_controller.GetCurrentEntryIndex()); |
| 1883 | 1887 |
| 1884 EXPECT_EQ(url1, other_controller.GetEntryAtIndex(0)->url()); | 1888 EXPECT_EQ(url1, other_controller.GetEntryAtIndex(0)->url()); |
| 1885 } | 1889 } |
| 1886 | 1890 |
| 1887 // Test CopyStateFromAndPrune with 2 urls, the first selected and nothing in | 1891 // Test CopyStateFromAndPrune with 2 urls, the first selected and nothing in |
| 1888 // the target. | 1892 // the target. |
| 1889 TEST_F(NavigationControllerTest, CopyStateFromAndPrune3) { | 1893 TEST_F(NavigationControllerTest, CopyStateFromAndPrune3) { |
| 1890 const GURL url1("http://foo1"); | 1894 const GURL url1("http://foo1"); |
| 1891 const GURL url2("http://foo2"); | 1895 const GURL url2("http://foo2"); |
| 1892 const GURL url3("http://foo3"); | 1896 const GURL url3("http://foo3"); |
| 1893 | 1897 |
| 1894 NavigateAndCommit(url1); | 1898 NavigateAndCommit(url1); |
| 1895 NavigateAndCommit(url2); | 1899 NavigateAndCommit(url2); |
| 1896 controller().GoBack(); | 1900 controller().GoBack(); |
| 1897 | 1901 |
| 1898 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents()); | 1902 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents()); |
| 1899 NavigationController& other_controller = other_contents->controller(); | 1903 NavigationController& other_controller = other_contents->controller(); |
| 1900 other_controller.LoadURL(url3, GURL(), PageTransition::TYPED); | 1904 other_controller.LoadURL(url3, GURL(), PageTransition::TYPED); |
| 1905 other_contents->ExpectSetHistoryLengthAndPrune(NULL, 1, -1); |
| 1901 other_controller.CopyStateFromAndPrune(&controller(), false); | 1906 other_controller.CopyStateFromAndPrune(&controller(), false); |
| 1902 | 1907 |
| 1903 // other_controller should now contain 1 entry for url1, and a pending entry | 1908 // other_controller should now contain 1 entry for url1, and a pending entry |
| 1904 // for url3. | 1909 // for url3. |
| 1905 | 1910 |
| 1906 ASSERT_EQ(1, other_controller.entry_count()); | 1911 ASSERT_EQ(1, other_controller.entry_count()); |
| 1907 | 1912 |
| 1908 EXPECT_EQ(0, other_controller.GetCurrentEntryIndex()); | 1913 EXPECT_EQ(0, other_controller.GetCurrentEntryIndex()); |
| 1909 | 1914 |
| 1910 EXPECT_EQ(url1, other_controller.GetEntryAtIndex(0)->url()); | 1915 EXPECT_EQ(url1, other_controller.GetEntryAtIndex(0)->url()); |
| 1911 | 1916 |
| 1912 // And there should be a pending entry for url3. | 1917 // And there should be a pending entry for url3. |
| 1913 ASSERT_TRUE(other_controller.pending_entry()); | 1918 ASSERT_TRUE(other_controller.pending_entry()); |
| 1914 | 1919 |
| 1915 EXPECT_EQ(url3, other_controller.pending_entry()->url()); | 1920 EXPECT_EQ(url3, other_controller.pending_entry()->url()); |
| 1916 } | 1921 } |
| 1917 | 1922 |
| 1918 // Test CopyStateFromAndPrune with 1 url in source, nothing in target and | 1923 // Test CopyStateFromAndPrune with 1 url in source, nothing in target and |
| 1919 // remove_first = true. | 1924 // remove_first = true. |
| 1920 TEST_F(NavigationControllerTest, CopyStateFromAndPrune4) { | 1925 TEST_F(NavigationControllerTest, CopyStateFromAndPrune4) { |
| 1921 const GURL url1("http://foo1"); | 1926 const GURL url1("http://foo1"); |
| 1922 | 1927 |
| 1923 NavigateAndCommit(url1); | 1928 NavigateAndCommit(url1); |
| 1924 | 1929 |
| 1925 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents()); | 1930 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents()); |
| 1926 NavigationController& other_controller = other_contents->controller(); | 1931 NavigationController& other_controller = other_contents->controller(); |
| 1932 other_contents->ExpectSetHistoryLengthAndPrune(NULL, 1, -1); |
| 1927 other_controller.CopyStateFromAndPrune(&controller(), true); | 1933 other_controller.CopyStateFromAndPrune(&controller(), true); |
| 1928 | 1934 |
| 1929 // other_controller should now contain 1 entry for url1. | 1935 // other_controller should now contain 1 entry for url1. |
| 1930 | 1936 |
| 1931 ASSERT_EQ(1, other_controller.entry_count()); | 1937 ASSERT_EQ(1, other_controller.entry_count()); |
| 1932 | 1938 |
| 1933 EXPECT_EQ(0, other_controller.GetCurrentEntryIndex()); | 1939 EXPECT_EQ(0, other_controller.GetCurrentEntryIndex()); |
| 1934 | 1940 |
| 1935 EXPECT_EQ(url1, other_controller.GetEntryAtIndex(0)->url()); | 1941 EXPECT_EQ(url1, other_controller.GetEntryAtIndex(0)->url()); |
| 1936 | 1942 |
| 1937 // And there should be a pending entry for url3. | 1943 // And there should be a pending entry for url3. |
| 1938 ASSERT_FALSE(other_controller.pending_entry()); | 1944 ASSERT_FALSE(other_controller.pending_entry()); |
| 1939 } | 1945 } |
| 1940 | 1946 |
| 1941 // Test CopyStateFromAndPrune with 1 url in source, 1 in target and | 1947 // Test CopyStateFromAndPrune with 1 url in source, 1 in target and |
| 1942 // remove_first = true. | 1948 // remove_first = true. |
| 1943 TEST_F(NavigationControllerTest, CopyStateFromAndPrune5) { | 1949 TEST_F(NavigationControllerTest, CopyStateFromAndPrune5) { |
| 1944 const GURL url1("http://foo1"); | 1950 const GURL url1("http://foo1"); |
| 1945 const GURL url2("http://foo2"); | 1951 const GURL url2("http://foo2"); |
| 1946 | 1952 |
| 1947 NavigateAndCommit(url1); | 1953 NavigateAndCommit(url1); |
| 1948 | 1954 |
| 1949 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents()); | 1955 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents()); |
| 1950 NavigationController& other_controller = other_contents->controller(); | 1956 NavigationController& other_controller = other_contents->controller(); |
| 1951 other_contents->NavigateAndCommit(url2); | 1957 other_contents->NavigateAndCommit(url2); |
| 1958 other_contents->ExpectSetHistoryLengthAndPrune( |
| 1959 other_controller.GetEntryAtIndex(0)->site_instance(), |
| 1960 1, |
| 1961 other_controller.GetEntryAtIndex(0)->page_id() + 1); |
| 1952 other_controller.CopyStateFromAndPrune(&controller(), true); | 1962 other_controller.CopyStateFromAndPrune(&controller(), true); |
| 1953 | 1963 |
| 1954 // other_controller should now contain 1 entry, url1. | 1964 // other_controller should now contain 1 entry, url1. |
| 1955 | 1965 |
| 1956 ASSERT_EQ(1, other_controller.entry_count()); | 1966 ASSERT_EQ(1, other_controller.entry_count()); |
| 1957 EXPECT_EQ(0, other_controller.GetCurrentEntryIndex()); | 1967 EXPECT_EQ(0, other_controller.GetCurrentEntryIndex()); |
| 1958 EXPECT_EQ(url1, other_controller.GetEntryAtIndex(0)->url()); | 1968 EXPECT_EQ(url1, other_controller.GetEntryAtIndex(0)->url()); |
| 1959 | 1969 |
| 1960 // And there should be a pending entry for url3. | 1970 // And there should be a pending entry for url3. |
| 1961 ASSERT_FALSE(other_controller.pending_entry()); | 1971 ASSERT_FALSE(other_controller.pending_entry()); |
| 1962 } | 1972 } |
| 1963 | 1973 |
| 1964 // Test CopyStateFromAndPrune with 1 url in source, 2 in target and | 1974 // Test CopyStateFromAndPrune with 1 url in source, 2 in target and |
| 1965 // remove_first = true. | 1975 // remove_first = true. |
| 1966 TEST_F(NavigationControllerTest, CopyStateFromAndPrune6) { | 1976 TEST_F(NavigationControllerTest, CopyStateFromAndPrune6) { |
| 1967 const GURL url1("http://foo1"); | 1977 const GURL url1("http://foo1"); |
| 1968 const GURL url2("http://foo2"); | 1978 const GURL url2("http://foo2"); |
| 1969 const GURL url3("http://foo2"); | 1979 const GURL url3("http://foo2"); |
| 1970 | 1980 |
| 1971 NavigateAndCommit(url1); | 1981 NavigateAndCommit(url1); |
| 1972 | 1982 |
| 1973 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents()); | 1983 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents()); |
| 1974 NavigationController& other_controller = other_contents->controller(); | 1984 NavigationController& other_controller = other_contents->controller(); |
| 1975 other_contents->NavigateAndCommit(url2); | 1985 other_contents->NavigateAndCommit(url2); |
| 1976 other_controller.LoadURL(url3, GURL(), PageTransition::TYPED); | 1986 other_controller.LoadURL(url3, GURL(), PageTransition::TYPED); |
| 1987 other_contents->ExpectSetHistoryLengthAndPrune( |
| 1988 other_controller.GetEntryAtIndex(0)->site_instance(), |
| 1989 1, |
| 1990 other_controller.GetEntryAtIndex(0)->page_id() + 1); |
| 1977 other_controller.CopyStateFromAndPrune(&controller(), true); | 1991 other_controller.CopyStateFromAndPrune(&controller(), true); |
| 1978 | 1992 |
| 1979 // other_controller should now contain 2 entries: url1, and url3. | 1993 // other_controller should now contain 2 entries: url1, and url3. |
| 1980 ASSERT_EQ(1, other_controller.entry_count()); | 1994 ASSERT_EQ(1, other_controller.entry_count()); |
| 1981 EXPECT_EQ(0, other_controller.GetCurrentEntryIndex()); | 1995 EXPECT_EQ(0, other_controller.GetCurrentEntryIndex()); |
| 1982 EXPECT_EQ(url1, other_controller.GetEntryAtIndex(0)->url()); | 1996 EXPECT_EQ(url1, other_controller.GetEntryAtIndex(0)->url()); |
| 1983 | 1997 |
| 1984 // And there should be a pending entry for url3. | 1998 // And there should be a pending entry for url3. |
| 1985 ASSERT_TRUE(other_controller.pending_entry()); | 1999 ASSERT_TRUE(other_controller.pending_entry()); |
| 1986 EXPECT_EQ(url3, other_controller.pending_entry()->url()); | 2000 EXPECT_EQ(url3, other_controller.pending_entry()->url()); |
| (...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2287 TabNavigation nav(0, url0, GURL(), string16(), | 2301 TabNavigation nav(0, url0, GURL(), string16(), |
| 2288 webkit_glue::CreateHistoryStateForURL(url0), | 2302 webkit_glue::CreateHistoryStateForURL(url0), |
| 2289 PageTransition::LINK); | 2303 PageTransition::LINK); |
| 2290 session_helper_.AssertNavigationEquals(nav, | 2304 session_helper_.AssertNavigationEquals(nav, |
| 2291 windows_[0]->tabs[0]->navigations[0]); | 2305 windows_[0]->tabs[0]->navigations[0]); |
| 2292 nav.set_url(url2); | 2306 nav.set_url(url2); |
| 2293 session_helper_.AssertNavigationEquals(nav, | 2307 session_helper_.AssertNavigationEquals(nav, |
| 2294 windows_[0]->tabs[0]->navigations[1]); | 2308 windows_[0]->tabs[0]->navigations[1]); |
| 2295 } | 2309 } |
| 2296 */ | 2310 */ |
| OLD | NEW |