| 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);
|
| }
|
|
|