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

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

Issue 1970823002: Remove the unused OffDomainInclusionDetector (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix nits Created 4 years, 7 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // Unit tests for the SafeBrowsing storage system. 5 // Unit tests for the SafeBrowsing storage system.
6 6
7 #include "chrome/browser/safe_browsing/safe_browsing_database.h" 7 #include "chrome/browser/safe_browsing/safe_browsing_database.h"
8 8
9 #include <stddef.h> 9 #include <stddef.h>
10 10
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 // stores enabled. 269 // stores enabled.
270 void ResetAndReloadFullDatabase() { 270 void ResetAndReloadFullDatabase() {
271 SafeBrowsingStoreFile* browse_store = 271 SafeBrowsingStoreFile* browse_store =
272 new SafeBrowsingStoreFile(task_runner_); 272 new SafeBrowsingStoreFile(task_runner_);
273 SafeBrowsingStoreFile* download_store = 273 SafeBrowsingStoreFile* download_store =
274 new SafeBrowsingStoreFile(task_runner_); 274 new SafeBrowsingStoreFile(task_runner_);
275 SafeBrowsingStoreFile* csd_whitelist_store = 275 SafeBrowsingStoreFile* csd_whitelist_store =
276 new SafeBrowsingStoreFile(task_runner_); 276 new SafeBrowsingStoreFile(task_runner_);
277 SafeBrowsingStoreFile* download_whitelist_store = 277 SafeBrowsingStoreFile* download_whitelist_store =
278 new SafeBrowsingStoreFile(task_runner_); 278 new SafeBrowsingStoreFile(task_runner_);
279 SafeBrowsingStoreFile* inclusion_whitelist_store =
280 new SafeBrowsingStoreFile(task_runner_);
281 SafeBrowsingStoreFile* extension_blacklist_store = 279 SafeBrowsingStoreFile* extension_blacklist_store =
282 new SafeBrowsingStoreFile(task_runner_); 280 new SafeBrowsingStoreFile(task_runner_);
283 SafeBrowsingStoreFile* ip_blacklist_store = 281 SafeBrowsingStoreFile* ip_blacklist_store =
284 new SafeBrowsingStoreFile(task_runner_); 282 new SafeBrowsingStoreFile(task_runner_);
285 SafeBrowsingStoreFile* unwanted_software_store = 283 SafeBrowsingStoreFile* unwanted_software_store =
286 new SafeBrowsingStoreFile(task_runner_); 284 new SafeBrowsingStoreFile(task_runner_);
287 SafeBrowsingStoreFile* module_whitelist_store = 285 SafeBrowsingStoreFile* module_whitelist_store =
288 new SafeBrowsingStoreFile(task_runner_); 286 new SafeBrowsingStoreFile(task_runner_);
289 SafeBrowsingStoreFile* resource_blacklist_store = 287 SafeBrowsingStoreFile* resource_blacklist_store =
290 new SafeBrowsingStoreFile(task_runner_); 288 new SafeBrowsingStoreFile(task_runner_);
291 database_.reset(new SafeBrowsingDatabaseNew( 289 database_.reset(new SafeBrowsingDatabaseNew(
292 task_runner_, browse_store, download_store, csd_whitelist_store, 290 task_runner_,
293 download_whitelist_store, inclusion_whitelist_store, 291 browse_store,
294 extension_blacklist_store, ip_blacklist_store, unwanted_software_store, 292 download_store,
295 module_whitelist_store, resource_blacklist_store)); 293 csd_whitelist_store,
294 download_whitelist_store,
295 extension_blacklist_store,
296 ip_blacklist_store,
297 unwanted_software_store,
298 module_whitelist_store,
299 resource_blacklist_store));
296 database_->Init(database_filename_); 300 database_->Init(database_filename_);
297 } 301 }
298 302
299 bool ContainsDownloadUrl(const std::vector<GURL>& urls, 303 bool ContainsDownloadUrl(const std::vector<GURL>& urls,
300 std::vector<SBPrefix>* prefix_hits) { 304 std::vector<SBPrefix>* prefix_hits) {
301 std::vector<SBPrefix> prefixes; 305 std::vector<SBPrefix> prefixes;
302 SafeBrowsingDatabase::GetDownloadUrlPrefixes(urls, &prefixes); 306 SafeBrowsingDatabase::GetDownloadUrlPrefixes(urls, &prefixes);
303 return database_->ContainsDownloadUrlPrefixes(prefixes, prefix_hits); 307 return database_->ContainsDownloadUrlPrefixes(prefixes, prefix_hits);
304 } 308 }
305 309
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 428
425 chunks.clear(); 429 chunks.clear();
426 chunks.push_back(AddChunkPrefixValue(2, "www.foo.com/malware.html")); 430 chunks.push_back(AddChunkPrefixValue(2, "www.foo.com/malware.html"));
427 database_->InsertChunks(kPhishingList, chunks); 431 database_->InsertChunks(kPhishingList, chunks);
428 432
429 chunks.clear(); 433 chunks.clear();
430 chunks.push_back(AddChunkPrefixValue(3, "www.whatever.com/download.html")); 434 chunks.push_back(AddChunkPrefixValue(3, "www.whatever.com/download.html"));
431 database_->InsertChunks(kBinUrlList, chunks); 435 database_->InsertChunks(kBinUrlList, chunks);
432 436
433 chunks.clear(); 437 chunks.clear();
434 chunks.push_back(AddChunkFullHashValue(5, "www.forwhitelist.com/a.html")); 438 chunks.push_back(AddChunkFullHashValue(4, "www.forwhitelist.com/a.html"));
435 database_->InsertChunks(kCsdWhiteList, chunks); 439 database_->InsertChunks(kCsdWhiteList, chunks);
436 440
437 chunks.clear(); 441 chunks.clear();
438 chunks.push_back(AddChunkFullHashValue(6, "www.download.com/")); 442 chunks.push_back(AddChunkFullHashValue(5, "www.download.com/"));
439 database_->InsertChunks(kDownloadWhiteList, chunks); 443 database_->InsertChunks(kDownloadWhiteList, chunks);
440 444
441 chunks.clear(); 445 chunks.clear();
442 chunks.push_back(AddChunkFullHashValue(7, "www.inclusion.com/")); 446 chunks.push_back(AddChunkFullHashValue(6,
443 database_->InsertChunks(kInclusionWhitelist,
444 chunks);
445
446 chunks.clear();
447 chunks.push_back(AddChunkFullHashValue(8,
448 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 447 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
449 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")); 448 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"));
450 database_->InsertChunks(kExtensionBlacklist, 449 database_->InsertChunks(kExtensionBlacklist,
451 chunks); 450 chunks);
452 451
453 chunks.clear(); 452 chunks.clear();
454 chunks.push_back(AddChunkHashedIpValue(10, "::ffff:192.168.1.0", 120)); 453 chunks.push_back(AddChunkHashedIpValue(7, "::ffff:192.168.1.0", 120));
455 database_->InsertChunks(kIPBlacklist, chunks); 454 database_->InsertChunks(kIPBlacklist, chunks);
456 455
457 chunks.clear(); 456 chunks.clear();
458 chunks.push_back(AddChunkPrefixValue(11, "www.unwanted.com/software.html")); 457 chunks.push_back(AddChunkPrefixValue(8, "www.unwanted.com/software.html"));
459 database_->InsertChunks(kUnwantedUrlList, chunks); 458 database_->InsertChunks(kUnwantedUrlList, chunks);
460 459
461 chunks.clear(); 460 chunks.clear();
462 chunks.push_back(AddChunkPrefixValue(12, "chrome.dll")); 461 chunks.push_back(AddChunkPrefixValue(9, "chrome.dll"));
463 database_->InsertChunks(kModuleWhitelist, chunks); 462 database_->InsertChunks(kModuleWhitelist, chunks);
464 463
465 chunks.clear(); 464 chunks.clear();
466 chunks.push_back(AddChunkPrefixValue(13, "foo.com/script.js")); 465 chunks.push_back(AddChunkPrefixValue(10, "foo.com/script.js"));
467 database_->InsertChunks(kResourceBlacklist, chunks); 466 database_->InsertChunks(kResourceBlacklist, chunks);
468 467
469 database_->UpdateFinished(true); 468 database_->UpdateFinished(true);
470 469
471 GetListsInfo(&lists); 470 GetListsInfo(&lists);
472 ASSERT_EQ(11U, lists.size()); 471 ASSERT_EQ(10U, lists.size());
473 EXPECT_EQ(kMalwareList, lists[0].name); 472 EXPECT_EQ(kMalwareList, lists[0].name);
474 EXPECT_EQ("1", lists[0].adds); 473 EXPECT_EQ("1", lists[0].adds);
475 EXPECT_TRUE(lists[0].subs.empty()); 474 EXPECT_TRUE(lists[0].subs.empty());
476 EXPECT_EQ(kPhishingList, lists[1].name); 475 EXPECT_EQ(kPhishingList, lists[1].name);
477 EXPECT_EQ("2", lists[1].adds); 476 EXPECT_EQ("2", lists[1].adds);
478 EXPECT_TRUE(lists[1].subs.empty()); 477 EXPECT_TRUE(lists[1].subs.empty());
479 EXPECT_EQ(kBinUrlList, lists[2].name); 478 EXPECT_EQ(kBinUrlList, lists[2].name);
480 EXPECT_EQ("3", lists[2].adds); 479 EXPECT_EQ("3", lists[2].adds);
481 EXPECT_TRUE(lists[2].subs.empty()); 480 EXPECT_TRUE(lists[2].subs.empty());
482 EXPECT_EQ(kCsdWhiteList, lists[3].name); 481 EXPECT_EQ(kCsdWhiteList, lists[3].name);
483 EXPECT_EQ("5", lists[3].adds); 482 EXPECT_EQ("4", lists[3].adds);
484 EXPECT_TRUE(lists[3].subs.empty()); 483 EXPECT_TRUE(lists[3].subs.empty());
485 EXPECT_EQ(kDownloadWhiteList, lists[4].name); 484 EXPECT_EQ(kDownloadWhiteList, lists[4].name);
486 EXPECT_EQ("6", lists[4].adds); 485 EXPECT_EQ("5", lists[4].adds);
487 EXPECT_TRUE(lists[4].subs.empty()); 486 EXPECT_TRUE(lists[4].subs.empty());
488 EXPECT_EQ(kInclusionWhitelist, lists[5].name); 487 EXPECT_EQ(kExtensionBlacklist, lists[5].name);
489 EXPECT_EQ("7", lists[5].adds); 488 EXPECT_EQ("6", lists[5].adds);
490 EXPECT_TRUE(lists[5].subs.empty()); 489 EXPECT_TRUE(lists[5].subs.empty());
491 EXPECT_EQ(kExtensionBlacklist, lists[6].name); 490 EXPECT_EQ(kIPBlacklist, lists[6].name);
492 EXPECT_EQ("8", lists[6].adds); 491 EXPECT_EQ("7", lists[6].adds);
493 EXPECT_TRUE(lists[6].subs.empty()); 492 EXPECT_TRUE(lists[6].subs.empty());
494 EXPECT_EQ(kIPBlacklist, lists[7].name); 493 EXPECT_EQ(kUnwantedUrlList, lists[7].name);
495 EXPECT_EQ("10", lists[7].adds); 494 EXPECT_EQ("8", lists[7].adds);
496 EXPECT_TRUE(lists[7].subs.empty()); 495 EXPECT_TRUE(lists[7].subs.empty());
497 EXPECT_EQ(kUnwantedUrlList, lists[8].name); 496 EXPECT_EQ(kModuleWhitelist, lists[8].name);
498 EXPECT_EQ("11", lists[8].adds); 497 EXPECT_EQ("9", lists[8].adds);
499 EXPECT_TRUE(lists[8].subs.empty()); 498 EXPECT_TRUE(lists[8].subs.empty());
500 EXPECT_EQ(kModuleWhitelist, lists[9].name); 499 EXPECT_EQ(kResourceBlacklist, lists[9].name);
501 EXPECT_EQ("12", lists[9].adds); 500 EXPECT_EQ("10", lists[9].adds);
502 EXPECT_TRUE(lists[9].subs.empty()); 501 EXPECT_TRUE(lists[9].subs.empty());
503 EXPECT_EQ(kResourceBlacklist, lists[10].name);
504 EXPECT_EQ("13", lists[10].adds);
505 EXPECT_TRUE(lists[10].subs.empty());
506 502
507 database_.reset(); 503 database_.reset();
508 } 504 }
509 505
510 // Checks database reading and writing for browse and unwanted PrefixSets. 506 // Checks database reading and writing for browse and unwanted PrefixSets.
511 TEST_F(SafeBrowsingDatabaseTest, BrowseAndUnwantedDatabasesAndPrefixSets) { 507 TEST_F(SafeBrowsingDatabaseTest, BrowseAndUnwantedDatabasesAndPrefixSets) {
512 508
513 struct TestCase { 509 struct TestCase {
514 using TestListContainsBadUrl = bool (SafeBrowsingDatabase::*)( 510 using TestListContainsBadUrl = bool (SafeBrowsingDatabase::*)(
515 const GURL& url, 511 const GURL& url,
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 &SafeBrowsingDatabase::ContainsBrowseHashes 556 &SafeBrowsingDatabase::ContainsBrowseHashes
561 }, 557 },
562 { 558 {
563 kPhishingList, 559 kPhishingList,
564 1U, 560 1U,
565 &SafeBrowsingDatabase::ContainsBrowseUrl, 561 &SafeBrowsingDatabase::ContainsBrowseUrl,
566 &SafeBrowsingDatabase::ContainsBrowseHashes 562 &SafeBrowsingDatabase::ContainsBrowseHashes
567 }, 563 },
568 { 564 {
569 kUnwantedUrlList, 565 kUnwantedUrlList,
570 8U, 566 7U,
571 &SafeBrowsingDatabase::ContainsUnwantedSoftwareUrl, 567 &SafeBrowsingDatabase::ContainsUnwantedSoftwareUrl,
572 &SafeBrowsingDatabase::ContainsUnwantedSoftwareHashes 568 &SafeBrowsingDatabase::ContainsUnwantedSoftwareHashes
573 }, 569 },
574 }; 570 };
575 571
576 for (const auto& test_case : kTestCases) { 572 for (const auto& test_case : kTestCases) {
577 SCOPED_TRACE(std::string("Tested list at fault => ") + 573 SCOPED_TRACE(std::string("Tested list at fault => ") +
578 test_case.test_list_name); 574 test_case.test_list_name);
579 575
580 std::vector<SBListChunkRanges> lists; 576 std::vector<SBListChunkRanges> lists;
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after
1178 // TODO(shess): Disabled until ScopedLogMessageIgnorer resolved. 1174 // TODO(shess): Disabled until ScopedLogMessageIgnorer resolved.
1179 // http://crbug.com/56448 1175 // http://crbug.com/56448
1180 TEST_F(SafeBrowsingDatabaseTest, DISABLED_FileCorruptionHandling) { 1176 TEST_F(SafeBrowsingDatabaseTest, DISABLED_FileCorruptionHandling) {
1181 // Re-create the database in a captive message loop so that we can 1177 // Re-create the database in a captive message loop so that we can
1182 // influence task-posting. Database specifically needs to the 1178 // influence task-posting. Database specifically needs to the
1183 // file-backed. 1179 // file-backed.
1184 database_.reset(); 1180 database_.reset();
1185 base::MessageLoop loop; 1181 base::MessageLoop loop;
1186 SafeBrowsingStoreFile* store = new SafeBrowsingStoreFile(task_runner_); 1182 SafeBrowsingStoreFile* store = new SafeBrowsingStoreFile(task_runner_);
1187 database_.reset(new SafeBrowsingDatabaseNew( 1183 database_.reset(new SafeBrowsingDatabaseNew(
1188 task_runner_, store, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1184 task_runner_, store, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL));
1189 NULL));
1190 database_->Init(database_filename_); 1185 database_->Init(database_filename_);
1191 1186
1192 // This will cause an empty database to be created. 1187 // This will cause an empty database to be created.
1193 std::vector<SBListChunkRanges> lists; 1188 std::vector<SBListChunkRanges> lists;
1194 ASSERT_TRUE(database_->UpdateStarted(&lists)); 1189 ASSERT_TRUE(database_->UpdateStarted(&lists));
1195 database_->UpdateFinished(true); 1190 database_->UpdateFinished(true);
1196 1191
1197 // Create a sub chunk to insert. 1192 // Create a sub chunk to insert.
1198 std::vector<std::unique_ptr<SBChunkData>> chunks; 1193 std::vector<std::unique_ptr<SBChunkData>> chunks;
1199 chunks.push_back(SubChunkPrefixValue(7, 1194 chunks.push_back(SubChunkPrefixValue(7,
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
1390 TestListContainsWhitelistedUrl test_list_contains_whitelisted_url; 1385 TestListContainsWhitelistedUrl test_list_contains_whitelisted_url;
1391 // Optional test case field, if set the tested whitelist will also be tested 1386 // Optional test case field, if set the tested whitelist will also be tested
1392 // for strings. 1387 // for strings.
1393 TestListContainsWhitelistedString test_list_contains_whitelisted_string; 1388 TestListContainsWhitelistedString test_list_contains_whitelisted_string;
1394 } const kTestCases[]{ 1389 } const kTestCases[]{
1395 {kCsdWhiteList, &SafeBrowsingDatabase::ContainsCsdWhitelistedUrl, 1390 {kCsdWhiteList, &SafeBrowsingDatabase::ContainsCsdWhitelistedUrl,
1396 nullptr}, 1391 nullptr},
1397 {kDownloadWhiteList, 1392 {kDownloadWhiteList,
1398 &SafeBrowsingDatabase::ContainsDownloadWhitelistedUrl, 1393 &SafeBrowsingDatabase::ContainsDownloadWhitelistedUrl,
1399 &SafeBrowsingDatabase::ContainsDownloadWhitelistedString}, 1394 &SafeBrowsingDatabase::ContainsDownloadWhitelistedString},
1400 {kInclusionWhitelist,
1401 &SafeBrowsingDatabase::ContainsInclusionWhitelistedUrl, nullptr},
1402 {kModuleWhitelist, nullptr, 1395 {kModuleWhitelist, nullptr,
1403 &SafeBrowsingDatabase::ContainsModuleWhitelistedString}, 1396 &SafeBrowsingDatabase::ContainsModuleWhitelistedString},
1404 }; 1397 };
1405 1398
1406 // If the whitelist is disabled everything should match the whitelist. 1399 // If the whitelist is disabled everything should match the whitelist.
1407 database_.reset(new SafeBrowsingDatabaseNew( 1400 database_.reset(new SafeBrowsingDatabaseNew(
1408 task_runner_, new SafeBrowsingStoreFile(task_runner_), NULL, NULL, NULL, 1401 task_runner_, new SafeBrowsingStoreFile(task_runner_), NULL, NULL, NULL,
1409 NULL, NULL, NULL, NULL, NULL, NULL)); 1402 NULL, NULL, NULL, NULL, NULL));
1410 database_->Init(database_filename_); 1403 database_->Init(database_filename_);
1411 for (const auto& test_case : kTestCases) { 1404 for (const auto& test_case : kTestCases) {
1412 SCOPED_TRACE(std::string("Tested list at fault => ") + 1405 SCOPED_TRACE(std::string("Tested list at fault => ") +
1413 test_case.test_list_name); 1406 test_case.test_list_name);
1414 1407
1415 if (test_case.TestUrls()) { 1408 if (test_case.TestUrls()) {
1416 EXPECT_TRUE( 1409 EXPECT_TRUE(
1417 (database_.get()->*test_case.test_list_contains_whitelisted_url)( 1410 (database_.get()->*test_case.test_list_contains_whitelisted_url)(
1418 GURL(std::string("http://www.phishing.com/")))); 1411 GURL(std::string("http://www.phishing.com/"))));
1419 } 1412 }
(...skipping 954 matching lines...) Expand 10 before | Expand all | Expand 10 after
2374 ASSERT_EQ(1U, prefix_hits.size()); 2367 ASSERT_EQ(1U, prefix_hits.size());
2375 EXPECT_EQ(SBPrefixForString(kExampleCollision), prefix_hits[0]); 2368 EXPECT_EQ(SBPrefixForString(kExampleCollision), prefix_hits[0]);
2376 EXPECT_TRUE(cache_hits.empty()); 2369 EXPECT_TRUE(cache_hits.empty());
2377 2370
2378 // This prefix collides, but no full hash match. 2371 // This prefix collides, but no full hash match.
2379 EXPECT_FALSE(database_->ContainsBrowseUrl( 2372 EXPECT_FALSE(database_->ContainsBrowseUrl(
2380 GURL(std::string("http://") + kExampleFine), &prefix_hits, &cache_hits)); 2373 GURL(std::string("http://") + kExampleFine), &prefix_hits, &cache_hits));
2381 } 2374 }
2382 2375
2383 } // namespace safe_browsing 2376 } // namespace safe_browsing
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/safe_browsing_database.cc ('k') | chrome/browser/safe_browsing/safe_browsing_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698