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

Unified Diff: chrome/browser/download/download_browsertest.cc

Issue 10867060: Move some download tests to content from chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Incorporated comments. 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | content/browser/download/download_browsertest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/download/download_browsertest.cc
diff --git a/chrome/browser/download/download_browsertest.cc b/chrome/browser/download/download_browsertest.cc
index 06fc2a41a9018738b0499794394e875aa72161d1..db06c0d9aa680722eccc9e3da534ac3ab1daddea 100644
--- a/chrome/browser/download/download_browsertest.cc
+++ b/chrome/browser/download/download_browsertest.cc
@@ -1407,128 +1407,6 @@ IN_PROC_BROWSER_TEST_F(DownloadTest, NewWindow) {
CheckDownload(browser(), file, file);
}
-// Check that downloading multiple (in this case, 2) files does not result in
-// corrupted files.
-IN_PROC_BROWSER_TEST_F(DownloadTest, MultiDownload) {
- EXPECT_EQ(1, browser()->tab_count());
-
- // Create a download, wait until it's started, and confirm
- // we're in the expected state.
- scoped_ptr<content::DownloadTestObserver> observer1(
- CreateInProgressWaiter(browser(), 1));
- ui_test_utils::NavigateToURL(
- browser(), GURL(URLRequestSlowDownloadJob::kUnknownSizeUrl));
- observer1->WaitForFinished();
-
- std::vector<DownloadItem*> downloads;
- DownloadManagerForBrowser(browser())->SearchDownloads(
- string16(), &downloads);
- ASSERT_EQ(1u, downloads.size());
- ASSERT_EQ(DownloadItem::IN_PROGRESS, downloads[0]->GetState());
- EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
- DownloadItem* download1 = downloads[0]; // The only download.
-
- // Start the second download and wait until it's done.
- FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
- GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
- // Download the file and wait. We do not expect the Select File dialog.
- DownloadAndWait(browser(), url);
-
- // Should now have 2 items on the download shelf.
- downloads.clear();
- DownloadManagerForBrowser(browser())->SearchDownloads(
- string16(), &downloads);
- ASSERT_EQ(2u, downloads.size());
- // We don't know the order of the downloads.
- DownloadItem* download2 = downloads[(download1 == downloads[0]) ? 1 : 0];
-
- ASSERT_EQ(DownloadItem::IN_PROGRESS, download1->GetState());
- ASSERT_EQ(DownloadItem::COMPLETE, download2->GetState());
- // The download shelf should be open.
- EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
-
- // Allow the first request to finish. We do this by loading a third URL
- // in a separate tab.
- scoped_ptr<content::DownloadTestObserver> observer2(
- CreateWaiter(browser(), 1));
- GURL finish_url(URLRequestSlowDownloadJob::kFinishDownloadUrl);
- ui_test_utils::NavigateToURLWithDisposition(
- browser(),
- finish_url,
- NEW_FOREGROUND_TAB,
- ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
- observer2->WaitForFinished(); // Wait for the third request.
- EXPECT_EQ(1u, observer2->NumDownloadsSeenInState(DownloadItem::COMPLETE));
-
- // Get the important info from other threads and check it.
- EXPECT_TRUE(EnsureNoPendingDownloads());
-
- EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
-
- // The |DownloadItem|s should now be done and have the final file names.
- // Verify that the files have the expected data and size.
- // |file1| should be full of '*'s, and |file2| should be the same as the
- // source file.
- FilePath file1(download1->GetFullPath());
- size_t file_size1 = URLRequestSlowDownloadJob::kFirstDownloadSize +
- URLRequestSlowDownloadJob::kSecondDownloadSize;
- std::string expected_contents(file_size1, '*');
- ASSERT_TRUE(VerifyFile(file1, expected_contents, file_size1));
-
- FilePath file2(download2->GetFullPath());
- ASSERT_TRUE(file_util::ContentsEqual(OriginFile(file), file2));
-}
-
-IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadCancelled) {
- EXPECT_EQ(1, browser()->tab_count());
-
- // TODO(rdsmith): Fragile code warning! The code below relies on the
- // DownloadTestObserverInProgress only finishing when the new download
- // has reached the state of being entered into the history and being
- // user-visible (that's what's required for the Remove to be valid and
- // for the download shelf to be visible). By the pure semantics of
- // DownloadTestObserverInProgress, that's not guaranteed; DownloadItems
- // are created in the IN_PROGRESS state and made known to the DownloadManager
- // immediately, so any ModelChanged event on the DownloadManager after
- // navigation would allow the observer to return. However, the only
- // ModelChanged() event the code will currently fire is in
- // OnCreateDownloadEntryComplete, at which point the download item will
- // be in the state we need.
- // The right way to fix this is to create finer grained states on the
- // DownloadItem, and wait for the state that indicates the item has been
- // entered in the history and made visible in the UI.
-
- // Create a download, wait until it's started, and confirm
- // we're in the expected state.
- scoped_ptr<content::DownloadTestObserver> observer(
- CreateInProgressWaiter(browser(), 1));
- ui_test_utils::NavigateToURL(
- browser(), GURL(URLRequestSlowDownloadJob::kUnknownSizeUrl));
- observer->WaitForFinished();
-
- std::vector<DownloadItem*> downloads;
- DownloadManagerForBrowser(browser())->SearchDownloads(
- string16(), &downloads);
- ASSERT_EQ(1u, downloads.size());
- ASSERT_EQ(DownloadItem::IN_PROGRESS, downloads[0]->GetState());
- EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
-
- // Cancel the download and wait for download system quiesce.
- downloads[0]->Delete(DownloadItem::DELETE_DUE_TO_USER_DISCARD);
- scoped_refptr<content::DownloadTestFlushObserver> flush_observer(
- new content::DownloadTestFlushObserver(
- DownloadManagerForBrowser(browser())));
- flush_observer->WaitForFlush();
-
- // Get the important info from other threads and check it.
- EXPECT_TRUE(EnsureNoPendingDownloads());
-
- // Using "DownloadItem::Remove" follows the discard dangerous download path,
- // which completely removes the browser from the shelf and closes the shelf
- // if it was there. Download panel stays open on ChromeOS.
- EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible());
-}
-
// Confirm a download makes it into the history properly.
IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadHistoryCheck) {
FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
« no previous file with comments | « no previous file | content/browser/download/download_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698