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 "content/public/test/test_file_error_injector.h" | 5 #include "content/public/test/test_file_error_injector.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
331 injected_errors_[error_info.url] = error_info; | 331 injected_errors_[error_info.url] = error_info; |
332 | 332 |
333 return true; | 333 return true; |
334 } | 334 } |
335 | 335 |
336 void DownloadFileWithErrorsFactory::ClearErrors() { | 336 void DownloadFileWithErrorsFactory::ClearErrors() { |
337 injected_errors_.clear(); | 337 injected_errors_.clear(); |
338 } | 338 } |
339 | 339 |
340 TestFileErrorInjector::TestFileErrorInjector( | 340 TestFileErrorInjector::TestFileErrorInjector( |
341 scoped_refptr<DownloadManager> download_manager) | 341 DownloadManager* download_manager) |
342 : created_factory_(NULL), | 342 : created_factory_(NULL), |
343 // This code is only used for browser_tests, so a | 343 // This code is only used for browser_tests, so a |
344 // DownloadManager is always a DownloadManagerImpl. | 344 // DownloadManager is always a DownloadManagerImpl. |
345 download_manager_( | 345 download_manager_(static_cast<DownloadManagerImpl*>(download_manager)) { |
346 static_cast<DownloadManagerImpl*>(download_manager.get())) { | |
347 // Record the value of the pointer, for later validation. | 346 // Record the value of the pointer, for later validation. |
348 created_factory_ = | 347 created_factory_ = |
349 new DownloadFileWithErrorsFactory( | 348 new DownloadFileWithErrorsFactory( |
350 base::Bind(&TestFileErrorInjector::RecordDownloadFileConstruction, | 349 base::Bind(&TestFileErrorInjector::RecordDownloadFileConstruction, |
351 this), | 350 this), |
352 base::Bind(&TestFileErrorInjector::RecordDownloadFileDestruction, | 351 base::Bind(&TestFileErrorInjector::RecordDownloadFileDestruction, |
353 this)); | 352 this)); |
354 | 353 |
355 // We will transfer ownership of the factory to the download manager. | 354 // We will transfer ownership of the factory to the download manager. |
356 scoped_ptr<DownloadFileFactory> download_file_factory( | 355 scoped_ptr<DownloadFileFactory> download_file_factory( |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
439 base::Bind(&TestFileErrorInjector::DownloadFileCreated, this, url)); | 438 base::Bind(&TestFileErrorInjector::DownloadFileCreated, this, url)); |
440 } | 439 } |
441 | 440 |
442 void TestFileErrorInjector::RecordDownloadFileDestruction(const GURL& url) { | 441 void TestFileErrorInjector::RecordDownloadFileDestruction(const GURL& url) { |
443 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 442 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
444 base::Bind(&TestFileErrorInjector::DestroyingDownloadFile, this, url)); | 443 base::Bind(&TestFileErrorInjector::DestroyingDownloadFile, this, url)); |
445 } | 444 } |
446 | 445 |
447 // static | 446 // static |
448 scoped_refptr<TestFileErrorInjector> TestFileErrorInjector::Create( | 447 scoped_refptr<TestFileErrorInjector> TestFileErrorInjector::Create( |
449 scoped_refptr<DownloadManager> download_manager) { | 448 DownloadManager* download_manager) { |
450 static bool visited = false; | 449 static bool visited = false; |
451 DCHECK(!visited); // Only allowed to be called once. | 450 DCHECK(!visited); // Only allowed to be called once. |
452 visited = true; | 451 visited = true; |
453 | 452 |
454 scoped_refptr<TestFileErrorInjector> single_injector( | 453 scoped_refptr<TestFileErrorInjector> single_injector( |
455 new TestFileErrorInjector(download_manager)); | 454 new TestFileErrorInjector(download_manager)); |
456 | 455 |
457 return single_injector; | 456 return single_injector; |
458 } | 457 } |
459 | 458 |
460 // static | 459 // static |
461 std::string TestFileErrorInjector::DebugString(FileOperationCode code) { | 460 std::string TestFileErrorInjector::DebugString(FileOperationCode code) { |
462 switch (code) { | 461 switch (code) { |
463 case FILE_OPERATION_INITIALIZE: | 462 case FILE_OPERATION_INITIALIZE: |
464 return "INITIALIZE"; | 463 return "INITIALIZE"; |
465 case FILE_OPERATION_WRITE: | 464 case FILE_OPERATION_WRITE: |
466 return "WRITE"; | 465 return "WRITE"; |
467 case FILE_OPERATION_RENAME_UNIQUIFY: | 466 case FILE_OPERATION_RENAME_UNIQUIFY: |
468 return "RENAME_UNIQUIFY"; | 467 return "RENAME_UNIQUIFY"; |
469 case FILE_OPERATION_RENAME_ANNOTATE: | 468 case FILE_OPERATION_RENAME_ANNOTATE: |
470 return "RENAME_ANNOTATE"; | 469 return "RENAME_ANNOTATE"; |
471 default: | 470 default: |
472 break; | 471 break; |
473 } | 472 } |
474 | 473 |
475 return "Unknown"; | 474 return "Unknown"; |
476 } | 475 } |
477 | 476 |
478 } // namespace content | 477 } // namespace content |
OLD | NEW |