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/basictypes.h" | 5 #include "base/basictypes.h" |
6 | 6 |
7 #include "base/shared_memory.h" | 7 #include "base/shared_memory.h" |
8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "chrome/test/base/render_view_test.h" | 10 #include "chrome/test/base/render_view_test.h" |
(...skipping 832 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
843 // Frame should stay in view-source mode. | 843 // Frame should stay in view-source mode. |
844 EXPECT_TRUE(web_frame->isViewSourceModeEnabled()); | 844 EXPECT_TRUE(web_frame->isViewSourceModeEnabled()); |
845 } | 845 } |
846 | 846 |
847 // Regression test for http://crbug.com/41562 | 847 // Regression test for http://crbug.com/41562 |
848 TEST_F(RenderViewTest, UpdateTargetURLWithInvalidURL) { | 848 TEST_F(RenderViewTest, UpdateTargetURLWithInvalidURL) { |
849 const GURL invalid_gurl("http://"); | 849 const GURL invalid_gurl("http://"); |
850 view_->setMouseOverURL(WebKit::WebURL(invalid_gurl)); | 850 view_->setMouseOverURL(WebKit::WebURL(invalid_gurl)); |
851 EXPECT_EQ(invalid_gurl, view_->target_url_); | 851 EXPECT_EQ(invalid_gurl, view_->target_url_); |
852 } | 852 } |
| 853 |
| 854 TEST_F(RenderViewTest, SetHistoryLengthAndPrune) { |
| 855 int expected_page_id = -1; |
| 856 |
| 857 // No history to merge and no committed pages. |
| 858 view_->OnSetHistoryLengthAndPrune(0, -1); |
| 859 EXPECT_EQ(0, view_->history_list_length_); |
| 860 EXPECT_EQ(-1, view_->history_list_offset_); |
| 861 |
| 862 // History to merge and no committed pages. |
| 863 view_->OnSetHistoryLengthAndPrune(2, -1); |
| 864 EXPECT_EQ(2, view_->history_list_length_); |
| 865 EXPECT_EQ(1, view_->history_list_offset_); |
| 866 EXPECT_EQ(-1, view_->history_page_ids_[0]); |
| 867 EXPECT_EQ(-1, view_->history_page_ids_[1]); |
| 868 ClearHistory(); |
| 869 |
| 870 // No history to merge and a committed page to be kept. |
| 871 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 872 expected_page_id = view_->page_id_; |
| 873 view_->OnSetHistoryLengthAndPrune(0, expected_page_id); |
| 874 EXPECT_EQ(1, view_->history_list_length_); |
| 875 EXPECT_EQ(0, view_->history_list_offset_); |
| 876 EXPECT_EQ(expected_page_id, view_->history_page_ids_[0]); |
| 877 ClearHistory(); |
| 878 |
| 879 // No history to merge and a committed page to be pruned. |
| 880 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 881 expected_page_id = view_->page_id_; |
| 882 view_->OnSetHistoryLengthAndPrune(0, expected_page_id + 1); |
| 883 EXPECT_EQ(0, view_->history_list_length_); |
| 884 EXPECT_EQ(-1, view_->history_list_offset_); |
| 885 ClearHistory(); |
| 886 |
| 887 // No history to merge and a committed page that the browser was unaware of. |
| 888 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 889 expected_page_id = view_->page_id_; |
| 890 view_->OnSetHistoryLengthAndPrune(0, -1); |
| 891 EXPECT_EQ(1, view_->history_list_length_); |
| 892 EXPECT_EQ(0, view_->history_list_offset_); |
| 893 EXPECT_EQ(expected_page_id, view_->history_page_ids_[0]); |
| 894 ClearHistory(); |
| 895 |
| 896 // History to merge and a committed page to be kept. |
| 897 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 898 expected_page_id = view_->page_id_; |
| 899 view_->OnSetHistoryLengthAndPrune(2, expected_page_id); |
| 900 EXPECT_EQ(3, view_->history_list_length_); |
| 901 EXPECT_EQ(2, view_->history_list_offset_); |
| 902 EXPECT_EQ(-1, view_->history_page_ids_[0]); |
| 903 EXPECT_EQ(-1, view_->history_page_ids_[1]); |
| 904 EXPECT_EQ(expected_page_id, view_->history_page_ids_[2]); |
| 905 ClearHistory(); |
| 906 |
| 907 // History to merge and a committed page to be pruned. |
| 908 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 909 expected_page_id = view_->page_id_; |
| 910 view_->OnSetHistoryLengthAndPrune(2, expected_page_id + 1); |
| 911 EXPECT_EQ(2, view_->history_list_length_); |
| 912 EXPECT_EQ(1, view_->history_list_offset_); |
| 913 EXPECT_EQ(-1, view_->history_page_ids_[0]); |
| 914 EXPECT_EQ(-1, view_->history_page_ids_[1]); |
| 915 ClearHistory(); |
| 916 |
| 917 // History to merge and a committed page that the browser was unaware of. |
| 918 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 919 expected_page_id = view_->page_id_; |
| 920 view_->OnSetHistoryLengthAndPrune(2, -1); |
| 921 EXPECT_EQ(3, view_->history_list_length_); |
| 922 EXPECT_EQ(2, view_->history_list_offset_); |
| 923 EXPECT_EQ(-1, view_->history_page_ids_[0]); |
| 924 EXPECT_EQ(-1, view_->history_page_ids_[1]); |
| 925 EXPECT_EQ(expected_page_id, view_->history_page_ids_[2]); |
| 926 ClearHistory(); |
| 927 |
| 928 int expected_page_id_2 = -1; |
| 929 |
| 930 // No history to merge and two committed pages, both to be kept. |
| 931 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 932 expected_page_id = view_->page_id_; |
| 933 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 934 expected_page_id_2 = view_->page_id_; |
| 935 EXPECT_GT(expected_page_id_2, expected_page_id); |
| 936 view_->OnSetHistoryLengthAndPrune(0, expected_page_id); |
| 937 EXPECT_EQ(2, view_->history_list_length_); |
| 938 EXPECT_EQ(1, view_->history_list_offset_); |
| 939 EXPECT_EQ(expected_page_id, view_->history_page_ids_[0]); |
| 940 EXPECT_EQ(expected_page_id_2, view_->history_page_ids_[1]); |
| 941 ClearHistory(); |
| 942 |
| 943 // No history to merge and two committed pages, and only the second is kept. |
| 944 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 945 expected_page_id = view_->page_id_; |
| 946 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 947 expected_page_id_2 = view_->page_id_; |
| 948 EXPECT_GT(expected_page_id_2, expected_page_id); |
| 949 view_->OnSetHistoryLengthAndPrune(0, expected_page_id_2); |
| 950 EXPECT_EQ(1, view_->history_list_length_); |
| 951 EXPECT_EQ(0, view_->history_list_offset_); |
| 952 EXPECT_EQ(expected_page_id_2, view_->history_page_ids_[0]); |
| 953 ClearHistory(); |
| 954 |
| 955 // No history to merge and two committed pages, both of which the browser was |
| 956 // unaware of. |
| 957 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 958 expected_page_id = view_->page_id_; |
| 959 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 960 expected_page_id_2 = view_->page_id_; |
| 961 EXPECT_GT(expected_page_id_2, expected_page_id); |
| 962 view_->OnSetHistoryLengthAndPrune(0, -1); |
| 963 EXPECT_EQ(2, view_->history_list_length_); |
| 964 EXPECT_EQ(1, view_->history_list_offset_); |
| 965 EXPECT_EQ(expected_page_id, view_->history_page_ids_[0]); |
| 966 EXPECT_EQ(expected_page_id_2, view_->history_page_ids_[1]); |
| 967 ClearHistory(); |
| 968 |
| 969 // History to merge and two committed pages, both to be kept. |
| 970 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 971 expected_page_id = view_->page_id_; |
| 972 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 973 expected_page_id_2 = view_->page_id_; |
| 974 EXPECT_GT(expected_page_id_2, expected_page_id); |
| 975 view_->OnSetHistoryLengthAndPrune(2, expected_page_id); |
| 976 EXPECT_EQ(4, view_->history_list_length_); |
| 977 EXPECT_EQ(3, view_->history_list_offset_); |
| 978 EXPECT_EQ(-1, view_->history_page_ids_[0]); |
| 979 EXPECT_EQ(-1, view_->history_page_ids_[1]); |
| 980 EXPECT_EQ(expected_page_id, view_->history_page_ids_[2]); |
| 981 EXPECT_EQ(expected_page_id_2, view_->history_page_ids_[3]); |
| 982 ClearHistory(); |
| 983 |
| 984 // History to merge and two committed pages, and only the second is kept. |
| 985 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 986 expected_page_id = view_->page_id_; |
| 987 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 988 expected_page_id_2 = view_->page_id_; |
| 989 EXPECT_GT(expected_page_id_2, expected_page_id); |
| 990 view_->OnSetHistoryLengthAndPrune(2, expected_page_id_2); |
| 991 EXPECT_EQ(3, view_->history_list_length_); |
| 992 EXPECT_EQ(2, view_->history_list_offset_); |
| 993 EXPECT_EQ(-1, view_->history_page_ids_[0]); |
| 994 EXPECT_EQ(-1, view_->history_page_ids_[1]); |
| 995 EXPECT_EQ(expected_page_id_2, view_->history_page_ids_[2]); |
| 996 ClearHistory(); |
| 997 |
| 998 // History to merge and two committed pages, both of which the browser was |
| 999 // unaware of. |
| 1000 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 1001 expected_page_id = view_->page_id_; |
| 1002 view_->didCommitProvisionalLoad(GetMainFrame(), true); |
| 1003 expected_page_id_2 = view_->page_id_; |
| 1004 EXPECT_GT(expected_page_id_2, expected_page_id); |
| 1005 view_->OnSetHistoryLengthAndPrune(2, -1); |
| 1006 EXPECT_EQ(4, view_->history_list_length_); |
| 1007 EXPECT_EQ(3, view_->history_list_offset_); |
| 1008 EXPECT_EQ(-1, view_->history_page_ids_[0]); |
| 1009 EXPECT_EQ(-1, view_->history_page_ids_[1]); |
| 1010 EXPECT_EQ(expected_page_id, view_->history_page_ids_[2]); |
| 1011 EXPECT_EQ(expected_page_id_2, view_->history_page_ids_[3]); |
| 1012 } |
OLD | NEW |