diff options
author | eranm@google.com <eranm@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-25 18:15:42 +0000 |
---|---|---|
committer | eranm@google.com <eranm@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-25 18:15:42 +0000 |
commit | e556a06ca6e25f13378655e500a2a2988177da26 (patch) | |
tree | 71e19e95c5aff70eb329b9bda9473e8cbf1b396e /net/cert | |
parent | d519b817a17433f6c9ea3813d18dfe084659cd1a (diff) | |
download | chromium_src-e556a06ca6e25f13378655e500a2a2988177da26.zip chromium_src-e556a06ca6e25f13378655e500a2a2988177da26.tar.gz chromium_src-e556a06ca6e25f13378655e500a2a2988177da26.tar.bz2 |
Certificate Transparency: More unit tests for netlog logging.
This addresses a TODO from https://codereview.chromium.org/86503002/
BUG=309578
Review URL: https://codereview.chromium.org/117333009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242494 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/cert')
-rw-r--r-- | net/cert/multi_log_ct_verifier_unittest.cc | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/net/cert/multi_log_ct_verifier_unittest.cc b/net/cert/multi_log_ct_verifier_unittest.cc index b1d1aa8..1b15d1e 100644 --- a/net/cert/multi_log_ct_verifier_unittest.cc +++ b/net/cert/multi_log_ct_verifier_unittest.cc @@ -8,6 +8,7 @@ #include "base/file_util.h" #include "base/files/file_path.h" +#include "base/values.h" #include "net/base/capturing_net_log.h" #include "net/base/net_errors.h" #include "net/base/net_log.h" @@ -64,16 +65,40 @@ class MultiLogCTVerifierTest : public ::testing::Test { if (entries.size() != 2) return false; - const CapturingNetLog::CapturedEntry& received(entries[0]); + const CapturingNetLog::CapturedEntry& received = entries[0]; std::string embedded_scts; if (!received.GetStringValue("embedded_scts", &embedded_scts)) return false; if (embedded_scts.empty()) return false; - //XXX(eranm): entries[1] is the NetLog message with the checked SCTs. - //When CapturedEntry has methods to get a dictionary, rather than just - //a string, add more checks here. + const CapturingNetLog::CapturedEntry& parsed = entries[1]; + base::ListValue* verified_scts; + if (!parsed.GetListValue("verified_scts", &verified_scts) || + verified_scts->GetSize() != 1) { + return false; + } + + base::DictionaryValue* the_sct; + if (!verified_scts->GetDictionary(0, &the_sct)) + return false; + + std::string origin; + if (!the_sct->GetString("origin", &origin)) + return false; + if (origin != "embedded_in_certificate") + return false; + + base::ListValue* other_scts; + if (!parsed.GetListValue("invalid_scts", &other_scts) || + !other_scts->empty()) { + return false; + } + + if (!parsed.GetListValue("unknown_logs_scts", &other_scts) || + !other_scts->empty()) { + return false; + } return true; } |