Chromium Code Reviews| Index: net/cert/merkle_tree_leaf_unittest.cc |
| diff --git a/net/cert/merkle_tree_leaf_unittest.cc b/net/cert/merkle_tree_leaf_unittest.cc |
| index ab59237a199a3bed983b1d76483605a92da9de91..4c0e46ce44eb74d58af3e8773e5f316441c48f10 100644 |
| --- a/net/cert/merkle_tree_leaf_unittest.cc |
| +++ b/net/cert/merkle_tree_leaf_unittest.cc |
| @@ -4,12 +4,16 @@ |
| #include "net/cert/merkle_tree_leaf.h" |
| +#include <string.h> |
| + |
| #include <string> |
| +#include "base/strings/string_number_conversions.h" |
| #include "net/base/test_data_directory.h" |
| #include "net/cert/x509_certificate.h" |
| #include "net/test/cert_test_util.h" |
| #include "net/test/ct_test_util.h" |
| +#include "testing/gmock/include/gmock/gmock.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| namespace net { |
| @@ -18,6 +22,28 @@ namespace ct { |
| namespace { |
| +MATCHER_P(HexEq, hexStr, "") { |
| + std::vector<uint8_t> bytes; |
| + |
| + if (!base::HexStringToBytes(hexStr, &bytes)) { |
| + *result_listener << "expected value was not a valid hex string"; |
| + return false; |
| + } |
| + |
| + if (bytes.size() != arg.size()) { |
| + *result_listener << "expected and actual are different lengths"; |
| + return false; |
| + } |
| + |
| + // Make sure we don't pass nullptrs to memcmp |
| + if (arg.empty()) |
| + return true; |
|
eroman
2016/05/09 19:01:22
formatting.
Rob Percival
2016/05/09 19:55:50
Done.
|
| + |
| + // Print hex string (easier to read than default GTest representation) |
| + *result_listener << "a.k.a. 0x" << base::HexEncode(arg.data(), arg.size()); |
| + return memcmp(arg.data(), bytes.data(), bytes.size()) == 0; |
| +} |
| + |
| class MerkleTreeLeafTest : public ::testing::Test { |
| public: |
| void SetUp() override { |
| @@ -77,6 +103,26 @@ TEST_F(MerkleTreeLeafTest, DoesNotCreateForEmbeddedSCTButNotPrecert) { |
| ASSERT_FALSE(GetMerkleTreeLeaf(test_cert_.get(), precert_sct_.get(), &leaf)); |
| } |
| +TEST_F(MerkleTreeLeafTest, HashForX509Cert) { |
| + MerkleTreeLeaf leaf; |
| + ct::GetX509CertTreeLeaf(&leaf); |
| + |
| + std::string hash; |
| + ASSERT_TRUE(Hash(leaf, &hash)); |
| + EXPECT_THAT(hash, HexEq("452da788b3b8d15872ff0bb0777354b2a7f1c1887b5633201e76" |
|
eroman
2016/05/09 19:01:22
Please document in the test how this was generated
Rob Percival
2016/05/09 19:55:50
Done.
|
| + "2ba5a4b143fc")); |
| +} |
| + |
| +TEST_F(MerkleTreeLeafTest, HashForPrecert) { |
| + MerkleTreeLeaf leaf; |
| + ct::GetPrecertTreeLeaf(&leaf); |
| + |
| + std::string hash; |
| + ASSERT_TRUE(Hash(leaf, &hash)); |
| + EXPECT_THAT(hash, HexEq("257ae85f08810445511e35e33f7aee99ee19407971e35e95822b" |
|
eroman
2016/05/09 19:01:22
Same
Rob Percival
2016/05/09 19:55:50
Done.
|
| + "bf42a74be223")); |
| +} |
| + |
| } // namespace |
| } // namespace ct |