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

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

Issue 665253002: Standardize usage of virtual/override/final in chrome/browser/download/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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
OLDNEW
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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/bind_helpers.h" 6 #include "base/bind_helpers.h"
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/files/file_util.h" 9 #include "base/files/file_util.h"
10 #include "base/files/scoped_temp_dir.h" 10 #include "base/files/scoped_temp_dir.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 61
62 DownloadPersistedObserver(Profile* profile, const PersistedFilter& filter) 62 DownloadPersistedObserver(Profile* profile, const PersistedFilter& filter)
63 : profile_(profile), 63 : profile_(profile),
64 filter_(filter), 64 filter_(filter),
65 waiting_(false), 65 waiting_(false),
66 persisted_(false) { 66 persisted_(false) {
67 DownloadServiceFactory::GetForBrowserContext(profile_)-> 67 DownloadServiceFactory::GetForBrowserContext(profile_)->
68 GetDownloadHistory()->AddObserver(this); 68 GetDownloadHistory()->AddObserver(this);
69 } 69 }
70 70
71 virtual ~DownloadPersistedObserver() { 71 ~DownloadPersistedObserver() override {
72 DownloadService* service = DownloadServiceFactory::GetForBrowserContext( 72 DownloadService* service = DownloadServiceFactory::GetForBrowserContext(
73 profile_); 73 profile_);
74 if (service && service->GetDownloadHistory()) 74 if (service && service->GetDownloadHistory())
75 service->GetDownloadHistory()->RemoveObserver(this); 75 service->GetDownloadHistory()->RemoveObserver(this);
76 } 76 }
77 77
78 bool WaitForPersisted() { 78 bool WaitForPersisted() {
79 if (persisted_) 79 if (persisted_)
80 return true; 80 return true;
81 waiting_ = true; 81 waiting_ = true;
82 content::RunMessageLoop(); 82 content::RunMessageLoop();
83 waiting_ = false; 83 waiting_ = false;
84 return persisted_; 84 return persisted_;
85 } 85 }
86 86
87 virtual void OnDownloadStored(DownloadItem* item, 87 void OnDownloadStored(DownloadItem* item,
88 const history::DownloadRow& info) override { 88 const history::DownloadRow& info) override {
89 persisted_ = persisted_ || filter_.Run(item, info); 89 persisted_ = persisted_ || filter_.Run(item, info);
90 if (persisted_ && waiting_) 90 if (persisted_ && waiting_)
91 base::MessageLoopForUI::current()->Quit(); 91 base::MessageLoopForUI::current()->Quit();
92 } 92 }
93 93
94 private: 94 private:
95 Profile* profile_; 95 Profile* profile_;
96 PersistedFilter filter_; 96 PersistedFilter filter_;
97 bool waiting_; 97 bool waiting_;
98 bool persisted_; 98 bool persisted_;
99 99
100 DISALLOW_COPY_AND_ASSIGN(DownloadPersistedObserver); 100 DISALLOW_COPY_AND_ASSIGN(DownloadPersistedObserver);
101 }; 101 };
102 102
103 // Waits for an item record to be removed from the downloads database. 103 // Waits for an item record to be removed from the downloads database.
104 class DownloadRemovedObserver : public DownloadPersistedObserver { 104 class DownloadRemovedObserver : public DownloadPersistedObserver {
105 public: 105 public:
106 DownloadRemovedObserver(Profile* profile, int32 download_id) 106 DownloadRemovedObserver(Profile* profile, int32 download_id)
107 : DownloadPersistedObserver(profile, PersistedFilter()), 107 : DownloadPersistedObserver(profile, PersistedFilter()),
108 removed_(false), 108 removed_(false),
109 waiting_(false), 109 waiting_(false),
110 download_id_(download_id) { 110 download_id_(download_id) {
111 } 111 }
112 virtual ~DownloadRemovedObserver() {} 112 ~DownloadRemovedObserver() override {}
113 113
114 bool WaitForRemoved() { 114 bool WaitForRemoved() {
115 if (removed_) 115 if (removed_)
116 return true; 116 return true;
117 waiting_ = true; 117 waiting_ = true;
118 content::RunMessageLoop(); 118 content::RunMessageLoop();
119 waiting_ = false; 119 waiting_ = false;
120 return removed_; 120 return removed_;
121 } 121 }
122 122
123 virtual void OnDownloadStored(DownloadItem* item, 123 void OnDownloadStored(DownloadItem* item,
124 const history::DownloadRow& info) override { 124 const history::DownloadRow& info) override {}
125 }
126 125
127 virtual void OnDownloadsRemoved(const DownloadHistory::IdSet& ids) override { 126 void OnDownloadsRemoved(const DownloadHistory::IdSet& ids) override {
128 removed_ = ids.find(download_id_) != ids.end(); 127 removed_ = ids.find(download_id_) != ids.end();
129 if (removed_ && waiting_) 128 if (removed_ && waiting_)
130 base::MessageLoopForUI::current()->Quit(); 129 base::MessageLoopForUI::current()->Quit();
131 } 130 }
132 131
133 private: 132 private:
134 bool removed_; 133 bool removed_;
135 bool waiting_; 134 bool waiting_;
136 int32 download_id_; 135 int32 download_id_;
137 136
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 static const char kAppendedExtension[] = ".html"; 180 static const char kAppendedExtension[] = ".html";
182 181
183 // Loosely based on logic in DownloadTestObserver. 182 // Loosely based on logic in DownloadTestObserver.
184 class DownloadItemCreatedObserver : public DownloadManager::Observer { 183 class DownloadItemCreatedObserver : public DownloadManager::Observer {
185 public: 184 public:
186 explicit DownloadItemCreatedObserver(DownloadManager* manager) 185 explicit DownloadItemCreatedObserver(DownloadManager* manager)
187 : waiting_(false), manager_(manager) { 186 : waiting_(false), manager_(manager) {
188 manager->AddObserver(this); 187 manager->AddObserver(this);
189 } 188 }
190 189
191 virtual ~DownloadItemCreatedObserver() { 190 ~DownloadItemCreatedObserver() override {
192 if (manager_) 191 if (manager_)
193 manager_->RemoveObserver(this); 192 manager_->RemoveObserver(this);
194 } 193 }
195 194
196 // Wait for the first download item created after object creation. 195 // Wait for the first download item created after object creation.
197 // Note that this class provides no protection against the download 196 // Note that this class provides no protection against the download
198 // being destroyed between creation and return of WaitForNewDownloadItem(); 197 // being destroyed between creation and return of WaitForNewDownloadItem();
199 // the caller must guarantee that in some other fashion. 198 // the caller must guarantee that in some other fashion.
200 void WaitForDownloadItem(std::vector<DownloadItem*>* items_seen) { 199 void WaitForDownloadItem(std::vector<DownloadItem*>* items_seen) {
201 if (!manager_) { 200 if (!manager_) {
202 // The manager went away before we were asked to wait; return 201 // The manager went away before we were asked to wait; return
203 // what we have, even if it's null. 202 // what we have, even if it's null.
204 *items_seen = items_seen_; 203 *items_seen = items_seen_;
205 return; 204 return;
206 } 205 }
207 206
208 if (items_seen_.empty()) { 207 if (items_seen_.empty()) {
209 waiting_ = true; 208 waiting_ = true;
210 content::RunMessageLoop(); 209 content::RunMessageLoop();
211 waiting_ = false; 210 waiting_ = false;
212 } 211 }
213 212
214 *items_seen = items_seen_; 213 *items_seen = items_seen_;
215 return; 214 return;
216 } 215 }
217 216
218 private: 217 private:
219 // DownloadManager::Observer 218 // DownloadManager::Observer
220 virtual void OnDownloadCreated( 219 void OnDownloadCreated(DownloadManager* manager,
221 DownloadManager* manager, DownloadItem* item) override { 220 DownloadItem* item) override {
222 DCHECK_EQ(manager, manager_); 221 DCHECK_EQ(manager, manager_);
223 items_seen_.push_back(item); 222 items_seen_.push_back(item);
224 223
225 if (waiting_) 224 if (waiting_)
226 base::MessageLoopForUI::current()->Quit(); 225 base::MessageLoopForUI::current()->Quit();
227 } 226 }
228 227
229 virtual void ManagerGoingDown(DownloadManager* manager) override { 228 void ManagerGoingDown(DownloadManager* manager) override {
230 manager_->RemoveObserver(this); 229 manager_->RemoveObserver(this);
231 manager_ = NULL; 230 manager_ = NULL;
232 if (waiting_) 231 if (waiting_)
233 base::MessageLoopForUI::current()->Quit(); 232 base::MessageLoopForUI::current()->Quit();
234 } 233 }
235 234
236 bool waiting_; 235 bool waiting_;
237 DownloadManager* manager_; 236 DownloadManager* manager_;
238 std::vector<DownloadItem*> items_seen_; 237 std::vector<DownloadItem*> items_seen_;
239 238
240 DISALLOW_COPY_AND_ASSIGN(DownloadItemCreatedObserver); 239 DISALLOW_COPY_AND_ASSIGN(DownloadItemCreatedObserver);
241 }; 240 };
242 241
243 class SavePackageFinishedObserver : public content::DownloadManager::Observer { 242 class SavePackageFinishedObserver : public content::DownloadManager::Observer {
244 public: 243 public:
245 SavePackageFinishedObserver(content::DownloadManager* manager, 244 SavePackageFinishedObserver(content::DownloadManager* manager,
246 const base::Closure& callback) 245 const base::Closure& callback)
247 : download_manager_(manager), 246 : download_manager_(manager),
248 callback_(callback) { 247 callback_(callback) {
249 download_manager_->AddObserver(this); 248 download_manager_->AddObserver(this);
250 } 249 }
251 250
252 virtual ~SavePackageFinishedObserver() { 251 ~SavePackageFinishedObserver() override {
253 if (download_manager_) 252 if (download_manager_)
254 download_manager_->RemoveObserver(this); 253 download_manager_->RemoveObserver(this);
255 } 254 }
256 255
257 // DownloadManager::Observer: 256 // DownloadManager::Observer:
258 virtual void OnSavePackageSuccessfullyFinished( 257 void OnSavePackageSuccessfullyFinished(content::DownloadManager* manager,
259 content::DownloadManager* manager, content::DownloadItem* item) override { 258 content::DownloadItem* item) override {
260 callback_.Run(); 259 callback_.Run();
261 } 260 }
262 virtual void ManagerGoingDown(content::DownloadManager* manager) override { 261 void ManagerGoingDown(content::DownloadManager* manager) override {
263 download_manager_->RemoveObserver(this); 262 download_manager_->RemoveObserver(this);
264 download_manager_ = NULL; 263 download_manager_ = NULL;
265 } 264 }
266 265
267 private: 266 private:
268 content::DownloadManager* download_manager_; 267 content::DownloadManager* download_manager_;
269 base::Closure callback_; 268 base::Closure callback_;
270 269
271 DISALLOW_COPY_AND_ASSIGN(SavePackageFinishedObserver); 270 DISALLOW_COPY_AND_ASSIGN(SavePackageFinishedObserver);
272 }; 271 };
273 272
274 class SavePageBrowserTest : public InProcessBrowserTest { 273 class SavePageBrowserTest : public InProcessBrowserTest {
275 public: 274 public:
276 SavePageBrowserTest() {} 275 SavePageBrowserTest() {}
277 virtual ~SavePageBrowserTest(); 276 virtual ~SavePageBrowserTest();
278 277
279 protected: 278 protected:
280 virtual void SetUp() override { 279 virtual void SetUp() override {
281 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_dir_)); 280 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_dir_));
282 ASSERT_TRUE(save_dir_.CreateUniqueTempDir()); 281 ASSERT_TRUE(save_dir_.CreateUniqueTempDir());
283 InProcessBrowserTest::SetUp(); 282 InProcessBrowserTest::SetUp();
284 } 283 }
285 284
286 virtual void SetUpOnMainThread() override { 285 void SetUpOnMainThread() override {
287 browser()->profile()->GetPrefs()->SetFilePath( 286 browser()->profile()->GetPrefs()->SetFilePath(
288 prefs::kDownloadDefaultDirectory, save_dir_.path()); 287 prefs::kDownloadDefaultDirectory, save_dir_.path());
289 browser()->profile()->GetPrefs()->SetFilePath( 288 browser()->profile()->GetPrefs()->SetFilePath(
290 prefs::kSaveFileDefaultDirectory, save_dir_.path()); 289 prefs::kSaveFileDefaultDirectory, save_dir_.path());
291 BrowserThread::PostTask( 290 BrowserThread::PostTask(
292 BrowserThread::IO, FROM_HERE, 291 BrowserThread::IO, FROM_HERE,
293 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true)); 292 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true));
294 } 293 }
295 294
296 GURL NavigateToMockURL(const std::string& prefix) { 295 GURL NavigateToMockURL(const std::string& prefix) {
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 435
437 // TODO(benjhayden): Figure out how to safely wait for SavePackage's finished 436 // TODO(benjhayden): Figure out how to safely wait for SavePackage's finished
438 // notification, then expect the contents of the downloaded file. 437 // notification, then expect the contents of the downloaded file.
439 } 438 }
440 439
441 class DelayingDownloadManagerDelegate : public ChromeDownloadManagerDelegate { 440 class DelayingDownloadManagerDelegate : public ChromeDownloadManagerDelegate {
442 public: 441 public:
443 explicit DelayingDownloadManagerDelegate(Profile* profile) 442 explicit DelayingDownloadManagerDelegate(Profile* profile)
444 : ChromeDownloadManagerDelegate(profile) { 443 : ChromeDownloadManagerDelegate(profile) {
445 } 444 }
446 virtual ~DelayingDownloadManagerDelegate() {} 445 ~DelayingDownloadManagerDelegate() override {}
447 446
448 virtual bool ShouldCompleteDownload( 447 bool ShouldCompleteDownload(
449 content::DownloadItem* item, 448 content::DownloadItem* item,
450 const base::Closure& user_complete_callback) override { 449 const base::Closure& user_complete_callback) override {
451 return false; 450 return false;
452 } 451 }
453 452
454 private: 453 private:
455 DISALLOW_COPY_AND_ASSIGN(DelayingDownloadManagerDelegate); 454 DISALLOW_COPY_AND_ASSIGN(DelayingDownloadManagerDelegate);
456 }; 455 };
457 456
458 // Disabled on Windows due to flakiness. http://crbug.com/162323 457 // Disabled on Windows due to flakiness. http://crbug.com/162323
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 750
752 EXPECT_TRUE(base::DieFileDie(full_file_name, false)); 751 EXPECT_TRUE(base::DieFileDie(full_file_name, false));
753 EXPECT_TRUE(base::DieFileDie(dir, true)); 752 EXPECT_TRUE(base::DieFileDie(dir, true));
754 } 753 }
755 #endif 754 #endif
756 755
757 class SavePageAsMHTMLBrowserTest : public SavePageBrowserTest { 756 class SavePageAsMHTMLBrowserTest : public SavePageBrowserTest {
758 public: 757 public:
759 SavePageAsMHTMLBrowserTest() {} 758 SavePageAsMHTMLBrowserTest() {}
760 virtual ~SavePageAsMHTMLBrowserTest(); 759 virtual ~SavePageAsMHTMLBrowserTest();
761 virtual void SetUpCommandLine(CommandLine* command_line) override { 760 void SetUpCommandLine(CommandLine* command_line) override {
762 command_line->AppendSwitch(switches::kSavePageAsMHTML); 761 command_line->AppendSwitch(switches::kSavePageAsMHTML);
763 } 762 }
764 763
765 private: 764 private:
766 DISALLOW_COPY_AND_ASSIGN(SavePageAsMHTMLBrowserTest); 765 DISALLOW_COPY_AND_ASSIGN(SavePageAsMHTMLBrowserTest);
767 }; 766 };
768 767
769 SavePageAsMHTMLBrowserTest::~SavePageAsMHTMLBrowserTest() { 768 SavePageAsMHTMLBrowserTest::~SavePageAsMHTMLBrowserTest() {
770 } 769 }
771 770
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
810 base::FilePath download_dir = DownloadPrefs::FromDownloadManager( 809 base::FilePath download_dir = DownloadPrefs::FromDownloadManager(
811 GetDownloadManager())->DownloadPath(); 810 GetDownloadManager())->DownloadPath();
812 base::FilePath filename = download_dir.AppendASCII("dataurl.txt"); 811 base::FilePath filename = download_dir.AppendASCII("dataurl.txt");
813 ASSERT_TRUE(base::PathExists(filename)); 812 ASSERT_TRUE(base::PathExists(filename));
814 std::string contents; 813 std::string contents;
815 EXPECT_TRUE(base::ReadFileToString(filename, &contents)); 814 EXPECT_TRUE(base::ReadFileToString(filename, &contents));
816 EXPECT_EQ("foo", contents); 815 EXPECT_EQ("foo", contents);
817 } 816 }
818 817
819 } // namespace 818 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/download/save_package_file_picker.h ('k') | chrome/browser/download/test_download_shelf.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698