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

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

Issue 9570005: Added callback to DownloadUrl() so we can find download failures. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed CLANG issue. Created 8 years, 9 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
Index: chrome/browser/download/download_browsertest.cc
diff --git a/chrome/browser/download/download_browsertest.cc b/chrome/browser/download/download_browsertest.cc
index 1e1a3687bdb1d49d16ce449122e0cec08262cb62..e1b06d782c25235fc69fee9b1ad636728c27f050 100644
--- a/chrome/browser/download/download_browsertest.cc
+++ b/chrome/browser/download/download_browsertest.cc
@@ -683,6 +683,8 @@ class DownloadTest : public InProcessBrowserTest {
GetDownloads(browser(), &download_items);
ASSERT_TRUE(download_items.empty());
+ NullSelectFile(browser());
+
std::string server_path = "files/downloads/";
server_path += download_info.url_name;
GURL url = test_server()->GetURL(server_path);
@@ -693,7 +695,7 @@ class DownloadTest : public InProcessBrowserTest {
new DownloadTestObserverTerminal(
download_manager,
1,
- true, // Bail on select file
+ false, // Don't bail on select file.
DownloadTestObserverTerminal::ON_DANGEROUS_DOWNLOAD_FAIL));
if (download_info.download_method == DOWNLOAD_DIRECT) {
@@ -703,8 +705,26 @@ class DownloadTest : public InProcessBrowserTest {
DownloadSaveInfo save_info;
save_info.prompt_for_save_location = false;
+ scoped_refptr<DownloadTestItemCreationObserver> creation_observer(
+ new DownloadTestItemCreationObserver);
+
DownloadManagerForBrowser(browser())->DownloadUrl(
- url, GURL(""), "", false, -1, save_info, web_contents);
+ url, GURL(""), "", false, -1, save_info, web_contents,
+ creation_observer->callback());
+
+ // Wait until the item is created, or we have determined that it
+ // won't be.
+ creation_observer->WaitForDownloadItemCreation();
+
+ int32 invalid_id = content::DownloadId::Invalid().local();
+ EXPECT_EQ(download_info.show_download_item, creation_observer->started());
Randy Smith (Not in Mondays) 2012/03/07 21:16:57 Don't use mean ->succeeded() here? started() will
ahendrickson 2012/03/08 21:33:07 Done.
+ if (download_info.show_download_item) {
+ EXPECT_EQ(net::OK, creation_observer->error());
+ EXPECT_NE(invalid_id, creation_observer->download_id().local());
+ } else {
+ EXPECT_NE(net::OK, creation_observer->error());
+ EXPECT_EQ(invalid_id, creation_observer->download_id().local());
+ }
} else {
// Navigate to URL normally, wait until done.
ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(browser(),
@@ -1825,7 +1845,8 @@ IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrl) {
DownloadSaveInfo save_info;
save_info.prompt_for_save_location = true;
DownloadManagerForBrowser(browser())->DownloadUrl(
- url, GURL(""), "", false, -1, save_info, web_contents);
+ url, GURL(""), "", false, -1, save_info, web_contents,
+ DownloadManager::OnStartedCallback());
observer->WaitForFinished();
EXPECT_TRUE(observer->select_file_dialog_seen());
@@ -1852,7 +1873,8 @@ IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrlToPath) {
DownloadTestObserverTerminal* observer(CreateWaiter(browser(), 1));
DownloadManagerForBrowser(browser())->DownloadUrl(
- url, GURL(""), "", false, -1, save_info, web_contents);
+ url, GURL(""), "", false, -1, save_info, web_contents,
+ DownloadManager::OnStartedCallback());
observer->WaitForFinished();
// Check state.

Powered by Google App Engine
This is Rietveld 408576698