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

Unified Diff: chrome/browser/safe_browsing/safe_browsing_database_unittest.cc

Issue 1638223003: Add support for a module whitelist (goog-whitemodule-digest256) to the safe browsing db (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix browser test Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
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 f3b094b0b56fa3de1914afeffac0234baff60a85..b405ad10b6ba75c92890e1ad13d798c60f261b44 100644
--- a/chrome/browser/safe_browsing/safe_browsing_database_unittest.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_database_unittest.cc
@@ -280,11 +280,13 @@ class SafeBrowsingDatabaseTest : public PlatformTest {
new SafeBrowsingStoreFile(task_runner_);
SafeBrowsingStoreFile* unwanted_software_store =
new SafeBrowsingStoreFile(task_runner_);
+ SafeBrowsingStoreFile* module_whitelist_store =
+ new SafeBrowsingStoreFile(task_runner_);
database_.reset(new SafeBrowsingDatabaseNew(
task_runner_, browse_store, download_store, csd_whitelist_store,
download_whitelist_store, inclusion_whitelist_store,
- extension_blacklist_store, ip_blacklist_store,
- unwanted_software_store));
+ extension_blacklist_store, ip_blacklist_store, unwanted_software_store,
+ module_whitelist_store));
database_->Init(database_filename_);
}
@@ -440,10 +442,14 @@ TEST_F(SafeBrowsingDatabaseTest, ListNames) {
chunks.push_back(AddChunkPrefixValue(11, "www.unwanted.com/software.html"));
database_->InsertChunks(kUnwantedUrlList, chunks);
+ chunks.clear();
+ chunks.push_back(AddChunkPrefixValue(12, "chrome.dll"));
+ database_->InsertChunks(kModuleWhitelist, chunks);
+
database_->UpdateFinished(true);
GetListsInfo(&lists);
- ASSERT_EQ(9U, lists.size());
+ ASSERT_EQ(10U, lists.size());
EXPECT_EQ(kMalwareList, lists[0].name);
EXPECT_EQ("1", lists[0].adds);
EXPECT_TRUE(lists[0].subs.empty());
@@ -471,6 +477,9 @@ TEST_F(SafeBrowsingDatabaseTest, ListNames) {
EXPECT_EQ(kUnwantedUrlList, lists[8].name);
EXPECT_EQ("11", lists[8].adds);
EXPECT_TRUE(lists[8].subs.empty());
+ EXPECT_EQ(kModuleWhitelist, lists[9].name);
+ EXPECT_EQ("12", lists[9].adds);
+ EXPECT_TRUE(lists[9].subs.empty());
database_.reset();
}
@@ -1153,7 +1162,7 @@ TEST_F(SafeBrowsingDatabaseTest, DISABLED_FileCorruptionHandling) {
base::MessageLoop loop;
SafeBrowsingStoreFile* store = new SafeBrowsingStoreFile(task_runner_);
database_.reset(new SafeBrowsingDatabaseNew(
- task_runner_, store, NULL, NULL, NULL, NULL, NULL, NULL, NULL));
+ task_runner_, store, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL));
database_->Init(database_filename_);
// This will cause an empty database to be created.
@@ -1302,6 +1311,12 @@ TEST_F(SafeBrowsingDatabaseTest, Whitelists) {
using TestListContainsWhitelistedString =
bool (SafeBrowsingDatabase::*)(const std::string& str);
+ // Returns true if urls should be tested in this test case (i.e.
+ // |test_list_contains_whitelisted_url| is not null).
+ bool TestUrls() const {
+ return test_list_contains_whitelisted_url != nullptr;
+ }
+
// Returns true if strings should be tested in this test case (i.e.
// |test_list_contains_whitelisted_string| is not null).
bool TestStrings() const {
@@ -1314,29 +1329,31 @@ TEST_F(SafeBrowsingDatabaseTest, Whitelists) {
// for strings.
TestListContainsWhitelistedString test_list_contains_whitelisted_string;
} const kTestCases[]{
- {kCsdWhiteList,
- &SafeBrowsingDatabase::ContainsCsdWhitelistedUrl,
+ {kCsdWhiteList, &SafeBrowsingDatabase::ContainsCsdWhitelistedUrl,
nullptr},
{kDownloadWhiteList,
&SafeBrowsingDatabase::ContainsDownloadWhitelistedUrl,
&SafeBrowsingDatabase::ContainsDownloadWhitelistedString},
{kInclusionWhitelist,
- &SafeBrowsingDatabase::ContainsInclusionWhitelistedUrl,
- nullptr},
+ &SafeBrowsingDatabase::ContainsInclusionWhitelistedUrl, nullptr},
+ {kModuleWhitelist, nullptr,
+ &SafeBrowsingDatabase::ContainsModuleWhitelistedString},
};
// If the whitelist is disabled everything should match the whitelist.
database_.reset(new SafeBrowsingDatabaseNew(
task_runner_, new SafeBrowsingStoreFile(task_runner_), NULL, NULL, NULL,
- NULL, NULL, NULL, NULL));
+ NULL, NULL, NULL, NULL, NULL));
database_->Init(database_filename_);
for (const auto& test_case : kTestCases) {
SCOPED_TRACE(std::string("Tested list at fault => ") +
test_case.test_list_name);
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://www.phishing.com/"))));
+ if (test_case.TestUrls()) {
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://www.phishing.com/"))));
+ }
if (test_case.TestStrings()) {
EXPECT_TRUE(
(database_.get()->*test_case.test_list_contains_whitelisted_string)(
@@ -1363,83 +1380,100 @@ TEST_F(SafeBrowsingDatabaseTest, Whitelists) {
const char kGoodString[] = "good_string";
// Nothing should be whitelisted before the database receives the chunks.
- EXPECT_FALSE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://") + kGood1Host)));
- EXPECT_FALSE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://") + kGood1Url1)));
- EXPECT_FALSE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://") + kGood1Url2)));
- EXPECT_FALSE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://") + kGood2Url1)));
- EXPECT_FALSE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://") + kGood3Url1)));
- if (test_case.TestStrings()) {
+ if (test_case.TestUrls()) {
EXPECT_FALSE(
- (database_.get()->*test_case.test_list_contains_whitelisted_string)(
- kGoodString));
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://") + kGood1Host)));
+ EXPECT_FALSE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://") + kGood1Url1)));
+ EXPECT_FALSE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://") + kGood1Url2)));
+ EXPECT_FALSE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://") + kGood2Url1)));
+ EXPECT_FALSE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://") + kGood3Url1)));
+ }
+ if (test_case.TestStrings()) {
+ if (test_case.test_list_name == kModuleWhitelist) {
+ // For the module whitelist, everything should be whitelisted before
+ // the database receives the chunks.
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_string)(
+ kGoodString));
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_string)(
+ "asdf"));
+ } else {
+ EXPECT_FALSE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_string)(
+ kGoodString));
+ }
}
std::vector<scoped_ptr<SBChunkData>> chunks;
// Add a few test chunks to the whitelist under test.
- chunks.push_back(AddChunkFullHash2Value(1, kGood1Url1, kGood1Url2));
- chunks.push_back(AddChunkFullHashValue(2, kGood2Url1));
+ if (test_case.TestUrls()) {
+ chunks.push_back(AddChunkFullHash2Value(1, kGood1Url1, kGood1Url2));
+ chunks.push_back(AddChunkFullHashValue(2, kGood2Url1));
+ chunks.push_back(AddChunkFullHashValue(4, kGood3Url1));
+ }
if (test_case.TestStrings())
chunks.push_back(AddChunkFullHashValue(3, kGoodString));
- chunks.push_back(AddChunkFullHashValue(4, kGood3Url1));
std::vector<SBListChunkRanges> lists;
ASSERT_TRUE(database_->UpdateStarted(&lists));
database_->InsertChunks(test_case.test_list_name, chunks);
database_->UpdateFinished(true);
- EXPECT_FALSE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://") + kGood1Host)));
-
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://") + kGood1Url1)));
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://") + kGood1Url1 + "?a=b")));
-
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://") + kGood1Url2)));
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://") + kGood1Url2 + "/c.html")));
-
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("https://") + kGood1Url2 + "/c.html")));
-
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://") + kGood2Url1 + "/c")));
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://") + kGood2Url1 + "/c?bla")));
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://") + kGood2Url1 + "/c/bla")));
-
- EXPECT_FALSE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://www.google.com/"))));
-
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://") + kGood3Url1 + "a/b/c/d/e/f/g/")));
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://a.b.") + kGood3Url1)));
+ if (test_case.TestUrls()) {
+ EXPECT_FALSE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://") + kGood1Host)));
+
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://") + kGood1Url1)));
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://") + kGood1Url1 + "?a=b")));
+
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://") + kGood1Url2)));
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://") + kGood1Url2 + "/c.html")));
+
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("https://") + kGood1Url2 + "/c.html")));
+
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://") + kGood2Url1 + "/c")));
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://") + kGood2Url1 + "/c?bla")));
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://") + kGood2Url1 + "/c/bla")));
+
+ EXPECT_FALSE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://www.google.com/"))));
+
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://") + kGood3Url1 + "a/b/c/d/e/f/g/")));
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://a.b.") + kGood3Url1)));
+ }
if (test_case.TestStrings()) {
EXPECT_FALSE(
@@ -1450,10 +1484,6 @@ TEST_F(SafeBrowsingDatabaseTest, Whitelists) {
kGoodString));
}
- EXPECT_FALSE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://www.google.com/"))));
-
// The malware kill switch is for the CSD whitelist only.
if (test_case.test_list_name == kCsdWhiteList) {
// The CSD whitelist killswitch is not present.
@@ -1490,15 +1520,17 @@ TEST_F(SafeBrowsingDatabaseTest, Whitelists) {
EXPECT_TRUE(database_->IsMalwareIPMatchKillSwitchOn());
}
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("https://") + kGood1Url2 + "/c.html")));
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://www.google.com/"))));
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://www.phishing_url.com/"))));
+ if (test_case.TestUrls()) {
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("https://") + kGood1Url2 + "/c.html")));
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://www.google.com/"))));
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://www.phishing_url.com/"))));
+ }
if (test_case.TestStrings()) {
EXPECT_TRUE(
@@ -1527,21 +1559,23 @@ TEST_F(SafeBrowsingDatabaseTest, Whitelists) {
EXPECT_FALSE(database_->IsMalwareIPMatchKillSwitchOn());
EXPECT_FALSE(database_->IsCsdWhitelistKillSwitchOn());
}
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("https://") + kGood1Url2 + "/c.html")));
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("https://") + kGood2Url1 + "/c/bla")));
- EXPECT_TRUE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("https://") + kGood3Url1)));
- EXPECT_FALSE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://www.google.com/"))));
- EXPECT_FALSE(
- (database_.get()->*test_case.test_list_contains_whitelisted_url)(
- GURL(std::string("http://www.phishing_url.com/"))));
+ if (test_case.TestUrls()) {
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("https://") + kGood1Url2 + "/c.html")));
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("https://") + kGood2Url1 + "/c/bla")));
+ EXPECT_TRUE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("https://") + kGood3Url1)));
+ EXPECT_FALSE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://www.google.com/"))));
+ EXPECT_FALSE(
+ (database_.get()->*test_case.test_list_contains_whitelisted_url)(
+ GURL(std::string("http://www.phishing_url.com/"))));
+ }
if (test_case.TestStrings()) {
EXPECT_TRUE(
(database_.get()->*test_case.test_list_contains_whitelisted_string)(

Powered by Google App Engine
This is Rietveld 408576698