Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(465)

Side by Side Diff: chrome/browser/download/download_manager_unittest.cc

Issue 6973052: When the download folder does not exist, change the download folder to a user's "Downloads" (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Remove DownloadTest.DownloadFolder2 and SavePageBrowserTest.SaveFolder4 Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 <string> 5 #include <string>
6 #include <set> 6 #include <set>
7 7
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/i18n/number_formatting.h" 9 #include "base/i18n/number_formatting.h"
10 #include "base/i18n/rtl.h" 10 #include "base/i18n/rtl.h"
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 const char* url; 124 const char* url;
125 const char* mime_type; 125 const char* mime_type;
126 bool save_as; 126 bool save_as;
127 bool prompt_for_download; 127 bool prompt_for_download;
128 bool expected_save_as; 128 bool expected_save_as;
129 } kStartDownloadCases[] = { 129 } kStartDownloadCases[] = {
130 { "http://www.foo.com/dont-open.html", 130 { "http://www.foo.com/dont-open.html",
131 "text/html", 131 "text/html",
132 false, 132 false,
133 false, 133 false,
134 false, }, 134 true, },
135 { "http://www.foo.com/save-as.html", 135 { "http://www.foo.com/save-as.html",
136 "text/html", 136 "text/html",
137 true, 137 true,
138 false, 138 false,
139 true, }, 139 true, },
140 { "http://www.foo.com/always-prompt.html", 140 { "http://www.foo.com/always-prompt.html",
141 "text/html", 141 "text/html",
142 false, 142 false,
143 true, 143 true,
144 true, }, 144 true, },
145 { "http://www.foo.com/user-script-text-html-mimetype.user.js", 145 { "http://www.foo.com/user-script-text-html-mimetype.user.js",
146 "text/html", 146 "text/html",
147 false, 147 false,
148 false, 148 false,
149 false, }, 149 true, },
150 { "http://www.foo.com/extensionless-extension", 150 { "http://www.foo.com/extensionless-extension",
151 "application/x-chrome-extension", 151 "application/x-chrome-extension",
152 true, 152 true,
153 false, 153 false,
154 true, }, 154 true, },
155 { "http://www.foo.com/save-as.pdf", 155 { "http://www.foo.com/save-as.pdf",
156 "application/pdf", 156 "application/pdf",
157 true, 157 true,
158 false, 158 false,
159 true, }, 159 true, },
160 { "http://www.foo.com/sometimes_prompt.pdf", 160 { "http://www.foo.com/sometimes_prompt.pdf",
161 "application/pdf", 161 "application/pdf",
162 false, 162 false,
163 true, 163 true,
164 false, }, 164 true, },
165 { "http://www.foo.com/always_prompt.jar", 165 { "http://www.foo.com/always_prompt.jar",
166 "application/jar", 166 "application/jar",
167 false, 167 false,
168 true, 168 true,
169 true, }, 169 true, },
170 }; 170 };
171 171
172 const struct { 172 const struct {
173 FilePath::StringType suggested_path; 173 FilePath::StringType suggested_path;
174 bool is_dangerous_file; 174 bool is_dangerous_file;
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 download_manager_->AddObserver(this); 227 download_manager_->AddObserver(this);
228 } 228 }
229 229
230 ~SelectFileObserver() { 230 ~SelectFileObserver() {
231 download_manager_->RemoveObserver(this); 231 download_manager_->RemoveObserver(this);
232 } 232 }
233 233
234 // Downloadmanager::Observer functions. 234 // Downloadmanager::Observer functions.
235 virtual void ModelChanged() {} 235 virtual void ModelChanged() {}
236 virtual void ManagerGoingDown() {} 236 virtual void ManagerGoingDown() {}
237 virtual void SelectFileDialogDisplayed(int32 id) { 237 virtual void SelectFileDialogDisplayed(int32 id,
238 const FilePath& suggested_path) {
238 file_dialog_ids_.insert(id); 239 file_dialog_ids_.insert(id);
239 } 240 }
240 241
241 bool ShowedFileDialogForId(int32 id) { 242 bool ShowedFileDialogForId(int32 id) {
242 return file_dialog_ids_.find(id) != file_dialog_ids_.end(); 243 return file_dialog_ids_.find(id) != file_dialog_ids_.end();
243 } 244 }
244 245
245 private: 246 private:
246 std::set<int32> file_dialog_ids_; 247 std::set<int32> file_dialog_ids_;
247 scoped_refptr<DownloadManager> download_manager_; 248 scoped_refptr<DownloadManager> download_manager_;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 scoped_ptr<DownloadCreateInfo> info(new DownloadCreateInfo); 308 scoped_ptr<DownloadCreateInfo> info(new DownloadCreateInfo);
308 info->download_id = static_cast<int>(i); 309 info->download_id = static_cast<int>(i);
309 info->prompt_user_for_save_location = kStartDownloadCases[i].save_as; 310 info->prompt_user_for_save_location = kStartDownloadCases[i].save_as;
310 info->url_chain.push_back(GURL(kStartDownloadCases[i].url)); 311 info->url_chain.push_back(GURL(kStartDownloadCases[i].url));
311 info->mime_type = kStartDownloadCases[i].mime_type; 312 info->mime_type = kStartDownloadCases[i].mime_type;
312 download_manager_->CreateDownloadItem(info.get()); 313 download_manager_->CreateDownloadItem(info.get());
313 314
314 DownloadFile* download_file( 315 DownloadFile* download_file(
315 new DownloadFile(info.get(), download_manager_)); 316 new DownloadFile(info.get(), download_manager_));
316 AddDownloadToFileManager(info->download_id, download_file); 317 AddDownloadToFileManager(info->download_id, download_file);
317 download_file->Initialize(false); 318
319 ScopedTempDir temp_dir;
320 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
321 download_file->Initialize(false, temp_dir.path());
318 download_manager_->StartDownload(info->download_id); 322 download_manager_->StartDownload(info->download_id);
319 message_loop_.RunAllPending(); 323 message_loop_.RunAllPending();
320 324
321 // SelectFileObserver will have recorded any attempt to open the 325 // SelectFileObserver will have recorded any attempt to open the
322 // select file dialog. 326 // select file dialog.
323 // Note that DownloadManager::FileSelectionCanceled() is never called. 327 // Note that DownloadManager::FileSelectionCanceled() is never called.
324 EXPECT_EQ(kStartDownloadCases[i].expected_save_as, 328 EXPECT_EQ(kStartDownloadCases[i].expected_save_as,
325 observer.ShowedFileDialogForId(i)); 329 observer.ShowedFileDialogForId(i));
326 } 330 }
327 } 331 }
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 scoped_ptr<ItemObserver> observer(new ItemObserver(download)); 584 scoped_ptr<ItemObserver> observer(new ItemObserver(download));
581 585
582 // Create and initialize the download file. We're bypassing the first part 586 // Create and initialize the download file. We're bypassing the first part
583 // of the download process and skipping to the part after the final file 587 // of the download process and skipping to the part after the final file
584 // name has been chosen, so we need to initialize the download file 588 // name has been chosen, so we need to initialize the download file
585 // properly. 589 // properly.
586 DownloadFile* download_file( 590 DownloadFile* download_file(
587 new DownloadFile(info.get(), download_manager_)); 591 new DownloadFile(info.get(), download_manager_));
588 download_file->Rename(cr_path); 592 download_file->Rename(cr_path);
589 // This creates the .crdownload version of the file. 593 // This creates the .crdownload version of the file.
590 download_file->Initialize(false); 594 ScopedTempDir temp_dir;
595 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
596 download_file->Initialize(false, temp_dir.path());
591 // |download_file| is owned by DownloadFileManager. 597 // |download_file| is owned by DownloadFileManager.
592 AddDownloadToFileManager(info->download_id, download_file); 598 AddDownloadToFileManager(info->download_id, download_file);
593 599
594 ContinueDownloadWithPath(download, new_path); 600 ContinueDownloadWithPath(download, new_path);
595 message_loop_.RunAllPending(); 601 message_loop_.RunAllPending();
596 EXPECT_TRUE(GetActiveDownloadItem(0) != NULL); 602 EXPECT_TRUE(GetActiveDownloadItem(0) != NULL);
597 603
598 download_file->AppendDataToFile(kTestData, kTestDataLen); 604 download_file->AppendDataToFile(kTestData, kTestDataLen);
599 605
600 // Finish the download. 606 // Finish the download.
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 scoped_ptr<ItemObserver> observer(new ItemObserver(download)); 662 scoped_ptr<ItemObserver> observer(new ItemObserver(download));
657 663
658 // Create and initialize the download file. We're bypassing the first part 664 // Create and initialize the download file. We're bypassing the first part
659 // of the download process and skipping to the part after the final file 665 // of the download process and skipping to the part after the final file
660 // name has been chosen, so we need to initialize the download file 666 // name has been chosen, so we need to initialize the download file
661 // properly. 667 // properly.
662 DownloadFile* download_file( 668 DownloadFile* download_file(
663 new DownloadFile(info.get(), download_manager_)); 669 new DownloadFile(info.get(), download_manager_));
664 download_file->Rename(cr_path); 670 download_file->Rename(cr_path);
665 // This creates the .crdownload version of the file. 671 // This creates the .crdownload version of the file.
666 download_file->Initialize(false); 672 ScopedTempDir temp_dir;
673 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
674 download_file->Initialize(false, temp_dir.path());
667 // |download_file| is owned by DownloadFileManager. 675 // |download_file| is owned by DownloadFileManager.
668 AddDownloadToFileManager(info->download_id, download_file); 676 AddDownloadToFileManager(info->download_id, download_file);
669 677
670 ContinueDownloadWithPath(download, new_path); 678 ContinueDownloadWithPath(download, new_path);
671 message_loop_.RunAllPending(); 679 message_loop_.RunAllPending();
672 EXPECT_TRUE(GetActiveDownloadItem(0) != NULL); 680 EXPECT_TRUE(GetActiveDownloadItem(0) != NULL);
673 681
674 download_file->AppendDataToFile(kTestData, kTestDataLen); 682 download_file->AppendDataToFile(kTestData, kTestDataLen);
675 683
676 // Finish the download. 684 // Finish the download.
(...skipping 29 matching lines...) Expand all
706 EXPECT_FALSE(observer->hit_state(DownloadItem::REMOVING)); 714 EXPECT_FALSE(observer->hit_state(DownloadItem::REMOVING));
707 EXPECT_TRUE(observer->was_updated()); 715 EXPECT_TRUE(observer->was_updated());
708 EXPECT_FALSE(observer->was_opened()); 716 EXPECT_FALSE(observer->was_opened());
709 EXPECT_TRUE(download->file_externally_removed()); 717 EXPECT_TRUE(download->file_externally_removed());
710 EXPECT_EQ(DownloadItem::COMPLETE, download->state()); 718 EXPECT_EQ(DownloadItem::COMPLETE, download->state());
711 EXPECT_EQ(download_item_model->GetStatusText(), 719 EXPECT_EQ(download_item_model->GetStatusText(),
712 l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_REMOVED)); 720 l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_REMOVED));
713 721
714 EXPECT_FALSE(file_util::PathExists(new_path)); 722 EXPECT_FALSE(file_util::PathExists(new_path));
715 } 723 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698