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