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. |