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

Unified Diff: chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc

Issue 148133007: [Downloads] Always call DM::StartDownload() for explicit downloads. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ketchup with upstream. Created 4 years, 10 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/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

Powered by Google App Engine
This is Rietveld 408576698