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

Side by Side Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 2084153003: Remove the test-only X509Certificate constructor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 6 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
OLDNEW
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 <stddef.h> 5 #include <stddef.h>
6 #include <deque> 6 #include <deque>
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <unordered_map> 9 #include <unordered_map>
10 #include <utility> 10 #include <utility>
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 #include "extensions/common/extension_urls.h" 104 #include "extensions/common/extension_urls.h"
105 #include "extensions/common/manifest_handlers/mime_types_handler.h" 105 #include "extensions/common/manifest_handlers/mime_types_handler.h"
106 #include "extensions/common/switches.h" 106 #include "extensions/common/switches.h"
107 #include "extensions/test/result_catcher.h" 107 #include "extensions/test/result_catcher.h"
108 #include "net/base/escape.h" 108 #include "net/base/escape.h"
109 #include "net/cert/x509_certificate.h" 109 #include "net/cert/x509_certificate.h"
110 #include "net/dns/mock_host_resolver.h" 110 #include "net/dns/mock_host_resolver.h"
111 #include "net/ssl/client_cert_store.h" 111 #include "net/ssl/client_cert_store.h"
112 #include "net/ssl/ssl_cert_request_info.h" 112 #include "net/ssl/ssl_cert_request_info.h"
113 #include "net/ssl/ssl_server_config.h" 113 #include "net/ssl/ssl_server_config.h"
114 #include "net/test/cert_test_util.h"
114 #include "net/test/embedded_test_server/embedded_test_server.h" 115 #include "net/test/embedded_test_server/embedded_test_server.h"
115 #include "net/test/embedded_test_server/request_handler_util.h" 116 #include "net/test/embedded_test_server/request_handler_util.h"
117 #include "net/test/test_data_directory.h"
116 #include "net/test/url_request/url_request_mock_http_job.h" 118 #include "net/test/url_request/url_request_mock_http_job.h"
117 #include "net/url_request/url_request_context.h" 119 #include "net/url_request/url_request_context.h"
118 #include "net/url_request/url_request_context_getter.h" 120 #include "net/url_request/url_request_context_getter.h"
119 #include "net/url_request/url_request_filter.h" 121 #include "net/url_request/url_request_filter.h"
120 #include "net/url_request/url_request_interceptor.h" 122 #include "net/url_request/url_request_interceptor.h"
121 #include "net/url_request/url_request_job.h" 123 #include "net/url_request/url_request_job.h"
122 #include "ppapi/shared_impl/ppapi_switches.h" 124 #include "ppapi/shared_impl/ppapi_switches.h"
123 #include "ui/base/l10n/l10n_util.h" 125 #include "ui/base/l10n/l10n_util.h"
124 #include "url/gurl.h" 126 #include "url/gurl.h"
125 127
(...skipping 2708 matching lines...) Expand 10 before | Expand all | Expand 10 after
2834 FINAL_STATUS_NON_EMPTY_BROWSING_INSTANCE, 1); 2836 FINAL_STATUS_NON_EMPTY_BROWSING_INSTANCE, 1);
2835 OpenURLViaWindowOpen(GURL(url::kAboutBlankURL)); 2837 OpenURLViaWindowOpen(GURL(url::kAboutBlankURL));
2836 2838
2837 // Switch back to the current tab and attempt to swap it in. 2839 // Switch back to the current tab and attempt to swap it in.
2838 current_browser()->tab_strip_model()->ActivateTabAt(0, true); 2840 current_browser()->tab_strip_model()->ActivateTabAt(0, true);
2839 NavigateToDestURLWithDisposition(CURRENT_TAB, false); 2841 NavigateToDestURLWithDisposition(CURRENT_TAB, false);
2840 } 2842 }
2841 2843
2842 class TestClientCertStore : public net::ClientCertStore { 2844 class TestClientCertStore : public net::ClientCertStore {
2843 public: 2845 public:
2844 TestClientCertStore() {} 2846 explicit TestClientCertStore(const net::CertificateList& certs)
2847 : certs_(certs) {}
2845 ~TestClientCertStore() override {} 2848 ~TestClientCertStore() override {}
2846 2849
2847 // net::ClientCertStore: 2850 // net::ClientCertStore:
2848 void GetClientCerts(const net::SSLCertRequestInfo& cert_request_info, 2851 void GetClientCerts(const net::SSLCertRequestInfo& cert_request_info,
2849 net::CertificateList* selected_certs, 2852 net::CertificateList* selected_certs,
2850 const base::Closure& callback) override { 2853 const base::Closure& callback) override {
2851 *selected_certs = net::CertificateList( 2854 *selected_certs = certs_;
2852 1, scoped_refptr<net::X509Certificate>(
2853 new net::X509Certificate("test", "test", base::Time(), base::Time())));
2854 callback.Run(); 2855 callback.Run();
2855 } 2856 }
2857
2858 private:
2859 net::CertificateList certs_;
2856 }; 2860 };
2857 2861
2858 std::unique_ptr<net::ClientCertStore> CreateCertStore() { 2862 std::unique_ptr<net::ClientCertStore> CreateCertStore(
2859 return std::unique_ptr<net::ClientCertStore>(new TestClientCertStore); 2863 scoped_refptr<net::X509Certificate> available_cert) {
2864 return std::unique_ptr<net::ClientCertStore>(
2865 new TestClientCertStore(net::CertificateList(1, available_cert)));
2860 } 2866 }
2861 2867
2862 // Checks that a top-level page which would normally request an SSL client 2868 // Checks that a top-level page which would normally request an SSL client
2863 // certificate will never be seen since it's an https top-level resource. 2869 // certificate will never be seen since it's an https top-level resource.
2864 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, 2870 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
2865 PrerenderSSLClientCertTopLevel) { 2871 PrerenderSSLClientCertTopLevel) {
2866 ProfileIOData::FromResourceContext( 2872 ProfileIOData::FromResourceContext(
2867 current_browser()->profile()->GetResourceContext())-> 2873 current_browser()->profile()->GetResourceContext())
2868 set_client_cert_store_factory_for_testing( 2874 ->set_client_cert_store_factory_for_testing(base::Bind(
2869 base::Bind(&CreateCertStore)); 2875 &CreateCertStore, net::ImportCertFromFile(
2876 net::GetTestCertsDirectory(), "ok_cert.pem")));
2870 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); 2877 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS);
2871 net::SSLServerConfig ssl_config; 2878 net::SSLServerConfig ssl_config;
2872 ssl_config.client_cert_type = 2879 ssl_config.client_cert_type =
2873 net::SSLServerConfig::ClientCertType::REQUIRE_CLIENT_CERT; 2880 net::SSLServerConfig::ClientCertType::REQUIRE_CLIENT_CERT;
2874 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_OK, ssl_config); 2881 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_OK, ssl_config);
2875 https_server.ServeFilesFromSourceDirectory("chrome/test/data"); 2882 https_server.ServeFilesFromSourceDirectory("chrome/test/data");
2876 ASSERT_TRUE(https_server.Start()); 2883 ASSERT_TRUE(https_server.Start());
2877 GURL https_url = https_server.GetURL("/prerender/prerender_page.html"); 2884 GURL https_url = https_server.GetURL("/prerender/prerender_page.html");
2878 PrerenderTestURL(https_url, FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED, 0); 2885 PrerenderTestURL(https_url, FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED, 0);
2879 } 2886 }
2880 2887
2881 // Checks that an SSL Client Certificate request that originates from a 2888 // Checks that an SSL Client Certificate request that originates from a
2882 // subresource will cancel the prerendered page. 2889 // subresource will cancel the prerendered page.
2883 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, 2890 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
2884 PrerenderSSLClientCertSubresource) { 2891 PrerenderSSLClientCertSubresource) {
2885 ProfileIOData::FromResourceContext( 2892 ProfileIOData::FromResourceContext(
2886 current_browser()->profile()->GetResourceContext())-> 2893 current_browser()->profile()->GetResourceContext())
2887 set_client_cert_store_factory_for_testing( 2894 ->set_client_cert_store_factory_for_testing(base::Bind(
2888 base::Bind(&CreateCertStore)); 2895 &CreateCertStore, net::ImportCertFromFile(
2896 net::GetTestCertsDirectory(), "ok_cert.pem")));
2889 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); 2897 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS);
2890 net::SSLServerConfig ssl_config; 2898 net::SSLServerConfig ssl_config;
2891 ssl_config.client_cert_type = 2899 ssl_config.client_cert_type =
2892 net::SSLServerConfig::ClientCertType::REQUIRE_CLIENT_CERT; 2900 net::SSLServerConfig::ClientCertType::REQUIRE_CLIENT_CERT;
2893 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_OK, ssl_config); 2901 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_OK, ssl_config);
2894 https_server.ServeFilesFromSourceDirectory("chrome/test/data"); 2902 https_server.ServeFilesFromSourceDirectory("chrome/test/data");
2895 ASSERT_TRUE(https_server.Start()); 2903 ASSERT_TRUE(https_server.Start());
2896 GURL https_url = https_server.GetURL("/prerender/image.jpeg"); 2904 GURL https_url = https_server.GetURL("/prerender/image.jpeg");
2897 base::StringPairs replacement_text; 2905 base::StringPairs replacement_text;
2898 replacement_text.push_back( 2906 replacement_text.push_back(
2899 std::make_pair("REPLACE_WITH_IMAGE_URL", https_url.spec())); 2907 std::make_pair("REPLACE_WITH_IMAGE_URL", https_url.spec()));
2900 std::string replacement_path; 2908 std::string replacement_path;
2901 net::test_server::GetFilePathWithReplacements( 2909 net::test_server::GetFilePathWithReplacements(
2902 "/prerender/prerender_with_image.html", replacement_text, 2910 "/prerender/prerender_with_image.html", replacement_text,
2903 &replacement_path); 2911 &replacement_path);
2904 PrerenderTestURL(replacement_path, 2912 PrerenderTestURL(replacement_path,
2905 FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED, 2913 FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED,
2906 0); 2914 0);
2907 } 2915 }
2908 2916
2909 // Checks that an SSL Client Certificate request that originates from an 2917 // Checks that an SSL Client Certificate request that originates from an
2910 // iframe will cancel the prerendered page. 2918 // iframe will cancel the prerendered page.
2911 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertIframe) { 2919 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertIframe) {
2912 ProfileIOData::FromResourceContext( 2920 ProfileIOData::FromResourceContext(
2913 current_browser()->profile()->GetResourceContext())-> 2921 current_browser()->profile()->GetResourceContext())
2914 set_client_cert_store_factory_for_testing( 2922 ->set_client_cert_store_factory_for_testing(base::Bind(
2915 base::Bind(&CreateCertStore)); 2923 &CreateCertStore, net::ImportCertFromFile(
2924 net::GetTestCertsDirectory(), "ok_cert.pem")));
2916 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); 2925 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS);
2917 net::SSLServerConfig ssl_config; 2926 net::SSLServerConfig ssl_config;
2918 ssl_config.client_cert_type = 2927 ssl_config.client_cert_type =
2919 net::SSLServerConfig::ClientCertType::REQUIRE_CLIENT_CERT; 2928 net::SSLServerConfig::ClientCertType::REQUIRE_CLIENT_CERT;
2920 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_OK, ssl_config); 2929 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_OK, ssl_config);
2921 https_server.ServeFilesFromSourceDirectory("chrome/test/data"); 2930 https_server.ServeFilesFromSourceDirectory("chrome/test/data");
2922 ASSERT_TRUE(https_server.Start()); 2931 ASSERT_TRUE(https_server.Start());
2923 GURL https_url = 2932 GURL https_url =
2924 https_server.GetURL("/prerender/prerender_embedded_content.html"); 2933 https_server.GetURL("/prerender/prerender_embedded_content.html");
2925 base::StringPairs replacement_text; 2934 base::StringPairs replacement_text;
(...skipping 1000 matching lines...) Expand 10 before | Expand all | Expand 10 after
3926 browser()->tab_strip_model()->GetActiveWebContents(); 3935 browser()->tab_strip_model()->GetActiveWebContents();
3927 bool display_test_result = false; 3936 bool display_test_result = false;
3928 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, 3937 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents,
3929 "DidDisplayReallyPass()", 3938 "DidDisplayReallyPass()",
3930 &display_test_result)); 3939 &display_test_result));
3931 ASSERT_TRUE(display_test_result); 3940 ASSERT_TRUE(display_test_result);
3932 } 3941 }
3933 #endif // !defined(DISABLE_NACL) 3942 #endif // !defined(DISABLE_NACL)
3934 3943
3935 } // namespace prerender 3944 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698