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

Unified Diff: components/safe_browsing_db/v4_local_database_manager_unittest.cc

Issue 2622063002: Add the missing callback to client for CheckResourceUrl. (Closed)
Patch Set: Incorporate nparker@ feedback Created 3 years, 11 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
« no previous file with comments | « components/safe_browsing_db/v4_local_database_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 958fb2da0b25528106aa62d16e6f91fa2e4ce97e..85df2f85adb6c38a368a530283d0157670774ac1 100644
--- a/components/safe_browsing_db/v4_local_database_manager_unittest.cc
+++ b/components/safe_browsing_db/v4_local_database_manager_unittest.cc
@@ -147,7 +147,8 @@ class TestClient : public SafeBrowsingDatabaseManager::Client {
V4LocalDatabaseManager* manager_to_cancel = nullptr)
: expected_sb_threat_type(sb_threat_type),
expected_url(url),
- result_received_(false),
+ on_check_browse_url_result_called_(false),
+ on_check_resource_url_result_called_(false),
manager_to_cancel_(manager_to_cancel) {}
void OnCheckBrowseUrlResult(const GURL& url,
@@ -155,15 +156,27 @@ class TestClient : public SafeBrowsingDatabaseManager::Client {
const ThreatMetadata& metadata) override {
DCHECK_EQ(expected_url, url);
DCHECK_EQ(expected_sb_threat_type, threat_type);
- result_received_ = true;
+ on_check_browse_url_result_called_ = true;
if (manager_to_cancel_) {
manager_to_cancel_->CancelCheck(this);
}
}
+ void OnCheckResourceUrlResult(const GURL& url,
+ SBThreatType threat_type,
+ const std::string& threat_hash) override {
+ DCHECK_EQ(expected_url, url);
+ DCHECK_EQ(expected_sb_threat_type, threat_type);
+ // |threat_hash| is empty because GetFullHashes calls back with empty
+ // |full_hash_infos|.
+ DCHECK(threat_hash.empty());
+ on_check_resource_url_result_called_ = true;
+ }
+
SBThreatType expected_sb_threat_type;
GURL expected_url;
- bool result_received_;
+ bool on_check_browse_url_result_called_;
+ bool on_check_resource_url_result_called_;
V4LocalDatabaseManager* manager_to_cancel_;
};
@@ -367,8 +380,8 @@ TEST_F(V4LocalDatabaseManagerTest,
TEST_F(V4LocalDatabaseManagerTest, TestGetSeverestThreatTypeAndMetadata) {
WaitForTasksOnTaskRunner();
- FullHashInfo fhi_malware(FullHash("Malware"), GetUrlMalwareId(),
- base::Time::Now());
+ FullHash full_hash("Malware");
+ FullHashInfo fhi_malware(full_hash, GetUrlMalwareId(), base::Time::Now());
fhi_malware.metadata.population_id = "malware_popid";
FullHashInfo fhi_api(FullHash("api"), GetChromeUrlApiId(), base::Time::Now());
@@ -378,18 +391,21 @@ TEST_F(V4LocalDatabaseManagerTest, TestGetSeverestThreatTypeAndMetadata) {
SBThreatType result_threat_type;
ThreatMetadata metadata;
+ FullHash matching_full_hash;
v4_local_database_manager_->GetSeverestThreatTypeAndMetadata(
- &result_threat_type, &metadata, fhis);
+ &result_threat_type, &metadata, &matching_full_hash, fhis);
EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE, result_threat_type);
EXPECT_EQ("malware_popid", metadata.population_id);
+ EXPECT_EQ(full_hash, matching_full_hash);
// Reversing the list has no effect.
std::reverse(std::begin(fhis), std::end(fhis));
v4_local_database_manager_->GetSeverestThreatTypeAndMetadata(
- &result_threat_type, &metadata, fhis);
+ &result_threat_type, &metadata, &matching_full_hash, fhis);
EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE, result_threat_type);
EXPECT_EQ("malware_popid", metadata.population_id);
+ EXPECT_EQ(full_hash, matching_full_hash);
}
TEST_F(V4LocalDatabaseManagerTest, TestChecksAreQueued) {
@@ -435,9 +451,9 @@ TEST_F(V4LocalDatabaseManagerTest, CancelPending) {
{
TestClient client(SB_THREAT_TYPE_SAFE, url);
EXPECT_FALSE(v4_local_database_manager_->CheckBrowseUrl(url, &client));
- EXPECT_FALSE(client.result_received_);
+ EXPECT_FALSE(client.on_check_browse_url_result_called_);
WaitForTasksOnTaskRunner();
- EXPECT_TRUE(client.result_received_);
+ EXPECT_TRUE(client.on_check_browse_url_result_called_);
}
// Test that cancel prevents the callback from being called.
@@ -445,9 +461,9 @@ TEST_F(V4LocalDatabaseManagerTest, CancelPending) {
TestClient client(SB_THREAT_TYPE_SAFE, url);
EXPECT_FALSE(v4_local_database_manager_->CheckBrowseUrl(url, &client));
v4_local_database_manager_->CancelCheck(&client);
- EXPECT_FALSE(client.result_received_);
+ EXPECT_FALSE(client.on_check_browse_url_result_called_);
WaitForTasksOnTaskRunner();
- EXPECT_FALSE(client.result_received_);
+ EXPECT_FALSE(client.on_check_browse_url_result_called_);
}
}
@@ -462,11 +478,11 @@ TEST_F(V4LocalDatabaseManagerTest, CancelQueued) {
EXPECT_FALSE(v4_local_database_manager_->CheckBrowseUrl(url, &client1));
EXPECT_FALSE(v4_local_database_manager_->CheckBrowseUrl(url, &client2));
EXPECT_EQ(2ul, GetQueuedChecks().size());
- EXPECT_FALSE(client1.result_received_);
- EXPECT_FALSE(client2.result_received_);
+ EXPECT_FALSE(client1.on_check_browse_url_result_called_);
+ EXPECT_FALSE(client2.on_check_browse_url_result_called_);
WaitForTasksOnTaskRunner();
- EXPECT_TRUE(client1.result_received_);
- EXPECT_TRUE(client2.result_received_);
+ EXPECT_TRUE(client1.on_check_browse_url_result_called_);
+ EXPECT_TRUE(client2.on_check_browse_url_result_called_);
}
// This test is somewhat similar to TestCheckBrowseUrlWithFakeDbReturnsMatch but
@@ -669,14 +685,40 @@ TEST_F(V4LocalDatabaseManagerTest, TestCheckBrowseUrlWithSameClientAndCancel) {
// Wait for PerformFullHashCheck to complete.
WaitForTasksOnTaskRunner();
- // |result_received_| is true only if OnCheckBrowseUrlResult gets called with
- // the |url| equal to |expected_url|, which is |second_url| in this test.
- EXPECT_TRUE(client.result_received_);
+ // |on_check_browse_url_result_called_| is true only if OnCheckBrowseUrlResult
+ // gets called with the |url| equal to |expected_url|, which is |second_url|
+ // in
+ // this test.
+ EXPECT_TRUE(client.on_check_browse_url_result_called_);
+}
+
+TEST_F(V4LocalDatabaseManagerTest, TestCheckResourceUrl) {
+ // Setup to receive full-hash misses.
+ ScopedFakeGetHashProtocolManagerFactory pin;
+
+ // Reset the database manager so it picks up the replacement protocol manager.
+ ResetLocalDatabaseManager();
+ WaitForTasksOnTaskRunner();
+
+ // An URL and matching prefix.
+ const GURL url("http://example.com/a/");
+ const HashPrefix hash_prefix("eW\x1A\xF\xA9");
+
+ // Put a match in the db that will cause a protocol-manager request.
+ StoreAndHashPrefixes store_and_hash_prefixes;
+ store_and_hash_prefixes.emplace_back(GetChromeUrlClientIncidentId(),
+ hash_prefix);
+ ReplaceV4Database(store_and_hash_prefixes, true /* stores_available */);
+
+ TestClient client(SB_THREAT_TYPE_SAFE, url);
+ EXPECT_FALSE(v4_local_database_manager_->CheckResourceUrl(url, &client));
+ EXPECT_FALSE(client.on_check_resource_url_result_called_);
+ WaitForTasksOnTaskRunner();
+ EXPECT_TRUE(client.on_check_resource_url_result_called_);
}
// TODO(nparker): Add tests for
// CheckDownloadUrl()
// CheckExtensionIDs()
-// CheckResourceUrl()
} // namespace safe_browsing
« no previous file with comments | « components/safe_browsing_db/v4_local_database_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698