1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/safe_browsing/incident_reporting/blacklist_load_incident_handlers.h" 6 7#include "base/memory/scoped_ptr.h" 8#include "chrome/common/safe_browsing/csd.pb.h" 9#include "testing/gtest/include/gtest/gtest.h" 10 11namespace { 12 13scoped_ptr<safe_browsing::ClientIncidentReport_IncidentData> MakeIncident() { 14 scoped_ptr<safe_browsing::ClientIncidentReport_IncidentData> incident( 15 new safe_browsing::ClientIncidentReport_IncidentData); 16 incident->mutable_blacklist_load()->set_path("foo"); 17 return incident.Pass(); 18} 19 20} // namespace 21 22// Tests that GetKey returns the dll path. 23TEST(GetBlacklistLoadIncidentKey, KeyIsPath) { 24 safe_browsing::ClientIncidentReport_IncidentData incident; 25 26 incident.mutable_blacklist_load()->set_path("foo"); 27 ASSERT_EQ(std::string("foo"), 28 safe_browsing::GetBlacklistLoadIncidentKey(incident)); 29} 30 31// Tests that GetDigest returns the same value for the same incident. 32TEST(GetBlacklistLoadIncidentDigest, SameIncidentSameDigest) { 33 scoped_ptr<safe_browsing::ClientIncidentReport_IncidentData> incident( 34 MakeIncident()); 35 36 uint32_t digest = safe_browsing::GetBlacklistLoadIncidentDigest(*incident); 37 ASSERT_EQ(digest, 38 safe_browsing::GetBlacklistLoadIncidentDigest(*MakeIncident())); 39} 40 41// Tests that GetDigest returns different values for different incidents. 42TEST(GetBlacklistLoadIncidentDigest, DifferentIncidentDifferentDigest) { 43 scoped_ptr<safe_browsing::ClientIncidentReport_IncidentData> incident( 44 MakeIncident()); 45 scoped_ptr<safe_browsing::ClientDownloadRequest_Digests> digest_proto( 46 new safe_browsing::ClientDownloadRequest_Digests); 47 digest_proto->set_sha256("37"); 48 incident->mutable_blacklist_load()->set_allocated_digest( 49 digest_proto.release()); 50 51 scoped_ptr<safe_browsing::ClientIncidentReport_IncidentData> incident2( 52 MakeIncident()); 53 scoped_ptr<safe_browsing::ClientDownloadRequest_Digests> digest_proto2( 54 new safe_browsing::ClientDownloadRequest_Digests); 55 digest_proto2->set_sha256("42"); 56 incident2->mutable_blacklist_load()->set_allocated_digest( 57 digest_proto2.release()); 58 59 ASSERT_NE(safe_browsing::GetBlacklistLoadIncidentDigest(*incident), 60 safe_browsing::GetBlacklistLoadIncidentDigest(*incident2)); 61} 62