OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // | 4 // |
5 // This test creates a safebrowsing service using test safebrowsing database | 5 // This test creates a safebrowsing service using test safebrowsing database |
6 // and a test protocol manager. It is used to test logics in safebrowsing | 6 // and a test protocol manager. It is used to test logics in safebrowsing |
7 // service. | 7 // service. |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 | 10 |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 SafeBrowsingProtocolManager::FullHashCallback callback, | 64 SafeBrowsingProtocolManager::FullHashCallback callback, |
65 const std::vector<SBFullHashResult>& result) { | 65 const std::vector<SBFullHashResult>& result) { |
66 callback.Run(result, base::TimeDelta::FromMinutes(45)); | 66 callback.Run(result, base::TimeDelta::FromMinutes(45)); |
67 } | 67 } |
68 | 68 |
69 class FakeSafeBrowsingService : public SafeBrowsingService { | 69 class FakeSafeBrowsingService : public SafeBrowsingService { |
70 public: | 70 public: |
71 explicit FakeSafeBrowsingService(const std::string& url_prefix) | 71 explicit FakeSafeBrowsingService(const std::string& url_prefix) |
72 : url_prefix_(url_prefix) {} | 72 : url_prefix_(url_prefix) {} |
73 | 73 |
74 virtual SafeBrowsingProtocolConfig GetProtocolConfig() const override { | 74 SafeBrowsingProtocolConfig GetProtocolConfig() const override { |
75 SafeBrowsingProtocolConfig config; | 75 SafeBrowsingProtocolConfig config; |
76 config.url_prefix = url_prefix_; | 76 config.url_prefix = url_prefix_; |
77 // Makes sure the auto update is not triggered. The tests will force the | 77 // Makes sure the auto update is not triggered. The tests will force the |
78 // update when needed. | 78 // update when needed. |
79 config.disable_auto_update = true; | 79 config.disable_auto_update = true; |
80 #if defined(OS_ANDROID) | 80 #if defined(OS_ANDROID) |
81 config.disable_connection_check = true; | 81 config.disable_connection_check = true; |
82 #endif | 82 #endif |
83 config.client_name = "browser_tests"; | 83 config.client_name = "browser_tests"; |
84 return config; | 84 return config; |
85 } | 85 } |
86 | 86 |
87 private: | 87 private: |
88 virtual ~FakeSafeBrowsingService() {} | 88 ~FakeSafeBrowsingService() override {} |
89 | 89 |
90 std::string url_prefix_; | 90 std::string url_prefix_; |
91 | 91 |
92 DISALLOW_COPY_AND_ASSIGN(FakeSafeBrowsingService); | 92 DISALLOW_COPY_AND_ASSIGN(FakeSafeBrowsingService); |
93 }; | 93 }; |
94 | 94 |
95 // Factory that creates FakeSafeBrowsingService instances. | 95 // Factory that creates FakeSafeBrowsingService instances. |
96 class TestSafeBrowsingServiceFactory : public SafeBrowsingServiceFactory { | 96 class TestSafeBrowsingServiceFactory : public SafeBrowsingServiceFactory { |
97 public: | 97 public: |
98 explicit TestSafeBrowsingServiceFactory(const std::string& url_prefix) | 98 explicit TestSafeBrowsingServiceFactory(const std::string& url_prefix) |
99 : url_prefix_(url_prefix) {} | 99 : url_prefix_(url_prefix) {} |
100 | 100 |
101 virtual SafeBrowsingService* CreateSafeBrowsingService() override { | 101 SafeBrowsingService* CreateSafeBrowsingService() override { |
102 return new FakeSafeBrowsingService(url_prefix_); | 102 return new FakeSafeBrowsingService(url_prefix_); |
103 } | 103 } |
104 | 104 |
105 private: | 105 private: |
106 std::string url_prefix_; | 106 std::string url_prefix_; |
107 }; | 107 }; |
108 | 108 |
109 // A SafeBrowingDatabase class that allows us to inject the malicious URLs. | 109 // A SafeBrowingDatabase class that allows us to inject the malicious URLs. |
110 class TestSafeBrowsingDatabase : public SafeBrowsingDatabase { | 110 class TestSafeBrowsingDatabase : public SafeBrowsingDatabase { |
111 public: | 111 public: |
112 TestSafeBrowsingDatabase() {} | 112 TestSafeBrowsingDatabase() {} |
113 | 113 |
114 virtual ~TestSafeBrowsingDatabase() {} | 114 ~TestSafeBrowsingDatabase() override {} |
115 | 115 |
116 // Initializes the database with the given filename. | 116 // Initializes the database with the given filename. |
117 virtual void Init(const base::FilePath& filename) override {} | 117 void Init(const base::FilePath& filename) override {} |
118 | 118 |
119 // Deletes the current database and creates a new one. | 119 // Deletes the current database and creates a new one. |
120 virtual bool ResetDatabase() override { | 120 bool ResetDatabase() override { |
121 badurls_.clear(); | 121 badurls_.clear(); |
122 return true; | 122 return true; |
123 } | 123 } |
124 | 124 |
125 // Called on the IO thread to check if the given URL is safe or not. If we | 125 // Called on the IO thread to check if the given URL is safe or not. If we |
126 // can synchronously determine that the URL is safe, CheckUrl returns true, | 126 // can synchronously determine that the URL is safe, CheckUrl returns true, |
127 // otherwise it returns false. | 127 // otherwise it returns false. |
128 virtual bool ContainsBrowseUrl( | 128 bool ContainsBrowseUrl(const GURL& url, |
129 const GURL& url, | 129 std::vector<SBPrefix>* prefix_hits, |
130 std::vector<SBPrefix>* prefix_hits, | 130 std::vector<SBFullHashResult>* cache_hits) override { |
131 std::vector<SBFullHashResult>* cache_hits) override { | |
132 cache_hits->clear(); | 131 cache_hits->clear(); |
133 return ContainsUrl(safe_browsing_util::MALWARE, | 132 return ContainsUrl(safe_browsing_util::MALWARE, |
134 safe_browsing_util::PHISH, | 133 safe_browsing_util::PHISH, |
135 std::vector<GURL>(1, url), | 134 std::vector<GURL>(1, url), |
136 prefix_hits); | 135 prefix_hits); |
137 } | 136 } |
138 virtual bool ContainsDownloadUrl( | 137 bool ContainsDownloadUrl(const std::vector<GURL>& urls, |
139 const std::vector<GURL>& urls, | 138 std::vector<SBPrefix>* prefix_hits) override { |
140 std::vector<SBPrefix>* prefix_hits) override { | |
141 bool found = ContainsUrl(safe_browsing_util::BINURL, | 139 bool found = ContainsUrl(safe_browsing_util::BINURL, |
142 safe_browsing_util::BINURL, | 140 safe_browsing_util::BINURL, |
143 urls, | 141 urls, |
144 prefix_hits); | 142 prefix_hits); |
145 if (!found) | 143 if (!found) |
146 return false; | 144 return false; |
147 DCHECK_LE(1U, prefix_hits->size()); | 145 DCHECK_LE(1U, prefix_hits->size()); |
148 return true; | 146 return true; |
149 } | 147 } |
150 virtual bool ContainsCsdWhitelistedUrl(const GURL& url) override { | 148 bool ContainsCsdWhitelistedUrl(const GURL& url) override { return true; } |
| 149 bool ContainsDownloadWhitelistedString(const std::string& str) override { |
151 return true; | 150 return true; |
152 } | 151 } |
153 virtual bool ContainsDownloadWhitelistedString( | 152 bool ContainsDownloadWhitelistedUrl(const GURL& url) override { return true; } |
154 const std::string& str) override { | 153 bool ContainsExtensionPrefixes(const std::vector<SBPrefix>& prefixes, |
| 154 std::vector<SBPrefix>* prefix_hits) override { |
155 return true; | 155 return true; |
156 } | 156 } |
157 virtual bool ContainsDownloadWhitelistedUrl(const GURL& url) override { | 157 bool ContainsSideEffectFreeWhitelistUrl(const GURL& url) override { |
158 return true; | 158 return true; |
159 } | 159 } |
160 virtual bool ContainsExtensionPrefixes( | 160 bool ContainsMalwareIP(const std::string& ip_address) override { |
161 const std::vector<SBPrefix>& prefixes, | |
162 std::vector<SBPrefix>* prefix_hits) override { | |
163 return true; | 161 return true; |
164 } | 162 } |
165 virtual bool ContainsSideEffectFreeWhitelistUrl(const GURL& url) override { | 163 bool UpdateStarted(std::vector<SBListChunkRanges>* lists) override { |
166 return true; | |
167 } | |
168 virtual bool ContainsMalwareIP(const std::string& ip_address) override { | |
169 return true; | |
170 } | |
171 virtual bool UpdateStarted(std::vector<SBListChunkRanges>* lists) override { | |
172 ADD_FAILURE() << "Not implemented."; | 164 ADD_FAILURE() << "Not implemented."; |
173 return false; | 165 return false; |
174 } | 166 } |
175 virtual void InsertChunks( | 167 void InsertChunks(const std::string& list_name, |
176 const std::string& list_name, | 168 const std::vector<SBChunkData*>& chunks) override { |
177 const std::vector<SBChunkData*>& chunks) override { | |
178 ADD_FAILURE() << "Not implemented."; | 169 ADD_FAILURE() << "Not implemented."; |
179 } | 170 } |
180 virtual void DeleteChunks( | 171 void DeleteChunks(const std::vector<SBChunkDelete>& chunk_deletes) override { |
181 const std::vector<SBChunkDelete>& chunk_deletes) override { | |
182 ADD_FAILURE() << "Not implemented."; | 172 ADD_FAILURE() << "Not implemented."; |
183 } | 173 } |
184 virtual void UpdateFinished(bool update_succeeded) override { | 174 void UpdateFinished(bool update_succeeded) override { |
185 ADD_FAILURE() << "Not implemented."; | 175 ADD_FAILURE() << "Not implemented."; |
186 } | 176 } |
187 virtual void CacheHashResults( | 177 void CacheHashResults(const std::vector<SBPrefix>& prefixes, |
188 const std::vector<SBPrefix>& prefixes, | 178 const std::vector<SBFullHashResult>& cache_hits, |
189 const std::vector<SBFullHashResult>& cache_hits, | 179 const base::TimeDelta& cache_lifetime) override { |
190 const base::TimeDelta& cache_lifetime) override { | |
191 // Do nothing for the cache. | 180 // Do nothing for the cache. |
192 } | 181 } |
193 virtual bool IsMalwareIPMatchKillSwitchOn() override { | 182 bool IsMalwareIPMatchKillSwitchOn() override { return false; } |
194 return false; | 183 bool IsCsdWhitelistKillSwitchOn() override { return false; } |
195 } | |
196 virtual bool IsCsdWhitelistKillSwitchOn() override { | |
197 return false; | |
198 } | |
199 | 184 |
200 // Fill up the database with test URL. | 185 // Fill up the database with test URL. |
201 void AddUrl(const GURL& url, | 186 void AddUrl(const GURL& url, |
202 int list_id, | 187 int list_id, |
203 const std::vector<SBPrefix>& prefix_hits) { | 188 const std::vector<SBPrefix>& prefix_hits) { |
204 badurls_[url.spec()].list_id = list_id; | 189 badurls_[url.spec()].list_id = list_id; |
205 badurls_[url.spec()].prefix_hits = prefix_hits; | 190 badurls_[url.spec()].prefix_hits = prefix_hits; |
206 } | 191 } |
207 | 192 |
208 // Fill up the database with test hash digest. | 193 // Fill up the database with test hash digest. |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 } | 226 } |
242 | 227 |
243 base::hash_map<std::string, Hits> badurls_; | 228 base::hash_map<std::string, Hits> badurls_; |
244 base::hash_set<SBPrefix> download_digest_prefix_; | 229 base::hash_set<SBPrefix> download_digest_prefix_; |
245 }; | 230 }; |
246 | 231 |
247 // Factory that creates TestSafeBrowsingDatabase instances. | 232 // Factory that creates TestSafeBrowsingDatabase instances. |
248 class TestSafeBrowsingDatabaseFactory : public SafeBrowsingDatabaseFactory { | 233 class TestSafeBrowsingDatabaseFactory : public SafeBrowsingDatabaseFactory { |
249 public: | 234 public: |
250 TestSafeBrowsingDatabaseFactory() : db_(NULL) {} | 235 TestSafeBrowsingDatabaseFactory() : db_(NULL) {} |
251 virtual ~TestSafeBrowsingDatabaseFactory() {} | 236 ~TestSafeBrowsingDatabaseFactory() override {} |
252 | 237 |
253 virtual SafeBrowsingDatabase* CreateSafeBrowsingDatabase( | 238 SafeBrowsingDatabase* CreateSafeBrowsingDatabase( |
254 bool enable_download_protection, | 239 bool enable_download_protection, |
255 bool enable_client_side_whitelist, | 240 bool enable_client_side_whitelist, |
256 bool enable_download_whitelist, | 241 bool enable_download_whitelist, |
257 bool enable_extension_blacklist, | 242 bool enable_extension_blacklist, |
258 bool enable_side_effect_free_whitelist, | 243 bool enable_side_effect_free_whitelist, |
259 bool enable_ip_blacklist) override { | 244 bool enable_ip_blacklist) override { |
260 db_ = new TestSafeBrowsingDatabase(); | 245 db_ = new TestSafeBrowsingDatabase(); |
261 return db_; | 246 return db_; |
262 } | 247 } |
263 TestSafeBrowsingDatabase* GetDb() { | 248 TestSafeBrowsingDatabase* GetDb() { |
264 return db_; | 249 return db_; |
265 } | 250 } |
266 private: | 251 private: |
267 // Owned by the SafebrowsingService. | 252 // Owned by the SafebrowsingService. |
268 TestSafeBrowsingDatabase* db_; | 253 TestSafeBrowsingDatabase* db_; |
269 }; | 254 }; |
270 | 255 |
271 // A TestProtocolManager that could return fixed responses from | 256 // A TestProtocolManager that could return fixed responses from |
272 // safebrowsing server for testing purpose. | 257 // safebrowsing server for testing purpose. |
273 class TestProtocolManager : public SafeBrowsingProtocolManager { | 258 class TestProtocolManager : public SafeBrowsingProtocolManager { |
274 public: | 259 public: |
275 TestProtocolManager(SafeBrowsingProtocolManagerDelegate* delegate, | 260 TestProtocolManager(SafeBrowsingProtocolManagerDelegate* delegate, |
276 net::URLRequestContextGetter* request_context_getter, | 261 net::URLRequestContextGetter* request_context_getter, |
277 const SafeBrowsingProtocolConfig& config) | 262 const SafeBrowsingProtocolConfig& config) |
278 : SafeBrowsingProtocolManager(delegate, request_context_getter, config) { | 263 : SafeBrowsingProtocolManager(delegate, request_context_getter, config) { |
279 create_count_++; | 264 create_count_++; |
280 } | 265 } |
281 | 266 |
282 virtual ~TestProtocolManager() { | 267 ~TestProtocolManager() override { delete_count_++; } |
283 delete_count_++; | |
284 } | |
285 | 268 |
286 // This function is called when there is a prefix hit in local safebrowsing | 269 // This function is called when there is a prefix hit in local safebrowsing |
287 // database and safebrowsing service issues a get hash request to backends. | 270 // database and safebrowsing service issues a get hash request to backends. |
288 // We return a result from the prefilled full_hashes_ hash_map to simulate | 271 // We return a result from the prefilled full_hashes_ hash_map to simulate |
289 // server's response. At the same time, latency is added to simulate real | 272 // server's response. At the same time, latency is added to simulate real |
290 // life network issues. | 273 // life network issues. |
291 virtual void GetFullHash( | 274 void GetFullHash(const std::vector<SBPrefix>& prefixes, |
292 const std::vector<SBPrefix>& prefixes, | 275 SafeBrowsingProtocolManager::FullHashCallback callback, |
293 SafeBrowsingProtocolManager::FullHashCallback callback, | 276 bool is_download) override { |
294 bool is_download) override { | |
295 BrowserThread::PostDelayedTask( | 277 BrowserThread::PostDelayedTask( |
296 BrowserThread::IO, FROM_HERE, | 278 BrowserThread::IO, FROM_HERE, |
297 base::Bind(InvokeFullHashCallback, callback, full_hashes_), | 279 base::Bind(InvokeFullHashCallback, callback, full_hashes_), |
298 delay_); | 280 delay_); |
299 } | 281 } |
300 | 282 |
301 // Prepare the GetFullHash results for the next request. | 283 // Prepare the GetFullHash results for the next request. |
302 void SetGetFullHashResponse(const SBFullHashResult& full_hash_result) { | 284 void SetGetFullHashResponse(const SBFullHashResult& full_hash_result) { |
303 full_hashes_.clear(); | 285 full_hashes_.clear(); |
304 full_hashes_.push_back(full_hash_result); | 286 full_hashes_.push_back(full_hash_result); |
(...skipping 20 matching lines...) Expand all Loading... |
325 | 307 |
326 // static | 308 // static |
327 int TestProtocolManager::create_count_ = 0; | 309 int TestProtocolManager::create_count_ = 0; |
328 // static | 310 // static |
329 int TestProtocolManager::delete_count_ = 0; | 311 int TestProtocolManager::delete_count_ = 0; |
330 | 312 |
331 // Factory that creates TestProtocolManager instances. | 313 // Factory that creates TestProtocolManager instances. |
332 class TestSBProtocolManagerFactory : public SBProtocolManagerFactory { | 314 class TestSBProtocolManagerFactory : public SBProtocolManagerFactory { |
333 public: | 315 public: |
334 TestSBProtocolManagerFactory() : pm_(NULL) {} | 316 TestSBProtocolManagerFactory() : pm_(NULL) {} |
335 virtual ~TestSBProtocolManagerFactory() {} | 317 ~TestSBProtocolManagerFactory() override {} |
336 | 318 |
337 virtual SafeBrowsingProtocolManager* CreateProtocolManager( | 319 SafeBrowsingProtocolManager* CreateProtocolManager( |
338 SafeBrowsingProtocolManagerDelegate* delegate, | 320 SafeBrowsingProtocolManagerDelegate* delegate, |
339 net::URLRequestContextGetter* request_context_getter, | 321 net::URLRequestContextGetter* request_context_getter, |
340 const SafeBrowsingProtocolConfig& config) override { | 322 const SafeBrowsingProtocolConfig& config) override { |
341 pm_ = new TestProtocolManager(delegate, request_context_getter, config); | 323 pm_ = new TestProtocolManager(delegate, request_context_getter, config); |
342 return pm_; | 324 return pm_; |
343 } | 325 } |
344 | 326 |
345 TestProtocolManager* GetProtocolManager() { | 327 TestProtocolManager* GetProtocolManager() { |
346 return pm_; | 328 return pm_; |
347 } | 329 } |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
507 METADATA_LANDING, | 489 METADATA_LANDING, |
508 METADATA_DISTRIBUTION, | 490 METADATA_DISTRIBUTION, |
509 }; | 491 }; |
510 | 492 |
511 class SafeBrowsingServiceMetadataTest | 493 class SafeBrowsingServiceMetadataTest |
512 : public SafeBrowsingServiceTest, | 494 : public SafeBrowsingServiceTest, |
513 public ::testing::WithParamInterface<MalwareMetadataTestType> { | 495 public ::testing::WithParamInterface<MalwareMetadataTestType> { |
514 public: | 496 public: |
515 SafeBrowsingServiceMetadataTest() {} | 497 SafeBrowsingServiceMetadataTest() {} |
516 | 498 |
517 virtual void SetUpOnMainThread() override { | 499 void SetUpOnMainThread() override { |
518 SafeBrowsingServiceTest::SetUpOnMainThread(); | 500 SafeBrowsingServiceTest::SetUpOnMainThread(); |
519 g_browser_process->safe_browsing_service()->ui_manager()->AddObserver( | 501 g_browser_process->safe_browsing_service()->ui_manager()->AddObserver( |
520 &observer_); | 502 &observer_); |
521 } | 503 } |
522 | 504 |
523 virtual void TearDownOnMainThread() override { | 505 void TearDownOnMainThread() override { |
524 g_browser_process->safe_browsing_service()->ui_manager()->RemoveObserver( | 506 g_browser_process->safe_browsing_service()->ui_manager()->RemoveObserver( |
525 &observer_); | 507 &observer_); |
526 SafeBrowsingServiceTest::TearDownOnMainThread(); | 508 SafeBrowsingServiceTest::TearDownOnMainThread(); |
527 } | 509 } |
528 | 510 |
529 void GenUrlFullhashResultWithMetadata(const GURL& url, | 511 void GenUrlFullhashResultWithMetadata(const GURL& url, |
530 SBFullHashResult* full_hash) { | 512 SBFullHashResult* full_hash) { |
531 GenUrlFullhashResult(url, safe_browsing_util::MALWARE, full_hash); | 513 GenUrlFullhashResult(url, safe_browsing_util::MALWARE, full_hash); |
532 | 514 |
533 safe_browsing::MalwarePatternType proto; | 515 safe_browsing::MalwarePatternType proto; |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
737 void CheckDownloadUrl(const std::vector<GURL>& url_chain) { | 719 void CheckDownloadUrl(const std::vector<GURL>& url_chain) { |
738 BrowserThread::PostTask( | 720 BrowserThread::PostTask( |
739 BrowserThread::IO, FROM_HERE, | 721 BrowserThread::IO, FROM_HERE, |
740 base::Bind(&TestSBClient::CheckDownloadUrlOnIOThread, | 722 base::Bind(&TestSBClient::CheckDownloadUrlOnIOThread, |
741 this, url_chain)); | 723 this, url_chain)); |
742 content::RunMessageLoop(); // Will stop in OnCheckDownloadUrlResult. | 724 content::RunMessageLoop(); // Will stop in OnCheckDownloadUrlResult. |
743 } | 725 } |
744 | 726 |
745 private: | 727 private: |
746 friend class base::RefCountedThreadSafe<TestSBClient>; | 728 friend class base::RefCountedThreadSafe<TestSBClient>; |
747 virtual ~TestSBClient() {} | 729 ~TestSBClient() override {} |
748 | 730 |
749 void CheckDownloadUrlOnIOThread(const std::vector<GURL>& url_chain) { | 731 void CheckDownloadUrlOnIOThread(const std::vector<GURL>& url_chain) { |
750 safe_browsing_service_->database_manager()-> | 732 safe_browsing_service_->database_manager()-> |
751 CheckDownloadUrl(url_chain, this); | 733 CheckDownloadUrl(url_chain, this); |
752 } | 734 } |
753 | 735 |
754 // Called when the result of checking a download URL is known. | 736 // Called when the result of checking a download URL is known. |
755 virtual void OnCheckDownloadUrlResult(const std::vector<GURL>& url_chain, | 737 void OnCheckDownloadUrlResult(const std::vector<GURL>& url_chain, |
756 SBThreatType threat_type) override { | 738 SBThreatType threat_type) override { |
757 threat_type_ = threat_type; | 739 threat_type_ = threat_type; |
758 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 740 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
759 base::Bind(&TestSBClient::DownloadCheckDone, this)); | 741 base::Bind(&TestSBClient::DownloadCheckDone, this)); |
760 } | 742 } |
761 | 743 |
762 void DownloadCheckDone() { | 744 void DownloadCheckDone() { |
763 base::MessageLoopForUI::current()->Quit(); | 745 base::MessageLoopForUI::current()->Quit(); |
764 } | 746 } |
765 | 747 |
766 SBThreatType threat_type_; | 748 SBThreatType threat_type_; |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1006 | 988 |
1007 InProcessBrowserTest::SetUp(); | 989 InProcessBrowserTest::SetUp(); |
1008 } | 990 } |
1009 | 991 |
1010 virtual void TearDown() override { | 992 virtual void TearDown() override { |
1011 InProcessBrowserTest::TearDown(); | 993 InProcessBrowserTest::TearDown(); |
1012 | 994 |
1013 SafeBrowsingService::RegisterFactory(NULL); | 995 SafeBrowsingService::RegisterFactory(NULL); |
1014 } | 996 } |
1015 | 997 |
1016 virtual bool SetUpUserDataDirectory() override { | 998 bool SetUpUserDataDirectory() override { |
1017 base::FilePath cookie_path( | 999 base::FilePath cookie_path( |
1018 SafeBrowsingService::GetCookieFilePathForTesting()); | 1000 SafeBrowsingService::GetCookieFilePathForTesting()); |
1019 EXPECT_FALSE(base::PathExists(cookie_path)); | 1001 EXPECT_FALSE(base::PathExists(cookie_path)); |
1020 | 1002 |
1021 base::FilePath test_dir; | 1003 base::FilePath test_dir; |
1022 if (!PathService::Get(chrome::DIR_TEST_DATA, &test_dir)) { | 1004 if (!PathService::Get(chrome::DIR_TEST_DATA, &test_dir)) { |
1023 EXPECT_TRUE(false); | 1005 EXPECT_TRUE(false); |
1024 return false; | 1006 return false; |
1025 } | 1007 } |
1026 | 1008 |
(...skipping 25 matching lines...) Expand all Loading... |
1052 return false; | 1034 return false; |
1053 } | 1035 } |
1054 if (!smt.Run()) { | 1036 if (!smt.Run()) { |
1055 EXPECT_TRUE(false); | 1037 EXPECT_TRUE(false); |
1056 return false; | 1038 return false; |
1057 } | 1039 } |
1058 | 1040 |
1059 return InProcessBrowserTest::SetUpUserDataDirectory(); | 1041 return InProcessBrowserTest::SetUpUserDataDirectory(); |
1060 } | 1042 } |
1061 | 1043 |
1062 virtual void TearDownInProcessBrowserTestFixture() override { | 1044 void TearDownInProcessBrowserTestFixture() override { |
1063 InProcessBrowserTest::TearDownInProcessBrowserTestFixture(); | 1045 InProcessBrowserTest::TearDownInProcessBrowserTestFixture(); |
1064 | 1046 |
1065 sql::Connection db; | 1047 sql::Connection db; |
1066 base::FilePath cookie_path( | 1048 base::FilePath cookie_path( |
1067 SafeBrowsingService::GetCookieFilePathForTesting()); | 1049 SafeBrowsingService::GetCookieFilePathForTesting()); |
1068 ASSERT_TRUE(db.Open(cookie_path)); | 1050 ASSERT_TRUE(db.Open(cookie_path)); |
1069 | 1051 |
1070 sql::Statement smt(db.GetUniqueStatement( | 1052 sql::Statement smt(db.GetUniqueStatement( |
1071 "SELECT name, value FROM cookies ORDER BY name")); | 1053 "SELECT name, value FROM cookies ORDER BY name")); |
1072 ASSERT_TRUE(smt.is_valid()); | 1054 ASSERT_TRUE(smt.is_valid()); |
1073 | 1055 |
1074 ASSERT_TRUE(smt.Step()); | 1056 ASSERT_TRUE(smt.Step()); |
1075 ASSERT_EQ("a", smt.ColumnString(0)); | 1057 ASSERT_EQ("a", smt.ColumnString(0)); |
1076 ASSERT_EQ("b", smt.ColumnString(1)); | 1058 ASSERT_EQ("b", smt.ColumnString(1)); |
1077 ASSERT_TRUE(smt.Step()); | 1059 ASSERT_TRUE(smt.Step()); |
1078 ASSERT_EQ("c", smt.ColumnString(0)); | 1060 ASSERT_EQ("c", smt.ColumnString(0)); |
1079 ASSERT_EQ("d", smt.ColumnString(1)); | 1061 ASSERT_EQ("d", smt.ColumnString(1)); |
1080 EXPECT_FALSE(smt.Step()); | 1062 EXPECT_FALSE(smt.Step()); |
1081 } | 1063 } |
1082 | 1064 |
1083 virtual void SetUpOnMainThread() override { | 1065 void SetUpOnMainThread() override { |
1084 sb_service_ = g_browser_process->safe_browsing_service(); | 1066 sb_service_ = g_browser_process->safe_browsing_service(); |
1085 ASSERT_TRUE(sb_service_.get() != NULL); | 1067 ASSERT_TRUE(sb_service_.get() != NULL); |
1086 } | 1068 } |
1087 | 1069 |
1088 virtual void TearDownOnMainThread() override { | 1070 void TearDownOnMainThread() override { sb_service_ = NULL; } |
1089 sb_service_ = NULL; | |
1090 } | |
1091 | 1071 |
1092 void ForceUpdate() { | 1072 void ForceUpdate() { |
1093 sb_service_->protocol_manager()->ForceScheduleNextUpdate( | 1073 sb_service_->protocol_manager()->ForceScheduleNextUpdate( |
1094 base::TimeDelta::FromSeconds(0)); | 1074 base::TimeDelta::FromSeconds(0)); |
1095 } | 1075 } |
1096 | 1076 |
1097 scoped_refptr<SafeBrowsingService> sb_service_; | 1077 scoped_refptr<SafeBrowsingService> sb_service_; |
1098 | 1078 |
1099 private: | 1079 private: |
1100 scoped_ptr<TestSafeBrowsingServiceFactory> sb_factory_; | 1080 scoped_ptr<TestSafeBrowsingServiceFactory> sb_factory_; |
1101 | 1081 |
1102 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingDatabaseManagerCookieTest); | 1082 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingDatabaseManagerCookieTest); |
1103 }; | 1083 }; |
1104 | 1084 |
1105 // Test that a Safe Browsing database update request both sends cookies and can | 1085 // Test that a Safe Browsing database update request both sends cookies and can |
1106 // save cookies. | 1086 // save cookies. |
1107 IN_PROC_BROWSER_TEST_F(SafeBrowsingDatabaseManagerCookieTest, | 1087 IN_PROC_BROWSER_TEST_F(SafeBrowsingDatabaseManagerCookieTest, |
1108 TestSBUpdateCookies) { | 1088 TestSBUpdateCookies) { |
1109 content::WindowedNotificationObserver observer( | 1089 content::WindowedNotificationObserver observer( |
1110 chrome::NOTIFICATION_SAFE_BROWSING_UPDATE_COMPLETE, | 1090 chrome::NOTIFICATION_SAFE_BROWSING_UPDATE_COMPLETE, |
1111 content::Source<SafeBrowsingDatabaseManager>( | 1091 content::Source<SafeBrowsingDatabaseManager>( |
1112 sb_service_->database_manager().get())); | 1092 sb_service_->database_manager().get())); |
1113 BrowserThread::PostTask( | 1093 BrowserThread::PostTask( |
1114 BrowserThread::IO, | 1094 BrowserThread::IO, |
1115 FROM_HERE, | 1095 FROM_HERE, |
1116 base::Bind(&SafeBrowsingDatabaseManagerCookieTest::ForceUpdate, this)); | 1096 base::Bind(&SafeBrowsingDatabaseManagerCookieTest::ForceUpdate, this)); |
1117 observer.Wait(); | 1097 observer.Wait(); |
1118 } | 1098 } |
OLD | NEW |