| 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 <deque> | 5 #include <deque> |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
| 9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
| 10 #include "chrome/browser/prerender/prerender_contents.h" | 10 #include "chrome/browser/prerender/prerender_contents.h" |
| (...skipping 772 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 783 // Checks that we correctly use a prerendered page when the page uses JS to set | 783 // Checks that we correctly use a prerendered page when the page uses JS to set |
| 784 // the window.location.hash to a fragment on the same page. | 784 // the window.location.hash to a fragment on the same page. |
| 785 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 785 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 786 PrerenderPageChangeFragmentLocationHash) { | 786 PrerenderPageChangeFragmentLocationHash) { |
| 787 PrerenderTestURL("files/prerender/prerender_fragment_location_hash.html", | 787 PrerenderTestURL("files/prerender/prerender_fragment_location_hash.html", |
| 788 FINAL_STATUS_USED, | 788 FINAL_STATUS_USED, |
| 789 1); | 789 1); |
| 790 NavigateToURL("files/prerender/prerender_fragment_location_hash.html"); | 790 NavigateToURL("files/prerender/prerender_fragment_location_hash.html"); |
| 791 } | 791 } |
| 792 | 792 |
| 793 // Checks that ftp scheme is not supported for prerender. |
| 794 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderBadSchemeFtp) { |
| 795 PrerenderTestURL(GURL("ftp://ftp.example.com"), |
| 796 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 797 1); |
| 798 } |
| 799 |
| 800 // Checks that ftp scheme is not supported for prerender when done as part of a |
| 801 // client redirect. |
| 802 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 803 PrerenderBadSchemeFtpClientRedirect) { |
| 804 PrerenderTestURL(CreateClientRedirect("ftp://ftp.example.com"), |
| 805 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 806 1); |
| 807 } |
| 808 |
| 809 // Checks that ftp scheme is not supported for prerender when done as part of a |
| 810 // server redirect. |
| 811 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 812 PrerenderBadSchemeFtpServerRedirect) { |
| 813 PrerenderTestURL(CreateServerRedirect("ftp://ftp.example.com"), |
| 814 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 815 1); |
| 816 } |
| 817 |
| 818 // Checks that gopher scheme is not supported for prerender. |
| 819 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderBadSchemeGopher) { |
| 820 PrerenderTestURL(GURL("gopher://gopher.example.com"), |
| 821 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 822 1); |
| 823 } |
| 824 |
| 825 // Checks that gopher scheme is not supported for prerender when done as part of |
| 826 // a client redirect. |
| 827 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 828 PrerenderBadSchemeGopherClientRedirect) { |
| 829 PrerenderTestURL(CreateClientRedirect("gopher://gopher.example.com"), |
| 830 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 831 1); |
| 832 } |
| 833 |
| 834 // Checks that gopher scheme is not supported for prerender when done as part of |
| 835 // a server redirect. |
| 836 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 837 PrerenderBadSchemeGopherServerRedirect) { |
| 838 PrerenderTestURL(CreateServerRedirect("gopher://gopher.example.com"), |
| 839 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 840 1); |
| 841 } |
| 842 |
| 843 // Checks that news scheme is not supported for prerender. |
| 844 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderBadSchemeNews) { |
| 845 PrerenderTestURL(GURL("news:alt.religion.kibology"), |
| 846 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 847 1); |
| 848 } |
| 849 |
| 850 // Checks that news scheme is not supported for prerender when done as part of |
| 851 // a client redirect. |
| 852 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 853 PrerenderBadSchemeNewsClientRedirect) { |
| 854 PrerenderTestURL(CreateClientRedirect("news:alt.religion.kibology"), |
| 855 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 856 1); |
| 857 } |
| 858 |
| 859 // Checks that news scheme is not supported for prerender when done as part of |
| 860 // a server redirect. |
| 861 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 862 PrerenderBadSchemeNewsServerRedirect) { |
| 863 PrerenderTestURL(CreateServerRedirect("news:alt.religion.kibology"), |
| 864 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 865 1); |
| 866 } |
| 867 |
| 868 // Checks that secure news scheme is not supported for prerender. |
| 869 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderBadSchemeSnews) { |
| 870 PrerenderTestURL(GURL("snews:alt.religion.kibology"), |
| 871 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 872 1); |
| 873 } |
| 874 |
| 875 // Checks that snews scheme is not supported for prerender when done as part of |
| 876 // a client redirect. |
| 877 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 878 PrerenderBadSchemeSnewsClientRedirect) { |
| 879 PrerenderTestURL(CreateClientRedirect("snews:alt.religion.kibology"), |
| 880 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 881 1); |
| 882 } |
| 883 |
| 884 // Checks that snews scheme is not supported for prerender when done as part of |
| 885 // a server redirect. |
| 886 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 887 PrerenderBadSchemeSnewsServerRedirect) { |
| 888 PrerenderTestURL(CreateServerRedirect("snews:alt.religion.kibology"), |
| 889 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 890 1); |
| 891 } |
| 892 |
| 893 // Checks that chrome-extension scheme is not supported for prerender. |
| 894 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 895 PrerenderBadSchemeChromeExtension) { |
| 896 PrerenderTestURL(GURL("chrome-extension://haoclkcoegjldmikeokmnfninfafegfm"), |
| 897 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 898 1); |
| 899 } |
| 900 |
| 901 // Checks that chrome-extension scheme is not supported for prerender when done |
| 902 // as part of a client redirect. |
| 903 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 904 PrerenderBadSchemeChromeExtensionClientRedirect) { |
| 905 PrerenderTestURL( |
| 906 CreateClientRedirect( |
| 907 "chrome-extension://haoclkcoegjldmikeokmnfninfafegfm"), |
| 908 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 909 1); |
| 910 } |
| 911 |
| 912 // Checks that chrome-extension scheme is not supported for prerender when done |
| 913 // as part of a server redirect. |
| 914 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 915 PrerenderBadSchemeChromeExtensionServerRedirect) { |
| 916 PrerenderTestURL( |
| 917 CreateServerRedirect( |
| 918 "chrome-extension://haoclkcoegjldmikeokmnfninfafegfm"), |
| 919 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 920 1); |
| 921 } |
| 922 |
| 923 // Checks that unknown schemes are not supported for prerender. |
| 924 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderBadSchemeUnknown) { |
| 925 PrerenderTestURL(GURL("invalid://foo.bar.co.uk"), |
| 926 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 927 1); |
| 928 } |
| 929 |
| 930 // Checks that unknown schemes are not supported for prerender when done as part |
| 931 // of a client redirect. |
| 932 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 933 PrerenderBadSchemeUnknownClientRedirect) { |
| 934 PrerenderTestURL(CreateClientRedirect("invalid://foo.bar.co.uk"), |
| 935 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 936 1); |
| 937 } |
| 938 |
| 939 // Checks that invalid schemes are not supported for prerender when done as part |
| 940 // of a server redirect. |
| 941 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 942 PrerenderBadSchemeUnknownServerRedirect) { |
| 943 PrerenderTestURL(CreateServerRedirect("invalid://foo.bar.co.uk"), |
| 944 FINAL_STATUS_UNSUPPORTED_SCHEME, |
| 945 1); |
| 946 } |
| 947 |
| 948 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderXhrGet) { |
| 949 PrerenderTestURL("files/prerender/prerender_xhr_get.html", |
| 950 FINAL_STATUS_USED, |
| 951 1); |
| 952 NavigateToDestURL(); |
| 953 } |
| 954 |
| 955 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderXhrPost) { |
| 956 PrerenderTestURL("files/prerender/prerender_xhr_post.html", |
| 957 FINAL_STATUS_NOT_GET, |
| 958 1); |
| 959 } |
| 960 |
| 961 // TODO(cbentzel): Add tests for file, chrome, and about schemes, which fail |
| 962 // at webkit resource load time. |
| 963 |
| 793 } // namespace prerender | 964 } // namespace prerender |
| OLD | NEW |