Chromium Code Reviews| Index: components/safe_browsing_db/v4_local_database_manager_unittest.cc |
| diff --git a/components/safe_browsing_db/v4_local_database_manager_unittest.cc b/components/safe_browsing_db/v4_local_database_manager_unittest.cc |
| index 34cb4ac58871df20b2c77da5b3781a504867ff23..5f3359f3027e8eb43dd3f9db54a9066f1d9aad5e 100644 |
| --- a/components/safe_browsing_db/v4_local_database_manager_unittest.cc |
| +++ b/components/safe_browsing_db/v4_local_database_manager_unittest.cc |
| @@ -426,6 +426,80 @@ TEST_F(V4LocalDatabaseManagerTest, TestCheckBrowseUrlWithFakeDbReturnsMatch) { |
| WaitForTasksOnTaskRunner(); |
| } |
| +TEST_F(V4LocalDatabaseManagerTest, TestCheckCsdWhitelistWithPrefixMatch) { |
| + WaitForTasksOnTaskRunner(); |
| + net::TestURLFetcherFactory factory; |
| + |
| + std::string url_white_no_scheme("example.com/white/"); |
| + FullHash white_full_hash(crypto::SHA256HashString(url_white_no_scheme)); |
| + const HashPrefix white_hash_prefix(white_full_hash.substr(0, 5)); |
| + StoreAndHashPrefixes store_and_hash_prefixes; |
| + store_and_hash_prefixes.emplace_back(GetUrlMalwareId(), white_hash_prefix); |
| + ReplaceV4Database(store_and_hash_prefixes, true /* stores_available */); |
| + |
| + const GURL url_check("https://" + url_white_no_scheme); |
| + EXPECT_EQ(AsyncMatch::ASYNC, v4_local_database_manager_->CheckCsdWhitelistUrl( |
|
vakh (use Gerrit instead)
2017/05/24 16:01:17
Either I am reading this incorrectly, or there's a
Nathan Parker
2017/05/31 23:40:11
Huh! Ah -- found a missing check in the fake GetS
|
| + url_check, nullptr)); |
| + |
| + // Wait for PerformFullHashCheck to complete. |
| + WaitForTasksOnTaskRunner(); |
| + // TODO(nparker): Verify full-hash-check fired? |
|
vakh (use Gerrit instead)
2017/05/24 16:01:17
For the TODO, you could use the TestClient to veri
Nathan Parker
2017/05/31 23:40:11
Good idea -- this also check that the callback is
|
| +} |
| + |
| +TEST_F(V4LocalDatabaseManagerTest, TestCheckCsdWhitelistWithFullMatch) { |
| + WaitForTasksOnTaskRunner(); |
| + net::TestURLFetcherFactory factory; |
| + |
| + std::string url_white_no_scheme("example.com/white/"); |
| + FullHash white_full_hash(crypto::SHA256HashString(url_white_no_scheme)); |
| + StoreAndHashPrefixes store_and_hash_prefixes; |
| + store_and_hash_prefixes.emplace_back(GetUrlMalwareId(), white_full_hash); |
| + ReplaceV4Database(store_and_hash_prefixes, true /* stores_available */); |
| + |
| + const GURL url_check("https://" + url_white_no_scheme); |
| + EXPECT_EQ(AsyncMatch::MATCH, v4_local_database_manager_->CheckCsdWhitelistUrl( |
| + url_check, nullptr)); |
| + |
| + // TODO(nparker): Verify no hash-check was scheduled. |
| + WaitForTasksOnTaskRunner(); |
| +} |
| + |
| +TEST_F(V4LocalDatabaseManagerTest, TestCheckCsdWhitelistWithNoMatch) { |
| + WaitForTasksOnTaskRunner(); |
| + net::TestURLFetcherFactory factory; |
| + |
| + // Add a full hash that won't match the URL we check. |
| + std::string url_white_no_scheme("example.com/white/"); |
| + FullHash white_full_hash(crypto::SHA256HashString(url_white_no_scheme)); |
| + StoreAndHashPrefixes store_and_hash_prefixes; |
| + store_and_hash_prefixes.emplace_back(GetUrlMalwareId(), white_full_hash); |
| + ReplaceV4Database(store_and_hash_prefixes, true /* stores_available */); |
| + |
| + const GURL url_check("https://other.com/"); |
| + EXPECT_EQ( |
| + AsyncMatch::NO_MATCH, |
| + v4_local_database_manager_->CheckCsdWhitelistUrl(url_check, nullptr)); |
| + |
| + // TODO(nparker): Verify no hash-check was scheduled. |
| + WaitForTasksOnTaskRunner(); |
| +} |
| + |
| +// When whitelist is unavailable, all URLS should be whitelisted. |
| +TEST_F(V4LocalDatabaseManagerTest, TestCheckCsdWhitelistUnavailable) { |
| + WaitForTasksOnTaskRunner(); |
| + net::TestURLFetcherFactory factory; |
| + |
| + StoreAndHashPrefixes store_and_hash_prefixes; |
| + ReplaceV4Database(store_and_hash_prefixes, false /* stores_available */); |
| + |
| + const GURL url_check("https://other.com/"); |
| + EXPECT_EQ(AsyncMatch::MATCH, v4_local_database_manager_->CheckCsdWhitelistUrl( |
| + url_check, nullptr)); |
| + |
| + // TODO(nparker): Verify no hash-check was scheduled. |
| + WaitForTasksOnTaskRunner(); |
| +} |
| + |
| TEST_F(V4LocalDatabaseManagerTest, |
| TestCheckBrowseUrlReturnsNoMatchWhenDisabled) { |
| WaitForTasksOnTaskRunner(); |