Index: content/browser/download/download_file_manager_unittest.cc |
diff --git a/content/browser/download/download_file_manager_unittest.cc b/content/browser/download/download_file_manager_unittest.cc |
index 04290d4378b8d3df78fedf2763f88b60f8eae1a6..52ce433e5a85557846cdf965fca167a123c8ed8e 100644 |
--- a/content/browser/download/download_file_manager_unittest.cc |
+++ b/content/browser/download/download_file_manager_unittest.cc |
@@ -31,6 +31,7 @@ using ::testing::_; |
using ::testing::AtLeast; |
using ::testing::Mock; |
using ::testing::Return; |
+using ::testing::SaveArg; |
using ::testing::StrictMock; |
using ::testing::StrEq; |
@@ -39,8 +40,10 @@ namespace { |
// MockDownloadManager with the addition of a mock callback used for testing. |
class TestDownloadManager : public MockDownloadManager { |
public: |
- MOCK_METHOD2(OnDownloadRenamed, |
- void(int download_id, const FilePath& full_path)); |
+ MOCK_METHOD3(OnDownloadRenamed, |
+ void(int download_id, |
+ content::DownloadInterruptReason reason, |
+ const FilePath& full_path)); |
private: |
~TestDownloadManager() {} |
}; |
@@ -212,48 +215,22 @@ class DownloadFileManagerTest : public testing::Test { |
// |should_overwrite| indicates whether to replace or uniquify the file. |
void RenameFile(const DownloadId& id, |
const FilePath& new_path, |
- const FilePath& unique_path, |
- content::DownloadInterruptReason rename_error, |
- RenameFileState state, |
- RenameFileOverwrite should_overwrite) { |
+ bool should_overwrite) { |
MockDownloadFile* file = download_file_factory_->GetExistingFile(id); |
ASSERT_TRUE(file != NULL); |
+ content::DownloadFile::RenameCompletionCallback rename_callback; |
- EXPECT_CALL(*file, Rename(unique_path)) |
- .Times(1) |
- .WillOnce(Return(rename_error)); |
+ EXPECT_CALL(*file, Rename(new_path, should_overwrite, _)) |
+ .WillOnce(SaveArg<2>(&rename_callback)); |
- if (rename_error != content::DOWNLOAD_INTERRUPT_REASON_NONE) { |
- EXPECT_CALL(*file, BytesSoFar()) |
- .Times(AtLeast(1)) |
- .WillRepeatedly(Return(byte_count_[id])); |
- EXPECT_CALL(*file, GetHashState()) |
- .Times(AtLeast(1)); |
- EXPECT_CALL(*file, GetDownloadManager()) |
- .Times(AtLeast(1)); |
- } |
- |
- download_file_manager_->RenameDownloadFile( |
- id, new_path, (should_overwrite == OVERWRITE), |
+ content::DownloadFile::RenameCompletionCallback passed_callback( |
base::Bind(&TestDownloadManager::OnDownloadRenamed, |
download_manager_, id.local())); |
- if (rename_error != content::DOWNLOAD_INTERRUPT_REASON_NONE) { |
- EXPECT_CALL(*download_manager_, |
- OnDownloadInterrupted( |
- id.local(), |
- byte_count_[id], |
- "", |
- rename_error)); |
- EXPECT_CALL(*download_manager_, |
- OnDownloadRenamed(id.local(), FilePath())); |
- ProcessAllPendingMessages(); |
- ++error_count_[id]; |
- } else { |
- EXPECT_CALL(*download_manager_, |
- OnDownloadRenamed(id.local(), unique_path)); |
- ProcessAllPendingMessages(); |
- } |
+ download_file_manager_->RenameDownloadFile( |
+ id, new_path, should_overwrite, passed_callback); |
+ |
+ EXPECT_TRUE(rename_callback.Equals(passed_callback)); |
} |
void Complete(DownloadId id) { |
@@ -345,42 +322,7 @@ TEST_F(DownloadFileManagerTest, Complete) { |
Complete(dummy_id); |
} |
-TEST_F(DownloadFileManagerTest, RenameInProgress) { |
- scoped_ptr<DownloadCreateInfo> info(new DownloadCreateInfo); |
- DownloadId dummy_id(download_manager_.get(), kDummyDownloadId); |
- info->download_id = dummy_id; |
- ScopedTempDir download_dir; |
- ASSERT_TRUE(download_dir.CreateUniqueTempDir()); |
- |
- CreateDownloadFile(info.Pass()); |
- |
- FilePath foo(download_dir.path().Append(FILE_PATH_LITERAL("foo.txt"))); |
- RenameFile(dummy_id, foo, foo, content::DOWNLOAD_INTERRUPT_REASON_NONE, |
- IN_PROGRESS, OVERWRITE); |
- |
- CleanUp(dummy_id); |
-} |
- |
-TEST_F(DownloadFileManagerTest, RenameInProgressWithUniquification) { |
- scoped_ptr<DownloadCreateInfo> info(new DownloadCreateInfo); |
- DownloadId dummy_id(download_manager_.get(), kDummyDownloadId); |
- info->download_id = dummy_id; |
- ScopedTempDir download_dir; |
- ASSERT_TRUE(download_dir.CreateUniqueTempDir()); |
- |
- CreateDownloadFile(info.Pass()); |
- |
- FilePath foo(download_dir.path().Append(FILE_PATH_LITERAL("foo.txt"))); |
- FilePath unique_foo(foo.InsertBeforeExtension(FILE_PATH_LITERAL(" (1)"))); |
- ASSERT_EQ(0, file_util::WriteFile(foo, "", 0)); |
- RenameFile(dummy_id, foo, unique_foo, |
- content::DOWNLOAD_INTERRUPT_REASON_NONE, IN_PROGRESS, |
- DONT_OVERWRITE); |
- |
- CleanUp(dummy_id); |
-} |
- |
-TEST_F(DownloadFileManagerTest, RenameInProgressWithError) { |
+TEST_F(DownloadFileManagerTest, Rename) { |
scoped_ptr<DownloadCreateInfo> info(new DownloadCreateInfo); |
DownloadId dummy_id(download_manager_.get(), kDummyDownloadId); |
info->download_id = dummy_id; |
@@ -390,14 +332,12 @@ TEST_F(DownloadFileManagerTest, RenameInProgressWithError) { |
CreateDownloadFile(info.Pass()); |
FilePath foo(download_dir.path().Append(FILE_PATH_LITERAL("foo.txt"))); |
- RenameFile(dummy_id, foo, foo, |
- content::DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG, |
- IN_PROGRESS, OVERWRITE); |
+ RenameFile(dummy_id, foo, true); |
CleanUp(dummy_id); |
} |
-TEST_F(DownloadFileManagerTest, RenameWithUniquification) { |
+TEST_F(DownloadFileManagerTest, RenameNoOverwrite) { |
scoped_ptr<DownloadCreateInfo> info(new DownloadCreateInfo); |
DownloadId dummy_id(download_manager_.get(), kDummyDownloadId); |
info->download_id = dummy_id; |
@@ -407,13 +347,7 @@ TEST_F(DownloadFileManagerTest, RenameWithUniquification) { |
CreateDownloadFile(info.Pass()); |
FilePath foo(download_dir.path().Append(FILE_PATH_LITERAL("foo.txt"))); |
- FilePath unique_foo(foo.InsertBeforeExtension(FILE_PATH_LITERAL(" (1)"))); |
- // Create a file at |foo|. Since we are specifying DONT_OVERWRITE, |
- // RenameDownloadFile() should pick "foo (1).txt" instead of |
- // overwriting this file. |
- ASSERT_EQ(0, file_util::WriteFile(foo, "", 0)); |
- RenameFile(dummy_id, foo, unique_foo, |
- content::DOWNLOAD_INTERRUPT_REASON_NONE, COMPLETE, DONT_OVERWRITE); |
+ RenameFile(dummy_id, foo, false); |
CleanUp(dummy_id); |
} |
@@ -429,12 +363,10 @@ TEST_F(DownloadFileManagerTest, RenameTwice) { |
FilePath crfoo(download_dir.path().Append( |
FILE_PATH_LITERAL("foo.txt.crdownload"))); |
- RenameFile(dummy_id, crfoo, crfoo, content::DOWNLOAD_INTERRUPT_REASON_NONE, |
- IN_PROGRESS, OVERWRITE); |
+ RenameFile(dummy_id, crfoo, true); |
FilePath foo(download_dir.path().Append(FILE_PATH_LITERAL("foo.txt"))); |
- RenameFile(dummy_id, foo, foo, content::DOWNLOAD_INTERRUPT_REASON_NONE, |
- COMPLETE, OVERWRITE); |
+ RenameFile(dummy_id, foo, true); |
CleanUp(dummy_id); |
} |
@@ -455,24 +387,20 @@ TEST_F(DownloadFileManagerTest, TwoDownloads) { |
FilePath crbar(download_dir.path().Append( |
FILE_PATH_LITERAL("bar.txt.crdownload"))); |
- RenameFile(dummy_id2, crbar, crbar, content::DOWNLOAD_INTERRUPT_REASON_NONE, |
- IN_PROGRESS, OVERWRITE); |
+ RenameFile(dummy_id2, crbar, true); |
FilePath crfoo(download_dir.path().Append( |
FILE_PATH_LITERAL("foo.txt.crdownload"))); |
- RenameFile(dummy_id, crfoo, crfoo, content::DOWNLOAD_INTERRUPT_REASON_NONE, |
- IN_PROGRESS, OVERWRITE); |
+ RenameFile(dummy_id, crfoo, true); |
FilePath bar(download_dir.path().Append(FILE_PATH_LITERAL("bar.txt"))); |
- RenameFile(dummy_id2, bar, bar, content::DOWNLOAD_INTERRUPT_REASON_NONE, |
- COMPLETE, OVERWRITE); |
+ RenameFile(dummy_id2, bar, true); |
CleanUp(dummy_id2); |
FilePath foo(download_dir.path().Append(FILE_PATH_LITERAL("foo.txt"))); |
- RenameFile(dummy_id, foo, foo, content::DOWNLOAD_INTERRUPT_REASON_NONE, |
- COMPLETE, OVERWRITE); |
+ RenameFile(dummy_id, foo, true); |
CleanUp(dummy_id); |
} |