Index: content/network/url_loader_unittest.cc |
diff --git a/content/network/url_loader_unittest.cc b/content/network/url_loader_unittest.cc |
index 8744b129ff2eea58f7e01bbb35f44a19c8d623cd..41de148209a6574ec4e061491d313c43554a7ba5 100644 |
--- a/content/network/url_loader_unittest.cc |
+++ b/content/network/url_loader_unittest.cc |
@@ -69,18 +69,24 @@ class URLLoaderImplTest : public testing::Test { |
ASSERT_TRUE(test_server_.Start()); |
} |
- void LoadAndCompareFile(const std::string& path) { |
- TestURLLoaderClient client; |
+ void Load(const GURL& url, |
+ TestURLLoaderClient* client, |
+ uint32_t options = 0) { |
mojom::URLLoaderAssociatedPtr loader; |
ResourceRequest request = |
- CreateResourceRequest("GET", RESOURCE_TYPE_MAIN_FRAME, |
- test_server()->GetURL(std::string("/") + path)); |
+ CreateResourceRequest("GET", RESOURCE_TYPE_MAIN_FRAME, url); |
URLLoaderImpl loader_impl(context(), mojo::MakeIsolatedRequest(&loader), |
- request, client.CreateInterfacePtr()); |
+ options, request, client->CreateInterfacePtr()); |
- client.RunUntilComplete(); |
+ client->RunUntilComplete(); |
+ } |
+ |
+ void LoadAndCompareFile(const std::string& path) { |
+ TestURLLoaderClient client; |
+ GURL url = test_server()->GetURL(std::string("/") + path); |
+ Load(url, &client); |
base::FilePath file; |
PathService::Get(content::DIR_TEST_DATA, &file); |
@@ -110,4 +116,32 @@ TEST_F(URLLoaderImplTest, Basic) { |
LoadAndCompareFile("simple_page.html"); |
} |
+TEST_F(URLLoaderImplTest, BasicSSL) { |
+ net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); |
+ https_server.ServeFilesFromSourceDirectory( |
+ base::FilePath(FILE_PATH_LITERAL("content/test/data"))); |
+ ASSERT_TRUE(https_server.Start()); |
+ |
+ TestURLLoaderClient client; |
+ GURL url = https_server.GetURL("/simple_page.html"); |
+ Load(url, &client, mojom::kURLLoadOptionSendSSLInfo); |
+ ASSERT_TRUE(!!client.ssl_info()); |
+ ASSERT_TRUE(!!client.ssl_info()->cert); |
+ |
+ ASSERT_TRUE( |
+ https_server.GetCertificate()->Equals(client.ssl_info()->cert.get())); |
+} |
+ |
+TEST_F(URLLoaderImplTest, SSLSentOnlyWhenRequested) { |
+ net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); |
+ https_server.ServeFilesFromSourceDirectory( |
+ base::FilePath(FILE_PATH_LITERAL("content/test/data"))); |
+ ASSERT_TRUE(https_server.Start()); |
+ |
+ TestURLLoaderClient client; |
+ GURL url = https_server.GetURL("/simple_page.html"); |
+ Load(url, &client, 0); |
+ ASSERT_FALSE(!!client.ssl_info()); |
+} |
+ |
} // namespace content |