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

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

Issue 10867065: Remove DownloadFileManager in favor of direct ownership of DownloadFiles. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed SavePageBrowserTest to always wait for DI to be persisted." Created 8 years, 4 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
« no previous file with comments | « chrome/browser/download/download_browsertest.cc ('k') | content/browser/browser_context.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/file_path.h" 8 #include "base/file_path.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 MessageLoopForUI::current()->Quit(); 117 MessageLoopForUI::current()->Quit();
118 } 118 }
119 119
120 bool waiting_; 120 bool waiting_;
121 DownloadManager* manager_; 121 DownloadManager* manager_;
122 DownloadItem* created_item_; 122 DownloadItem* created_item_;
123 123
124 DISALLOW_COPY_AND_ASSIGN(DownloadItemCreatedObserver); 124 DISALLOW_COPY_AND_ASSIGN(DownloadItemCreatedObserver);
125 }; 125 };
126 126
127 class DownloadPersistedObserver : public DownloadItem::Observer {
128 public:
129 explicit DownloadPersistedObserver(DownloadItem* item)
130 : waiting_(false), item_(item) {
131 item->AddObserver(this);
132 }
133
134 ~DownloadPersistedObserver() {
135 if (item_)
136 item_->RemoveObserver(this);
137 }
138
139 // Wait for download item to get the persisted bit set.
140 // Note that this class provides no protection against the download
141 // being destroyed between creation and return of WaitForPersisted();
142 // the caller must guarantee that in some other fashion.
143 void WaitForPersisted() {
144 // In combination with OnDownloadDestroyed() below, verify the
145 // above interface contract.
146 DCHECK(item_);
147
148 if (item_->IsPersisted())
149 return;
150
151 waiting_ = true;
152 content::RunMessageLoop();
153 waiting_ = false;
154
155 return;
156 }
157
158 private:
159 // DownloadItem::Observer
160 void OnDownloadUpdated(DownloadItem* item) {
161 DCHECK_EQ(item, item_);
162
163 if (waiting_ && item->IsPersisted())
164 MessageLoopForUI::current()->Quit();
165 }
166
167 void OnDownloadDestroyed(DownloadItem* item) {
168 if (item != item_)
169 return;
170
171 item_->RemoveObserver(this);
172 item_ = NULL;
173 }
174
175 bool waiting_;
176 DownloadItem* item_;
177
178 DISALLOW_COPY_AND_ASSIGN(DownloadPersistedObserver);
179 };
180
127 class SavePageBrowserTest : public InProcessBrowserTest { 181 class SavePageBrowserTest : public InProcessBrowserTest {
128 public: 182 public:
129 SavePageBrowserTest() {} 183 SavePageBrowserTest() {}
130 virtual ~SavePageBrowserTest(); 184 virtual ~SavePageBrowserTest();
131 185
132 protected: 186 protected:
133 void SetUp() OVERRIDE { 187 void SetUp() OVERRIDE {
134 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_dir_)); 188 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_dir_));
135 ASSERT_TRUE(save_dir_.CreateUniqueTempDir()); 189 ASSERT_TRUE(save_dir_.CreateUniqueTempDir());
136 InProcessBrowserTest::SetUp(); 190 InProcessBrowserTest::SetUp();
(...skipping 21 matching lines...) Expand all
158 *full_file_name = save_dir_.path().AppendASCII(prefix + ".htm"); 212 *full_file_name = save_dir_.path().AppendASCII(prefix + ".htm");
159 *dir = save_dir_.path().AppendASCII(prefix + "_files"); 213 *dir = save_dir_.path().AppendASCII(prefix + "_files");
160 } 214 }
161 215
162 WebContents* GetCurrentTab() const { 216 WebContents* GetCurrentTab() const {
163 WebContents* current_tab = chrome::GetActiveWebContents(browser()); 217 WebContents* current_tab = chrome::GetActiveWebContents(browser());
164 EXPECT_TRUE(current_tab); 218 EXPECT_TRUE(current_tab);
165 return current_tab; 219 return current_tab;
166 } 220 }
167 221
168
169 GURL WaitForSavePackageToFinish() const { 222 GURL WaitForSavePackageToFinish() const {
170 content::WindowedNotificationObserver observer( 223 content::WindowedNotificationObserver observer(
171 content::NOTIFICATION_SAVE_PACKAGE_SUCCESSFULLY_FINISHED, 224 content::NOTIFICATION_SAVE_PACKAGE_SUCCESSFULLY_FINISHED,
172 content::NotificationService::AllSources()); 225 content::NotificationService::AllSources());
173 observer.Wait(); 226 observer.Wait();
174 return content::Details<DownloadItem>(observer.details()).ptr()-> 227 return content::Details<DownloadItem>(observer.details()).ptr()->
175 GetOriginalUrl(); 228 GetOriginalUrl();
176 } 229 }
177 230
231 void WaitForPersistedDownloadItem() const {
benjhayden 2012/08/26 16:17:03 Why not inline this in CheckDownloadHistory()?
Randy Smith (Not in Mondays) 2012/08/27 15:02:50 Quite right. Done.
232 std::vector<DownloadItem*> downloads;
233 GetDownloadManager()->SearchDownloads(string16(), &downloads);
234 ASSERT_EQ(1u, downloads.size());
235 DownloadPersistedObserver(downloads[0]).WaitForPersisted();
236 }
237
178 DownloadManager* GetDownloadManager() const { 238 DownloadManager* GetDownloadManager() const {
179 DownloadManager* download_manager = 239 DownloadManager* download_manager =
180 BrowserContext::GetDownloadManager(browser()->profile()); 240 BrowserContext::GetDownloadManager(browser()->profile());
181 EXPECT_TRUE(download_manager); 241 EXPECT_TRUE(download_manager);
182 return download_manager; 242 return download_manager;
183 } 243 }
184 244
185 void QueryDownloadHistory() { 245 void QueryDownloadHistory() {
186 // Query the history system. 246 // Query the history system.
187 ChromeDownloadManagerDelegate* delegate = 247 ChromeDownloadManagerDelegate* delegate =
(...skipping 14 matching lines...) Expand all
202 262
203 // Indicate thet we have received the history and can continue. 263 // Indicate thet we have received the history and can continue.
204 MessageLoopForUI::current()->Quit(); 264 MessageLoopForUI::current()->Quit();
205 } 265 }
206 266
207 struct DownloadPersistentStoreInfoMatch 267 struct DownloadPersistentStoreInfoMatch
208 : public std::unary_function<DownloadPersistentStoreInfo, bool> { 268 : public std::unary_function<DownloadPersistentStoreInfo, bool> {
209 269
210 DownloadPersistentStoreInfoMatch(const GURL& url, 270 DownloadPersistentStoreInfoMatch(const GURL& url,
211 const FilePath& path, 271 const FilePath& path,
212 int64 num_files) 272 int64 num_files,
273 DownloadItem::DownloadState state)
213 : url_(url), 274 : url_(url),
214 path_(path), 275 path_(path),
215 num_files_(num_files) { 276 num_files_(num_files),
216 } 277 state_(state) {}
217 278
218 bool operator() (const DownloadPersistentStoreInfo& info) const { 279 bool operator() (const DownloadPersistentStoreInfo& info) const {
219 return info.url == url_ && 280 return info.url == url_ &&
220 info.path == path_ && 281 info.path == path_ &&
221 // For non-MHTML save packages, received_bytes is actually the 282 // For non-MHTML save packages, received_bytes is actually the
222 // number of files. 283 // number of files.
223 ((num_files_ < 0) || 284 ((num_files_ < 0) ||
224 (info.received_bytes == num_files_)) && 285 (info.received_bytes == num_files_)) &&
225 info.total_bytes == 0 && 286 info.total_bytes == 0 &&
226 info.state == DownloadItem::COMPLETE; 287 info.state == state_;
227 } 288 }
228 289
229 GURL url_; 290 GURL url_;
230 FilePath path_; 291 FilePath path_;
231 int64 num_files_; 292 int64 num_files_;
293 DownloadItem::DownloadState state_;
232 }; 294 };
233 295
234 void CheckDownloadHistory(const GURL& url, 296 void CheckDownloadHistory(const GURL& url,
235 const FilePath& path, 297 const FilePath& path,
236 int64 num_files) { 298 int64 num_files,
299 DownloadItem::DownloadState state) {
237 QueryDownloadHistory(); 300 QueryDownloadHistory();
238 301
239 std::vector<DownloadPersistentStoreInfo>::iterator found = 302 std::vector<DownloadPersistentStoreInfo>::iterator found =
240 std::find_if(history_entries_.begin(), history_entries_.end(), 303 std::find_if(history_entries_.begin(), history_entries_.end(),
241 DownloadPersistentStoreInfoMatch(url, path, num_files)); 304 DownloadPersistentStoreInfoMatch(url, path, num_files,
305 state));
242 306
243 if (found == history_entries_.end()) { 307 if (found == history_entries_.end()) {
244 LOG(ERROR) << "Missing url=" << url.spec() 308 LOG(ERROR) << "Missing url=" << url.spec()
245 << " path=" << path.value() 309 << " path=" << path.value()
246 << " received=" << num_files; 310 << " received=" << num_files;
247 for (size_t index = 0; index < history_entries_.size(); ++index) { 311 for (size_t index = 0; index < history_entries_.size(); ++index) {
248 LOG(ERROR) << "History@" << index << ": url=" 312 LOG(ERROR) << "History@" << index << ": url="
249 << history_entries_[index].url.spec() 313 << history_entries_[index].url.spec()
250 << " path=" << history_entries_[index].path.value() 314 << " path=" << history_entries_[index].path.value()
251 << " received=" << history_entries_[index].received_bytes 315 << " received=" << history_entries_[index].received_bytes
(...skipping 21 matching lines...) Expand all
273 337
274 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveHTMLOnly) { 338 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveHTMLOnly) {
275 GURL url = NavigateToMockURL("a"); 339 GURL url = NavigateToMockURL("a");
276 340
277 FilePath full_file_name, dir; 341 FilePath full_file_name, dir;
278 GetDestinationPaths("a", &full_file_name, &dir); 342 GetDestinationPaths("a", &full_file_name, &dir);
279 ASSERT_TRUE(GetCurrentTab()->SavePage(full_file_name, dir, 343 ASSERT_TRUE(GetCurrentTab()->SavePage(full_file_name, dir,
280 content::SAVE_PAGE_TYPE_AS_ONLY_HTML)); 344 content::SAVE_PAGE_TYPE_AS_ONLY_HTML));
281 345
282 EXPECT_EQ(url, WaitForSavePackageToFinish()); 346 EXPECT_EQ(url, WaitForSavePackageToFinish());
347 WaitForPersistedDownloadItem();
283 348
284 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); 349 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
285 CheckDownloadHistory(url, full_file_name, 1); // a.htm is 1 file. 350 // a.htm is 1 file.
351 CheckDownloadHistory(url, full_file_name, 1, DownloadItem::COMPLETE);
286 352
287 EXPECT_TRUE(file_util::PathExists(full_file_name)); 353 EXPECT_TRUE(file_util::PathExists(full_file_name));
288 EXPECT_FALSE(file_util::PathExists(dir)); 354 EXPECT_FALSE(file_util::PathExists(dir));
289 EXPECT_TRUE(file_util::ContentsEqual( 355 EXPECT_TRUE(file_util::ContentsEqual(
290 test_dir_.Append(FilePath(kTestDir)).Append(FILE_PATH_LITERAL("a.htm")), 356 test_dir_.Append(FilePath(kTestDir)).Append(FILE_PATH_LITERAL("a.htm")),
291 full_file_name)); 357 full_file_name));
292 } 358 }
293 359
294 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveHTMLOnlyCancel) { 360 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveHTMLOnlyCancel) {
295 GURL url = NavigateToMockURL("a"); 361 GURL url = NavigateToMockURL("a");
296 DownloadManager* manager(GetDownloadManager()); 362 DownloadManager* manager(GetDownloadManager());
297 std::vector<DownloadItem*> downloads; 363 std::vector<DownloadItem*> downloads;
298 manager->SearchDownloads(string16(), &downloads); 364 manager->SearchDownloads(string16(), &downloads);
299 ASSERT_EQ(0u, downloads.size()); 365 ASSERT_EQ(0u, downloads.size());
300 366
301 FilePath full_file_name, dir; 367 FilePath full_file_name, dir;
302 GetDestinationPaths("a", &full_file_name, &dir); 368 GetDestinationPaths("a", &full_file_name, &dir);
303 DownloadItemCreatedObserver creation_observer(manager); 369 DownloadItemCreatedObserver creation_observer(manager);
304 ASSERT_TRUE(GetCurrentTab()->SavePage(full_file_name, dir, 370 ASSERT_TRUE(GetCurrentTab()->SavePage(full_file_name, dir,
305 content::SAVE_PAGE_TYPE_AS_ONLY_HTML)); 371 content::SAVE_PAGE_TYPE_AS_ONLY_HTML));
306 DownloadItem* item = creation_observer.WaitForNewDownloadItem(); 372 DownloadItem* item = creation_observer.WaitForNewDownloadItem();
307 item->Cancel(true); 373 item->Cancel(true);
308 374
309 // TODO(rdsmith): Fix DII::Cancel() to actually cancel the save package. 375 // TODO(rdsmith): Fix DII::Cancel() to actually cancel the save package.
310 // Currently it's ignored. 376 // Currently it's ignored.
311 EXPECT_EQ(url, WaitForSavePackageToFinish()); 377 EXPECT_EQ(url, WaitForSavePackageToFinish());
378 WaitForPersistedDownloadItem();
379 DownloadPersistedObserver(item).WaitForPersisted();
380 // -1 to disable number of files check; we don't update after cancel, and
381 // we don't know when the single file completed in relationship to
382 // the cancel.
383 CheckDownloadHistory(url, full_file_name, -1, DownloadItem::CANCELLED);
312 384
313 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); 385 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
314 CheckDownloadHistory(url, full_file_name, 1); // a.htm is 1 file.
315 386
316 EXPECT_TRUE(file_util::PathExists(full_file_name)); 387 EXPECT_TRUE(file_util::PathExists(full_file_name));
317 EXPECT_FALSE(file_util::PathExists(dir)); 388 EXPECT_FALSE(file_util::PathExists(dir));
318 EXPECT_TRUE(file_util::ContentsEqual( 389 EXPECT_TRUE(file_util::ContentsEqual(
319 test_dir_.Append(FilePath(kTestDir)).Append(FILE_PATH_LITERAL("a.htm")), 390 test_dir_.Append(FilePath(kTestDir)).Append(FILE_PATH_LITERAL("a.htm")),
320 full_file_name)); 391 full_file_name));
321 } 392 }
322 393
323 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveHTMLOnlyTabDestroy) { 394 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveHTMLOnlyTabDestroy) {
324 GURL url = NavigateToMockURL("a"); 395 GURL url = NavigateToMockURL("a");
(...skipping 24 matching lines...) Expand all
349 GURL actual_page_url = URLRequestMockHTTPJob::GetMockUrl( 420 GURL actual_page_url = URLRequestMockHTTPJob::GetMockUrl(
350 FilePath(kTestDir).Append(file_name)); 421 FilePath(kTestDir).Append(file_name));
351 ui_test_utils::NavigateToURL(browser(), view_source_url); 422 ui_test_utils::NavigateToURL(browser(), view_source_url);
352 423
353 FilePath full_file_name, dir; 424 FilePath full_file_name, dir;
354 GetDestinationPaths("a", &full_file_name, &dir); 425 GetDestinationPaths("a", &full_file_name, &dir);
355 ASSERT_TRUE(GetCurrentTab()->SavePage(full_file_name, dir, 426 ASSERT_TRUE(GetCurrentTab()->SavePage(full_file_name, dir,
356 content::SAVE_PAGE_TYPE_AS_ONLY_HTML)); 427 content::SAVE_PAGE_TYPE_AS_ONLY_HTML));
357 428
358 EXPECT_EQ(actual_page_url, WaitForSavePackageToFinish()); 429 EXPECT_EQ(actual_page_url, WaitForSavePackageToFinish());
430 WaitForPersistedDownloadItem();
359 431
360 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); 432 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
361 CheckDownloadHistory(actual_page_url, full_file_name, 1); // a.htm is 1 file. 433 // a.htm is 1 file.
434 CheckDownloadHistory(actual_page_url, full_file_name, 1,
435 DownloadItem::COMPLETE);
362 436
363 EXPECT_TRUE(file_util::PathExists(full_file_name)); 437 EXPECT_TRUE(file_util::PathExists(full_file_name));
364 EXPECT_FALSE(file_util::PathExists(dir)); 438 EXPECT_FALSE(file_util::PathExists(dir));
365 EXPECT_TRUE(file_util::ContentsEqual( 439 EXPECT_TRUE(file_util::ContentsEqual(
366 test_dir_.Append(FilePath(kTestDir)).Append(file_name), 440 test_dir_.Append(FilePath(kTestDir)).Append(file_name),
367 full_file_name)); 441 full_file_name));
368 } 442 }
369 443
370 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveCompleteHTML) { 444 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveCompleteHTML) {
371 GURL url = NavigateToMockURL("b"); 445 GURL url = NavigateToMockURL("b");
372 446
373 FilePath full_file_name, dir; 447 FilePath full_file_name, dir;
374 GetDestinationPaths("b", &full_file_name, &dir); 448 GetDestinationPaths("b", &full_file_name, &dir);
375 ASSERT_TRUE(GetCurrentTab()->SavePage( 449 ASSERT_TRUE(GetCurrentTab()->SavePage(
376 full_file_name, dir, content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML)); 450 full_file_name, dir, content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML));
377 451
378 EXPECT_EQ(url, WaitForSavePackageToFinish()); 452 EXPECT_EQ(url, WaitForSavePackageToFinish());
453 WaitForPersistedDownloadItem();
379 454
380 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); 455 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
381 CheckDownloadHistory(url, full_file_name, 3); // b.htm is 3 files. 456 // b.htm is 3 files.
457 CheckDownloadHistory(url, full_file_name, 3, DownloadItem::COMPLETE);
382 458
383 EXPECT_TRUE(file_util::PathExists(full_file_name)); 459 EXPECT_TRUE(file_util::PathExists(full_file_name));
384 EXPECT_TRUE(file_util::PathExists(dir)); 460 EXPECT_TRUE(file_util::PathExists(dir));
385 EXPECT_TRUE(file_util::TextContentsEqual( 461 EXPECT_TRUE(file_util::TextContentsEqual(
386 test_dir_.Append(FilePath(kTestDir)).AppendASCII("b.saved1.htm"), 462 test_dir_.Append(FilePath(kTestDir)).AppendASCII("b.saved1.htm"),
387 full_file_name)); 463 full_file_name));
388 EXPECT_TRUE(file_util::ContentsEqual( 464 EXPECT_TRUE(file_util::ContentsEqual(
389 test_dir_.Append(FilePath(kTestDir)).AppendASCII("1.png"), 465 test_dir_.Append(FilePath(kTestDir)).AppendASCII("1.png"),
390 dir.AppendASCII("1.png"))); 466 dir.AppendASCII("1.png")));
391 EXPECT_TRUE(file_util::ContentsEqual( 467 EXPECT_TRUE(file_util::ContentsEqual(
(...skipping 10 matching lines...) Expand all
402 GURL url = NavigateToMockURL("b"); 478 GURL url = NavigateToMockURL("b");
403 479
404 FilePath full_file_name = save_dir_.path().AppendASCII( 480 FilePath full_file_name = save_dir_.path().AppendASCII(
405 std::string("Test page for saving page feature") + kAppendedExtension); 481 std::string("Test page for saving page feature") + kAppendedExtension);
406 FilePath dir = save_dir_.path().AppendASCII( 482 FilePath dir = save_dir_.path().AppendASCII(
407 "Test page for saving page feature_files"); 483 "Test page for saving page feature_files");
408 ASSERT_TRUE(GetCurrentTab()->SavePage( 484 ASSERT_TRUE(GetCurrentTab()->SavePage(
409 full_file_name, dir, content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML)); 485 full_file_name, dir, content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML));
410 486
411 EXPECT_EQ(url, WaitForSavePackageToFinish()); 487 EXPECT_EQ(url, WaitForSavePackageToFinish());
488 WaitForPersistedDownloadItem();
412 489
413 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); 490 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
414 CheckDownloadHistory(url, full_file_name, 3); // b.htm is 3 files. 491 // b.htm is 3 files.
492 CheckDownloadHistory(url, full_file_name, 3, DownloadItem::COMPLETE);
415 493
416 EXPECT_TRUE(file_util::PathExists(full_file_name)); 494 EXPECT_TRUE(file_util::PathExists(full_file_name));
417 EXPECT_TRUE(file_util::PathExists(dir)); 495 EXPECT_TRUE(file_util::PathExists(dir));
418 EXPECT_TRUE(file_util::TextContentsEqual( 496 EXPECT_TRUE(file_util::TextContentsEqual(
419 test_dir_.Append(FilePath(kTestDir)).AppendASCII("b.saved2.htm"), 497 test_dir_.Append(FilePath(kTestDir)).AppendASCII("b.saved2.htm"),
420 full_file_name)); 498 full_file_name));
421 EXPECT_TRUE(file_util::ContentsEqual( 499 EXPECT_TRUE(file_util::ContentsEqual(
422 test_dir_.Append(FilePath(kTestDir)).AppendASCII("1.png"), 500 test_dir_.Append(FilePath(kTestDir)).AppendASCII("1.png"),
423 dir.AppendASCII("1.png"))); 501 dir.AppendASCII("1.png")));
424 EXPECT_TRUE(file_util::ContentsEqual( 502 EXPECT_TRUE(file_util::ContentsEqual(
425 test_dir_.Append(FilePath(kTestDir)).AppendASCII("1.css"), 503 test_dir_.Append(FilePath(kTestDir)).AppendASCII("1.css"),
426 dir.AppendASCII("1.css"))); 504 dir.AppendASCII("1.css")));
427 } 505 }
428 506
429 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, RemoveFromList) { 507 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, RemoveFromList) {
430 GURL url = NavigateToMockURL("a"); 508 GURL url = NavigateToMockURL("a");
431 509
432 FilePath full_file_name, dir; 510 FilePath full_file_name, dir;
433 GetDestinationPaths("a", &full_file_name, &dir); 511 GetDestinationPaths("a", &full_file_name, &dir);
434 ASSERT_TRUE(GetCurrentTab()->SavePage(full_file_name, dir, 512 ASSERT_TRUE(GetCurrentTab()->SavePage(full_file_name, dir,
435 content::SAVE_PAGE_TYPE_AS_ONLY_HTML)); 513 content::SAVE_PAGE_TYPE_AS_ONLY_HTML));
436 514
437 EXPECT_EQ(url, WaitForSavePackageToFinish()); 515 EXPECT_EQ(url, WaitForSavePackageToFinish());
516 WaitForPersistedDownloadItem();
438 517
439 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); 518 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
440 CheckDownloadHistory(url, full_file_name, 1); // a.htm is 1 file. 519 // a.htm is 1 file.
520 CheckDownloadHistory(url, full_file_name, 1, DownloadItem::COMPLETE);
441 521
442 EXPECT_EQ(GetDownloadManager()->RemoveAllDownloads(), 1); 522 EXPECT_EQ(GetDownloadManager()->RemoveAllDownloads(), 1);
443 523
444 // Should not be in history. 524 // Should not be in history.
445 QueryDownloadHistory(); 525 QueryDownloadHistory();
446 EXPECT_EQ(std::find_if(history_entries_.begin(), history_entries_.end(), 526 EXPECT_EQ(std::find_if(history_entries_.begin(), history_entries_.end(),
447 DownloadPersistentStoreInfoMatch(url, full_file_name, 1)), 527 DownloadPersistentStoreInfoMatch(
528 url, full_file_name, 1, DownloadItem::COMPLETE)),
448 history_entries_.end()); 529 history_entries_.end());
449 530
450 EXPECT_TRUE(file_util::PathExists(full_file_name)); 531 EXPECT_TRUE(file_util::PathExists(full_file_name));
451 EXPECT_FALSE(file_util::PathExists(dir)); 532 EXPECT_FALSE(file_util::PathExists(dir));
452 EXPECT_TRUE(file_util::ContentsEqual( 533 EXPECT_TRUE(file_util::ContentsEqual(
453 test_dir_.Append(FilePath(kTestDir)).Append(FILE_PATH_LITERAL("a.htm")), 534 test_dir_.Append(FilePath(kTestDir)).Append(FILE_PATH_LITERAL("a.htm")),
454 full_file_name)); 535 full_file_name));
455 } 536 }
456 537
457 // This tests that a webpage with the title "test.exe" is saved as 538 // This tests that a webpage with the title "test.exe" is saved as
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 #if defined(OS_CHROMEOS) 592 #if defined(OS_CHROMEOS)
512 SavePackageFilePickerChromeOS::SetShouldPromptUser(false); 593 SavePackageFilePickerChromeOS::SetShouldPromptUser(false);
513 #else 594 #else
514 SavePackageFilePicker::SetShouldPromptUser(false); 595 SavePackageFilePicker::SetShouldPromptUser(false);
515 #endif 596 #endif
516 content::WindowedNotificationObserver observer( 597 content::WindowedNotificationObserver observer(
517 content::NOTIFICATION_SAVE_PACKAGE_SUCCESSFULLY_FINISHED, 598 content::NOTIFICATION_SAVE_PACKAGE_SUCCESSFULLY_FINISHED,
518 content::NotificationService::AllSources()); 599 content::NotificationService::AllSources());
519 chrome::SavePage(browser()); 600 chrome::SavePage(browser());
520 observer.Wait(); 601 observer.Wait();
521 CheckDownloadHistory(url, full_file_name, -1); 602 CheckDownloadHistory(url, full_file_name, -1, DownloadItem::COMPLETE);
522 603
523 EXPECT_TRUE(file_util::PathExists(full_file_name)); 604 EXPECT_TRUE(file_util::PathExists(full_file_name));
524 int64 actual_file_size = -1; 605 int64 actual_file_size = -1;
525 EXPECT_TRUE(file_util::GetFileSize(full_file_name, &actual_file_size)); 606 EXPECT_TRUE(file_util::GetFileSize(full_file_name, &actual_file_size));
526 EXPECT_LE(kFileSizeMin, actual_file_size); 607 EXPECT_LE(kFileSizeMin, actual_file_size);
527 } 608 }
OLDNEW
« no previous file with comments | « chrome/browser/download/download_browsertest.cc ('k') | content/browser/browser_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698