diff options
author | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-27 21:04:49 +0000 |
---|---|---|
committer | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-27 21:04:49 +0000 |
commit | edbc4f91345a02160137f8fd506fefaca4e33f6a (patch) | |
tree | 98e5a1f9096b79e6f60f2c7c0ebd09218ac9780d /net/base/transport_security_state_unittest.cc | |
parent | bb6ec17d7939713e4d0d9d2c25c2e1e734b0e96e (diff) | |
download | chromium_src-edbc4f91345a02160137f8fd506fefaca4e33f6a.zip chromium_src-edbc4f91345a02160137f8fd506fefaca4e33f6a.tar.gz chromium_src-edbc4f91345a02160137f8fd506fefaca4e33f6a.tar.bz2 |
Make TransportSecurityState not ref-counted for simplicity.
BUG=none
Review URL: http://codereview.chromium.org/8054001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103012 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/transport_security_state_unittest.cc')
-rw-r--r-- | net/base/transport_security_state_unittest.cc | 1010 |
1 files changed, 493 insertions, 517 deletions
diff --git a/net/base/transport_security_state_unittest.cc b/net/base/transport_security_state_unittest.cc index 263e29a..11c6edf 100644 --- a/net/base/transport_security_state_unittest.cc +++ b/net/base/transport_security_state_unittest.cc @@ -142,168 +142,155 @@ TEST_F(TransportSecurityStateTest, ValidHeaders) { } TEST_F(TransportSecurityStateTest, SimpleMatches) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); + TransportSecurityState state(""); TransportSecurityState::DomainState domain_state; const base::Time current_time(base::Time::Now()); const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "yahoo.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "yahoo.com", true)); domain_state.expiry = expiry; - state->EnableHost("yahoo.com", domain_state); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "yahoo.com", true)); + state.EnableHost("yahoo.com", domain_state); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "yahoo.com", true)); } TEST_F(TransportSecurityStateTest, MatchesCase1) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); + TransportSecurityState state(""); TransportSecurityState::DomainState domain_state; const base::Time current_time(base::Time::Now()); const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "yahoo.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "yahoo.com", true)); domain_state.expiry = expiry; - state->EnableHost("YAhoo.coM", domain_state); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "yahoo.com", true)); + state.EnableHost("YAhoo.coM", domain_state); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "yahoo.com", true)); } TEST_F(TransportSecurityStateTest, MatchesCase2) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); + TransportSecurityState state(""); TransportSecurityState::DomainState domain_state; const base::Time current_time(base::Time::Now()); const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "YAhoo.coM", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "YAhoo.coM", true)); domain_state.expiry = expiry; - state->EnableHost("yahoo.com", domain_state); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "YAhoo.coM", true)); + state.EnableHost("yahoo.com", domain_state); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "YAhoo.coM", true)); } TEST_F(TransportSecurityStateTest, SubdomainMatches) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); + TransportSecurityState state(""); TransportSecurityState::DomainState domain_state; const base::Time current_time(base::Time::Now()); const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "yahoo.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "yahoo.com", true)); domain_state.expiry = expiry; domain_state.include_subdomains = true; - state->EnableHost("yahoo.com", domain_state); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "yahoo.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "foo.yahoo.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.bar.yahoo.com", - true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.bar.baz.yahoo.com", - true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "com", true)); + state.EnableHost("yahoo.com", domain_state); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "yahoo.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "foo.yahoo.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.bar.yahoo.com", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.bar.baz.yahoo.com", + true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "com", true)); } TEST_F(TransportSecurityStateTest, Serialise1) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); + TransportSecurityState state(""); std::string output; bool dirty; - state->Serialise(&output); - EXPECT_TRUE(state->LoadEntries(output, &dirty)); + state.Serialise(&output); + EXPECT_TRUE(state.LoadEntries(output, &dirty)); EXPECT_FALSE(dirty); } TEST_F(TransportSecurityStateTest, Serialise2) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); - + TransportSecurityState state(""); TransportSecurityState::DomainState domain_state; const base::Time current_time(base::Time::Now()); const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "yahoo.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "yahoo.com", true)); domain_state.mode = TransportSecurityState::DomainState::MODE_STRICT; domain_state.expiry = expiry; domain_state.include_subdomains = true; - state->EnableHost("yahoo.com", domain_state); + state.EnableHost("yahoo.com", domain_state); std::string output; bool dirty; - state->Serialise(&output); - EXPECT_TRUE(state->LoadEntries(output, &dirty)); + state.Serialise(&output); + EXPECT_TRUE(state.LoadEntries(output, &dirty)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "yahoo.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "yahoo.com", true)); EXPECT_EQ(domain_state.mode, TransportSecurityState::DomainState::MODE_STRICT); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "foo.yahoo.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "foo.yahoo.com", true)); EXPECT_EQ(domain_state.mode, TransportSecurityState::DomainState::MODE_STRICT); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.bar.yahoo.com", - true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.bar.yahoo.com", + true)); EXPECT_EQ(domain_state.mode, TransportSecurityState::DomainState::MODE_STRICT); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.bar.baz.yahoo.com", - true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.bar.baz.yahoo.com", + true)); EXPECT_EQ(domain_state.mode, TransportSecurityState::DomainState::MODE_STRICT); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "com", true)); } TEST_F(TransportSecurityStateTest, DeleteSince) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); - + TransportSecurityState state(""); TransportSecurityState::DomainState domain_state; const base::Time current_time(base::Time::Now()); const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000); const base::Time older = current_time - base::TimeDelta::FromSeconds(1000); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "yahoo.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "yahoo.com", true)); domain_state.mode = TransportSecurityState::DomainState::MODE_STRICT; domain_state.expiry = expiry; - state->EnableHost("yahoo.com", domain_state); + state.EnableHost("yahoo.com", domain_state); - state->DeleteSince(expiry); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "yahoo.com", true)); - state->DeleteSince(older); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "yahoo.com", true)); + state.DeleteSince(expiry); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "yahoo.com", true)); + state.DeleteSince(older); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "yahoo.com", true)); } TEST_F(TransportSecurityStateTest, DeleteHost) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); - + TransportSecurityState state(""); TransportSecurityState::DomainState domain_state; const base::Time current_time(base::Time::Now()); const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000); domain_state.mode = TransportSecurityState::DomainState::MODE_STRICT; domain_state.expiry = expiry; - state->EnableHost("yahoo.com", domain_state); + state.EnableHost("yahoo.com", domain_state); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "yahoo.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "example.com", true)); - EXPECT_TRUE(state->DeleteHost("yahoo.com")); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "yahoo.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "yahoo.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "example.com", true)); + EXPECT_TRUE(state.DeleteHost("yahoo.com")); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "yahoo.com", true)); } TEST_F(TransportSecurityStateTest, SerialiseOld) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); + TransportSecurityState state(""); // This is an old-style piece of transport state JSON, which has no creation // date. std::string output = "{ " - "\"NiyD+3J1r6z1wjl2n1ALBu94Zj9OsEAMo0kCN8js0Uk=\": {" - "\"expiry\": 1266815027.983453, " - "\"include_subdomains\": false, " - "\"mode\": \"strict\" " - "}" + "\"NiyD+3J1r6z1wjl2n1ALBu94Zj9OsEAMo0kCN8js0Uk=\": {" + "\"expiry\": 1266815027.983453, " + "\"include_subdomains\": false, " + "\"mode\": \"strict\" " + "}" "}"; bool dirty; - EXPECT_TRUE(state->LoadEntries(output, &dirty)); + EXPECT_TRUE(state.LoadEntries(output, &dirty)); EXPECT_TRUE(dirty); } TEST_F(TransportSecurityStateTest, IsPreloaded) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); + TransportSecurityState state(""); const std::string paypal = TransportSecurityState::CanonicalizeHost("paypal.com"); @@ -319,414 +306,410 @@ TEST_F(TransportSecurityStateTest, IsPreloaded) { TransportSecurityState::CanonicalizeHost("aypal.com"); TransportSecurityState::DomainState domain_state; - EXPECT_FALSE(state->IsPreloadedSTS(paypal, true, &domain_state)); - EXPECT_TRUE(state->IsPreloadedSTS(www_paypal, true, &domain_state)); + EXPECT_FALSE(state.IsPreloadedSTS(paypal, true, &domain_state)); + EXPECT_TRUE(state.IsPreloadedSTS(www_paypal, true, &domain_state)); EXPECT_FALSE(domain_state.include_subdomains); - EXPECT_FALSE(state->IsPreloadedSTS(a_www_paypal, true, &domain_state)); - EXPECT_FALSE(state->IsPreloadedSTS(abc_paypal, true, &domain_state)); - EXPECT_FALSE(state->IsPreloadedSTS(example, true, &domain_state)); - EXPECT_FALSE(state->IsPreloadedSTS(aypal, true, &domain_state)); + EXPECT_FALSE(state.IsPreloadedSTS(a_www_paypal, true, &domain_state)); + EXPECT_FALSE(state.IsPreloadedSTS(abc_paypal, true, &domain_state)); + EXPECT_FALSE(state.IsPreloadedSTS(example, true, &domain_state)); + EXPECT_FALSE(state.IsPreloadedSTS(aypal, true, &domain_state)); } TEST_F(TransportSecurityStateTest, Preloaded) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); + TransportSecurityState state(""); TransportSecurityState::DomainState domain_state; - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "paypal.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "www.paypal.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "paypal.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "www.paypal.com", true)); EXPECT_EQ(domain_state.mode, TransportSecurityState::DomainState::MODE_STRICT); EXPECT_TRUE(domain_state.preloaded); EXPECT_FALSE(domain_state.include_subdomains); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "www2.paypal.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "a.www.paypal.com", - true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "www2.paypal.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "a.www.paypal.com", + true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "elanex.biz", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "www.elanex.biz", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "elanex.biz", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "www.elanex.biz", true)); EXPECT_EQ(domain_state.mode, TransportSecurityState::DomainState::MODE_STRICT); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "foo.elanex.biz", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "a.foo.elanex.biz", - true)); - - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "sunshinepress.org", + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "foo.elanex.biz", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "a.foo.elanex.biz", true)); + + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "sunshinepress.org", + true)); EXPECT_EQ(domain_state.mode, TransportSecurityState::DomainState::MODE_STRICT); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "www.sunshinepress.org", - true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "a.b.sunshinepress.org", - true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "www.sunshinepress.org", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "a.b.sunshinepress.org", + true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "www.noisebridge.net", + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "www.noisebridge.net", + true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "noisebridge.net", + true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "foo.noisebridge.net", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "noisebridge.net", - true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "foo.noisebridge.net", - true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "neg9.org", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "www.neg9.org", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "neg9.org", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "www.neg9.org", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "riseup.net", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "foo.riseup.net", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "riseup.net", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "foo.riseup.net", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "factor.cc", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "www.factor.cc", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "factor.cc", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "www.factor.cc", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "members.mayfirst.org", - true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "support.mayfirst.org", - true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "id.mayfirst.org", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "lists.mayfirst.org", + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "members.mayfirst.org", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "support.mayfirst.org", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "id.mayfirst.org", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "lists.mayfirst.org", + true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "www.mayfirst.org", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "www.mayfirst.org", - true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "splendidbacon.com", - true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "www.splendidbacon.com", - true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.splendidbacon.com", - true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "splendidbacon.com", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "www.splendidbacon.com", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.splendidbacon.com", + true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "chrome.google.com", - true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "checkout.google.com", - true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "health.google.com", - true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "aladdinschools.appspot.com", - true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "ottospora.nl", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "www.ottospora.nl", true)); - - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "docs.google.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "sites.google.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "drive.google.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "spreadsheets.google.com", - true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "appengine.google.com", - true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "chrome.google.com", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "checkout.google.com", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "health.google.com", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "aladdinschools.appspot.com", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "ottospora.nl", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "www.ottospora.nl", true)); + + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "docs.google.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "sites.google.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "drive.google.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "spreadsheets.google.com", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "appengine.google.com", + true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "www.paycheckrecords.com", - true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "market.android.com", - true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "www.paycheckrecords.com", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "market.android.com", + true)); // The domain wasn't being set, leading to a blank string in the // chrome://net-internals/#hsts UI. So test that. EXPECT_EQ(domain_state.domain, "market.android.com"); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "sub.market.android.com", - true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "sub.market.android.com", + true)); EXPECT_EQ(domain_state.domain, "market.android.com"); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "lastpass.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "www.lastpass.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "blog.lastpass.com", - true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "lastpass.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "www.lastpass.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "blog.lastpass.com", + true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "keyerror.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "www.keyerror.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "keyerror.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "www.keyerror.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "encrypted.google.com", + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "encrypted.google.com", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "accounts.google.com", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "profiles.google.com", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "mail.google.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "chatenabled.mail.google.com", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "talkgadget.google.com", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "hostedtalkgadget.google.com", + true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "talk.google.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "plus.google.com", true)); + + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "entropia.de", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "www.entropia.de", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "foo.entropia.de", true)); + + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "ssl.google-analytics.com", + true)); + + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "www.google.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "google.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "www.youtube.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "youtube.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "i.ytimg.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "ytimg.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "googleusercontent.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "accounts.google.com", + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "www.googleusercontent.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "profiles.google.com", + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "www.google-analytics.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "mail.google.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "chatenabled.mail.google.com", + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "google-analytics.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "talkgadget.google.com", + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "googleapis.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "googleadservices.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "hostedtalkgadget.google.com", + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "googlecode.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "appspot.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "googlesyndication.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "talk.google.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "plus.google.com", true)); - - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "entropia.de", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "www.entropia.de", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "foo.entropia.de", true)); - - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "ssl.google-analytics.com", + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "doubleclick.net", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "googlegroups.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "www.google.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "google.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "www.youtube.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "youtube.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "i.ytimg.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "ytimg.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "googleusercontent.com", - true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "www.googleusercontent.com", - true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "www.google-analytics.com", - true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "google-analytics.com", - true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "googleapis.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "googleadservices.com", - true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "googlecode.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "appspot.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "googlesyndication.com", - true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "doubleclick.net", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "googlegroups.com", - true)); - - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "gmail.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "www.gmail.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "m.gmail.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "googlemail.com", true)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "gmail.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "www.gmail.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "m.gmail.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "googlemail.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "www.googlemail.com", + true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "m.googlemail.com", + true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "gmail.com", false)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "www.gmail.com", false)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "m.gmail.com", false)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "googlemail.com", false)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "www.googlemail.com", - true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "m.googlemail.com", - true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "gmail.com", false)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "www.gmail.com", false)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "m.gmail.com", false)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "googlemail.com", false)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "www.googlemail.com", - false)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "m.googlemail.com", - false)); - - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "romab.com", false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "www.romab.com", false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "foo.romab.com", false)); - - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "logentries.com", false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "www.logentries.com", false)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "foo.logentries.com", - false)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "m.googlemail.com", + false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "stripe.com", false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "foo.stripe.com", false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "romab.com", false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "www.romab.com", false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "foo.romab.com", false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "cloudsecurityalliance.org", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.cloudsecurityalliance.org", + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "logentries.com", false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "www.logentries.com", + false)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "foo.logentries.com", false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "login.sapo.pt", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.login.sapo.pt", - false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "stripe.com", false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "foo.stripe.com", false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "mattmccutchen.net", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.mattmccutchen.net", - false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "cloudsecurityalliance.org", + false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.cloudsecurityalliance.org", + false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "betnet.fr", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.betnet.fr", - false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "login.sapo.pt", + false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.login.sapo.pt", + false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "uprotect.it", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.uprotect.it", - false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "mattmccutchen.net", + false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.mattmccutchen.net", + false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "squareup.com", - false)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "foo.squareup.com", - false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "betnet.fr", + false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.betnet.fr", + false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "cert.se", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.cert.se", - false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "uprotect.it", + false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.uprotect.it", + false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "crypto.is", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.crypto.is", + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "squareup.com", + false)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "foo.squareup.com", false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "simon.butcher.name", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.simon.butcher.name", - false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "cert.se", + false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.cert.se", + false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "linx.net", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.linx.net", - false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "crypto.is", + false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.crypto.is", + false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "dropcam.com", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.dropcam.com", - false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "simon.butcher.name", + false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.simon.butcher.name", + false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "ebanking.indovinabank.com.vn", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.ebanking.indovinabank.com.vn", - false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "linx.net", + false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.linx.net", + false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "epoxate.com", - false)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "foo.epoxate.com", - false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "dropcam.com", + false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.dropcam.com", + false)); + + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "ebanking.indovinabank.com.vn", + false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.ebanking.indovinabank.com.vn", + false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "torproject.org", + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "epoxate.com", + false)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "foo.epoxate.com", false)); + + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "torproject.org", + false)); EXPECT_TRUE(domain_state.public_key_hashes.size() != 0); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "www.torproject.org", - false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "www.torproject.org", + false)); EXPECT_TRUE(domain_state.public_key_hashes.size() != 0); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "check.torproject.org", - false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "check.torproject.org", + false)); EXPECT_TRUE(domain_state.public_key_hashes.size() != 0); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "blog.torproject.org", - false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "blog.torproject.org", + false)); EXPECT_TRUE(domain_state.public_key_hashes.size() != 0); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "foo.torproject.org", - false)); - - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "www.moneybookers.com", + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "foo.torproject.org", false)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, + + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "www.moneybookers.com", + false)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "moneybookers.com", false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "ledgerscope.net", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "www.ledgerscope.net", + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "ledgerscope.net", + false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "www.ledgerscope.net", + false)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "status.ledgerscope.net", false)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "status.ledgerscope.net", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "kyps.net", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "www.kyps.net", + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "kyps.net", + false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "www.kyps.net", + false)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "foo.kyps.net", false)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "foo.kyps.net", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.app.recurly.com", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "foo.api.recurly.com", - false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.app.recurly.com", + false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "foo.api.recurly.com", + false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "greplin.com", - false)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "www.greplin.com", + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "greplin.com", + false)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "www.greplin.com", + false)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "foo.greplin.com", false)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "foo.greplin.com", - false)); } TEST_F(TransportSecurityStateTest, LongNames) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); + TransportSecurityState state(""); const char kLongName[] = "lookupByWaveIdHashAndWaveIdIdAndWaveIdDomainAndWaveletIdIdAnd" "WaveletIdDomainAndBlipBlipid"; TransportSecurityState::DomainState domain_state; // Just checks that we don't hit a NOTREACHED. - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, kLongName, true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, kLongName, true)); } TEST_F(TransportSecurityStateTest, PublicKeyHashes) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); - + TransportSecurityState state(""); TransportSecurityState::DomainState domain_state; - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "example.com", false)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "example.com", false)); std::vector<SHA1Fingerprint> hashes; EXPECT_TRUE(domain_state.IsChainOfPublicKeysPermitted(hashes)); @@ -743,161 +726,154 @@ TEST_F(TransportSecurityStateTest, PublicKeyHashes) { const base::Time current_time(base::Time::Now()); const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000); domain_state.expiry = expiry; - state->EnableHost("example.com", domain_state); + state.EnableHost("example.com", domain_state); std::string ser; - EXPECT_TRUE(state->Serialise(&ser)); + EXPECT_TRUE(state.Serialise(&ser)); bool dirty; - EXPECT_TRUE(state->LoadEntries(ser, &dirty)); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "example.com", false)); + EXPECT_TRUE(state.LoadEntries(ser, &dirty)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "example.com", false)); EXPECT_EQ(1u, domain_state.public_key_hashes.size()); EXPECT_TRUE(0 == memcmp(domain_state.public_key_hashes[0].data, hash.data, sizeof(hash.data))); } TEST_F(TransportSecurityStateTest, BuiltinCertPins) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); - + TransportSecurityState state(""); TransportSecurityState::DomainState domain_state; - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, - "chrome.google.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "chrome.google.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, + "chrome.google.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "chrome.google.com", true)); std::vector<SHA1Fingerprint> hashes; // This essential checks that a built-in list does exist. EXPECT_FALSE(domain_state.IsChainOfPublicKeysPermitted(hashes)); - EXPECT_FALSE(state->HasPinsForHost(&domain_state, "www.paypal.com", true)); - EXPECT_FALSE(state->HasPinsForHost(&domain_state, "twitter.com", true)); - - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "docs.google.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "1.docs.google.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "sites.google.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "drive.google.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "spreadsheets.google.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "health.google.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "checkout.google.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "appengine.google.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "market.android.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "encrypted.google.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "accounts.google.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "profiles.google.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "mail.google.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "chatenabled.mail.google.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "talkgadget.google.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "hostedtalkgadget.google.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "talk.google.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "plus.google.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "ssl.gstatic.com", true)); - EXPECT_FALSE(state->HasPinsForHost(&domain_state, "www.gstatic.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "ssl.google-analytics.com", - true)); + EXPECT_FALSE(state.HasPinsForHost(&domain_state, "www.paypal.com", true)); + EXPECT_FALSE(state.HasPinsForHost(&domain_state, "twitter.com", true)); + + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "docs.google.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "1.docs.google.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "sites.google.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "drive.google.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "spreadsheets.google.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "health.google.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "checkout.google.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "appengine.google.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "market.android.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "encrypted.google.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "accounts.google.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "profiles.google.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "mail.google.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "chatenabled.mail.google.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "talkgadget.google.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "hostedtalkgadget.google.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "talk.google.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "plus.google.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "ssl.gstatic.com", true)); + EXPECT_FALSE(state.HasPinsForHost(&domain_state, "www.gstatic.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "ssl.google-analytics.com", + true)); } TEST_F(TransportSecurityStateTest, OptionalHSTSCertPins) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); - + TransportSecurityState state(""); TransportSecurityState::DomainState domain_state; - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "www.google-analytics.com", - false)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, - "www.google-analytics.com", - true)); - EXPECT_FALSE(state->HasPinsForHost(&domain_state, - "www.google-analytics.com", - false)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "www.google-analytics.com", + false)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, + "www.google-analytics.com", + true)); + EXPECT_FALSE(state.HasPinsForHost(&domain_state, "www.google-analytics.com", + false)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "www.google-analytics.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "google.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "www.google.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "mail-attachment.googleusercontent.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "www.youtube.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "i.ytimg.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "googleapis.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "ajax.googleapis.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "googleadservices.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "pagead2.googleadservices.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "googlecode.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "kibbles.googlecode.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "appspot.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, + "googlesyndication.com", + true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "doubleclick.net", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "ad.doubleclick.net", true)); + EXPECT_FALSE(state.HasPinsForHost(&domain_state, + "learn.doubleclick.net", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "google.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "www.google.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "mail-attachment.googleusercontent.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "www.youtube.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "i.ytimg.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "googleapis.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "ajax.googleapis.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "googleadservices.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "pagead2.googleadservices.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "googlecode.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "kibbles.googlecode.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "appspot.com", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, - "googlesyndication.com", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "doubleclick.net", true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "ad.doubleclick.net", true)); - EXPECT_FALSE(state->HasPinsForHost(&domain_state, - "learn.doubleclick.net", - true)); - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "a.googlegroups.com", true)); - EXPECT_FALSE(state->HasPinsForHost(&domain_state, - "a.googlegroups.com", - false)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "a.googlegroups.com", true)); + EXPECT_FALSE(state.HasPinsForHost(&domain_state, + "a.googlegroups.com", + false)); } TEST_F(TransportSecurityStateTest, ForcePreloads) { // This is a docs.google.com override. std::string preload("{" - "\"4AGT3lHihuMSd5rUj7B4u6At0jlSH3HFePovjPR+oLE=\": {" - "\"created\": 0.0," - "\"expiry\": 2000000000.0," - "\"include_subdomains\": false," - "\"mode\": \"none\"" - "}}"); - - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(preload)); + "\"4AGT3lHihuMSd5rUj7B4u6At0jlSH3HFePovjPR+oLE=\": {" + "\"created\": 0.0," + "\"expiry\": 2000000000.0," + "\"include_subdomains\": false," + "\"mode\": \"none\"" + "}}"); + + TransportSecurityState state(preload); TransportSecurityState::DomainState domain_state; - EXPECT_FALSE(state->HasPinsForHost(&domain_state, "docs.google.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "docs.google.com", true)); + EXPECT_FALSE(state.HasPinsForHost(&domain_state, "docs.google.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "docs.google.com", true)); } TEST_F(TransportSecurityStateTest, OverrideBuiltins) { - scoped_refptr<TransportSecurityState> state( - new TransportSecurityState(std::string())); - + TransportSecurityState state(""); TransportSecurityState::DomainState domain_state; - EXPECT_TRUE(state->HasPinsForHost(&domain_state, "google.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "google.com", true)); - EXPECT_FALSE(state->IsEnabledForHost(&domain_state, "www.google.com", true)); + EXPECT_TRUE(state.HasPinsForHost(&domain_state, "google.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "google.com", true)); + EXPECT_FALSE(state.IsEnabledForHost(&domain_state, "www.google.com", true)); domain_state = TransportSecurityState::DomainState(); const base::Time current_time(base::Time::Now()); const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000); domain_state.expiry = expiry; - state->EnableHost("www.google.com", domain_state); + state.EnableHost("www.google.com", domain_state); - EXPECT_TRUE(state->IsEnabledForHost(&domain_state, "www.google.com", true)); + EXPECT_TRUE(state.IsEnabledForHost(&domain_state, "www.google.com", true)); } static const uint8 kSidePinLeafSPKI[] = { |