| Index: net/http/transport_security_state_unittest.cc
|
| diff --git a/net/http/transport_security_state_unittest.cc b/net/http/transport_security_state_unittest.cc
|
| index 3b9bf7b96a841695cf640b3a0fa71fe91c60a68a..19eb26d3440af116db901df4e5564dff70d3b44d 100644
|
| --- a/net/http/transport_security_state_unittest.cc
|
| +++ b/net/http/transport_security_state_unittest.cc
|
| @@ -35,6 +35,12 @@
|
| #include "crypto/nss_util.h"
|
| #endif
|
|
|
| +namespace {
|
| +
|
| +const char kReportUri[] = "http://example.test/test";
|
| +
|
| +} // namespace
|
| +
|
| namespace net {
|
|
|
| class TransportSecurityStateTest : public testing::Test {
|
| @@ -222,8 +228,10 @@ TEST_F(TransportSecurityStateTest, SubdomainCarveout) {
|
| state.AddHSTS("example1.test", expiry, true);
|
| state.AddHSTS("foo.example1.test", expiry, false);
|
|
|
| - state.AddHPKP("example2.test", expiry, true, GetSampleSPKIHashes());
|
| - state.AddHPKP("foo.example2.test", expiry, false, GetSampleSPKIHashes());
|
| + state.AddHPKP("example2.test", expiry, true, GetSampleSPKIHashes(),
|
| + kReportUri);
|
| + state.AddHPKP("foo.example2.test", expiry, false, GetSampleSPKIHashes(),
|
| + kReportUri);
|
|
|
| EXPECT_TRUE(state.ShouldUpgradeToSSL("example1.test"));
|
| EXPECT_TRUE(state.ShouldUpgradeToSSL("foo.example1.test"));
|
| @@ -243,7 +251,8 @@ TEST_F(TransportSecurityStateTest, SubdomainCarveout) {
|
|
|
| // Expire the foo.example*.test rules.
|
| state.AddHSTS("foo.example1.test", older, false);
|
| - state.AddHPKP("foo.example2.test", older, false, GetSampleSPKIHashes());
|
| + state.AddHPKP("foo.example2.test", older, false, GetSampleSPKIHashes(),
|
| + kReportUri);
|
|
|
| // Now the base example*.test rules apply to bar.foo.example*.test.
|
| EXPECT_TRUE(state.ShouldUpgradeToSSL("bar.foo.example1.test"));
|
| @@ -258,7 +267,8 @@ TEST_F(TransportSecurityStateTest, FatalSSLErrors) {
|
| const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
|
|
|
| state.AddHSTS("example1.test", expiry, false);
|
| - state.AddHPKP("example2.test", expiry, false, GetSampleSPKIHashes());
|
| + state.AddHPKP("example2.test", expiry, false, GetSampleSPKIHashes(),
|
| + kReportUri);
|
|
|
| // The presense of either HSTS or HPKP is enough to make SSL errors fatal.
|
| EXPECT_TRUE(state.ShouldSSLErrorsBeFatal("example1.test"));
|
| @@ -281,14 +291,16 @@ TEST_F(TransportSecurityStateTest, Expiration) {
|
| // Querying |state| for a domain should flush out expired entries.
|
| EXPECT_FALSE(TransportSecurityState::STSStateIterator(state).HasNext());
|
|
|
| - state.AddHPKP("example1.test", older, false, GetSampleSPKIHashes());
|
| + state.AddHPKP("example1.test", older, false, GetSampleSPKIHashes(),
|
| + kReportUri);
|
| EXPECT_TRUE(TransportSecurityState::PKPStateIterator(state).HasNext());
|
| EXPECT_FALSE(state.HasPublicKeyPins("example1.test"));
|
| // Querying |state| for a domain should flush out expired entries.
|
| EXPECT_FALSE(TransportSecurityState::PKPStateIterator(state).HasNext());
|
|
|
| state.AddHSTS("example1.test", older, false);
|
| - state.AddHPKP("example1.test", older, false, GetSampleSPKIHashes());
|
| + state.AddHPKP("example1.test", older, false, GetSampleSPKIHashes(),
|
| + kReportUri);
|
| EXPECT_TRUE(TransportSecurityState::STSStateIterator(state).HasNext());
|
| EXPECT_TRUE(TransportSecurityState::PKPStateIterator(state).HasNext());
|
| EXPECT_FALSE(state.ShouldSSLErrorsBeFatal("example1.test"));
|
| @@ -298,13 +310,15 @@ TEST_F(TransportSecurityStateTest, Expiration) {
|
|
|
| // Test that HSTS can outlive HPKP.
|
| state.AddHSTS("example1.test", expiry, false);
|
| - state.AddHPKP("example1.test", older, false, GetSampleSPKIHashes());
|
| + state.AddHPKP("example1.test", older, false, GetSampleSPKIHashes(),
|
| + kReportUri);
|
| EXPECT_TRUE(state.ShouldUpgradeToSSL("example1.test"));
|
| EXPECT_FALSE(state.HasPublicKeyPins("example1.test"));
|
|
|
| // Test that HPKP can outlive HSTS.
|
| state.AddHSTS("example2.test", older, false);
|
| - state.AddHPKP("example2.test", expiry, false, GetSampleSPKIHashes());
|
| + state.AddHPKP("example2.test", expiry, false, GetSampleSPKIHashes(),
|
| + kReportUri);
|
| EXPECT_FALSE(state.ShouldUpgradeToSSL("example2.test"));
|
| EXPECT_TRUE(state.HasPublicKeyPins("example2.test"));
|
| }
|
| @@ -329,10 +343,12 @@ TEST_F(TransportSecurityStateTest, IndependentSubdomain) {
|
| const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
|
|
|
| state.AddHSTS("example1.test", expiry, true);
|
| - state.AddHPKP("example1.test", expiry, false, GetSampleSPKIHashes());
|
| + state.AddHPKP("example1.test", expiry, false, GetSampleSPKIHashes(),
|
| + kReportUri);
|
|
|
| state.AddHSTS("example2.test", expiry, false);
|
| - state.AddHPKP("example2.test", expiry, true, GetSampleSPKIHashes());
|
| + state.AddHPKP("example2.test", expiry, true, GetSampleSPKIHashes(),
|
| + kReportUri);
|
|
|
| EXPECT_TRUE(state.ShouldUpgradeToSSL("foo.example1.test"));
|
| EXPECT_FALSE(state.HasPublicKeyPins("foo.example1.test"));
|
| @@ -348,7 +364,8 @@ TEST_F(TransportSecurityStateTest, IndependentInsertion) {
|
|
|
| // Place an includeSubdomains HSTS entry below a normal HPKP entry.
|
| state.AddHSTS("example1.test", expiry, true);
|
| - state.AddHPKP("foo.example1.test", expiry, false, GetSampleSPKIHashes());
|
| + state.AddHPKP("foo.example1.test", expiry, false, GetSampleSPKIHashes(),
|
| + kReportUri);
|
|
|
| EXPECT_TRUE(state.ShouldUpgradeToSSL("foo.example1.test"));
|
| EXPECT_TRUE(state.HasPublicKeyPins("foo.example1.test"));
|
| @@ -363,13 +380,15 @@ TEST_F(TransportSecurityStateTest, IndependentInsertion) {
|
|
|
| // Place an includeSubdomains HPKP entry below a normal HSTS entry.
|
| state.AddHSTS("foo.example2.test", expiry, false);
|
| - state.AddHPKP("example2.test", expiry, true, GetSampleSPKIHashes());
|
| + state.AddHPKP("example2.test", expiry, true, GetSampleSPKIHashes(),
|
| + kReportUri);
|
|
|
| EXPECT_TRUE(state.ShouldUpgradeToSSL("foo.example2.test"));
|
| EXPECT_TRUE(state.HasPublicKeyPins("foo.example2.test"));
|
|
|
| // Drop the includeSubdomains from the HSTS entry.
|
| - state.AddHPKP("example2.test", expiry, false, GetSampleSPKIHashes());
|
| + state.AddHPKP("example2.test", expiry, false, GetSampleSPKIHashes(),
|
| + kReportUri);
|
|
|
| EXPECT_TRUE(state.ShouldUpgradeToSSL("foo.example2.test"));
|
| EXPECT_FALSE(state.HasPublicKeyPins("foo.example2.test"));
|
| @@ -384,7 +403,8 @@ TEST_F(TransportSecurityStateTest, DynamicDomainState) {
|
| const base::Time expiry2 = current_time + base::TimeDelta::FromSeconds(2000);
|
|
|
| state.AddHSTS("example.com", expiry1, true);
|
| - state.AddHPKP("foo.example.com", expiry2, false, GetSampleSPKIHashes());
|
| + state.AddHPKP("foo.example.com", expiry2, false, GetSampleSPKIHashes(),
|
| + kReportUri);
|
|
|
| TransportSecurityState::STSState sts_state;
|
| TransportSecurityState::PKPState pkp_state;
|
| @@ -414,19 +434,22 @@ TEST_F(TransportSecurityStateTest, NewPinsOverride) {
|
| HashValue hash3(HASH_VALUE_SHA1);
|
| memset(hash3.data(), 0x03, hash1.size());
|
|
|
| - state.AddHPKP("example.com", expiry, true, HashValueVector(1, hash1));
|
| + state.AddHPKP("example.com", expiry, true, HashValueVector(1, hash1),
|
| + kReportUri);
|
|
|
| ASSERT_TRUE(state.GetDynamicPKPState("foo.example.com", &pkp_state));
|
| ASSERT_EQ(1u, pkp_state.spki_hashes.size());
|
| EXPECT_TRUE(pkp_state.spki_hashes[0].Equals(hash1));
|
|
|
| - state.AddHPKP("foo.example.com", expiry, false, HashValueVector(1, hash2));
|
| + state.AddHPKP("foo.example.com", expiry, false, HashValueVector(1, hash2),
|
| + kReportUri);
|
|
|
| ASSERT_TRUE(state.GetDynamicPKPState("foo.example.com", &pkp_state));
|
| ASSERT_EQ(1u, pkp_state.spki_hashes.size());
|
| EXPECT_TRUE(pkp_state.spki_hashes[0].Equals(hash2));
|
|
|
| - state.AddHPKP("foo.example.com", expiry, false, HashValueVector(1, hash3));
|
| + state.AddHPKP("foo.example.com", expiry, false, HashValueVector(1, hash3),
|
| + kReportUri);
|
|
|
| ASSERT_TRUE(state.GetDynamicPKPState("foo.example.com", &pkp_state));
|
| ASSERT_EQ(1u, pkp_state.spki_hashes.size());
|
| @@ -444,7 +467,7 @@ TEST_F(TransportSecurityStateTest, DeleteAllDynamicDataSince) {
|
| bool include_subdomains = false;
|
| state.AddHSTS("example.com", expiry, include_subdomains);
|
| state.AddHPKP("example.com", expiry, include_subdomains,
|
| - GetSampleSPKIHashes());
|
| + GetSampleSPKIHashes(), std::string());
|
|
|
| state.DeleteAllDynamicDataSince(expiry);
|
| EXPECT_TRUE(state.ShouldUpgradeToSSL("example.com"));
|
| @@ -466,7 +489,7 @@ TEST_F(TransportSecurityStateTest, DeleteDynamicDataForHost) {
|
|
|
| state.AddHSTS("example1.test", expiry, include_subdomains);
|
| state.AddHPKP("example1.test", expiry, include_subdomains,
|
| - GetSampleSPKIHashes());
|
| + GetSampleSPKIHashes(), std::string());
|
|
|
| EXPECT_TRUE(state.ShouldUpgradeToSSL("example1.test"));
|
| EXPECT_FALSE(state.ShouldUpgradeToSSL("example2.test"));
|
|
|