Index: chrome/browser/safe_browsing/v4_test_utils.h |
diff --git a/chrome/browser/safe_browsing/v4_test_utils.h b/chrome/browser/safe_browsing/v4_test_utils.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0b04ea5235faa7d168eae4d737a64de3cdf7b4b6 |
--- /dev/null |
+++ b/chrome/browser/safe_browsing/v4_test_utils.h |
@@ -0,0 +1,99 @@ |
+// Copyright 2017 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. |
+ |
+#ifndef CHROME_BROWSER_SAFE_BROWSING_V4_TEST_UTILS_H_ |
+#define CHROME_BROWSER_SAFE_BROWSING_V4_TEST_UTILS_H_ |
+ |
+#include "chrome/browser/safe_browsing/test_safe_browsing_service.h" |
mattm
2017/02/17 21:49:53
Is this needed?
melandory
2017/02/27 15:01:48
Done.
|
+#include "components/safe_browsing_db/v4_database.h" |
+#include "components/safe_browsing_db/v4_get_hash_protocol_manager.h" |
+ |
+namespace safe_browsing { |
+ |
+class TestV4Store : public V4Store { |
+ public: |
+ TestV4Store(const scoped_refptr<base::SequencedTaskRunner>& task_runner, |
+ const base::FilePath& store_path); |
+ |
+ bool HasValidData() const override; |
+ |
+ void MarkPrefixAsBad(HashPrefix prefix); |
+}; |
+ |
+class TestV4StoreFactory : public V4StoreFactory { |
+ public: |
+ V4Store* CreateV4Store( |
+ const scoped_refptr<base::SequencedTaskRunner>& task_runner, |
+ const base::FilePath& store_path) override; |
+}; |
+ |
+class TestV4Database : public V4Database { |
+ public: |
+ TestV4Database(const scoped_refptr<base::SequencedTaskRunner>& db_task_runner, |
+ std::unique_ptr<StoreMap> store_map); |
+ |
+ void MarkPrefixAsBad(ListIdentifier list_id, HashPrefix prefix); |
+}; |
+ |
+class TestV4DatabaseFactory : public V4DatabaseFactory { |
+ public: |
+ TestV4DatabaseFactory(); |
+ |
+ std::unique_ptr<V4Database> Create( |
+ const scoped_refptr<base::SequencedTaskRunner>& db_task_runner, |
+ std::unique_ptr<StoreMap> store_map) override; |
+ |
+ void MarkPrefixAsBad(ListIdentifier list_id, HashPrefix prefix); |
+ |
+ private: |
+ // Owned by V4LocalDatabaseManager. Each test in the V4SafeBrowsingServiceTest |
mattm
2017/02/17 21:49:53
update comment (no longer specific to V4SafeBrowsi
melandory
2017/02/27 15:01:48
Done.
|
+ // class instantiates a new SafebrowsingService instance, which instantiates a |
+ // new V4LocalDatabaseManager, which instantiates a new V4Database using this |
+ // method so use-after-free isn't possible. |
+ TestV4Database* v4_db_; |
+}; |
+ |
+class TestV4GetHashProtocolManager : public V4GetHashProtocolManager { |
+ public: |
+ TestV4GetHashProtocolManager( |
+ net::URLRequestContextGetter* request_context_getter, |
+ const StoresToCheck& stores_to_check, |
+ const V4ProtocolConfig& config); |
+ |
+ void AddToFullHashCache(FullHashInfo fhi); |
+}; |
+ |
+class TestV4GetHashProtocolManagerFactory |
+ : public V4GetHashProtocolManagerFactory { |
+ public: |
+ std::unique_ptr<V4GetHashProtocolManager> CreateProtocolManager( |
+ net::URLRequestContextGetter* request_context_getter, |
+ const StoresToCheck& stores_to_check, |
+ const V4ProtocolConfig& config) override; |
+ |
+ void AddToFullHashCache(FullHashInfo fhi) { pm_->AddToFullHashCache(fhi); } |
+ |
+ private: |
+ // Owned by the SafeBrowsingService. |
+ TestV4GetHashProtocolManager* pm_; |
+}; |
+ |
+// Returns a FullHash for the basic host+path pattern for a given URL after |
+// canonicalization. |
+FullHash GetFullHash(const GURL& url); |
+ |
+// Returns FullHashInfo object for the basic host+path pattern for a given URL |
+// after canonicalization. |
+FullHashInfo GetFullHashInfo(const GURL& url, const ListIdentifier& list_id); |
+ |
+// Returns a FullHashInfo info for the basic host+path pattern for a given URL |
+// after canonicalization. Also adds metadata information to the FullHashInfo |
+// object. |
+FullHashInfo GetFullHashInfoWithMetadata(const GURL& url, |
+ const ListIdentifier& list_id, |
+ ThreatPatternType threat_pattern_type); |
+ |
+} // namespace safe_browsing |
+ |
+#endif // CHROME_BROWSER_SAFE_BROWSING_V4_TEST_UTILS_H_ |