OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <set> | 5 #include <set> |
6 #include <string> | 6 #include <string> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "base/i18n/number_formatting.h" | 10 #include "base/i18n/number_formatting.h" |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 | 176 |
177 protected: | 177 protected: |
178 // This version creates a |MockFileStream| instead of a |FileStream|. | 178 // This version creates a |MockFileStream| instead of a |FileStream|. |
179 virtual void CreateFileStream() OVERRIDE; | 179 virtual void CreateFileStream() OVERRIDE; |
180 }; | 180 }; |
181 | 181 |
182 DownloadFileWithMockStream::DownloadFileWithMockStream( | 182 DownloadFileWithMockStream::DownloadFileWithMockStream( |
183 DownloadCreateInfo* info, | 183 DownloadCreateInfo* info, |
184 DownloadManager* manager, | 184 DownloadManager* manager, |
185 net::testing::MockFileStream* stream) | 185 net::testing::MockFileStream* stream) |
186 : DownloadFile(info, DownloadRequestHandle(), manager) { | 186 : DownloadFile(info, new DownloadRequestHandle(), manager) { |
187 DCHECK(file_stream_ == NULL); | 187 DCHECK(file_stream_ == NULL); |
188 file_stream_.reset(stream); | 188 file_stream_.reset(stream); |
189 } | 189 } |
190 | 190 |
191 void DownloadFileWithMockStream::SetForcedError(int error) | 191 void DownloadFileWithMockStream::SetForcedError(int error) |
192 { | 192 { |
193 // |file_stream_| can only be set in the constructor and in | 193 // |file_stream_| can only be set in the constructor and in |
194 // CreateFileStream(), both of which insure that it is a |MockFileStream|. | 194 // CreateFileStream(), both of which insure that it is a |MockFileStream|. |
195 net::testing::MockFileStream* mock_stream = | 195 net::testing::MockFileStream* mock_stream = |
196 static_cast<net::testing::MockFileStream *>(file_stream_.get()); | 196 static_cast<net::testing::MockFileStream *>(file_stream_.get()); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 // Dangerous download, download finishes AFTER file name determined. | 274 // Dangerous download, download finishes AFTER file name determined. |
275 // Needs to be renamed only once. | 275 // Needs to be renamed only once. |
276 { FILE_PATH_LITERAL("Unconfirmed xxx.crdownload"), true, false, false, 1, }, | 276 { FILE_PATH_LITERAL("Unconfirmed xxx.crdownload"), true, false, false, 1, }, |
277 { FILE_PATH_LITERAL("Unconfirmed xxx.crdownload"), false, true, false, 1, }, | 277 { FILE_PATH_LITERAL("Unconfirmed xxx.crdownload"), false, true, false, 1, }, |
278 { FILE_PATH_LITERAL("Unconfirmed xxx.crdownload"), true, true, false, 1, }, | 278 { FILE_PATH_LITERAL("Unconfirmed xxx.crdownload"), true, true, false, 1, }, |
279 }; | 279 }; |
280 | 280 |
281 class MockDownloadFile : public DownloadFile { | 281 class MockDownloadFile : public DownloadFile { |
282 public: | 282 public: |
283 MockDownloadFile(DownloadCreateInfo* info, DownloadManager* manager) | 283 MockDownloadFile(DownloadCreateInfo* info, DownloadManager* manager) |
284 : DownloadFile(info, DownloadRequestHandle(), manager), | 284 : DownloadFile(info, new DownloadRequestHandle(), manager), |
285 renamed_count_(0) { } | 285 renamed_count_(0) { } |
286 virtual ~MockDownloadFile() { Destructed(); } | 286 virtual ~MockDownloadFile() { Destructed(); } |
287 MOCK_METHOD1(Rename, net::Error(const FilePath&)); | 287 MOCK_METHOD1(Rename, net::Error(const FilePath&)); |
288 MOCK_METHOD0(Destructed, void()); | 288 MOCK_METHOD0(Destructed, void()); |
289 | 289 |
290 net::Error TestMultipleRename( | 290 net::Error TestMultipleRename( |
291 int expected_count, const FilePath& expected, | 291 int expected_count, const FilePath& expected, |
292 const FilePath& path) { | 292 const FilePath& path) { |
293 ++renamed_count_; | 293 ++renamed_count_; |
294 EXPECT_EQ(expected_count, renamed_count_); | 294 EXPECT_EQ(expected_count, renamed_count_); |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
390 // responsible for deleting it. In these unit tests, however, we | 390 // responsible for deleting it. In these unit tests, however, we |
391 // don't call the function that deletes it, so we do so ourselves. | 391 // don't call the function that deletes it, so we do so ourselves. |
392 scoped_ptr<DownloadCreateInfo> info(new DownloadCreateInfo); | 392 scoped_ptr<DownloadCreateInfo> info(new DownloadCreateInfo); |
393 info->download_id = DownloadId(kValidIdDomain, static_cast<int>(i)); | 393 info->download_id = DownloadId(kValidIdDomain, static_cast<int>(i)); |
394 info->prompt_user_for_save_location = kStartDownloadCases[i].save_as; | 394 info->prompt_user_for_save_location = kStartDownloadCases[i].save_as; |
395 info->url_chain.push_back(GURL(kStartDownloadCases[i].url)); | 395 info->url_chain.push_back(GURL(kStartDownloadCases[i].url)); |
396 info->mime_type = kStartDownloadCases[i].mime_type; | 396 info->mime_type = kStartDownloadCases[i].mime_type; |
397 download_manager_->CreateDownloadItem(info.get(), DownloadRequestHandle()); | 397 download_manager_->CreateDownloadItem(info.get(), DownloadRequestHandle()); |
398 | 398 |
399 DownloadFile* download_file( | 399 DownloadFile* download_file( |
400 new DownloadFile(info.get(), DownloadRequestHandle(), | 400 new DownloadFile(info.get(), new DownloadRequestHandle(), |
401 download_manager_)); | 401 download_manager_)); |
402 AddDownloadToFileManager(info->download_id.local(), download_file); | 402 AddDownloadToFileManager(info->download_id.local(), download_file); |
403 download_file->Initialize(false); | 403 download_file->Initialize(false); |
404 download_manager_->StartDownload(info->download_id.local()); | 404 download_manager_->StartDownload(info->download_id.local()); |
405 message_loop_.RunAllPending(); | 405 message_loop_.RunAllPending(); |
406 | 406 |
407 // SelectFileObserver will have recorded any attempt to open the | 407 // SelectFileObserver will have recorded any attempt to open the |
408 // select file dialog. | 408 // select file dialog. |
409 // Note that DownloadManager::FileSelectionCanceled() is never called. | 409 // Note that DownloadManager::FileSelectionCanceled() is never called. |
410 EXPECT_EQ(kStartDownloadCases[i].expected_save_as, | 410 EXPECT_EQ(kStartDownloadCases[i].expected_save_as, |
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
751 new DownloadItemModel(download)); | 751 new DownloadItemModel(download)); |
752 | 752 |
753 EXPECT_EQ(DownloadItem::IN_PROGRESS, download->state()); | 753 EXPECT_EQ(DownloadItem::IN_PROGRESS, download->state()); |
754 scoped_ptr<ItemObserver> observer(new ItemObserver(download)); | 754 scoped_ptr<ItemObserver> observer(new ItemObserver(download)); |
755 | 755 |
756 // Create and initialize the download file. We're bypassing the first part | 756 // Create and initialize the download file. We're bypassing the first part |
757 // of the download process and skipping to the part after the final file | 757 // of the download process and skipping to the part after the final file |
758 // name has been chosen, so we need to initialize the download file | 758 // name has been chosen, so we need to initialize the download file |
759 // properly. | 759 // properly. |
760 DownloadFile* download_file( | 760 DownloadFile* download_file( |
761 new DownloadFile(info.get(), DownloadRequestHandle(), download_manager_)); | 761 new DownloadFile(info.get(), new DownloadRequestHandle(), |
| 762 download_manager_)); |
762 download_file->Rename(cr_path); | 763 download_file->Rename(cr_path); |
763 // This creates the .crdownload version of the file. | 764 // This creates the .crdownload version of the file. |
764 download_file->Initialize(false); | 765 download_file->Initialize(false); |
765 // |download_file| is owned by DownloadFileManager. | 766 // |download_file| is owned by DownloadFileManager. |
766 AddDownloadToFileManager(info->download_id.local(), download_file); | 767 AddDownloadToFileManager(info->download_id.local(), download_file); |
767 | 768 |
768 ContinueDownloadWithPath(download, new_path); | 769 ContinueDownloadWithPath(download, new_path); |
769 message_loop_.RunAllPending(); | 770 message_loop_.RunAllPending(); |
770 EXPECT_TRUE(GetActiveDownloadItem(0) != NULL); | 771 EXPECT_TRUE(GetActiveDownloadItem(0) != NULL); |
771 | 772 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
827 new DownloadItemModel(download)); | 828 new DownloadItemModel(download)); |
828 | 829 |
829 EXPECT_EQ(DownloadItem::IN_PROGRESS, download->state()); | 830 EXPECT_EQ(DownloadItem::IN_PROGRESS, download->state()); |
830 scoped_ptr<ItemObserver> observer(new ItemObserver(download)); | 831 scoped_ptr<ItemObserver> observer(new ItemObserver(download)); |
831 | 832 |
832 // Create and initialize the download file. We're bypassing the first part | 833 // Create and initialize the download file. We're bypassing the first part |
833 // of the download process and skipping to the part after the final file | 834 // of the download process and skipping to the part after the final file |
834 // name has been chosen, so we need to initialize the download file | 835 // name has been chosen, so we need to initialize the download file |
835 // properly. | 836 // properly. |
836 DownloadFile* download_file( | 837 DownloadFile* download_file( |
837 new DownloadFile(info.get(), DownloadRequestHandle(), download_manager_)); | 838 new DownloadFile(info.get(), new DownloadRequestHandle(), |
| 839 download_manager_)); |
838 download_file->Rename(cr_path); | 840 download_file->Rename(cr_path); |
839 // This creates the .crdownload version of the file. | 841 // This creates the .crdownload version of the file. |
840 download_file->Initialize(false); | 842 download_file->Initialize(false); |
841 // |download_file| is owned by DownloadFileManager. | 843 // |download_file| is owned by DownloadFileManager. |
842 AddDownloadToFileManager(info->download_id.local(), download_file); | 844 AddDownloadToFileManager(info->download_id.local(), download_file); |
843 | 845 |
844 ContinueDownloadWithPath(download, new_path); | 846 ContinueDownloadWithPath(download, new_path); |
845 message_loop_.RunAllPending(); | 847 message_loop_.RunAllPending(); |
846 EXPECT_TRUE(GetActiveDownloadItem(0) != NULL); | 848 EXPECT_TRUE(GetActiveDownloadItem(0) != NULL); |
847 | 849 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
880 EXPECT_FALSE(observer->hit_state(DownloadItem::REMOVING)); | 882 EXPECT_FALSE(observer->hit_state(DownloadItem::REMOVING)); |
881 EXPECT_TRUE(observer->was_updated()); | 883 EXPECT_TRUE(observer->was_updated()); |
882 EXPECT_FALSE(observer->was_opened()); | 884 EXPECT_FALSE(observer->was_opened()); |
883 EXPECT_TRUE(download->file_externally_removed()); | 885 EXPECT_TRUE(download->file_externally_removed()); |
884 EXPECT_EQ(DownloadItem::COMPLETE, download->state()); | 886 EXPECT_EQ(DownloadItem::COMPLETE, download->state()); |
885 EXPECT_EQ(download_item_model->GetStatusText(), | 887 EXPECT_EQ(download_item_model->GetStatusText(), |
886 l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_REMOVED)); | 888 l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_REMOVED)); |
887 | 889 |
888 EXPECT_FALSE(file_util::PathExists(new_path)); | 890 EXPECT_FALSE(file_util::PathExists(new_path)); |
889 } | 891 } |
OLD | NEW |