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

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

Issue 1110723002: Split to SafeBrowsingDatabaseManager into Local* and Remote*. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Respond to review. Tweak comments and list initializer. Created 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/safe_browsing/database_manager_unittest.cc
diff --git a/chrome/browser/safe_browsing/database_manager_unittest.cc b/chrome/browser/safe_browsing/database_manager_unittest.cc
deleted file mode 100644
index 92e32bea0995aa4d3ca0cdcd09b7b3fe31cf6234..0000000000000000000000000000000000000000
--- a/chrome/browser/safe_browsing/database_manager_unittest.cc
+++ /dev/null
@@ -1,231 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <string>
-#include <vector>
-
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/run_loop.h"
-#include "chrome/browser/safe_browsing/database_manager.h"
-#include "chrome/browser/safe_browsing/safe_browsing_service.h"
-#include "content/public/test/test_browser_thread_bundle.h"
-#include "content/public/test/test_utils.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "testing/platform_test.h"
-#include "url/gurl.h"
-
-using content::TestBrowserThreadBundle;
-
-namespace {
-
-class TestClient : public SafeBrowsingDatabaseManager::Client {
- public:
- TestClient() {}
- ~TestClient() override {}
-
- void OnCheckBrowseUrlResult(const GURL& url,
- SBThreatType threat_type,
- const std::string& metadata) override {}
-
- void OnCheckDownloadUrlResult(const std::vector<GURL>& url_chain,
- SBThreatType threat_type) override {}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(TestClient);
-};
-
-} // namespace
-
-class SafeBrowsingDatabaseManagerTest : public PlatformTest {
- public:
- bool RunSBHashTest(const safe_browsing_util::ListType list_type,
- const std::vector<SBThreatType>& expected_threats,
- const std::string& result_list);
-
- private:
- TestBrowserThreadBundle thread_bundle_;
-};
-
-bool SafeBrowsingDatabaseManagerTest::RunSBHashTest(
- const safe_browsing_util::ListType list_type,
- const std::vector<SBThreatType>& expected_threats,
- const std::string& result_list) {
- scoped_refptr<SafeBrowsingService> sb_service_(
- SafeBrowsingService::CreateSafeBrowsingService());
- scoped_refptr<SafeBrowsingDatabaseManager> db_manager_(
- new SafeBrowsingDatabaseManager(sb_service_));
- const SBFullHash same_full_hash = {};
-
- SafeBrowsingDatabaseManager::SafeBrowsingCheck* check =
- new SafeBrowsingDatabaseManager::SafeBrowsingCheck(
- std::vector<GURL>(),
- std::vector<SBFullHash>(1, same_full_hash),
- NULL,
- list_type,
- expected_threats);
- db_manager_->checks_.insert(check);
-
- const SBFullHashResult full_hash_result = {
- same_full_hash,
- safe_browsing_util::GetListId(result_list)
- };
-
- std::vector<SBFullHashResult> fake_results(1, full_hash_result);
- bool result = db_manager_->HandleOneCheck(check, fake_results);
- db_manager_->checks_.erase(check);
- delete check;
- return result;
-}
-
-TEST_F(SafeBrowsingDatabaseManagerTest, CheckCorrespondsListType) {
- std::vector<SBThreatType> malware_threat(1,
- SB_THREAT_TYPE_BINARY_MALWARE_URL);
- EXPECT_FALSE(RunSBHashTest(safe_browsing_util::BINURL,
- malware_threat,
- safe_browsing_util::kMalwareList));
- EXPECT_TRUE(RunSBHashTest(safe_browsing_util::BINURL,
- malware_threat,
- safe_browsing_util::kBinUrlList));
-
- // Check for multiple threats
- std::vector<SBThreatType> multiple_threats;
- multiple_threats.push_back(SB_THREAT_TYPE_URL_MALWARE);
- multiple_threats.push_back(SB_THREAT_TYPE_URL_PHISHING);
- EXPECT_FALSE(RunSBHashTest(safe_browsing_util::MALWARE,
- multiple_threats,
- safe_browsing_util::kBinUrlList));
- EXPECT_TRUE(RunSBHashTest(safe_browsing_util::MALWARE,
- multiple_threats,
- safe_browsing_util::kMalwareList));
-}
-
-TEST_F(SafeBrowsingDatabaseManagerTest, GetUrlSeverestThreatType) {
- std::vector<SBFullHashResult> full_hashes;
-
- const GURL kMalwareUrl("http://www.malware.com/page.html");
- const GURL kPhishingUrl("http://www.phishing.com/page.html");
- const GURL kUnwantedUrl("http://www.unwanted.com/page.html");
- const GURL kUnwantedAndMalwareUrl(
- "http://www.unwantedandmalware.com/page.html");
- const GURL kSafeUrl("http://www.safe.com/page.html");
-
- const SBFullHash kMalwareHostHash = SBFullHashForString("malware.com/");
- const SBFullHash kPhishingHostHash = SBFullHashForString("phishing.com/");
- const SBFullHash kUnwantedHostHash = SBFullHashForString("unwanted.com/");
- const SBFullHash kUnwantedAndMalwareHostHash =
- SBFullHashForString("unwantedandmalware.com/");
- const SBFullHash kSafeHostHash = SBFullHashForString("www.safe.com/");
-
- {
- SBFullHashResult full_hash;
- full_hash.hash = kMalwareHostHash;
- full_hash.list_id = static_cast<int>(safe_browsing_util::MALWARE);
- full_hashes.push_back(full_hash);
- }
-
- {
- SBFullHashResult full_hash;
- full_hash.hash = kPhishingHostHash;
- full_hash.list_id = static_cast<int>(safe_browsing_util::PHISH);
- full_hashes.push_back(full_hash);
- }
-
- {
- SBFullHashResult full_hash;
- full_hash.hash = kUnwantedHostHash;
- full_hash.list_id = static_cast<int>(safe_browsing_util::UNWANTEDURL);
- full_hashes.push_back(full_hash);
- }
-
- {
- // Add both MALWARE and UNWANTEDURL list IDs for
- // kUnwantedAndMalwareHostHash.
- SBFullHashResult full_hash_malware;
- full_hash_malware.hash = kUnwantedAndMalwareHostHash;
- full_hash_malware.list_id = static_cast<int>(safe_browsing_util::MALWARE);
- full_hashes.push_back(full_hash_malware);
-
- SBFullHashResult full_hash_unwanted;
- full_hash_unwanted.hash = kUnwantedAndMalwareHostHash;
- full_hash_unwanted.list_id =
- static_cast<int>(safe_browsing_util::UNWANTEDURL);
- full_hashes.push_back(full_hash_unwanted);
- }
-
- EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE,
- SafeBrowsingDatabaseManager::GetHashSeverestThreatType(
- kMalwareHostHash, full_hashes));
-
- EXPECT_EQ(SB_THREAT_TYPE_URL_PHISHING,
- SafeBrowsingDatabaseManager::GetHashSeverestThreatType(
- kPhishingHostHash, full_hashes));
-
- EXPECT_EQ(SB_THREAT_TYPE_URL_UNWANTED,
- SafeBrowsingDatabaseManager::GetHashSeverestThreatType(
- kUnwantedHostHash, full_hashes));
-
- EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE,
- SafeBrowsingDatabaseManager::GetHashSeverestThreatType(
- kUnwantedAndMalwareHostHash, full_hashes));
-
- EXPECT_EQ(SB_THREAT_TYPE_SAFE,
- SafeBrowsingDatabaseManager::GetHashSeverestThreatType(
- kSafeHostHash, full_hashes));
-
- const size_t kArbitraryValue = 123456U;
- size_t index = kArbitraryValue;
- EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE,
- SafeBrowsingDatabaseManager::GetUrlSeverestThreatType(
- kMalwareUrl, full_hashes, &index));
- EXPECT_EQ(0U, index);
-
- EXPECT_EQ(SB_THREAT_TYPE_URL_PHISHING,
- SafeBrowsingDatabaseManager::GetUrlSeverestThreatType(
- kPhishingUrl, full_hashes, &index));
- EXPECT_EQ(1U, index);
-
- EXPECT_EQ(SB_THREAT_TYPE_URL_UNWANTED,
- SafeBrowsingDatabaseManager::GetUrlSeverestThreatType(
- kUnwantedUrl, full_hashes, &index));
- EXPECT_EQ(2U, index);
-
- EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE,
- SafeBrowsingDatabaseManager::GetUrlSeverestThreatType(
- kUnwantedAndMalwareUrl, full_hashes, &index));
- EXPECT_EQ(3U, index);
-
- index = kArbitraryValue;
- EXPECT_EQ(SB_THREAT_TYPE_SAFE,
- SafeBrowsingDatabaseManager::GetUrlSeverestThreatType(
- kSafeUrl, full_hashes, &index));
- EXPECT_EQ(kArbitraryValue, index);
-}
-
-TEST_F(SafeBrowsingDatabaseManagerTest, ServiceStopWithPendingChecks) {
- scoped_refptr<SafeBrowsingService> sb_service(
- SafeBrowsingService::CreateSafeBrowsingService());
- scoped_refptr<SafeBrowsingDatabaseManager> db_manager(
- new SafeBrowsingDatabaseManager(sb_service));
- TestClient client;
-
- // Start the service and flush tasks to ensure database is made available.
- db_manager->StartOnIOThread();
- content::RunAllBlockingPoolTasksUntilIdle();
- base::RunLoop().RunUntilIdle();
- EXPECT_TRUE(db_manager->DatabaseAvailable());
-
- // Start an extension check operation, which is done asynchronously.
- std::set<std::string> extension_ids;
- extension_ids.insert("testtesttesttesttesttesttesttest");
- db_manager->CheckExtensionIDs(extension_ids, &client);
-
- // Stop the service without first flushing above tasks.
- db_manager->StopOnIOThread(false);
-
- // Now run posted tasks, whish should include the extension check which has
- // been posted to the safe browsing task runner. This should not crash.
- content::RunAllBlockingPoolTasksUntilIdle();
- base::RunLoop().RunUntilIdle();
-}

Powered by Google App Engine
This is Rietveld 408576698