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 #include <sstream> | 5 #include <sstream> |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/files/file.h" | 10 #include "base/files/file.h" |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 manager_->GetAllDownloads(&downloads); | 129 manager_->GetAllDownloads(&downloads); |
130 if (!downloads.empty()) | 130 if (!downloads.empty()) |
131 return; | 131 return; |
132 waiting_ = true; | 132 waiting_ = true; |
133 content::RunMessageLoop(); | 133 content::RunMessageLoop(); |
134 waiting_ = false; | 134 waiting_ = false; |
135 } | 135 } |
136 | 136 |
137 private: | 137 private: |
138 virtual void OnDownloadCreated(content::DownloadManager* manager, | 138 virtual void OnDownloadCreated(content::DownloadManager* manager, |
139 content::DownloadItem* item) OVERRIDE { | 139 content::DownloadItem* item) override { |
140 DCHECK_EQ(manager_, manager); | 140 DCHECK_EQ(manager_, manager); |
141 if (waiting_) | 141 if (waiting_) |
142 base::MessageLoopForUI::current()->Quit(); | 142 base::MessageLoopForUI::current()->Quit(); |
143 } | 143 } |
144 | 144 |
145 content::DownloadManager* manager_; | 145 content::DownloadManager* manager_; |
146 bool waiting_; | 146 bool waiting_; |
147 | 147 |
148 DISALLOW_COPY_AND_ASSIGN(CreatedObserver); | 148 DISALLOW_COPY_AND_ASSIGN(CreatedObserver); |
149 }; | 149 }; |
(...skipping 16 matching lines...) Expand all Loading... |
166 if (item_->GetState() == DownloadItem::COMPLETE) { | 166 if (item_->GetState() == DownloadItem::COMPLETE) { |
167 return item_->PercentComplete() == 100; | 167 return item_->PercentComplete() == 100; |
168 } | 168 } |
169 waiting_ = true; | 169 waiting_ = true; |
170 content::RunMessageLoop(); | 170 content::RunMessageLoop(); |
171 waiting_ = false; | 171 waiting_ = false; |
172 return !error_; | 172 return !error_; |
173 } | 173 } |
174 | 174 |
175 private: | 175 private: |
176 virtual void OnDownloadUpdated(content::DownloadItem* item) OVERRIDE { | 176 virtual void OnDownloadUpdated(content::DownloadItem* item) override { |
177 DCHECK_EQ(item_, item); | 177 DCHECK_EQ(item_, item); |
178 if (!error_ && | 178 if (!error_ && |
179 ((prev_percent_ > item_->PercentComplete()) || | 179 ((prev_percent_ > item_->PercentComplete()) || |
180 (item_->GetState() == DownloadItem::COMPLETE && | 180 (item_->GetState() == DownloadItem::COMPLETE && |
181 (item_->PercentComplete() != 100)))) { | 181 (item_->PercentComplete() != 100)))) { |
182 error_ = true; | 182 error_ = true; |
183 if (waiting_) | 183 if (waiting_) |
184 base::MessageLoopForUI::current()->Quit(); | 184 base::MessageLoopForUI::current()->Quit(); |
185 } | 185 } |
186 if (item_->GetState() == DownloadItem::COMPLETE && waiting_) | 186 if (item_->GetState() == DownloadItem::COMPLETE && waiting_) |
187 base::MessageLoopForUI::current()->Quit(); | 187 base::MessageLoopForUI::current()->Quit(); |
188 } | 188 } |
189 | 189 |
190 virtual void OnDownloadDestroyed(content::DownloadItem* item) OVERRIDE { | 190 virtual void OnDownloadDestroyed(content::DownloadItem* item) override { |
191 DCHECK_EQ(item_, item); | 191 DCHECK_EQ(item_, item); |
192 item_->RemoveObserver(this); | 192 item_->RemoveObserver(this); |
193 item_ = NULL; | 193 item_ = NULL; |
194 } | 194 } |
195 | 195 |
196 content::DownloadItem* item_; | 196 content::DownloadItem* item_; |
197 bool waiting_; | 197 bool waiting_; |
198 bool error_; | 198 bool error_; |
199 int prev_percent_; | 199 int prev_percent_; |
200 | 200 |
(...skipping 11 matching lines...) Expand all Loading... |
212 size_t transition_count) | 212 size_t transition_count) |
213 : DownloadTestObserver(download_manager, 1, | 213 : DownloadTestObserver(download_manager, 1, |
214 ON_DANGEROUS_DOWNLOAD_FAIL), | 214 ON_DANGEROUS_DOWNLOAD_FAIL), |
215 was_previously_resumable_(false), | 215 was_previously_resumable_(false), |
216 transitions_left_(transition_count) { | 216 transitions_left_(transition_count) { |
217 Init(); | 217 Init(); |
218 } | 218 } |
219 virtual ~DownloadTestObserverResumable() {} | 219 virtual ~DownloadTestObserverResumable() {} |
220 | 220 |
221 private: | 221 private: |
222 virtual bool IsDownloadInFinalState(DownloadItem* download) OVERRIDE { | 222 virtual bool IsDownloadInFinalState(DownloadItem* download) override { |
223 bool is_resumable_now = download->CanResume(); | 223 bool is_resumable_now = download->CanResume(); |
224 if (!was_previously_resumable_ && is_resumable_now) | 224 if (!was_previously_resumable_ && is_resumable_now) |
225 --transitions_left_; | 225 --transitions_left_; |
226 was_previously_resumable_ = is_resumable_now; | 226 was_previously_resumable_ = is_resumable_now; |
227 return transitions_left_ == 0; | 227 return transitions_left_ == 0; |
228 } | 228 } |
229 | 229 |
230 bool was_previously_resumable_; | 230 bool was_previously_resumable_; |
231 size_t transitions_left_; | 231 size_t transitions_left_; |
232 | 232 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 class MockAbortExtensionInstallPrompt : public ExtensionInstallPrompt { | 284 class MockAbortExtensionInstallPrompt : public ExtensionInstallPrompt { |
285 public: | 285 public: |
286 MockAbortExtensionInstallPrompt() : | 286 MockAbortExtensionInstallPrompt() : |
287 ExtensionInstallPrompt(NULL) { | 287 ExtensionInstallPrompt(NULL) { |
288 } | 288 } |
289 | 289 |
290 // Simulate a user abort on an extension installation. | 290 // Simulate a user abort on an extension installation. |
291 virtual void ConfirmInstall( | 291 virtual void ConfirmInstall( |
292 Delegate* delegate, | 292 Delegate* delegate, |
293 const Extension* extension, | 293 const Extension* extension, |
294 const ShowDialogCallback& show_dialog_callback) OVERRIDE { | 294 const ShowDialogCallback& show_dialog_callback) override { |
295 delegate->InstallUIAbort(true); | 295 delegate->InstallUIAbort(true); |
296 base::MessageLoopForUI::current()->Quit(); | 296 base::MessageLoopForUI::current()->Quit(); |
297 } | 297 } |
298 | 298 |
299 virtual void OnInstallSuccess(const Extension* extension, | 299 virtual void OnInstallSuccess(const Extension* extension, |
300 SkBitmap* icon) OVERRIDE { | 300 SkBitmap* icon) override { |
301 } | 301 } |
302 virtual void OnInstallFailure( | 302 virtual void OnInstallFailure( |
303 const extensions::CrxInstallerError& error) OVERRIDE { | 303 const extensions::CrxInstallerError& error) override { |
304 } | 304 } |
305 }; | 305 }; |
306 | 306 |
307 // Mock that simulates a permissions dialog where the user allows | 307 // Mock that simulates a permissions dialog where the user allows |
308 // installation. | 308 // installation. |
309 class MockAutoConfirmExtensionInstallPrompt : public ExtensionInstallPrompt { | 309 class MockAutoConfirmExtensionInstallPrompt : public ExtensionInstallPrompt { |
310 public: | 310 public: |
311 explicit MockAutoConfirmExtensionInstallPrompt( | 311 explicit MockAutoConfirmExtensionInstallPrompt( |
312 content::WebContents* web_contents) | 312 content::WebContents* web_contents) |
313 : ExtensionInstallPrompt(web_contents) {} | 313 : ExtensionInstallPrompt(web_contents) {} |
314 | 314 |
315 // Proceed without confirmation prompt. | 315 // Proceed without confirmation prompt. |
316 virtual void ConfirmInstall( | 316 virtual void ConfirmInstall( |
317 Delegate* delegate, | 317 Delegate* delegate, |
318 const Extension* extension, | 318 const Extension* extension, |
319 const ShowDialogCallback& show_dialog_callback) OVERRIDE { | 319 const ShowDialogCallback& show_dialog_callback) override { |
320 delegate->InstallUIProceed(); | 320 delegate->InstallUIProceed(); |
321 } | 321 } |
322 | 322 |
323 virtual void OnInstallSuccess(const Extension* extension, | 323 virtual void OnInstallSuccess(const Extension* extension, |
324 SkBitmap* icon) OVERRIDE { | 324 SkBitmap* icon) override { |
325 } | 325 } |
326 virtual void OnInstallFailure( | 326 virtual void OnInstallFailure( |
327 const extensions::CrxInstallerError& error) OVERRIDE { | 327 const extensions::CrxInstallerError& error) override { |
328 } | 328 } |
329 }; | 329 }; |
330 | 330 |
331 static DownloadManager* DownloadManagerForBrowser(Browser* browser) { | 331 static DownloadManager* DownloadManagerForBrowser(Browser* browser) { |
332 return BrowserContext::GetDownloadManager(browser->profile()); | 332 return BrowserContext::GetDownloadManager(browser->profile()); |
333 } | 333 } |
334 | 334 |
335 bool WasAutoOpened(DownloadItem* item) { | 335 bool WasAutoOpened(DownloadItem* item) { |
336 return item->GetAutoOpened(); | 336 return item->GetAutoOpened(); |
337 } | 337 } |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
387 if (service && service->GetDownloadHistory()) | 387 if (service && service->GetDownloadHistory()) |
388 service->GetDownloadHistory()->RemoveObserver(this); | 388 service->GetDownloadHistory()->RemoveObserver(this); |
389 } | 389 } |
390 | 390 |
391 void SetFilterCallback(const FilterCallback& callback) { | 391 void SetFilterCallback(const FilterCallback& callback) { |
392 callback_ = callback; | 392 callback_ = callback; |
393 } | 393 } |
394 | 394 |
395 virtual void OnDownloadStored( | 395 virtual void OnDownloadStored( |
396 content::DownloadItem* item, | 396 content::DownloadItem* item, |
397 const history::DownloadRow& info) OVERRIDE { | 397 const history::DownloadRow& info) override { |
398 if (!callback_.is_null() && (!callback_.Run(info))) | 398 if (!callback_.is_null() && (!callback_.Run(info))) |
399 return; | 399 return; |
400 | 400 |
401 seen_stored_ = true; | 401 seen_stored_ = true; |
402 if (waiting_) | 402 if (waiting_) |
403 base::MessageLoopForUI::current()->Quit(); | 403 base::MessageLoopForUI::current()->Quit(); |
404 } | 404 } |
405 | 405 |
406 virtual void OnDownloadHistoryDestroyed() OVERRIDE { | 406 virtual void OnDownloadHistoryDestroyed() override { |
407 DownloadServiceFactory::GetForBrowserContext(profile_)-> | 407 DownloadServiceFactory::GetForBrowserContext(profile_)-> |
408 GetDownloadHistory()->RemoveObserver(this); | 408 GetDownloadHistory()->RemoveObserver(this); |
409 } | 409 } |
410 | 410 |
411 void WaitForStored() { | 411 void WaitForStored() { |
412 if (seen_stored_) | 412 if (seen_stored_) |
413 return; | 413 return; |
414 waiting_ = true; | 414 waiting_ = true; |
415 content::RunMessageLoop(); | 415 content::RunMessageLoop(); |
416 waiting_ = false; | 416 waiting_ = false; |
(...skipping 26 matching lines...) Expand all Loading... |
443 bool should_redirect_to_documents; // True if we save it in "My Documents". | 443 bool should_redirect_to_documents; // True if we save it in "My Documents". |
444 }; | 444 }; |
445 | 445 |
446 struct FileErrorInjectInfo { | 446 struct FileErrorInjectInfo { |
447 DownloadInfo download_info; | 447 DownloadInfo download_info; |
448 content::TestFileErrorInjector::FileErrorInfo error_info; | 448 content::TestFileErrorInjector::FileErrorInfo error_info; |
449 }; | 449 }; |
450 | 450 |
451 DownloadTest() {} | 451 DownloadTest() {} |
452 | 452 |
453 virtual void SetUpOnMainThread() OVERRIDE { | 453 virtual void SetUpOnMainThread() override { |
454 BrowserThread::PostTask( | 454 BrowserThread::PostTask( |
455 BrowserThread::IO, FROM_HERE, | 455 BrowserThread::IO, FROM_HERE, |
456 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true)); | 456 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true)); |
457 ASSERT_TRUE(InitialSetup()); | 457 ASSERT_TRUE(InitialSetup()); |
458 } | 458 } |
459 | 459 |
460 virtual void TearDownOnMainThread() OVERRIDE { | 460 virtual void TearDownOnMainThread() override { |
461 // Needs to be torn down on the main thread. file_activity_observer_ holds a | 461 // Needs to be torn down on the main thread. file_activity_observer_ holds a |
462 // reference to the ChromeDownloadManagerDelegate which should be destroyed | 462 // reference to the ChromeDownloadManagerDelegate which should be destroyed |
463 // on the UI thread. | 463 // on the UI thread. |
464 file_activity_observer_.reset(); | 464 file_activity_observer_.reset(); |
465 } | 465 } |
466 | 466 |
467 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 467 virtual void SetUpCommandLine(CommandLine* command_line) override { |
468 command_line->AppendSwitch(switches::kDisablePluginsDiscovery); | 468 command_line->AppendSwitch(switches::kDisablePluginsDiscovery); |
469 } | 469 } |
470 | 470 |
471 // Returning false indicates a failure of the setup, and should be asserted | 471 // Returning false indicates a failure of the setup, and should be asserted |
472 // in the caller. | 472 // in the caller. |
473 virtual bool InitialSetup() { | 473 virtual bool InitialSetup() { |
474 bool have_test_dir = PathService::Get(chrome::DIR_TEST_DATA, &test_dir_); | 474 bool have_test_dir = PathService::Get(chrome::DIR_TEST_DATA, &test_dir_); |
475 EXPECT_TRUE(have_test_dir); | 475 EXPECT_TRUE(have_test_dir); |
476 if (!have_test_dir) | 476 if (!have_test_dir) |
477 return false; | 477 return false; |
(...skipping 2887 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3365 explicit DisableSafeBrowsingOnInProgressDownload(Browser* browser) | 3365 explicit DisableSafeBrowsingOnInProgressDownload(Browser* browser) |
3366 : DownloadTestObserver(DownloadManagerForBrowser(browser), | 3366 : DownloadTestObserver(DownloadManagerForBrowser(browser), |
3367 1, | 3367 1, |
3368 ON_DANGEROUS_DOWNLOAD_QUIT), | 3368 ON_DANGEROUS_DOWNLOAD_QUIT), |
3369 browser_(browser), | 3369 browser_(browser), |
3370 final_state_seen_(false) { | 3370 final_state_seen_(false) { |
3371 Init(); | 3371 Init(); |
3372 } | 3372 } |
3373 virtual ~DisableSafeBrowsingOnInProgressDownload() {} | 3373 virtual ~DisableSafeBrowsingOnInProgressDownload() {} |
3374 | 3374 |
3375 virtual bool IsDownloadInFinalState(DownloadItem* download) OVERRIDE { | 3375 virtual bool IsDownloadInFinalState(DownloadItem* download) override { |
3376 if (download->GetState() != DownloadItem::IN_PROGRESS || | 3376 if (download->GetState() != DownloadItem::IN_PROGRESS || |
3377 download->GetTargetFilePath().empty()) | 3377 download->GetTargetFilePath().empty()) |
3378 return false; | 3378 return false; |
3379 | 3379 |
3380 if (final_state_seen_) | 3380 if (final_state_seen_) |
3381 return true; | 3381 return true; |
3382 | 3382 |
3383 final_state_seen_ = true; | 3383 final_state_seen_ = true; |
3384 browser_->profile()->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnabled, | 3384 browser_->profile()->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnabled, |
3385 false); | 3385 false); |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3528 *(downloads[0]))); | 3528 *(downloads[0]))); |
3529 | 3529 |
3530 // Begin feedback and check that the file is "stolen". | 3530 // Begin feedback and check that the file is "stolen". |
3531 download_protection_service->feedback_service()->BeginFeedbackForDownload( | 3531 download_protection_service->feedback_service()->BeginFeedbackForDownload( |
3532 downloads[0]); | 3532 downloads[0]); |
3533 std::vector<DownloadItem*> updated_downloads; | 3533 std::vector<DownloadItem*> updated_downloads; |
3534 GetDownloads(browser(), &updated_downloads); | 3534 GetDownloads(browser(), &updated_downloads); |
3535 ASSERT_TRUE(updated_downloads.empty()); | 3535 ASSERT_TRUE(updated_downloads.empty()); |
3536 } | 3536 } |
3537 #endif | 3537 #endif |
OLD | NEW |