Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "chrome/browser/safe_browsing/incident_reporting/last_download_finder.h " | 5 #include "chrome/browser/safe_browsing/incident_reporting/last_download_finder.h " |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 146 profile_name, | 146 profile_name, |
| 147 prefs.Pass(), | 147 prefs.Pass(), |
| 148 base::UTF8ToUTF16(profile_name), // user_name | 148 base::UTF8ToUTF16(profile_name), // user_name |
| 149 0, // avatar_id | 149 0, // avatar_id |
| 150 std::string(), // supervised_user_id | 150 std::string(), // supervised_user_id |
| 151 factories); | 151 factories); |
| 152 | 152 |
| 153 return profile; | 153 return profile; |
| 154 } | 154 } |
| 155 | 155 |
| 156 safe_browsing::LastDownloadFinder::DownloadDetailsGetter | |
|
Alexei Svitkine (slow)
2014/10/27 17:09:07
Make the code in this file be in safe_browsing nam
grt (UTC plus 2)
2014/10/30 15:11:40
Done.
| |
| 157 GetDownloadDetailsGetter() { | |
| 158 return base::Bind(&LastDownloadFinderTest::GetDownloadDetails, | |
| 159 base::Unretained(this)); | |
| 160 } | |
| 161 | |
| 156 void AddDownload(Profile* profile, const history::DownloadRow& download) { | 162 void AddDownload(Profile* profile, const history::DownloadRow& download) { |
| 157 base::RunLoop run_loop; | 163 base::RunLoop run_loop; |
| 158 | 164 |
| 159 HistoryService* history_service = | 165 HistoryService* history_service = |
| 160 HistoryServiceFactory::GetForProfile(profile, Profile::EXPLICIT_ACCESS); | 166 HistoryServiceFactory::GetForProfile(profile, Profile::EXPLICIT_ACCESS); |
| 161 history_service->CreateDownload( | 167 history_service->CreateDownload( |
| 162 download, | 168 download, |
| 163 base::Bind(&LastDownloadFinderTest::ContinueOnDownloadCreated, | 169 base::Bind(&LastDownloadFinderTest::ContinueOnDownloadCreated, |
| 164 base::Unretained(this), | 170 base::Unretained(this), |
| 165 run_loop.QuitClosure())); | 171 run_loop.QuitClosure())); |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 188 // download or an empty pointer if none was found. | 194 // download or an empty pointer if none was found. |
| 189 scoped_ptr<safe_browsing::ClientIncidentReport_DownloadDetails> | 195 scoped_ptr<safe_browsing::ClientIncidentReport_DownloadDetails> |
| 190 RunLastDownloadFinder() { | 196 RunLastDownloadFinder() { |
| 191 base::RunLoop run_loop; | 197 base::RunLoop run_loop; |
| 192 | 198 |
| 193 scoped_ptr<safe_browsing::ClientIncidentReport_DownloadDetails> | 199 scoped_ptr<safe_browsing::ClientIncidentReport_DownloadDetails> |
| 194 last_download; | 200 last_download; |
| 195 | 201 |
| 196 scoped_ptr<safe_browsing::LastDownloadFinder> finder( | 202 scoped_ptr<safe_browsing::LastDownloadFinder> finder( |
| 197 safe_browsing::LastDownloadFinder::Create( | 203 safe_browsing::LastDownloadFinder::Create( |
| 204 GetDownloadDetailsGetter(), | |
| 198 base::Bind(&LastDownloadFinderTest::OnLastDownload, | 205 base::Bind(&LastDownloadFinderTest::OnLastDownload, |
| 199 base::Unretained(this), | 206 base::Unretained(this), |
| 200 &last_download, | 207 &last_download, |
| 201 run_loop.QuitClosure()))); | 208 run_loop.QuitClosure()))); |
| 202 | 209 |
| 203 if (finder) | 210 if (finder) |
| 204 run_loop.Run(); | 211 run_loop.Run(); |
| 205 | 212 |
| 206 return last_download.Pass(); | 213 return last_download.Pass(); |
| 207 } | 214 } |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 248 // created and runs |closure|. | 255 // created and runs |closure|. |
| 249 void ContinueOnDownloadCreated(const base::Closure& closure, bool created) { | 256 void ContinueOnDownloadCreated(const base::Closure& closure, bool created) { |
| 250 ASSERT_TRUE(created); | 257 ASSERT_TRUE(created); |
| 251 closure.Run(); | 258 closure.Run(); |
| 252 } | 259 } |
| 253 | 260 |
| 254 // A HistoryService::DownloadCreateCallback that asserts that the download was | 261 // A HistoryService::DownloadCreateCallback that asserts that the download was |
| 255 // created. | 262 // created. |
| 256 void OnDownloadCreated(bool created) { ASSERT_TRUE(created); } | 263 void OnDownloadCreated(bool created) { ASSERT_TRUE(created); } |
| 257 | 264 |
| 265 void GetDownloadDetails( | |
| 266 content::BrowserContext* context, | |
| 267 const safe_browsing::DownloadMetadataManager::GetDownloadDetailsCallback& | |
| 268 callback) { | |
| 269 callback.Run( | |
| 270 scoped_ptr<safe_browsing::ClientIncidentReport_DownloadDetails>()); | |
| 271 } | |
| 272 | |
| 258 int profile_number_; | 273 int profile_number_; |
| 259 }; | 274 }; |
| 260 | 275 |
| 261 // Tests that nothing happens if there are no profiles at all. | 276 // Tests that nothing happens if there are no profiles at all. |
| 262 TEST_F(LastDownloadFinderTest, NoProfiles) { | 277 TEST_F(LastDownloadFinderTest, NoProfiles) { |
| 263 ExpectNoDownloadFound(RunLastDownloadFinder()); | 278 ExpectNoDownloadFound(RunLastDownloadFinder()); |
| 264 } | 279 } |
| 265 | 280 |
| 266 // Tests that nothing happens other than the callback being invoked if there are | 281 // Tests that nothing happens other than the callback being invoked if there are |
| 267 // no profiles participating in safe browsing. | 282 // no profiles participating in safe browsing. |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 289 // Tests that there is no crash if the finder is deleted before results arrive. | 304 // Tests that there is no crash if the finder is deleted before results arrive. |
| 290 TEST_F(LastDownloadFinderTest, DeleteBeforeResults) { | 305 TEST_F(LastDownloadFinderTest, DeleteBeforeResults) { |
| 291 // Create a profile with a history service that is opted-in. | 306 // Create a profile with a history service that is opted-in. |
| 292 TestingProfile* profile = CreateProfile(SAFE_BROWSING_OPT_IN); | 307 TestingProfile* profile = CreateProfile(SAFE_BROWSING_OPT_IN); |
| 293 | 308 |
| 294 // Add a download. | 309 // Add a download. |
| 295 AddDownload(profile, CreateTestDownloadRow()); | 310 AddDownload(profile, CreateTestDownloadRow()); |
| 296 | 311 |
| 297 // Start a finder and kill it before the search completes. | 312 // Start a finder and kill it before the search completes. |
| 298 safe_browsing::LastDownloadFinder::Create( | 313 safe_browsing::LastDownloadFinder::Create( |
| 314 GetDownloadDetailsGetter(), | |
| 299 base::Bind(&LastDownloadFinderTest::NeverCalled, base::Unretained(this))) | 315 base::Bind(&LastDownloadFinderTest::NeverCalled, base::Unretained(this))) |
| 300 .reset(); | 316 .reset(); |
| 301 | 317 |
| 302 // Flush tasks on the history backend thread. | 318 // Flush tasks on the history backend thread. |
| 303 FlushHistoryBackend(profile); | 319 FlushHistoryBackend(profile); |
| 304 } | 320 } |
| 305 | 321 |
| 306 // Tests that a download in profile added after the search is begun is found. | 322 // Tests that a download in profile added after the search is begun is found. |
| 307 TEST_F(LastDownloadFinderTest, AddProfileAfterStarting) { | 323 TEST_F(LastDownloadFinderTest, AddProfileAfterStarting) { |
| 308 // Create a profile with a history service that is opted-in. | 324 // Create a profile with a history service that is opted-in. |
| 309 CreateProfile(SAFE_BROWSING_OPT_IN); | 325 CreateProfile(SAFE_BROWSING_OPT_IN); |
| 310 | 326 |
| 311 scoped_ptr<safe_browsing::ClientIncidentReport_DownloadDetails> last_download; | 327 scoped_ptr<safe_browsing::ClientIncidentReport_DownloadDetails> last_download; |
| 312 base::RunLoop run_loop; | 328 base::RunLoop run_loop; |
| 313 | 329 |
| 314 // Post a task that will create a second profile once the main loop is run. | 330 // Post a task that will create a second profile once the main loop is run. |
| 315 base::MessageLoop::current()->PostTask( | 331 base::MessageLoop::current()->PostTask( |
| 316 FROM_HERE, | 332 FROM_HERE, |
| 317 base::Bind(&LastDownloadFinderTest::CreateProfileWithDownload, | 333 base::Bind(&LastDownloadFinderTest::CreateProfileWithDownload, |
| 318 base::Unretained(this))); | 334 base::Unretained(this))); |
| 319 | 335 |
| 320 // Create a finder that we expect will find a download in the second profile. | 336 // Create a finder that we expect will find a download in the second profile. |
| 321 scoped_ptr<safe_browsing::LastDownloadFinder> finder( | 337 scoped_ptr<safe_browsing::LastDownloadFinder> finder( |
| 322 safe_browsing::LastDownloadFinder::Create( | 338 safe_browsing::LastDownloadFinder::Create( |
| 339 GetDownloadDetailsGetter(), | |
| 323 base::Bind(&LastDownloadFinderTest::OnLastDownload, | 340 base::Bind(&LastDownloadFinderTest::OnLastDownload, |
| 324 base::Unretained(this), | 341 base::Unretained(this), |
| 325 &last_download, | 342 &last_download, |
| 326 run_loop.QuitClosure()))); | 343 run_loop.QuitClosure()))); |
| 327 | 344 |
| 328 run_loop.Run(); | 345 run_loop.Run(); |
| 329 | 346 |
| 330 ExpectFoundTestDownload(last_download.Pass()); | 347 ExpectFoundTestDownload(last_download.Pass()); |
| 331 } | 348 } |
| OLD | NEW |