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 "build/build_config.h" | 5 #include "build/build_config.h" |
6 | 6 |
7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
8 #include <windows.h> | 8 #include <windows.h> |
9 #include <shlobj.h> | 9 #include <shlobj.h> |
10 #endif | 10 #endif |
(...skipping 2556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2567 } | 2567 } |
2568 | 2568 |
2569 // Verify that the cookie is sent for first-party requests. | 2569 // Verify that the cookie is sent for first-party requests. |
2570 { | 2570 { |
2571 TestNetworkDelegate network_delegate; | 2571 TestNetworkDelegate network_delegate; |
2572 network_delegate.set_first_party_only_cookies_enabled(true); | 2572 network_delegate.set_first_party_only_cookies_enabled(true); |
2573 default_context_.set_network_delegate(&network_delegate); | 2573 default_context_.set_network_delegate(&network_delegate); |
2574 TestDelegate d; | 2574 TestDelegate d; |
2575 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2575 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
2576 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); | 2576 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
2577 req->set_first_party_for_cookies(test_server.GetURL(std::string())); | 2577 req->set_first_party_for_cookies(test_server.GetURL("")); |
2578 req->Start(); | 2578 req->Start(); |
2579 base::RunLoop().Run(); | 2579 base::RunLoop().Run(); |
2580 | 2580 |
2581 EXPECT_TRUE(d.data_received().find("FirstPartyCookieToSet=1") != | 2581 EXPECT_TRUE(d.data_received().find("FirstPartyCookieToSet=1") != |
2582 std::string::npos); | 2582 std::string::npos); |
2583 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2583 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
2584 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2584 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
2585 } | 2585 } |
2586 | 2586 |
2587 // Verify that the cookie is not-sent for non-first-party requests. | 2587 // Verify that the cookie is not-sent for non-first-party requests. |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2627 } | 2627 } |
2628 | 2628 |
2629 // Verify that the cookie is sent for first-party requests. | 2629 // Verify that the cookie is sent for first-party requests. |
2630 { | 2630 { |
2631 TestNetworkDelegate network_delegate; | 2631 TestNetworkDelegate network_delegate; |
2632 network_delegate.set_first_party_only_cookies_enabled(false); | 2632 network_delegate.set_first_party_only_cookies_enabled(false); |
2633 default_context_.set_network_delegate(&network_delegate); | 2633 default_context_.set_network_delegate(&network_delegate); |
2634 TestDelegate d; | 2634 TestDelegate d; |
2635 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2635 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
2636 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); | 2636 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
2637 req->set_first_party_for_cookies(test_server.GetURL(std::string())); | 2637 req->set_first_party_for_cookies(test_server.GetURL("")); |
2638 req->Start(); | 2638 req->Start(); |
2639 base::RunLoop().Run(); | 2639 base::RunLoop().Run(); |
2640 | 2640 |
2641 EXPECT_TRUE(d.data_received().find("FirstPartyCookieToSet=1") != | 2641 EXPECT_TRUE(d.data_received().find("FirstPartyCookieToSet=1") != |
2642 std::string::npos); | 2642 std::string::npos); |
2643 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2643 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
2644 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2644 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
2645 } | 2645 } |
2646 | 2646 |
2647 // Verify that the cookie is also sent for non-first-party requests. | 2647 // Verify that the cookie is also sent for non-first-party requests. |
(...skipping 2603 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5251 EXPECT_EQ("text/html; charset=ISO-8859-1", header); | 5251 EXPECT_EQ("text/html; charset=ISO-8859-1", header); |
5252 | 5252 |
5253 // The response has two "X-Multiple-Entries" headers. | 5253 // The response has two "X-Multiple-Entries" headers. |
5254 // This verfies our output has them concatenated together. | 5254 // This verfies our output has them concatenated together. |
5255 header.clear(); | 5255 header.clear(); |
5256 EXPECT_TRUE(headers->GetNormalizedHeader("x-multiple-entries", &header)); | 5256 EXPECT_TRUE(headers->GetNormalizedHeader("x-multiple-entries", &header)); |
5257 EXPECT_EQ("a, b", header); | 5257 EXPECT_EQ("a, b", header); |
5258 } | 5258 } |
5259 | 5259 |
5260 TEST_F(URLRequestTestHTTP, ProcessSTS) { | 5260 TEST_F(URLRequestTestHTTP, ProcessSTS) { |
5261 SpawnedTestServer::SSLOptions ssl_options( | 5261 SpawnedTestServer::SSLOptions ssl_options; |
5262 SpawnedTestServer::SSLOptions::CERT_OK_FOR_LOCALHOST); | |
5263 SpawnedTestServer https_test_server( | 5262 SpawnedTestServer https_test_server( |
5264 SpawnedTestServer::TYPE_HTTPS, | 5263 SpawnedTestServer::TYPE_HTTPS, |
5265 ssl_options, | 5264 ssl_options, |
5266 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); | 5265 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); |
5267 ASSERT_TRUE(https_test_server.Start()); | 5266 ASSERT_TRUE(https_test_server.Start()); |
5268 | 5267 |
5269 std::string test_server_hostname = | |
5270 https_test_server.GetURL(std::string()).host(); | |
5271 | |
5272 TestDelegate d; | 5268 TestDelegate d; |
5273 scoped_ptr<URLRequest> request(default_context_.CreateRequest( | 5269 scoped_ptr<URLRequest> request(default_context_.CreateRequest( |
5274 https_test_server.GetURL("files/hsts-headers.html"), DEFAULT_PRIORITY, | 5270 https_test_server.GetURL("files/hsts-headers.html"), DEFAULT_PRIORITY, |
5275 &d)); | 5271 &d)); |
5276 request->Start(); | 5272 request->Start(); |
5277 base::RunLoop().Run(); | 5273 base::RunLoop().Run(); |
5278 | 5274 |
5279 TransportSecurityState* security_state = | 5275 TransportSecurityState* security_state = |
5280 default_context_.transport_security_state(); | 5276 default_context_.transport_security_state(); |
5281 TransportSecurityState::DomainState domain_state; | 5277 TransportSecurityState::DomainState domain_state; |
5282 EXPECT_TRUE(security_state->GetDynamicDomainState(test_server_hostname, | 5278 EXPECT_TRUE(security_state->GetDynamicDomainState( |
5283 &domain_state)); | 5279 SpawnedTestServer::kLocalhost, &domain_state)); |
5284 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, | 5280 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, |
5285 domain_state.sts.upgrade_mode); | 5281 domain_state.sts.upgrade_mode); |
5286 EXPECT_TRUE(domain_state.sts.include_subdomains); | 5282 EXPECT_TRUE(domain_state.sts.include_subdomains); |
5287 EXPECT_FALSE(domain_state.pkp.include_subdomains); | 5283 EXPECT_FALSE(domain_state.pkp.include_subdomains); |
5288 #if defined(OS_ANDROID) | 5284 #if defined(OS_ANDROID) |
5289 // Android's CertVerifyProc does not (yet) handle pins. | 5285 // Android's CertVerifyProc does not (yet) handle pins. |
5290 #else | 5286 #else |
5291 EXPECT_FALSE(domain_state.HasPublicKeyPins()); | 5287 EXPECT_FALSE(domain_state.HasPublicKeyPins()); |
5292 #endif | 5288 #endif |
5293 } | 5289 } |
5294 | 5290 |
5295 TEST_F(URLRequestTestHTTP, STSNotProcessedOnIP) { | |
5296 SpawnedTestServer https_test_server( | |
5297 SpawnedTestServer::TYPE_HTTPS, SpawnedTestServer::SSLOptions(), | |
5298 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); | |
5299 ASSERT_TRUE(https_test_server.Start()); | |
5300 | |
5301 // Make sure this test fails if the test server is changed to not | |
5302 // listen on an IP by default. | |
5303 ASSERT_TRUE(https_test_server.GetURL(std::string()).HostIsIPAddress()); | |
5304 std::string test_server_hostname = | |
5305 https_test_server.GetURL(std::string()).host(); | |
5306 | |
5307 TestDelegate d; | |
5308 scoped_ptr<URLRequest> request(default_context_.CreateRequest( | |
5309 https_test_server.GetURL("files/hsts-headers.html"), DEFAULT_PRIORITY, | |
5310 &d)); | |
5311 request->Start(); | |
5312 base::RunLoop().Run(); | |
5313 | |
5314 TransportSecurityState* security_state = | |
5315 default_context_.transport_security_state(); | |
5316 TransportSecurityState::DomainState domain_state; | |
5317 EXPECT_FALSE(security_state->GetDynamicDomainState(test_server_hostname, | |
5318 &domain_state)); | |
5319 } | |
5320 | |
5321 // Android's CertVerifyProc does not (yet) handle pins. Therefore, it will | 5291 // Android's CertVerifyProc does not (yet) handle pins. Therefore, it will |
5322 // reject HPKP headers, and a test setting only HPKP headers will fail (no | 5292 // reject HPKP headers, and a test setting only HPKP headers will fail (no |
5323 // DomainState present because header rejected). | 5293 // DomainState present because header rejected). |
5324 #if defined(OS_ANDROID) | 5294 #if defined(OS_ANDROID) |
5325 #define MAYBE_ProcessPKP DISABLED_ProcessPKP | 5295 #define MAYBE_ProcessPKP DISABLED_ProcessPKP |
5326 #else | 5296 #else |
5327 #define MAYBE_ProcessPKP ProcessPKP | 5297 #define MAYBE_ProcessPKP ProcessPKP |
5328 #endif | 5298 #endif |
5329 | 5299 |
5330 // Tests that enabling HPKP on a domain does not affect the HSTS | 5300 // Tests that enabling HPKP on a domain does not affect the HSTS |
5331 // validity/expiration. | 5301 // validity/expiration. |
5332 TEST_F(URLRequestTestHTTP, MAYBE_ProcessPKP) { | 5302 TEST_F(URLRequestTestHTTP, MAYBE_ProcessPKP) { |
5333 SpawnedTestServer::SSLOptions ssl_options( | 5303 SpawnedTestServer::SSLOptions ssl_options; |
5334 SpawnedTestServer::SSLOptions::CERT_OK_FOR_LOCALHOST); | |
5335 SpawnedTestServer https_test_server( | 5304 SpawnedTestServer https_test_server( |
5336 SpawnedTestServer::TYPE_HTTPS, | 5305 SpawnedTestServer::TYPE_HTTPS, |
5337 ssl_options, | 5306 ssl_options, |
5338 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); | 5307 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); |
5339 ASSERT_TRUE(https_test_server.Start()); | 5308 ASSERT_TRUE(https_test_server.Start()); |
5340 | 5309 |
5341 std::string test_server_hostname = | |
5342 https_test_server.GetURL(std::string()).host(); | |
5343 | |
5344 TestDelegate d; | 5310 TestDelegate d; |
5345 scoped_ptr<URLRequest> request(default_context_.CreateRequest( | 5311 scoped_ptr<URLRequest> request(default_context_.CreateRequest( |
5346 https_test_server.GetURL("files/hpkp-headers.html"), DEFAULT_PRIORITY, | 5312 https_test_server.GetURL("files/hpkp-headers.html"), DEFAULT_PRIORITY, |
5347 &d)); | 5313 &d)); |
5348 request->Start(); | 5314 request->Start(); |
5349 base::RunLoop().Run(); | 5315 base::RunLoop().Run(); |
5350 | 5316 |
5351 TransportSecurityState* security_state = | 5317 TransportSecurityState* security_state = |
5352 default_context_.transport_security_state(); | 5318 default_context_.transport_security_state(); |
5353 TransportSecurityState::DomainState domain_state; | 5319 TransportSecurityState::DomainState domain_state; |
5354 EXPECT_TRUE(security_state->GetDynamicDomainState(test_server_hostname, | 5320 EXPECT_TRUE(security_state->GetDynamicDomainState( |
5355 &domain_state)); | 5321 SpawnedTestServer::kLocalhost, &domain_state)); |
5356 EXPECT_EQ(TransportSecurityState::DomainState::MODE_DEFAULT, | 5322 EXPECT_EQ(TransportSecurityState::DomainState::MODE_DEFAULT, |
5357 domain_state.sts.upgrade_mode); | 5323 domain_state.sts.upgrade_mode); |
5358 EXPECT_FALSE(domain_state.sts.include_subdomains); | 5324 EXPECT_FALSE(domain_state.sts.include_subdomains); |
5359 EXPECT_FALSE(domain_state.pkp.include_subdomains); | 5325 EXPECT_FALSE(domain_state.pkp.include_subdomains); |
5360 EXPECT_TRUE(domain_state.HasPublicKeyPins()); | 5326 EXPECT_TRUE(domain_state.HasPublicKeyPins()); |
5361 EXPECT_NE(domain_state.sts.expiry, domain_state.pkp.expiry); | 5327 EXPECT_NE(domain_state.sts.expiry, domain_state.pkp.expiry); |
5362 } | 5328 } |
5363 | 5329 |
5364 TEST_F(URLRequestTestHTTP, PKPNotProcessedOnIP) { | |
5365 SpawnedTestServer https_test_server( | |
5366 SpawnedTestServer::TYPE_HTTPS, SpawnedTestServer::SSLOptions(), | |
5367 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); | |
5368 ASSERT_TRUE(https_test_server.Start()); | |
5369 // Make sure this test fails if the test server is changed to not | |
5370 // listen on an IP by default. | |
5371 ASSERT_TRUE(https_test_server.GetURL(std::string()).HostIsIPAddress()); | |
5372 std::string test_server_hostname = | |
5373 https_test_server.GetURL(std::string()).host(); | |
5374 | |
5375 TestDelegate d; | |
5376 scoped_ptr<URLRequest> request(default_context_.CreateRequest( | |
5377 https_test_server.GetURL("files/hpkp-headers.html"), DEFAULT_PRIORITY, | |
5378 &d)); | |
5379 request->Start(); | |
5380 base::RunLoop().Run(); | |
5381 | |
5382 TransportSecurityState* security_state = | |
5383 default_context_.transport_security_state(); | |
5384 TransportSecurityState::DomainState domain_state; | |
5385 EXPECT_FALSE(security_state->GetDynamicDomainState(test_server_hostname, | |
5386 &domain_state)); | |
5387 } | |
5388 | |
5389 TEST_F(URLRequestTestHTTP, ProcessSTSOnce) { | 5330 TEST_F(URLRequestTestHTTP, ProcessSTSOnce) { |
5390 SpawnedTestServer::SSLOptions ssl_options( | 5331 SpawnedTestServer::SSLOptions ssl_options; |
5391 SpawnedTestServer::SSLOptions::CERT_OK_FOR_LOCALHOST); | |
5392 SpawnedTestServer https_test_server( | 5332 SpawnedTestServer https_test_server( |
5393 SpawnedTestServer::TYPE_HTTPS, | 5333 SpawnedTestServer::TYPE_HTTPS, |
5394 ssl_options, | 5334 ssl_options, |
5395 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); | 5335 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); |
5396 ASSERT_TRUE(https_test_server.Start()); | 5336 ASSERT_TRUE(https_test_server.Start()); |
5397 | 5337 |
5398 std::string test_server_hostname = | |
5399 https_test_server.GetURL(std::string()).host(); | |
5400 | |
5401 TestDelegate d; | 5338 TestDelegate d; |
5402 scoped_ptr<URLRequest> request(default_context_.CreateRequest( | 5339 scoped_ptr<URLRequest> request(default_context_.CreateRequest( |
5403 https_test_server.GetURL("files/hsts-multiple-headers.html"), | 5340 https_test_server.GetURL("files/hsts-multiple-headers.html"), |
5404 DEFAULT_PRIORITY, &d)); | 5341 DEFAULT_PRIORITY, &d)); |
5405 request->Start(); | 5342 request->Start(); |
5406 base::RunLoop().Run(); | 5343 base::RunLoop().Run(); |
5407 | 5344 |
5408 // We should have set parameters from the first header, not the second. | 5345 // We should have set parameters from the first header, not the second. |
5409 TransportSecurityState* security_state = | 5346 TransportSecurityState* security_state = |
5410 default_context_.transport_security_state(); | 5347 default_context_.transport_security_state(); |
5411 TransportSecurityState::DomainState domain_state; | 5348 TransportSecurityState::DomainState domain_state; |
5412 EXPECT_TRUE(security_state->GetDynamicDomainState(test_server_hostname, | 5349 EXPECT_TRUE(security_state->GetDynamicDomainState( |
5413 &domain_state)); | 5350 SpawnedTestServer::kLocalhost, &domain_state)); |
5414 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, | 5351 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, |
5415 domain_state.sts.upgrade_mode); | 5352 domain_state.sts.upgrade_mode); |
5416 EXPECT_FALSE(domain_state.sts.include_subdomains); | 5353 EXPECT_FALSE(domain_state.sts.include_subdomains); |
5417 EXPECT_FALSE(domain_state.pkp.include_subdomains); | 5354 EXPECT_FALSE(domain_state.pkp.include_subdomains); |
5418 } | 5355 } |
5419 | 5356 |
5420 TEST_F(URLRequestTestHTTP, ProcessSTSAndPKP) { | 5357 TEST_F(URLRequestTestHTTP, ProcessSTSAndPKP) { |
5421 SpawnedTestServer::SSLOptions ssl_options( | 5358 SpawnedTestServer::SSLOptions ssl_options; |
5422 SpawnedTestServer::SSLOptions::CERT_OK_FOR_LOCALHOST); | |
5423 SpawnedTestServer https_test_server( | 5359 SpawnedTestServer https_test_server( |
5424 SpawnedTestServer::TYPE_HTTPS, | 5360 SpawnedTestServer::TYPE_HTTPS, |
5425 ssl_options, | 5361 ssl_options, |
5426 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); | 5362 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); |
5427 ASSERT_TRUE(https_test_server.Start()); | 5363 ASSERT_TRUE(https_test_server.Start()); |
5428 | 5364 |
5429 std::string test_server_hostname = | |
5430 https_test_server.GetURL(std::string()).host(); | |
5431 | |
5432 TestDelegate d; | 5365 TestDelegate d; |
5433 scoped_ptr<URLRequest> request(default_context_.CreateRequest( | 5366 scoped_ptr<URLRequest> request(default_context_.CreateRequest( |
5434 https_test_server.GetURL("files/hsts-and-hpkp-headers.html"), | 5367 https_test_server.GetURL("files/hsts-and-hpkp-headers.html"), |
5435 DEFAULT_PRIORITY, &d)); | 5368 DEFAULT_PRIORITY, &d)); |
5436 request->Start(); | 5369 request->Start(); |
5437 base::RunLoop().Run(); | 5370 base::RunLoop().Run(); |
5438 | 5371 |
5439 // We should have set parameters from the first header, not the second. | 5372 // We should have set parameters from the first header, not the second. |
5440 TransportSecurityState* security_state = | 5373 TransportSecurityState* security_state = |
5441 default_context_.transport_security_state(); | 5374 default_context_.transport_security_state(); |
5442 TransportSecurityState::DomainState domain_state; | 5375 TransportSecurityState::DomainState domain_state; |
5443 EXPECT_TRUE(security_state->GetDynamicDomainState(test_server_hostname, | 5376 EXPECT_TRUE(security_state->GetDynamicDomainState( |
5444 &domain_state)); | 5377 SpawnedTestServer::kLocalhost, &domain_state)); |
5445 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, | 5378 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, |
5446 domain_state.sts.upgrade_mode); | 5379 domain_state.sts.upgrade_mode); |
5447 #if defined(OS_ANDROID) | 5380 #if defined(OS_ANDROID) |
5448 // Android's CertVerifyProc does not (yet) handle pins. | 5381 // Android's CertVerifyProc does not (yet) handle pins. |
5449 #else | 5382 #else |
5450 EXPECT_TRUE(domain_state.HasPublicKeyPins()); | 5383 EXPECT_TRUE(domain_state.HasPublicKeyPins()); |
5451 #endif | 5384 #endif |
5452 EXPECT_NE(domain_state.sts.expiry, domain_state.pkp.expiry); | 5385 EXPECT_NE(domain_state.sts.expiry, domain_state.pkp.expiry); |
5453 | 5386 |
5454 // Even though there is an HSTS header asserting includeSubdomains, it is | 5387 // Even though there is an HSTS header asserting includeSubdomains, it is |
5455 // the *second* such header, and we MUST process only the first. | 5388 // the *second* such header, and we MUST process only the first. |
5456 EXPECT_FALSE(domain_state.sts.include_subdomains); | 5389 EXPECT_FALSE(domain_state.sts.include_subdomains); |
5457 // includeSubdomains does not occur in the test HPKP header. | 5390 // includeSubdomains does not occur in the test HPKP header. |
5458 EXPECT_FALSE(domain_state.pkp.include_subdomains); | 5391 EXPECT_FALSE(domain_state.pkp.include_subdomains); |
5459 } | 5392 } |
5460 | 5393 |
5461 // Tests that when multiple HPKP headers are present, asserting different | 5394 // Tests that when multiple HPKP headers are present, asserting different |
5462 // policies, that only the first such policy is processed. | 5395 // policies, that only the first such policy is processed. |
5463 TEST_F(URLRequestTestHTTP, ProcessSTSAndPKP2) { | 5396 TEST_F(URLRequestTestHTTP, ProcessSTSAndPKP2) { |
5464 SpawnedTestServer::SSLOptions ssl_options( | 5397 SpawnedTestServer::SSLOptions ssl_options; |
5465 SpawnedTestServer::SSLOptions::CERT_OK_FOR_LOCALHOST); | |
5466 SpawnedTestServer https_test_server( | 5398 SpawnedTestServer https_test_server( |
5467 SpawnedTestServer::TYPE_HTTPS, | 5399 SpawnedTestServer::TYPE_HTTPS, |
5468 ssl_options, | 5400 ssl_options, |
5469 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); | 5401 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); |
5470 ASSERT_TRUE(https_test_server.Start()); | 5402 ASSERT_TRUE(https_test_server.Start()); |
5471 | 5403 |
5472 std::string test_server_hostname = | |
5473 https_test_server.GetURL(std::string()).host(); | |
5474 | |
5475 TestDelegate d; | 5404 TestDelegate d; |
5476 scoped_ptr<URLRequest> request(default_context_.CreateRequest( | 5405 scoped_ptr<URLRequest> request(default_context_.CreateRequest( |
5477 https_test_server.GetURL("files/hsts-and-hpkp-headers2.html"), | 5406 https_test_server.GetURL("files/hsts-and-hpkp-headers2.html"), |
5478 DEFAULT_PRIORITY, &d)); | 5407 DEFAULT_PRIORITY, &d)); |
5479 request->Start(); | 5408 request->Start(); |
5480 base::RunLoop().Run(); | 5409 base::RunLoop().Run(); |
5481 | 5410 |
5482 TransportSecurityState* security_state = | 5411 TransportSecurityState* security_state = |
5483 default_context_.transport_security_state(); | 5412 default_context_.transport_security_state(); |
5484 TransportSecurityState::DomainState domain_state; | 5413 TransportSecurityState::DomainState domain_state; |
5485 EXPECT_TRUE(security_state->GetDynamicDomainState(test_server_hostname, | 5414 EXPECT_TRUE(security_state->GetDynamicDomainState( |
5486 &domain_state)); | 5415 SpawnedTestServer::kLocalhost, &domain_state)); |
5487 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, | 5416 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, |
5488 domain_state.sts.upgrade_mode); | 5417 domain_state.sts.upgrade_mode); |
5489 #if defined(OS_ANDROID) | 5418 #if defined(OS_ANDROID) |
5490 // Android's CertVerifyProc does not (yet) handle pins. | 5419 // Android's CertVerifyProc does not (yet) handle pins. |
5491 #else | 5420 #else |
5492 EXPECT_TRUE(domain_state.HasPublicKeyPins()); | 5421 EXPECT_TRUE(domain_state.HasPublicKeyPins()); |
5493 #endif | 5422 #endif |
5494 EXPECT_NE(domain_state.sts.expiry, domain_state.pkp.expiry); | 5423 EXPECT_NE(domain_state.sts.expiry, domain_state.pkp.expiry); |
5495 | 5424 |
5496 EXPECT_TRUE(domain_state.sts.include_subdomains); | 5425 EXPECT_TRUE(domain_state.sts.include_subdomains); |
(...skipping 3576 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9073 | 9002 |
9074 EXPECT_FALSE(r->is_pending()); | 9003 EXPECT_FALSE(r->is_pending()); |
9075 EXPECT_EQ(1, d->response_started_count()); | 9004 EXPECT_EQ(1, d->response_started_count()); |
9076 EXPECT_FALSE(d->received_data_before_response()); | 9005 EXPECT_FALSE(d->received_data_before_response()); |
9077 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); | 9006 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); |
9078 } | 9007 } |
9079 } | 9008 } |
9080 #endif // !defined(DISABLE_FTP_SUPPORT) | 9009 #endif // !defined(DISABLE_FTP_SUPPORT) |
9081 | 9010 |
9082 } // namespace net | 9011 } // namespace net |
OLD | NEW |