Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 1922 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1933 // Go back one. | 1933 // Go back one. |
| 1934 ViewHostMsg_FrameNavigate_Params back_params(params); | 1934 ViewHostMsg_FrameNavigate_Params back_params(params); |
| 1935 controller.GoBack(); | 1935 controller.GoBack(); |
| 1936 back_params.url = url1; | 1936 back_params.url = url1; |
| 1937 back_params.page_id = 0; | 1937 back_params.page_id = 0; |
| 1938 EXPECT_TRUE(controller.RendererDidNavigate(back_params, &details)); | 1938 EXPECT_TRUE(controller.RendererDidNavigate(back_params, &details)); |
| 1939 EXPECT_EQ(1U, navigation_entry_committed_counter_); | 1939 EXPECT_EQ(1U, navigation_entry_committed_counter_); |
| 1940 navigation_entry_committed_counter_ = 0; | 1940 navigation_entry_committed_counter_ = 0; |
| 1941 // is_in_page is false in that case but should be true. | 1941 // is_in_page is false in that case but should be true. |
| 1942 // See comment in AreURLsInPageNavigation() in navigation_controller.cc | 1942 // See comment in AreURLsInPageNavigation() in navigation_controller.cc |
| 1943 // EXPECT_TRUE(details.is_in_page); | 1943 // EXPECT_TRUE(details.is_in_page); |
|
Charlie Reis
2013/08/05 22:18:10
Can we fix this now?
| |
| 1944 EXPECT_EQ(2, controller.GetEntryCount()); | 1944 EXPECT_EQ(2, controller.GetEntryCount()); |
| 1945 EXPECT_EQ(0, controller.GetCurrentEntryIndex()); | 1945 EXPECT_EQ(0, controller.GetCurrentEntryIndex()); |
| 1946 EXPECT_EQ(back_params.url, controller.GetActiveEntry()->GetURL()); | 1946 EXPECT_EQ(back_params.url, controller.GetActiveEntry()->GetURL()); |
| 1947 | 1947 |
| 1948 // Go forward | 1948 // Go forward |
| 1949 ViewHostMsg_FrameNavigate_Params forward_params(params); | 1949 ViewHostMsg_FrameNavigate_Params forward_params(params); |
| 1950 controller.GoForward(); | 1950 controller.GoForward(); |
| 1951 forward_params.url = url2; | 1951 forward_params.url = url2; |
| 1952 forward_params.page_id = 1; | 1952 forward_params.page_id = 1; |
| 1953 EXPECT_TRUE(controller.RendererDidNavigate(forward_params, &details)); | 1953 EXPECT_TRUE(controller.RendererDidNavigate(forward_params, &details)); |
| 1954 EXPECT_EQ(1U, navigation_entry_committed_counter_); | 1954 EXPECT_EQ(1U, navigation_entry_committed_counter_); |
| 1955 navigation_entry_committed_counter_ = 0; | 1955 navigation_entry_committed_counter_ = 0; |
| 1956 EXPECT_TRUE(details.is_in_page); | 1956 EXPECT_TRUE(details.is_in_page); |
| 1957 EXPECT_EQ(2, controller.GetEntryCount()); | 1957 EXPECT_EQ(2, controller.GetEntryCount()); |
| 1958 EXPECT_EQ(1, controller.GetCurrentEntryIndex()); | 1958 EXPECT_EQ(1, controller.GetCurrentEntryIndex()); |
| 1959 EXPECT_EQ(forward_params.url, | 1959 EXPECT_EQ(forward_params.url, |
| 1960 controller.GetActiveEntry()->GetURL()); | 1960 controller.GetActiveEntry()->GetURL()); |
| 1961 | 1961 |
| 1962 // Go back and forward again. This time renderer claims it's in page | |
| 1963 // navigation. | |
| 1964 ViewHostMsg_FrameNavigate_Params second_back_params(back_params); | |
| 1965 second_back_params.was_within_same_page = true; | |
| 1966 controller.GoBack(); | |
| 1967 EXPECT_TRUE(controller.RendererDidNavigate(second_back_params, &details)); | |
| 1968 EXPECT_EQ(1U, navigation_entry_committed_counter_); | |
| 1969 navigation_entry_committed_counter_ = 0; | |
| 1970 EXPECT_TRUE(details.is_in_page); | |
| 1971 EXPECT_EQ(2, controller.GetEntryCount()); | |
| 1972 EXPECT_EQ(0, controller.GetCurrentEntryIndex()); | |
| 1973 EXPECT_EQ(second_back_params.url, controller.GetActiveEntry()->GetURL()); | |
| 1974 | |
| 1975 ViewHostMsg_FrameNavigate_Params second_forward_params(forward_params); | |
| 1976 second_forward_params.was_within_same_page = true; | |
| 1977 controller.GoForward(); | |
| 1978 EXPECT_TRUE(controller.RendererDidNavigate(second_forward_params, &details)); | |
| 1979 EXPECT_EQ(1U, navigation_entry_committed_counter_); | |
| 1980 navigation_entry_committed_counter_ = 0; | |
| 1981 EXPECT_TRUE(details.is_in_page); | |
| 1982 EXPECT_EQ(2, controller.GetEntryCount()); | |
| 1983 EXPECT_EQ(1, controller.GetCurrentEntryIndex()); | |
| 1984 EXPECT_EQ(second_forward_params.url, | |
| 1985 controller.GetActiveEntry()->GetURL()); | |
| 1986 | |
| 1962 // Now go back and forward again. This is to work around a bug where we would | 1987 // Now go back and forward again. This is to work around a bug where we would |
| 1963 // compare the incoming URL with the last committed entry rather than the | 1988 // compare the incoming URL with the last committed entry rather than the |
| 1964 // one identified by an existing page ID. This would result in the second URL | 1989 // one identified by an existing page ID. This would result in the second URL |
| 1965 // losing the reference fragment when you navigate away from it and then back. | 1990 // losing the reference fragment when you navigate away from it and then back. |
| 1966 controller.GoBack(); | 1991 controller.GoBack(); |
| 1967 EXPECT_TRUE(controller.RendererDidNavigate(back_params, &details)); | 1992 EXPECT_TRUE(controller.RendererDidNavigate(back_params, &details)); |
| 1968 controller.GoForward(); | 1993 controller.GoForward(); |
| 1969 EXPECT_TRUE(controller.RendererDidNavigate(forward_params, &details)); | 1994 EXPECT_TRUE(controller.RendererDidNavigate(forward_params, &details)); |
| 1970 EXPECT_EQ(forward_params.url, | 1995 EXPECT_EQ(forward_params.url, |
| 1971 controller.GetActiveEntry()->GetURL()); | 1996 controller.GetActiveEntry()->GetURL()); |
| (...skipping 777 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2749 | 2774 |
| 2750 // Navigate to URL with refs. | 2775 // Navigate to URL with refs. |
| 2751 test_rvh()->SendNavigate(1, url_with_ref); | 2776 test_rvh()->SendNavigate(1, url_with_ref); |
| 2752 | 2777 |
| 2753 // Reloading the page is not an in-page navigation. | 2778 // Reloading the page is not an in-page navigation. |
| 2754 EXPECT_FALSE(controller.IsURLInPageNavigation(url_with_ref)); | 2779 EXPECT_FALSE(controller.IsURLInPageNavigation(url_with_ref)); |
| 2755 EXPECT_FALSE(controller.IsURLInPageNavigation(url)); | 2780 EXPECT_FALSE(controller.IsURLInPageNavigation(url)); |
| 2756 EXPECT_FALSE(controller.IsURLInPageNavigation(other_url)); | 2781 EXPECT_FALSE(controller.IsURLInPageNavigation(other_url)); |
| 2757 const GURL other_url_with_ref("http://www.google.com/home.html#my_other_ref"); | 2782 const GURL other_url_with_ref("http://www.google.com/home.html#my_other_ref"); |
| 2758 EXPECT_TRUE(controller.IsURLInPageNavigation( | 2783 EXPECT_TRUE(controller.IsURLInPageNavigation( |
| 2759 other_url_with_ref)); | 2784 other_url_with_ref)); |
|
Charlie Reis
2013/08/05 22:18:10
Maybe we can add a check and comment below saying
| |
| 2760 } | 2785 } |
| 2761 | 2786 |
| 2762 // Some pages can have subframes with the same base URL (minus the reference) as | 2787 // Some pages can have subframes with the same base URL (minus the reference) as |
| 2763 // the main page. Even though this is hard, it can happen, and we don't want | 2788 // the main page. Even though this is hard, it can happen, and we don't want |
| 2764 // these subframe navigations to affect the toplevel document. They should | 2789 // these subframe navigations to affect the toplevel document. They should |
| 2765 // instead be ignored. http://crbug.com/5585 | 2790 // instead be ignored. http://crbug.com/5585 |
| 2766 TEST_F(NavigationControllerTest, SameSubframe) { | 2791 TEST_F(NavigationControllerTest, SameSubframe) { |
| 2767 NavigationControllerImpl& controller = controller_impl(); | 2792 NavigationControllerImpl& controller = controller_impl(); |
| 2768 // Navigate the main frame. | 2793 // Navigate the main frame. |
| 2769 const GURL url("http://www.google.com/"); | 2794 const GURL url("http://www.google.com/"); |
| (...skipping 1126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3896 PAGE_TRANSITION_LINK); | 3921 PAGE_TRANSITION_LINK); |
| 3897 session_helper_.AssertNavigationEquals(nav, | 3922 session_helper_.AssertNavigationEquals(nav, |
| 3898 windows_[0]->tabs[0]->navigations[0]); | 3923 windows_[0]->tabs[0]->navigations[0]); |
| 3899 nav.set_url(url2); | 3924 nav.set_url(url2); |
| 3900 session_helper_.AssertNavigationEquals(nav, | 3925 session_helper_.AssertNavigationEquals(nav, |
| 3901 windows_[0]->tabs[0]->navigations[1]); | 3926 windows_[0]->tabs[0]->navigations[1]); |
| 3902 } | 3927 } |
| 3903 */ | 3928 */ |
| 3904 | 3929 |
| 3905 } // namespace content | 3930 } // namespace content |
| OLD | NEW |