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

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: Changes per Randy's comments. 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 20acc11a0d4c04e8213e77281b3d12b9b43d696d..cad03951a2b347ee098670a907761eb562bccb25 100644
--- a/chrome/browser/download/download_browsertest.cc
+++ b/chrome/browser/download/download_browsertest.cc
@@ -702,6 +702,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);
@@ -712,7 +714,7 @@ class DownloadTest : public InProcessBrowserTest {
new DownloadTestObserverTerminal(
download_manager,
1,
- true, // Bail on select file
+ false, // Don't bail on select file.
DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL));
if (download_info.download_method == DOWNLOAD_DIRECT) {
@@ -722,8 +724,27 @@ 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->succeeded());
+ 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(),
@@ -1863,7 +1884,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_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE));
CheckDownloadStates(1, DownloadItem::COMPLETE);
@@ -1892,7 +1914,8 @@ IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrlToPath) {
DownloadTestObserver* 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();
EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE));

Powered by Google App Engine
This is Rietveld 408576698