Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: chrome/browser/safe_browsing/safe_browsing_store_unittest.cc

Issue 1548133002: Switch to standard integer types in chrome/browser/, part 3 of 4. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stdint.h>
6 #include <string.h>
7
5 #include "chrome/browser/safe_browsing/safe_browsing_store.h" 8 #include "chrome/browser/safe_browsing/safe_browsing_store.h"
6 #include "components/safe_browsing_db/util.h" 9 #include "components/safe_browsing_db/util.h"
7 10
8 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
9 12
10 namespace safe_browsing { 13 namespace safe_browsing {
11 14
12 namespace { 15 namespace {
13 16
14 const SBFullHash kHash1 = SBFullHashForString("one"); 17 const SBFullHash kHash1 = SBFullHashForString("one");
(...skipping 19 matching lines...) Expand all
34 37
35 SBFullHash ModifyHashAfterPrefix(SBFullHash hash, unsigned char mask) { 38 SBFullHash ModifyHashAfterPrefix(SBFullHash hash, unsigned char mask) {
36 hash.full_hash[sizeof(hash.full_hash) - 1] ^= mask; 39 hash.full_hash[sizeof(hash.full_hash) - 1] ^= mask;
37 return hash; 40 return hash;
38 } 41 }
39 42
40 void ProcessHelper(SBAddPrefixes* add_prefixes, 43 void ProcessHelper(SBAddPrefixes* add_prefixes,
41 SBSubPrefixes* sub_prefixes, 44 SBSubPrefixes* sub_prefixes,
42 std::vector<SBAddFullHash>* add_full_hashes, 45 std::vector<SBAddFullHash>* add_full_hashes,
43 std::vector<SBSubFullHash>* sub_full_hashes, 46 std::vector<SBSubFullHash>* sub_full_hashes,
44 const base::hash_set<int32>& add_chunks_deleted, 47 const base::hash_set<int32_t>& add_chunks_deleted,
45 const base::hash_set<int32>& sub_chunks_deleted) { 48 const base::hash_set<int32_t>& sub_chunks_deleted) {
46 std::sort(add_prefixes->begin(), add_prefixes->end(), 49 std::sort(add_prefixes->begin(), add_prefixes->end(),
47 SBAddPrefixLess<SBAddPrefix,SBAddPrefix>); 50 SBAddPrefixLess<SBAddPrefix,SBAddPrefix>);
48 std::sort(sub_prefixes->begin(), sub_prefixes->end(), 51 std::sort(sub_prefixes->begin(), sub_prefixes->end(),
49 SBAddPrefixLess<SBSubPrefix,SBSubPrefix>); 52 SBAddPrefixLess<SBSubPrefix,SBSubPrefix>);
50 std::sort(add_full_hashes->begin(), add_full_hashes->end(), 53 std::sort(add_full_hashes->begin(), add_full_hashes->end(),
51 SBAddPrefixHashLess<SBAddFullHash,SBAddFullHash>); 54 SBAddPrefixHashLess<SBAddFullHash,SBAddFullHash>);
52 std::sort(sub_full_hashes->begin(), sub_full_hashes->end(), 55 std::sort(sub_full_hashes->begin(), sub_full_hashes->end(),
53 SBAddPrefixHashLess<SBSubFullHash,SBSubFullHash>); 56 SBAddPrefixHashLess<SBSubFullHash,SBSubFullHash>);
54 57
55 SBProcessSubs(add_prefixes, sub_prefixes, add_full_hashes, sub_full_hashes, 58 SBProcessSubs(add_prefixes, sub_prefixes, add_full_hashes, sub_full_hashes,
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 } 162 }
160 163
161 // SBProcessSubs does a lot of iteration, run through empty just to 164 // SBProcessSubs does a lot of iteration, run through empty just to
162 // make sure degenerate cases work. 165 // make sure degenerate cases work.
163 TEST(SafeBrowsingStoreTest, SBProcessSubsEmpty) { 166 TEST(SafeBrowsingStoreTest, SBProcessSubsEmpty) {
164 SBAddPrefixes add_prefixes; 167 SBAddPrefixes add_prefixes;
165 std::vector<SBAddFullHash> add_hashes; 168 std::vector<SBAddFullHash> add_hashes;
166 SBSubPrefixes sub_prefixes; 169 SBSubPrefixes sub_prefixes;
167 std::vector<SBSubFullHash> sub_hashes; 170 std::vector<SBSubFullHash> sub_hashes;
168 171
169 const base::hash_set<int32> no_deletions; 172 const base::hash_set<int32_t> no_deletions;
170 SBProcessSubs(&add_prefixes, &sub_prefixes, &add_hashes, &sub_hashes, 173 SBProcessSubs(&add_prefixes, &sub_prefixes, &add_hashes, &sub_hashes,
171 no_deletions, no_deletions); 174 no_deletions, no_deletions);
172 EXPECT_TRUE(add_prefixes.empty()); 175 EXPECT_TRUE(add_prefixes.empty());
173 EXPECT_TRUE(sub_prefixes.empty()); 176 EXPECT_TRUE(sub_prefixes.empty());
174 EXPECT_TRUE(add_hashes.empty()); 177 EXPECT_TRUE(add_hashes.empty());
175 EXPECT_TRUE(sub_hashes.empty()); 178 EXPECT_TRUE(sub_hashes.empty());
176 } 179 }
177 180
178 // Test that subs knock out adds. 181 // Test that subs knock out adds.
179 TEST(SafeBrowsingStoreTest, SBProcessSubsKnockout) { 182 TEST(SafeBrowsingStoreTest, SBProcessSubsKnockout) {
(...skipping 25 matching lines...) Expand all
205 // Subs with no corresponding add. Both items should be retained. 208 // Subs with no corresponding add. Both items should be retained.
206 sub_hashes.push_back(SBSubFullHash(kSubChunk3, kAddChunk3, kHash7)); 209 sub_hashes.push_back(SBSubFullHash(kSubChunk3, kAddChunk3, kHash7));
207 sub_prefixes.push_back(SBSubPrefix(kSubChunk4, kAddChunk4, kHash3.prefix)); 210 sub_prefixes.push_back(SBSubPrefix(kSubChunk4, kAddChunk4, kHash3.prefix));
208 211
209 // Add hashes with the same prefix, with a sub that will knock one of them 212 // Add hashes with the same prefix, with a sub that will knock one of them
210 // out. 213 // out.
211 add_hashes.push_back(SBAddFullHash(kAddChunk5, kHash4)); 214 add_hashes.push_back(SBAddFullHash(kAddChunk5, kHash4));
212 add_hashes.push_back(SBAddFullHash(kAddChunk5, kHash4mod)); 215 add_hashes.push_back(SBAddFullHash(kAddChunk5, kHash4mod));
213 sub_hashes.push_back(SBSubFullHash(kSubChunk5, kAddChunk5, kHash4mod)); 216 sub_hashes.push_back(SBSubFullHash(kSubChunk5, kAddChunk5, kHash4mod));
214 217
215 const base::hash_set<int32> no_deletions; 218 const base::hash_set<int32_t> no_deletions;
216 ProcessHelper(&add_prefixes, &sub_prefixes, &add_hashes, &sub_hashes, 219 ProcessHelper(&add_prefixes, &sub_prefixes, &add_hashes, &sub_hashes,
217 no_deletions, no_deletions); 220 no_deletions, no_deletions);
218 221
219 ASSERT_EQ(1U, add_prefixes.size()); 222 ASSERT_EQ(1U, add_prefixes.size());
220 EXPECT_EQ(kAddChunk7, add_prefixes[0].chunk_id); 223 EXPECT_EQ(kAddChunk7, add_prefixes[0].chunk_id);
221 EXPECT_EQ(kHash2.prefix, add_prefixes[0].prefix); 224 EXPECT_EQ(kHash2.prefix, add_prefixes[0].prefix);
222 225
223 ASSERT_EQ(2U, add_hashes.size()); 226 ASSERT_EQ(2U, add_hashes.size());
224 EXPECT_EQ(kAddChunk5, add_hashes[0].chunk_id); 227 EXPECT_EQ(kAddChunk5, add_hashes[0].chunk_id);
225 EXPECT_TRUE(SBFullHashEqual(kHash4, add_hashes[0].full_hash)); 228 EXPECT_TRUE(SBFullHashEqual(kHash4, add_hashes[0].full_hash));
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 263
261 // Adds with no corresponding sub. Both items should be retained. 264 // Adds with no corresponding sub. Both items should be retained.
262 add_hashes.push_back(SBAddFullHash(kAddChunk1, kHash6)); 265 add_hashes.push_back(SBAddFullHash(kAddChunk1, kHash6));
263 add_prefixes.push_back(SBAddPrefix(kAddChunk1, kHash2.prefix)); 266 add_prefixes.push_back(SBAddPrefix(kAddChunk1, kHash2.prefix));
264 267
265 // Subs with no corresponding add. Both items should be retained. 268 // Subs with no corresponding add. Both items should be retained.
266 sub_hashes.push_back(SBSubFullHash(kSubChunk1, kAddChunk1, kHash7)); 269 sub_hashes.push_back(SBSubFullHash(kSubChunk1, kAddChunk1, kHash7));
267 sub_prefixes.push_back(SBSubPrefix(kSubChunk1, kAddChunk1, kHash3.prefix)); 270 sub_prefixes.push_back(SBSubPrefix(kSubChunk1, kAddChunk1, kHash3.prefix));
268 271
269 // Subs apply before being deleted. 272 // Subs apply before being deleted.
270 const base::hash_set<int32> no_deletions; 273 const base::hash_set<int32_t> no_deletions;
271 base::hash_set<int32> sub_deletions; 274 base::hash_set<int32_t> sub_deletions;
272 sub_deletions.insert(kSubChunk1); 275 sub_deletions.insert(kSubChunk1);
273 ProcessHelper(&add_prefixes, &sub_prefixes, &add_hashes, &sub_hashes, 276 ProcessHelper(&add_prefixes, &sub_prefixes, &add_hashes, &sub_hashes,
274 no_deletions, sub_deletions); 277 no_deletions, sub_deletions);
275 278
276 ASSERT_EQ(1U, add_prefixes.size()); 279 ASSERT_EQ(1U, add_prefixes.size());
277 EXPECT_EQ(kAddChunk1, add_prefixes[0].chunk_id); 280 EXPECT_EQ(kAddChunk1, add_prefixes[0].chunk_id);
278 EXPECT_EQ(kHash2.prefix, add_prefixes[0].prefix); 281 EXPECT_EQ(kHash2.prefix, add_prefixes[0].prefix);
279 282
280 ASSERT_EQ(1U, add_hashes.size()); 283 ASSERT_EQ(1U, add_hashes.size());
281 EXPECT_EQ(kAddChunk1, add_hashes[0].chunk_id); 284 EXPECT_EQ(kAddChunk1, add_hashes[0].chunk_id);
282 EXPECT_TRUE(SBFullHashEqual(kHash6, add_hashes[0].full_hash)); 285 EXPECT_TRUE(SBFullHashEqual(kHash6, add_hashes[0].full_hash));
283 286
284 EXPECT_TRUE(sub_prefixes.empty()); 287 EXPECT_TRUE(sub_prefixes.empty());
285 EXPECT_TRUE(sub_hashes.empty()); 288 EXPECT_TRUE(sub_hashes.empty());
286 289
287 // Delete the adds, also. 290 // Delete the adds, also.
288 base::hash_set<int32> add_deletions; 291 base::hash_set<int32_t> add_deletions;
289 add_deletions.insert(kAddChunk1); 292 add_deletions.insert(kAddChunk1);
290 ProcessHelper(&add_prefixes, &sub_prefixes, &add_hashes, &sub_hashes, 293 ProcessHelper(&add_prefixes, &sub_prefixes, &add_hashes, &sub_hashes,
291 add_deletions, no_deletions); 294 add_deletions, no_deletions);
292 295
293 EXPECT_TRUE(add_prefixes.empty()); 296 EXPECT_TRUE(add_prefixes.empty());
294 EXPECT_TRUE(add_hashes.empty()); 297 EXPECT_TRUE(add_hashes.empty());
295 EXPECT_TRUE(sub_prefixes.empty()); 298 EXPECT_TRUE(sub_prefixes.empty());
296 EXPECT_TRUE(sub_hashes.empty()); 299 EXPECT_TRUE(sub_hashes.empty());
297 } 300 }
298 301
299 TEST(SafeBrowsingStoreTest, Y2K38) { 302 TEST(SafeBrowsingStoreTest, Y2K38) {
300 const base::Time now = base::Time::Now(); 303 const base::Time now = base::Time::Now();
301 const base::Time future = now + base::TimeDelta::FromDays(3*365); 304 const base::Time future = now + base::TimeDelta::FromDays(3*365);
302 305
303 // TODO: Fix file format before 2035. 306 // TODO: Fix file format before 2035.
304 EXPECT_GT(static_cast<int32>(future.ToTimeT()), 0) 307 EXPECT_GT(static_cast<int32_t>(future.ToTimeT()), 0)
305 << " (int32)time_t is running out."; 308 << " (int32_t)time_t is running out.";
306 } 309 }
307 310
308 } // namespace safe_browsing 311 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698