Chromium Code Reviews| Index: components/safe_browsing_db/safe_browsing_api_handler_unittest.cc |
| diff --git a/components/safe_browsing_db/safe_browsing_api_handler_unittest.cc b/components/safe_browsing_db/safe_browsing_api_handler_unittest.cc |
| index 20cbe053cf09e78860689f148786ae0304cb98ec..fa0cb2c60556249cccc84967b34f19dcbdae8083 100644 |
| --- a/components/safe_browsing_db/safe_browsing_api_handler_unittest.cc |
| +++ b/components/safe_browsing_db/safe_browsing_api_handler_unittest.cc |
| @@ -4,6 +4,7 @@ |
| #include "components/safe_browsing_db/metadata.pb.h" |
| #include "components/safe_browsing_db/safe_browsing_api_handler_util.h" |
| +#include "components/safe_browsing_db/testing_util.h" |
| #include "components/safe_browsing_db/util.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -12,65 +13,61 @@ namespace safe_browsing { |
| class SafeBrowsingApiHandlerUtilTest : public ::testing::Test { |
| protected: |
| SBThreatType threat_; |
| - std::string pb_str_; |
| + ThreatMetadata meta_; |
| + const ThreatMetadata empty_meta_; |
| UmaRemoteCallResult ResetAndParseJson(const std::string& json) { |
| threat_ = SB_THREAT_TYPE_EXTENSION; // Should never be seen |
| - pb_str_ = "unitialized value"; |
| - return ParseJsonToThreatAndPB(json, &threat_, &pb_str_); |
| + meta_ = ThreatMetadata(); |
| + return ParseJson(json, &threat_, &meta_); |
|
mattm
2016/02/26 23:23:19
missed this one
I don't understand why this is ca
Nathan Parker
2016/02/26 23:34:52
Done.
Huh. I don't see where its picking that up
mattm
2016/02/26 23:43:23
yeah, it's weird. Maybe file an infra bug about it
|
| } |
| - MalwarePatternType::PATTERN_TYPE ParsePatternType() { |
| - MalwarePatternType proto; |
| - EXPECT_TRUE(proto.ParseFromString(pb_str_)); |
| - return proto.pattern_type(); |
| - } |
| }; |
| TEST_F(SafeBrowsingApiHandlerUtilTest, BadJson) { |
| EXPECT_EQ(UMA_STATUS_JSON_EMPTY, ResetAndParseJson("")); |
| EXPECT_EQ(SB_THREAT_TYPE_SAFE, threat_); |
| - EXPECT_TRUE(pb_str_.empty()); |
| + EXPECT_EQ(empty_meta_, meta_); |
| EXPECT_EQ(UMA_STATUS_JSON_FAILED_TO_PARSE, ResetAndParseJson("{")); |
| EXPECT_EQ(SB_THREAT_TYPE_SAFE, threat_); |
| - EXPECT_TRUE(pb_str_.empty()); |
| + EXPECT_EQ(empty_meta_, meta_); |
| EXPECT_EQ(UMA_STATUS_JSON_FAILED_TO_PARSE, ResetAndParseJson("[]")); |
| EXPECT_EQ(SB_THREAT_TYPE_SAFE, threat_); |
| - EXPECT_TRUE(pb_str_.empty()); |
| + EXPECT_EQ(empty_meta_, meta_); |
| EXPECT_EQ(UMA_STATUS_JSON_FAILED_TO_PARSE, |
| ResetAndParseJson("{\"matches\":\"foo\"}")); |
| EXPECT_EQ(SB_THREAT_TYPE_SAFE, threat_); |
| - EXPECT_TRUE(pb_str_.empty()); |
| + EXPECT_EQ(empty_meta_, meta_); |
| EXPECT_EQ(UMA_STATUS_JSON_UNKNOWN_THREAT, |
| ResetAndParseJson("{\"matches\":[{}]}")); |
| EXPECT_EQ(SB_THREAT_TYPE_SAFE, threat_); |
| - EXPECT_TRUE(pb_str_.empty()); |
| + EXPECT_EQ(empty_meta_, meta_); |
| EXPECT_EQ(UMA_STATUS_JSON_UNKNOWN_THREAT, |
| ResetAndParseJson("{\"matches\":[{\"threat_type\":\"junk\"}]}")); |
| EXPECT_EQ(SB_THREAT_TYPE_SAFE, threat_); |
| - EXPECT_TRUE(pb_str_.empty()); |
| + EXPECT_EQ(empty_meta_, meta_); |
| EXPECT_EQ(UMA_STATUS_JSON_UNKNOWN_THREAT, |
| ResetAndParseJson("{\"matches\":[{\"threat_type\":\"999\"}]}")); |
| EXPECT_EQ(SB_THREAT_TYPE_SAFE, threat_); |
| - EXPECT_TRUE(pb_str_.empty()); |
| + EXPECT_EQ(empty_meta_, meta_); |
| } |
| TEST_F(SafeBrowsingApiHandlerUtilTest, BasicThreats) { |
| EXPECT_EQ(UMA_STATUS_UNSAFE, |
| ResetAndParseJson("{\"matches\":[{\"threat_type\":\"4\"}]}")); |
| EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE, threat_); |
| - EXPECT_TRUE(pb_str_.empty()); |
| + EXPECT_EQ(empty_meta_, meta_); |
| EXPECT_EQ(UMA_STATUS_UNSAFE, |
| ResetAndParseJson("{\"matches\":[{\"threat_type\":\"5\"}]}")); |
| EXPECT_EQ(SB_THREAT_TYPE_URL_PHISHING, threat_); |
| - EXPECT_TRUE(pb_str_.empty()); |
| + EXPECT_EQ(empty_meta_, meta_); |
| } |
| TEST_F(SafeBrowsingApiHandlerUtilTest, MultipleThreats) { |
| @@ -79,45 +76,68 @@ TEST_F(SafeBrowsingApiHandlerUtilTest, MultipleThreats) { |
| ResetAndParseJson( |
| "{\"matches\":[{\"threat_type\":\"4\"}, {\"threat_type\":\"5\"}]}")); |
| EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE, threat_); |
| - EXPECT_TRUE(pb_str_.empty()); |
| + EXPECT_EQ(empty_meta_, meta_); |
| } |
| TEST_F(SafeBrowsingApiHandlerUtilTest, PhaSubType) { |
| + ThreatMetadata expected; |
| + |
| EXPECT_EQ(UMA_STATUS_UNSAFE, |
| ResetAndParseJson("{\"matches\":[{\"threat_type\":\"4\", " |
| "\"pha_pattern_type\":\"LANDING\"}]}")); |
| EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE, threat_); |
| - EXPECT_EQ(MalwarePatternType::LANDING, ParsePatternType()); |
| + expected.threat_pattern_type = ThreatPatternType::LANDING; |
| + EXPECT_EQ(expected, meta_); |
| + // Test the ThreatMetadata comparitor for this field. |
| + EXPECT_NE(empty_meta_, meta_); |
| EXPECT_EQ(UMA_STATUS_UNSAFE, |
| ResetAndParseJson("{\"matches\":[{\"threat_type\":\"4\", " |
| "\"pha_pattern_type\":\"DISTRIBUTION\"}]}")); |
| EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE, threat_); |
| - EXPECT_EQ(MalwarePatternType::DISTRIBUTION, ParsePatternType()); |
| + expected.threat_pattern_type = ThreatPatternType::DISTRIBUTION; |
| + EXPECT_EQ(expected, meta_); |
| EXPECT_EQ(UMA_STATUS_UNSAFE, |
| ResetAndParseJson("{\"matches\":[{\"threat_type\":\"4\", " |
| "\"pha_pattern_type\":\"junk\"}]}")); |
| - EXPECT_TRUE(pb_str_.empty()); |
| + EXPECT_EQ(empty_meta_, meta_); |
| } |
| TEST_F(SafeBrowsingApiHandlerUtilTest, SocialEngineeringSubType) { |
| + ThreatMetadata expected; |
| + |
| EXPECT_EQ(UMA_STATUS_UNSAFE, |
| ResetAndParseJson("{\"matches\":[{\"threat_type\":\"5\", " |
| "\"se_pattern_type\":\"LANDING\"}]}")); |
| EXPECT_EQ(SB_THREAT_TYPE_URL_PHISHING, threat_); |
| - EXPECT_EQ(MalwarePatternType::LANDING, ParsePatternType()); |
| + expected.threat_pattern_type = ThreatPatternType::LANDING; |
| + EXPECT_EQ(expected, meta_); |
| EXPECT_EQ(UMA_STATUS_UNSAFE, |
| ResetAndParseJson("{\"matches\":[{\"threat_type\":\"5\", " |
| "\"se_pattern_type\":\"DISTRIBUTION\"}]}")); |
| EXPECT_EQ(SB_THREAT_TYPE_URL_PHISHING, threat_); |
| - EXPECT_EQ(MalwarePatternType::DISTRIBUTION, ParsePatternType()); |
| + expected.threat_pattern_type = ThreatPatternType::DISTRIBUTION; |
| + EXPECT_EQ(expected, meta_); |
| EXPECT_EQ(UMA_STATUS_UNSAFE, |
| ResetAndParseJson("{\"matches\":[{\"threat_type\":\"5\", " |
| "\"se_pattern_type\":\"junk\"}]}")); |
| - EXPECT_TRUE(pb_str_.empty()); |
| + EXPECT_EQ(empty_meta_, meta_); |
| +} |
| + |
| +TEST_F(SafeBrowsingApiHandlerUtilTest, PopulationId) { |
| + ThreatMetadata expected; |
| + |
| + EXPECT_EQ(UMA_STATUS_UNSAFE, |
| + ResetAndParseJson("{\"matches\":[{\"threat_type\":\"4\", " |
| + "\"UserPopulation\":\"foobarbazz\"}]}")); |
| + EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE, threat_); |
| + expected.population_id = "foobarbazz"; |
| + EXPECT_EQ(expected, meta_); |
| + // Test the ThreatMetadata comparator for this field. |
| + EXPECT_NE(empty_meta_, meta_); |
| } |
| } // namespace safe_browsing |