11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/safe_browsing/incident_reporting/blacklist_load_incident_handlers.h" 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/memory/scoped_ptr.h" 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/common/safe_browsing/csd.pb.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "testing/gtest/include/gtest/gtest.h" 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace { 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciscoped_ptr<safe_browsing::ClientIncidentReport_IncidentData> MakeIncident() { 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<safe_browsing::ClientIncidentReport_IncidentData> incident( 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci new safe_browsing::ClientIncidentReport_IncidentData); 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci incident->mutable_blacklist_load()->set_path("foo"); 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return incident.Pass(); 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} // namespace 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Tests that GetKey returns the dll path. 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciTEST(GetBlacklistLoadIncidentKey, KeyIsPath) { 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci safe_browsing::ClientIncidentReport_IncidentData incident; 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci incident.mutable_blacklist_load()->set_path("foo"); 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ASSERT_EQ(std::string("foo"), 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci safe_browsing::GetBlacklistLoadIncidentKey(incident)); 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Tests that GetDigest returns the same value for the same incident. 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciTEST(GetBlacklistLoadIncidentDigest, SameIncidentSameDigest) { 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<safe_browsing::ClientIncidentReport_IncidentData> incident( 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci MakeIncident()); 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci uint32_t digest = safe_browsing::GetBlacklistLoadIncidentDigest(*incident); 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ASSERT_EQ(digest, 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci safe_browsing::GetBlacklistLoadIncidentDigest(*MakeIncident())); 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Tests that GetDigest returns different values for different incidents. 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciTEST(GetBlacklistLoadIncidentDigest, DifferentIncidentDifferentDigest) { 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<safe_browsing::ClientIncidentReport_IncidentData> incident( 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci MakeIncident()); 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<safe_browsing::ClientDownloadRequest_Digests> digest_proto( 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci new safe_browsing::ClientDownloadRequest_Digests); 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci digest_proto->set_sha256("37"); 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci incident->mutable_blacklist_load()->set_allocated_digest( 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci digest_proto.release()); 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<safe_browsing::ClientIncidentReport_IncidentData> incident2( 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci MakeIncident()); 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<safe_browsing::ClientDownloadRequest_Digests> digest_proto2( 541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci new safe_browsing::ClientDownloadRequest_Digests); 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci digest_proto2->set_sha256("42"); 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci incident2->mutable_blacklist_load()->set_allocated_digest( 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci digest_proto2.release()); 581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ASSERT_NE(safe_browsing::GetBlacklistLoadIncidentDigest(*incident), 601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci safe_browsing::GetBlacklistLoadIncidentDigest(*incident2)); 611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 62