Index: chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc |
diff --git a/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc |
index 26c0f57bad50d653a2b1471224eceba089115b5b..7ee53180e14914d9b04633d3dcef186b6723640f 100644 |
--- a/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc |
+++ b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc |
@@ -31,6 +31,7 @@ |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/browser_tabstrip.h" |
+#include "chrome/common/extensions/api/downloads.h" |
#include "chrome/common/pref_names.h" |
#include "chrome/test/base/in_process_browser_test.h" |
#include "chrome/test/base/ui_test_utils.h" |
@@ -1775,15 +1776,43 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest, |
<< kInvalidURLs[index]; |
} |
- EXPECT_STREQ("NETWORK_INVALID_REQUEST", RunFunctionAndReturnError( |
- new DownloadsDownloadFunction(), |
- "[{\"url\": \"javascript:document.write(\\\"hello\\\");\"}]").c_str()); |
- EXPECT_STREQ("NETWORK_INVALID_REQUEST", RunFunctionAndReturnError( |
+ int result_id = -1; |
+ scoped_ptr<base::Value> result(RunFunctionAndReturnResult( |
new DownloadsDownloadFunction(), |
- "[{\"url\": \"javascript:return false;\"}]").c_str()); |
- EXPECT_STREQ("NETWORK_FAILED", RunFunctionAndReturnError( |
+ "[{\"url\": \"javascript:document.write(\\\"hello\\\");\"}]")); |
+ ASSERT_TRUE(result.get()); |
+ ASSERT_TRUE(result->GetAsInteger(&result_id)); |
+ DownloadItem* item = GetCurrentManager()->GetDownload(result_id); |
+ ASSERT_TRUE(item); |
+ ASSERT_TRUE( |
+ WaitFor(downloads::OnCreated::kEventName, |
+ "[{\"error\": \"NETWORK_INVALID_REQUEST\"," |
+ " \"state\": \"interrupted\"," |
+ " \"url\": \"javascript:document.write(\\\"hello\\\");\"}]")); |
+ |
+ result.reset( |
+ RunFunctionAndReturnResult(new DownloadsDownloadFunction(), |
+ "[{\"url\": \"javascript:return false;\"}]")); |
+ ASSERT_TRUE(result.get()); |
+ ASSERT_TRUE(result->GetAsInteger(&result_id)); |
+ item = GetCurrentManager()->GetDownload(result_id); |
+ ASSERT_TRUE(item); |
+ ASSERT_TRUE(WaitFor(downloads::OnCreated::kEventName, |
+ "[{\"error\": \"NETWORK_INVALID_REQUEST\"," |
+ " \"state\": \"interrupted\"," |
+ " \"url\": \"javascript:return false;\"}]")); |
+ |
+ result.reset(RunFunctionAndReturnResult( |
new DownloadsDownloadFunction(), |
- "[{\"url\": \"ftp://example.com/example.txt\"}]").c_str()); |
+ "[{\"url\": \"ftp://example.com/example.txt\"}]")); |
+ ASSERT_TRUE(result.get()); |
+ ASSERT_TRUE(result->GetAsInteger(&result_id)); |
+ item = GetCurrentManager()->GetDownload(result_id); |
+ ASSERT_TRUE(item); |
+ ASSERT_TRUE(WaitFor(downloads::OnCreated::kEventName, |
+ "[{\"error\": \"NETWORK_FAILED\"," |
+ " \"state\": \"interrupted\"," |
+ " \"url\": \"ftp://example.com/example.txt\"}]")); |
} |
// TODO(benjhayden): Set up a test ftp server, add ftp://localhost* to |
@@ -2036,16 +2065,12 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest, |
ASSERT_TRUE(item); |
ScopedCancellingItem canceller(item); |
ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); |
- |
- ASSERT_TRUE(WaitForInterruption( |
- item, |
- content::DOWNLOAD_INTERRUPT_REASON_SERVER_UNAUTHORIZED, |
- base::StringPrintf("[{\"danger\": \"safe\"," |
- " \"incognito\": false," |
- " \"mime\": \"text/html\"," |
- " \"paused\": false," |
- " \"url\": \"%s\"}]", |
- download_url.c_str()))); |
+ ASSERT_TRUE( |
+ WaitFor(downloads::OnCreated::kEventName, |
+ base::StringPrintf("[{\"url\": \"%s\"," |
+ " \"state\": \"interrupted\"," |
+ " \"error\": \"SERVER_UNAUTHORIZED\"}]", |
+ download_url.c_str()))); |
} |
// Test that DownloadsDownloadFunction propagates |headers| to the URLRequest. |
@@ -2130,18 +2155,12 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest, |
ASSERT_TRUE(item); |
ScopedCancellingItem canceller(item); |
ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); |
- |
- ASSERT_TRUE(WaitForInterruption( |
- item, |
- content::DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT, |
- base::StringPrintf("[{\"danger\": \"safe\"," |
- " \"incognito\": false," |
- " \"bytesReceived\": 0.0," |
- " \"fileSize\": 0.0," |
- " \"mime\": \"\"," |
- " \"paused\": false," |
- " \"url\": \"%s\"}]", |
- download_url.c_str()))); |
+ ASSERT_TRUE( |
+ WaitFor(downloads::OnCreated::kEventName, |
+ base::StringPrintf("[{\"url\": \"%s\"," |
+ " \"state\": \"interrupted\"," |
+ " \"error\": \"SERVER_BAD_CONTENT\"}]", |
+ download_url.c_str()))); |
} |
// Test that DownloadsDownloadFunction propagates the Authorization header |
@@ -2272,18 +2291,12 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest, |
ASSERT_TRUE(item); |
ScopedCancellingItem canceller(item); |
ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); |
- |
- ASSERT_TRUE(WaitForInterruption( |
- item, |
- content::DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT, |
- base::StringPrintf("[{\"danger\": \"safe\"," |
- " \"incognito\": false," |
- " \"mime\": \"\"," |
- " \"paused\": false," |
- " \"id\": %d," |
- " \"url\": \"%s\"}]", |
- result_id, |
- download_url.c_str()))); |
+ ASSERT_TRUE( |
+ WaitFor(downloads::OnCreated::kEventName, |
+ base::StringPrintf("[{\"url\": \"%s\"," |
+ " \"state\": \"interrupted\"," |
+ " \"error\": \"SERVER_BAD_CONTENT\"}]", |
+ download_url.c_str()))); |
} |
// Test that downloadPostSuccess would fail if the resource requires the POST |
@@ -2315,18 +2328,12 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest, |
ASSERT_TRUE(item); |
ScopedCancellingItem canceller(item); |
ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); |
- |
- ASSERT_TRUE(WaitForInterruption( |
- item, |
- content::DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT, |
- base::StringPrintf("[{\"danger\": \"safe\"," |
- " \"incognito\": false," |
- " \"mime\": \"\"," |
- " \"paused\": false," |
- " \"id\": %d," |
- " \"url\": \"%s\"}]", |
- result_id, |
- download_url.c_str()))); |
+ ASSERT_TRUE( |
+ WaitFor(downloads::OnCreated::kEventName, |
+ base::StringPrintf("[{\"url\": \"%s\"," |
+ " \"state\": \"interrupted\"," |
+ " \"error\": \"SERVER_BAD_CONTENT\"}]", |
+ download_url.c_str()))); |
} |
// Test that cancel()ing an in-progress download causes its state to transition |