Index: chrome/browser/safe_browsing/safe_browsing_database_unittest.cc |
diff --git a/chrome/browser/safe_browsing/safe_browsing_database_unittest.cc b/chrome/browser/safe_browsing/safe_browsing_database_unittest.cc |
index 7eb3ddd2f6ebc1867428edc5583aa88df01fbcf1..01bba17d283ea1b7589758c084490edabb9ab394 100644 |
--- a/chrome/browser/safe_browsing/safe_browsing_database_unittest.cc |
+++ b/chrome/browser/safe_browsing/safe_browsing_database_unittest.cc |
@@ -7,11 +7,13 @@ |
#include "chrome/browser/safe_browsing/safe_browsing_database.h" |
#include <stddef.h> |
+ |
#include <utility> |
#include "base/files/file_util.h" |
#include "base/files/scoped_temp_dir.h" |
#include "base/logging.h" |
+#include "base/memory/ptr_util.h" |
#include "base/message_loop/message_loop.h" |
#include "base/sha1.h" |
#include "base/strings/string_number_conversions.h" |
@@ -65,13 +67,14 @@ std::string HashedIpPrefix(const std::string& ip_prefix, size_t prefix_size) { |
} |
// Helper to build a chunk. Caller takes ownership. |
-scoped_ptr<SBChunkData> BuildChunk(int chunk_number, |
- ChunkData::ChunkType chunk_type, |
- ChunkData::PrefixType prefix_type, |
- const void* data, |
- size_t data_size, |
- const std::vector<int>& add_chunk_numbers) { |
- scoped_ptr<ChunkData> raw_data(new ChunkData); |
+std::unique_ptr<SBChunkData> BuildChunk( |
+ int chunk_number, |
+ ChunkData::ChunkType chunk_type, |
+ ChunkData::PrefixType prefix_type, |
+ const void* data, |
+ size_t data_size, |
+ const std::vector<int>& add_chunk_numbers) { |
+ std::unique_ptr<ChunkData> raw_data(new ChunkData); |
raw_data->set_chunk_number(chunk_number); |
raw_data->set_chunk_type(chunk_type); |
raw_data->set_prefix_type(prefix_type); |
@@ -81,25 +84,25 @@ scoped_ptr<SBChunkData> BuildChunk(int chunk_number, |
raw_data->add_add_numbers(add_chunk_numbers[i]); |
} |
- return make_scoped_ptr(new SBChunkData(std::move(raw_data))); |
+ return base::WrapUnique(new SBChunkData(std::move(raw_data))); |
} |
// Create add chunk with a single prefix. |
-scoped_ptr<SBChunkData> AddChunkPrefix(int chunk_number, SBPrefix prefix) { |
+std::unique_ptr<SBChunkData> AddChunkPrefix(int chunk_number, SBPrefix prefix) { |
return BuildChunk(chunk_number, ChunkData::ADD, ChunkData::PREFIX_4B, &prefix, |
sizeof(prefix), std::vector<int>()); |
} |
// Create add chunk with a single prefix generated from |value|. |
-scoped_ptr<SBChunkData> AddChunkPrefixValue(int chunk_number, |
- const std::string& value) { |
+std::unique_ptr<SBChunkData> AddChunkPrefixValue(int chunk_number, |
+ const std::string& value) { |
return AddChunkPrefix(chunk_number, SBPrefixForString(value)); |
} |
// Generate an add chunk with two prefixes. |
-scoped_ptr<SBChunkData> AddChunkPrefix2Value(int chunk_number, |
- const std::string& value1, |
- const std::string& value2) { |
+std::unique_ptr<SBChunkData> AddChunkPrefix2Value(int chunk_number, |
+ const std::string& value1, |
+ const std::string& value2) { |
const SBPrefix prefixes[2] = { |
SBPrefixForString(value1), |
SBPrefixForString(value2), |
@@ -109,11 +112,11 @@ scoped_ptr<SBChunkData> AddChunkPrefix2Value(int chunk_number, |
} |
// Generate an add chunk with four prefixes. |
-scoped_ptr<SBChunkData> AddChunkPrefix4Value(int chunk_number, |
- const std::string& value1, |
- const std::string& value2, |
- const std::string& value3, |
- const std::string& value4) { |
+std::unique_ptr<SBChunkData> AddChunkPrefix4Value(int chunk_number, |
+ const std::string& value1, |
+ const std::string& value2, |
+ const std::string& value3, |
+ const std::string& value4) { |
const SBPrefix prefixes[4] = { |
SBPrefixForString(value1), |
SBPrefixForString(value2), |
@@ -125,23 +128,23 @@ scoped_ptr<SBChunkData> AddChunkPrefix4Value(int chunk_number, |
} |
// Generate an add chunk with a full hash. |
-scoped_ptr<SBChunkData> AddChunkFullHash(int chunk_number, |
- SBFullHash full_hash) { |
+std::unique_ptr<SBChunkData> AddChunkFullHash(int chunk_number, |
+ SBFullHash full_hash) { |
return BuildChunk(chunk_number, ChunkData::ADD, ChunkData::FULL_32B, |
&full_hash, sizeof(full_hash), std::vector<int>()); |
} |
// Generate an add chunk with a full hash generated from |value|. |
-scoped_ptr<SBChunkData> AddChunkFullHashValue(int chunk_number, |
- const std::string& value) { |
+std::unique_ptr<SBChunkData> AddChunkFullHashValue(int chunk_number, |
+ const std::string& value) { |
return AddChunkFullHash(chunk_number, |
SBFullHashForString(value)); |
} |
// Generate an add chunk with two full hashes. |
-scoped_ptr<SBChunkData> AddChunkFullHash2Value(int chunk_number, |
- const std::string& value1, |
- const std::string& value2) { |
+std::unique_ptr<SBChunkData> AddChunkFullHash2Value(int chunk_number, |
+ const std::string& value1, |
+ const std::string& value2) { |
const SBFullHash full_hashes[2] = { |
SBFullHashForString(value1), |
SBFullHashForString(value2), |
@@ -151,20 +154,20 @@ scoped_ptr<SBChunkData> AddChunkFullHash2Value(int chunk_number, |
} |
// Generate a sub chunk with a prefix generated from |value|. |
-scoped_ptr<SBChunkData> SubChunkPrefixValue(int chunk_number, |
- const std::string& value, |
- int add_chunk_number) { |
+std::unique_ptr<SBChunkData> SubChunkPrefixValue(int chunk_number, |
+ const std::string& value, |
+ int add_chunk_number) { |
const SBPrefix prefix = SBPrefixForString(value); |
return BuildChunk(chunk_number, ChunkData::SUB, ChunkData::PREFIX_4B, &prefix, |
sizeof(prefix), std::vector<int>(1, add_chunk_number)); |
} |
// Generate a sub chunk with two prefixes. |
-scoped_ptr<SBChunkData> SubChunkPrefix2Value(int chunk_number, |
- const std::string& value1, |
- int add_chunk_number1, |
- const std::string& value2, |
- int add_chunk_number2) { |
+std::unique_ptr<SBChunkData> SubChunkPrefix2Value(int chunk_number, |
+ const std::string& value1, |
+ int add_chunk_number1, |
+ const std::string& value2, |
+ int add_chunk_number2) { |
const SBPrefix prefixes[2] = { |
SBPrefixForString(value1), |
SBPrefixForString(value2), |
@@ -177,27 +180,27 @@ scoped_ptr<SBChunkData> SubChunkPrefix2Value(int chunk_number, |
} |
// Generate a sub chunk with a full hash. |
-scoped_ptr<SBChunkData> SubChunkFullHash(int chunk_number, |
- SBFullHash full_hash, |
- int add_chunk_number) { |
+std::unique_ptr<SBChunkData> SubChunkFullHash(int chunk_number, |
+ SBFullHash full_hash, |
+ int add_chunk_number) { |
return BuildChunk(chunk_number, ChunkData::SUB, ChunkData::FULL_32B, |
&full_hash, sizeof(full_hash), |
std::vector<int>(1, add_chunk_number)); |
} |
// Generate a sub chunk with a full hash generated from |value|. |
-scoped_ptr<SBChunkData> SubChunkFullHashValue(int chunk_number, |
- const std::string& value, |
- int add_chunk_number) { |
+std::unique_ptr<SBChunkData> SubChunkFullHashValue(int chunk_number, |
+ const std::string& value, |
+ int add_chunk_number) { |
return SubChunkFullHash(chunk_number, |
SBFullHashForString(value), |
add_chunk_number); |
} |
// Generate an add chunk with a single full hash for the ip blacklist. |
-scoped_ptr<SBChunkData> AddChunkHashedIpValue(int chunk_number, |
- const std::string& ip_str, |
- size_t prefix_size) { |
+std::unique_ptr<SBChunkData> AddChunkHashedIpValue(int chunk_number, |
+ const std::string& ip_str, |
+ size_t prefix_size) { |
const std::string full_hash_str = HashedIpPrefix(ip_str, prefix_size); |
EXPECT_EQ(sizeof(SBFullHash), full_hash_str.size()); |
SBFullHash full_hash; |
@@ -341,7 +344,7 @@ class SafeBrowsingDatabaseTest : public PlatformTest { |
void PopulateDatabaseForCacheTest(); |
scoped_refptr<base::TestSimpleTaskRunner> task_runner_; |
- scoped_ptr<SafeBrowsingDatabaseNew> database_; |
+ std::unique_ptr<SafeBrowsingDatabaseNew> database_; |
base::FilePath database_filename_; |
base::ScopedTempDir temp_dir_; |
}; |
@@ -349,7 +352,7 @@ class SafeBrowsingDatabaseTest : public PlatformTest { |
// Tests retrieving list name information. |
TEST_F(SafeBrowsingDatabaseTest, BrowseListsInfo) { |
std::vector<SBListChunkRanges> lists; |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(AddChunkPrefixValue(1, "www.evil.com/malware.html")); |
chunks.push_back(AddChunkPrefixValue(2, "www.foo.com/malware.html")); |
@@ -410,7 +413,7 @@ TEST_F(SafeBrowsingDatabaseTest, BrowseListsInfo) { |
} |
TEST_F(SafeBrowsingDatabaseTest, ListNames) { |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
std::vector<SBListChunkRanges> lists; |
ASSERT_TRUE(database_->UpdateStarted(&lists)); |
@@ -575,7 +578,7 @@ TEST_F(SafeBrowsingDatabaseTest, BrowseAndUnwantedDatabasesAndPrefixSets) { |
test_case.test_list_name); |
std::vector<SBListChunkRanges> lists; |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(AddChunkPrefix2Value(1, |
"www.evil.com/phishing.html", |
@@ -812,7 +815,7 @@ TEST_F(SafeBrowsingDatabaseTest, BrowseAndUnwantedDatabasesAndPrefixSets) { |
// Test adding zero length chunks to the database. |
TEST_F(SafeBrowsingDatabaseTest, ZeroSizeChunk) { |
std::vector<SBListChunkRanges> lists; |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
// Populate with a couple of normal chunks. |
chunks.push_back(AddChunkPrefix2Value(1, |
@@ -899,7 +902,7 @@ TEST_F(SafeBrowsingDatabaseTest, ZeroSizeChunk) { |
// Utility function for setting up the database for the caching test. |
void SafeBrowsingDatabaseTest::PopulateDatabaseForCacheTest() { |
// Add a couple prefixes. |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(AddChunkPrefix2Value(1, |
"www.evil.com/phishing.html", |
"www.evil.com/malware.html")); |
@@ -967,7 +970,7 @@ TEST_F(SafeBrowsingDatabaseTest, HashCaching) { |
cache_hits.clear(); |
// Test removing a prefix via a sub chunk. |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(SubChunkPrefixValue(2, "www.evil.com/phishing.html", 1)); |
std::vector<SBListChunkRanges> lists; |
@@ -1141,7 +1144,7 @@ TEST_F(SafeBrowsingDatabaseTest, HashCaching) { |
SBPrefixForString(kExampleCollision)); |
ASSERT_TRUE(database_->UpdateStarted(&lists)); |
{ |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(AddChunkPrefixValue(21, kExampleCollision)); |
database_->InsertChunks(kMalwareList, chunks); |
} |
@@ -1192,7 +1195,7 @@ TEST_F(SafeBrowsingDatabaseTest, DISABLED_FileCorruptionHandling) { |
database_->UpdateFinished(true); |
// Create a sub chunk to insert. |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(SubChunkPrefixValue(7, |
"www.subbed.com/notevil1.html", |
19)); |
@@ -1242,7 +1245,7 @@ TEST_F(SafeBrowsingDatabaseTest, ContainsDownloadUrlPrefixes) { |
const char kEvil1Url2[] = "www.evil1.com/download2.html"; |
// Add a simple chunk with one hostkey for download url list. |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(AddChunkPrefix2Value(1, kEvil1Url1, kEvil1Url2)); |
std::vector<SBListChunkRanges> lists; |
@@ -1331,7 +1334,7 @@ TEST_F(SafeBrowsingDatabaseTest, ContainsResourceUrlPrefixes) { |
const SBPrefix kBadPrefix2 = SBPrefixForString(kBadUrl2); |
// Populate database |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(AddChunkPrefix2Value(1, kBadUrl1, kBadUrl2)); |
std::vector<SBListChunkRanges> lists; |
@@ -1474,7 +1477,7 @@ TEST_F(SafeBrowsingDatabaseTest, Whitelists) { |
} |
} |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
// Add a few test chunks to the whitelist under test. |
if (test_case.TestUrls()) { |
@@ -1650,7 +1653,7 @@ TEST_F(SafeBrowsingDatabaseTest, Whitelists) { |
// Test to make sure we could insert chunk list that |
// contains entries for the same host. |
TEST_F(SafeBrowsingDatabaseTest, SameHostEntriesOkay) { |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
// Add a malware add chunk with two entries of the same host. |
chunks.push_back(AddChunkPrefix2Value(1, |
@@ -1730,7 +1733,7 @@ TEST_F(SafeBrowsingDatabaseTest, SameHostEntriesOkay) { |
// This isn't a functionality requirement, but it is a useful |
// optimization. |
TEST_F(SafeBrowsingDatabaseTest, EmptyUpdate) { |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
base::FilePath filename = database_->BrowseDBFilename(database_filename_); |
@@ -1788,7 +1791,7 @@ TEST_F(SafeBrowsingDatabaseTest, FilterFile) { |
std::vector<SBListChunkRanges> lists; |
ASSERT_TRUE(database_->UpdateStarted(&lists)); |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(AddChunkPrefixValue(1, "www.evil.com/malware.html")); |
database_->InsertChunks(kMalwareList, chunks); |
database_->UpdateFinished(true); |
@@ -1834,7 +1837,7 @@ TEST_F(SafeBrowsingDatabaseTest, CachedFullMiss) { |
SBFullHashForPrefixAndSuffix(kPrefix2, "\x01"); |
// Insert prefix kPrefix1 and kPrefix2 into database. |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(AddChunkPrefix(1, kPrefix1)); |
chunks.push_back(AddChunkPrefix(2, kPrefix2)); |
@@ -1889,7 +1892,7 @@ TEST_F(SafeBrowsingDatabaseTest, CachedPrefixHitFullMiss) { |
SBFullHashForPrefixAndSuffix(kPrefix3, "\x01"); |
// Insert prefix kPrefix1 and kPrefix2 into database. |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(AddChunkPrefix(1, kPrefix1)); |
chunks.push_back(AddChunkPrefix(2, kPrefix2)); |
@@ -2034,7 +2037,7 @@ TEST_F(SafeBrowsingDatabaseTest, BrowseFullHashMatching) { |
SBFullHashForPrefixAndSuffix(kPrefix1, "\x03"); |
// Insert two full hashes with a shared prefix. |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(AddChunkFullHash(1, kFullHash1_1)); |
chunks.push_back(AddChunkFullHash(2, kFullHash1_2)); |
@@ -2183,7 +2186,7 @@ TEST_F(SafeBrowsingDatabaseTest, BrowseFullHashAndPrefixMatching) { |
const SBFullHash kFullHash1_2 = |
SBFullHashForPrefixAndSuffix(kPrefix1, "\x02"); |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(AddChunkFullHash(1, kFullHash1_1)); |
std::vector<SBListChunkRanges> lists; |
@@ -2245,7 +2248,7 @@ TEST_F(SafeBrowsingDatabaseTest, MalwareIpBlacklist) { |
std::vector<SBListChunkRanges> lists; |
ASSERT_TRUE(database_->UpdateStarted(&lists)); |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
// IPv4 prefix match for ::ffff:192.168.1.0/120. |
chunks.push_back(AddChunkHashedIpValue(1, "::ffff:192.168.1.0", 120)); |
@@ -2313,7 +2316,7 @@ TEST_F(SafeBrowsingDatabaseTest, ContainsBrowseURL) { |
// Add a host-level hit. |
{ |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(AddChunkPrefixValue(1, "www.evil.com/")); |
database_->InsertChunks(kMalwareList, chunks); |
} |
@@ -2321,7 +2324,7 @@ TEST_F(SafeBrowsingDatabaseTest, ContainsBrowseURL) { |
// Add a specific fullhash. |
static const char kWhateverMalware[] = "www.whatever.com/malware.html"; |
{ |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(AddChunkFullHashValue(2, kWhateverMalware)); |
database_->InsertChunks(kMalwareList, chunks); |
} |
@@ -2333,7 +2336,7 @@ TEST_F(SafeBrowsingDatabaseTest, ContainsBrowseURL) { |
ASSERT_EQ(SBPrefixForString(kExampleFine), |
SBPrefixForString(kExampleCollision)); |
{ |
- std::vector<scoped_ptr<SBChunkData>> chunks; |
+ std::vector<std::unique_ptr<SBChunkData>> chunks; |
chunks.push_back(AddChunkFullHashValue(3, kExampleCollision)); |
database_->InsertChunks(kMalwareList, chunks); |
} |