| Index: chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
|
| diff --git a/chrome/browser/extensions/api/downloads/downloads_api_unittest.cc b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
|
| similarity index 93%
|
| rename from chrome/browser/extensions/api/downloads/downloads_api_unittest.cc
|
| rename to chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
|
| index 93a40f2ffc6d5696c3131292794f540b4f70cf15..50606170dc238098ac57448cdf852133230e8037 100644
|
| --- a/chrome/browser/extensions/api/downloads/downloads_api_unittest.cc
|
| +++ b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
|
| @@ -62,6 +62,10 @@ using content::URLRequestSlowDownloadJob;
|
|
|
| namespace events = extensions::event_names;
|
|
|
| +namespace errors = download_extension_errors;
|
| +
|
| +namespace api = extensions::api::downloads;
|
| +
|
| namespace {
|
|
|
| // Comparator that orders download items by their ID. Can be used with
|
| @@ -349,19 +353,22 @@ class DownloadExtensionTest : public ExtensionApiTest {
|
| current_browser()->profile(), event_name, json_args);
|
| }
|
|
|
| - bool WaitForInterruption(DownloadItem* item, int expected_error,
|
| - const std::string& on_created_event) {
|
| + bool WaitForInterruption(
|
| + DownloadItem* item,
|
| + content::DownloadInterruptReason expected_error,
|
| + const std::string& on_created_event) {
|
| if (!WaitFor(events::kOnDownloadCreated, on_created_event))
|
| return false;
|
| // Now, onCreated is always fired before interruption.
|
| return WaitFor(events::kOnDownloadChanged,
|
| base::StringPrintf("[{\"id\": %d,"
|
| - " \"error\": {\"current\": %d},"
|
| - " \"state\": {"
|
| - " \"previous\": \"in_progress\","
|
| - " \"current\": \"interrupted\"}}]",
|
| - item->GetId(),
|
| - expected_error));
|
| + " \"error\": {\"current\": \"%s\"},"
|
| + " \"state\": {"
|
| + " \"previous\": \"in_progress\","
|
| + " \"current\": \"interrupted\"}}]",
|
| + item->GetId(),
|
| + content::InterruptReasonDebugString(
|
| + expected_error).c_str()));
|
| }
|
|
|
| void ClearEvents() {
|
| @@ -904,12 +911,42 @@ bool ItemIsInterrupted(DownloadItem* item) {
|
| return item->GetState() == DownloadItem::INTERRUPTED;
|
| }
|
|
|
| +content::DownloadInterruptReason InterruptReasonExtensionToContent(
|
| + api::InterruptReason error) {
|
| + switch (error) {
|
| + case api::INTERRUPT_REASON_NONE:
|
| + return content::DOWNLOAD_INTERRUPT_REASON_NONE;
|
| +#define INTERRUPT_REASON(name, value) \
|
| + case api::INTERRUPT_REASON_##name: \
|
| + return content::DOWNLOAD_INTERRUPT_REASON_##name;
|
| +#include "content/public/browser/download_interrupt_reason_values.h"
|
| +#undef INTERRUPT_REASON
|
| + }
|
| + NOTREACHED();
|
| + return content::DOWNLOAD_INTERRUPT_REASON_NONE;
|
| +}
|
| +
|
| +api::InterruptReason InterruptReasonContentToExtension(
|
| + content::DownloadInterruptReason error) {
|
| + switch (error) {
|
| + case content::DOWNLOAD_INTERRUPT_REASON_NONE:
|
| + return api::INTERRUPT_REASON_NONE;
|
| +#define INTERRUPT_REASON(name, value) \
|
| + case content::DOWNLOAD_INTERRUPT_REASON_##name: \
|
| + return api::INTERRUPT_REASON_##name;
|
| +#include "content/public/browser/download_interrupt_reason_values.h"
|
| +#undef INTERRUPT_REASON
|
| + }
|
| + NOTREACHED();
|
| + return api::INTERRUPT_REASON_NONE;
|
| +}
|
| +
|
| } // namespace
|
|
|
| IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| DownloadExtensionTest_Open) {
|
| LoadExtension("downloads_split");
|
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError,
|
| + EXPECT_STREQ(errors::kInvalidId,
|
| RunFunctionAndReturnError(
|
| new DownloadsOpenFunction(),
|
| "[-42]").c_str());
|
| @@ -925,7 +962,7 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| " \"paused\": false,"
|
| " \"url\": \"%s\"}]",
|
| download_item->GetURL().spec().c_str())));
|
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError,
|
| + EXPECT_STREQ(errors::kNotComplete,
|
| RunFunctionAndReturnError(
|
| new DownloadsOpenFunction(),
|
| DownloadItemIdAsArgList(download_item)).c_str());
|
| @@ -978,29 +1015,25 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| DownloadItemIdAsArgList(download_item)));
|
| EXPECT_EQ(DownloadItem::CANCELLED, download_item->GetState());
|
|
|
| - // Calling paused on a non-active download yields kInvalidOperationError.
|
| + // Calling paused on a non-active download yields kInvalidId.
|
| std::string error = RunFunctionAndReturnError(
|
| new DownloadsPauseFunction(), DownloadItemIdAsArgList(download_item));
|
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError,
|
| - error.c_str());
|
| + EXPECT_STREQ(errors::kNotInProgress, error.c_str());
|
|
|
| - // Calling resume on a non-active download yields kInvalidOperationError
|
| + // Calling resume on a non-active download yields kInvalidId
|
| error = RunFunctionAndReturnError(
|
| new DownloadsResumeFunction(), DownloadItemIdAsArgList(download_item));
|
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError,
|
| - error.c_str());
|
| + EXPECT_STREQ(errors::kNotResumable, error.c_str());
|
|
|
| - // Calling paused on a non-existent download yields kInvalidOperationError.
|
| + // Calling paused on a non-existent download yields kInvalidId.
|
| error = RunFunctionAndReturnError(
|
| new DownloadsPauseFunction(), "[-42]");
|
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError,
|
| - error.c_str());
|
| + EXPECT_STREQ(errors::kInvalidId, error.c_str());
|
|
|
| - // Calling resume on a non-existent download yields kInvalidOperationError
|
| + // Calling resume on a non-existent download yields kInvalidId
|
| error = RunFunctionAndReturnError(
|
| new DownloadsResumeFunction(), "[-42]");
|
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError,
|
| - error.c_str());
|
| + EXPECT_STREQ(errors::kInvalidId, error.c_str());
|
|
|
| int id = download_item->GetId();
|
| scoped_ptr<base::Value> result(RunFunctionAndReturnResult(
|
| @@ -1096,16 +1129,16 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| IconLoader::NORMAL,
|
| std::string()),
|
| args32);
|
| - EXPECT_STREQ(download_extension_errors::kIconNotFoundError, error.c_str());
|
| + EXPECT_STREQ(errors::kIconNotFound, error.c_str());
|
|
|
| - // Once the download item is deleted, we should return kInvalidOperationError.
|
| + // Once the download item is deleted, we should return kInvalidId.
|
| int id = download_item->GetId();
|
| download_item->Remove();
|
| download_item = NULL;
|
| EXPECT_EQ(static_cast<DownloadItem*>(NULL),
|
| GetCurrentManager()->GetDownload(id));
|
| error = RunFunctionAndReturnError(new DownloadsGetFileIconFunction(), args32);
|
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError,
|
| + EXPECT_STREQ(errors::kInvalidId,
|
| error.c_str());
|
| }
|
|
|
| @@ -1146,8 +1179,6 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| &result_string));
|
| EXPECT_STREQ("hello", result_string.c_str());
|
| }
|
| -
|
| - // The temporary files should be cleaned up when the base::ScopedTempDir is removed.
|
| }
|
|
|
| // Test passing the empty query to search().
|
| @@ -1244,7 +1275,7 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| &items));
|
|
|
| scoped_ptr<base::Value> result(RunFunctionAndReturnResult(
|
| - new DownloadsSearchFunction(), "[{\"orderBy\": \"filename\"}]"));
|
| + new DownloadsSearchFunction(), "[{\"orderBy\": [\"filename\"]}]"));
|
| ASSERT_TRUE(result.get());
|
| base::ListValue* result_list = NULL;
|
| ASSERT_TRUE(result->GetAsList(&result_list));
|
| @@ -1277,7 +1308,7 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| &items));
|
|
|
| scoped_ptr<base::Value> result(RunFunctionAndReturnResult(
|
| - new DownloadsSearchFunction(), "[{\"orderBy\": \"\"}]"));
|
| + new DownloadsSearchFunction(), "[{\"orderBy\": []}]"));
|
| ASSERT_TRUE(result.get());
|
| base::ListValue* result_list = NULL;
|
| ASSERT_TRUE(result->GetAsList(&result_list));
|
| @@ -1354,15 +1385,15 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| DownloadExtensionTest_SearchInvalid) {
|
| std::string error = RunFunctionAndReturnError(
|
| new DownloadsSearchFunction(), "[{\"filenameRegex\": \"(\"}]");
|
| - EXPECT_STREQ(download_extension_errors::kInvalidFilterError,
|
| + EXPECT_STREQ(errors::kInvalidFilter,
|
| error.c_str());
|
| error = RunFunctionAndReturnError(
|
| - new DownloadsSearchFunction(), "[{\"orderBy\": \"goat\"}]");
|
| - EXPECT_STREQ(download_extension_errors::kInvalidOrderByError,
|
| + new DownloadsSearchFunction(), "[{\"orderBy\": [\"goat\"]}]");
|
| + EXPECT_STREQ(errors::kInvalidOrderBy,
|
| error.c_str());
|
| error = RunFunctionAndReturnError(
|
| new DownloadsSearchFunction(), "[{\"limit\": -1}]");
|
| - EXPECT_STREQ(download_extension_errors::kInvalidQueryLimit,
|
| + EXPECT_STREQ(errors::kInvalidQueryLimit,
|
| error.c_str());
|
| }
|
|
|
| @@ -1388,7 +1419,7 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| new DownloadsSearchFunction(), "[{"
|
| "\"state\": \"complete\", "
|
| "\"danger\": \"content\", "
|
| - "\"orderBy\": \"filename\", "
|
| + "\"orderBy\": [\"filename\"], "
|
| "\"limit\": 1}]"));
|
| ASSERT_TRUE(result.get());
|
| base::ListValue* result_list = NULL;
|
| @@ -1468,16 +1499,16 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| // Pausing/Resuming the off-record item while on the record should return an
|
| // error. Cancelling "non-existent" downloads is not an error.
|
| error = RunFunctionAndReturnError(new DownloadsPauseFunction(), off_item_arg);
|
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError,
|
| + EXPECT_STREQ(errors::kInvalidId,
|
| error.c_str());
|
| error = RunFunctionAndReturnError(new DownloadsResumeFunction(),
|
| off_item_arg);
|
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError,
|
| + EXPECT_STREQ(errors::kInvalidId,
|
| error.c_str());
|
| error = RunFunctionAndReturnError(
|
| new DownloadsGetFileIconFunction(),
|
| base::StringPrintf("[%d, {}]", off_item->GetId()));
|
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError,
|
| + EXPECT_STREQ(errors::kInvalidId,
|
| error.c_str());
|
|
|
| GoOffTheRecord();
|
| @@ -1509,11 +1540,9 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| EXPECT_TRUE(RunFunction(new DownloadsCancelFunction(), on_item_arg));
|
| EXPECT_EQ(DownloadItem::CANCELLED, on_item->GetState());
|
| error = RunFunctionAndReturnError(new DownloadsPauseFunction(), on_item_arg);
|
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError,
|
| - error.c_str());
|
| + EXPECT_STREQ(errors::kNotInProgress, error.c_str());
|
| error = RunFunctionAndReturnError(new DownloadsResumeFunction(), on_item_arg);
|
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError,
|
| - error.c_str());
|
| + EXPECT_STREQ(errors::kNotResumable, error.c_str());
|
| EXPECT_TRUE(RunFunction(new DownloadsPauseFunction(), off_item_arg));
|
| EXPECT_TRUE(off_item->IsPaused());
|
| EXPECT_TRUE(RunFunction(new DownloadsPauseFunction(), off_item_arg));
|
| @@ -1528,14 +1557,11 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| EXPECT_EQ(DownloadItem::CANCELLED, off_item->GetState());
|
| EXPECT_TRUE(RunFunction(new DownloadsCancelFunction(), off_item_arg));
|
| EXPECT_EQ(DownloadItem::CANCELLED, off_item->GetState());
|
| - error = RunFunctionAndReturnError(new DownloadsPauseFunction(),
|
| - off_item_arg);
|
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError,
|
| - error.c_str());
|
| + error = RunFunctionAndReturnError(new DownloadsPauseFunction(), off_item_arg);
|
| + EXPECT_STREQ(errors::kNotInProgress, error.c_str());
|
| error = RunFunctionAndReturnError(new DownloadsResumeFunction(),
|
| off_item_arg);
|
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError,
|
| - error.c_str());
|
| + EXPECT_STREQ(errors::kNotResumable, error.c_str());
|
| }
|
|
|
| // Test that we can start a download and that the correct sequence of events is
|
| @@ -1673,7 +1699,7 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
|
|
| for (size_t index = 0; index < arraysize(kUnsafeHeaders); ++index) {
|
| std::string download_url = test_server()->GetURL("slow?0").spec();
|
| - EXPECT_STREQ(download_extension_errors::kGenericError,
|
| + EXPECT_STREQ(errors::kInvalidHeader,
|
| RunFunctionAndReturnError(new DownloadsDownloadFunction(),
|
| base::StringPrintf(
|
| "[{\"url\": \"%s\","
|
| @@ -1687,8 +1713,6 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| }
|
| }
|
|
|
| -// Test that subdirectories (slashes) are disallowed in filenames.
|
| -// TODO(benjhayden) Update this when subdirectories are supported.
|
| IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| DownloadExtensionTest_Download_Subdirectory) {
|
| LoadExtension("downloads_split");
|
| @@ -1697,12 +1721,39 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| std::string download_url = test_server()->GetURL("slow?0").spec();
|
| GoOnTheRecord();
|
|
|
| - EXPECT_STREQ(download_extension_errors::kInvalidFilenameError,
|
| - RunFunctionAndReturnError(new DownloadsDownloadFunction(),
|
| - base::StringPrintf(
|
| - "[{\"url\": \"%s\","
|
| - " \"filename\": \"sub/dir/ect/ory.txt\"}]",
|
| - download_url.c_str())).c_str());
|
| + scoped_ptr<base::Value> result(RunFunctionAndReturnResult(
|
| + new DownloadsDownloadFunction(), base::StringPrintf(
|
| + "[{\"url\": \"%s\","
|
| + " \"filename\": \"sub/dir/ect/ory.txt\"}]",
|
| + download_url.c_str())));
|
| + ASSERT_TRUE(result.get());
|
| + int result_id = -1;
|
| + ASSERT_TRUE(result->GetAsInteger(&result_id));
|
| + DownloadItem* item = GetCurrentManager()->GetDownload(result_id);
|
| + ASSERT_TRUE(item);
|
| + ScopedCancellingItem canceller(item);
|
| + ASSERT_EQ(download_url, item->GetOriginalUrl().spec());
|
| +
|
| + ASSERT_TRUE(WaitFor(events::kOnDownloadCreated,
|
| + base::StringPrintf("[{\"danger\": \"safe\","
|
| + " \"incognito\": false,"
|
| + " \"mime\": \"text/plain\","
|
| + " \"paused\": false,"
|
| + " \"url\": \"%s\"}]",
|
| + download_url.c_str())));
|
| + ASSERT_TRUE(WaitFor(events::kOnDownloadChanged,
|
| + base::StringPrintf("[{\"id\": %d,"
|
| + " \"filename\": {"
|
| + " \"previous\": \"\","
|
| + " \"current\": \"%s\"}}]",
|
| + result_id,
|
| + GetFilename("sub/dir/ect/ory.txt").c_str())));
|
| + ASSERT_TRUE(WaitFor(events::kOnDownloadChanged,
|
| + base::StringPrintf("[{\"id\": %d,"
|
| + " \"state\": {"
|
| + " \"previous\": \"in_progress\","
|
| + " \"current\": \"complete\"}}]",
|
| + result_id)));
|
| }
|
|
|
| // Test that invalid filenames are disallowed.
|
| @@ -1714,7 +1765,7 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| std::string download_url = test_server()->GetURL("slow?0").spec();
|
| GoOnTheRecord();
|
|
|
| - EXPECT_STREQ(download_extension_errors::kInvalidFilenameError,
|
| + EXPECT_STREQ(errors::kInvalidFilename,
|
| RunFunctionAndReturnError(new DownloadsDownloadFunction(),
|
| base::StringPrintf(
|
| "[{\"url\": \"%s\","
|
| @@ -1732,14 +1783,14 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| "foo bar",
|
| "../hello",
|
| "/hello",
|
| - "google.com/",
|
| "http://",
|
| "#frag",
|
| "foo/bar.html#frag",
|
| + "google.com/",
|
| };
|
|
|
| for (size_t index = 0; index < arraysize(kInvalidURLs); ++index) {
|
| - EXPECT_STREQ(download_extension_errors::kInvalidURLError,
|
| + EXPECT_STREQ(errors::kInvalidURL,
|
| RunFunctionAndReturnError(new DownloadsDownloadFunction(),
|
| base::StringPrintf(
|
| "[{\"url\": \"%s\"}]", kInvalidURLs[index])).c_str())
|
| @@ -1920,13 +1971,15 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| ScopedCancellingItem canceller(item);
|
| ASSERT_EQ(download_url, item->GetOriginalUrl().spec());
|
|
|
| - ASSERT_TRUE(WaitForInterruption(item, 30, base::StringPrintf(
|
| - "[{\"danger\": \"safe\","
|
| - " \"incognito\": false,"
|
| - " \"mime\": \"text/html\","
|
| - " \"paused\": false,"
|
| - " \"url\": \"%s\"}]",
|
| - download_url.c_str())));
|
| + ASSERT_TRUE(WaitForInterruption(
|
| + item,
|
| + content::DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED,
|
| + base::StringPrintf("[{\"danger\": \"safe\","
|
| + " \"incognito\": false,"
|
| + " \"mime\": \"text/html\","
|
| + " \"paused\": false,"
|
| + " \"url\": \"%s\"}]",
|
| + download_url.c_str())));
|
| }
|
|
|
| // Test that DownloadsDownloadFunction propagates |headers| to the URLRequest.
|
| @@ -2003,14 +2056,16 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| ScopedCancellingItem canceller(item);
|
| ASSERT_EQ(download_url, item->GetOriginalUrl().spec());
|
|
|
| - ASSERT_TRUE(WaitForInterruption(item, 33, base::StringPrintf(
|
| - "[{\"danger\": \"safe\","
|
| - " \"incognito\": false,"
|
| - " \"bytesReceived\": 0,"
|
| - " \"mime\": \"\","
|
| - " \"paused\": false,"
|
| - " \"url\": \"%s\"}]",
|
| - download_url.c_str())));
|
| + ASSERT_TRUE(WaitForInterruption(
|
| + item,
|
| + content::DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT,
|
| + base::StringPrintf("[{\"danger\": \"safe\","
|
| + " \"incognito\": false,"
|
| + " \"bytesReceived\": 0,"
|
| + " \"mime\": \"\","
|
| + " \"paused\": false,"
|
| + " \"url\": \"%s\"}]",
|
| + download_url.c_str())));
|
| }
|
|
|
| // Test that DownloadsDownloadFunction propagates the Authorization header
|
| @@ -2129,15 +2184,17 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| ScopedCancellingItem canceller(item);
|
| ASSERT_EQ(download_url, item->GetOriginalUrl().spec());
|
|
|
| - ASSERT_TRUE(WaitForInterruption(item, 33, base::StringPrintf(
|
| - "[{\"danger\": \"safe\","
|
| - " \"incognito\": false,"
|
| - " \"mime\": \"\","
|
| - " \"paused\": false,"
|
| - " \"id\": %d,"
|
| - " \"url\": \"%s\"}]",
|
| - result_id,
|
| - download_url.c_str())));
|
| + 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())));
|
| }
|
|
|
| // Test that downloadPostSuccess would fail if the resource requires the POST
|
| @@ -2168,15 +2225,17 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| ScopedCancellingItem canceller(item);
|
| ASSERT_EQ(download_url, item->GetOriginalUrl().spec());
|
|
|
| - ASSERT_TRUE(WaitForInterruption(item, 33, base::StringPrintf(
|
| - "[{\"danger\": \"safe\","
|
| - " \"incognito\": false,"
|
| - " \"mime\": \"\","
|
| - " \"paused\": false,"
|
| - " \"id\": %d,"
|
| - " \"url\": \"%s\"}]",
|
| - result_id,
|
| - download_url.c_str())));
|
| + 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())));
|
| }
|
|
|
| // Test that cancel()ing an in-progress download causes its state to transition
|
| @@ -2215,7 +2274,7 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| item->Cancel(true);
|
| ASSERT_TRUE(WaitFor(events::kOnDownloadChanged,
|
| base::StringPrintf("[{\"id\": %d,"
|
| - " \"error\": {\"current\": 40},"
|
| + " \"error\": {\"current\":\"USER_CANCELED\"},"
|
| " \"state\": {"
|
| " \"previous\": \"in_progress\","
|
| " \"current\": \"interrupted\"}}]",
|
| @@ -2324,7 +2383,7 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| GetExtensionId(),
|
| result_id,
|
| base::FilePath(),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error));
|
| EXPECT_EQ("", error);
|
|
|
| @@ -2391,7 +2450,7 @@ IN_PROC_BROWSER_TEST_F(
|
| GetExtensionId(),
|
| result_id,
|
| base::FilePath(FILE_PATH_LITERAL("overridden.swf")),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error));
|
| EXPECT_EQ("", error);
|
|
|
| @@ -2399,17 +2458,15 @@ IN_PROC_BROWSER_TEST_F(
|
| base::StringPrintf("[{\"id\": %d,"
|
| " \"danger\": {"
|
| " \"previous\":\"safe\","
|
| - " \"current\":\"file\"},"
|
| - " \"dangerAccepted\": {"
|
| - " \"current\":false}}]",
|
| + " \"current\":\"file\"}}]",
|
| result_id)));
|
|
|
| item->ValidateDangerousDownload();
|
| ASSERT_TRUE(WaitFor(events::kOnDownloadChanged,
|
| base::StringPrintf("[{\"id\": %d,"
|
| - " \"dangerAccepted\": {"
|
| - " \"previous\":false,"
|
| - " \"current\":true}}]",
|
| + " \"danger\": {"
|
| + " \"previous\":\"file\","
|
| + " \"current\":\"accepted\"}}]",
|
| result_id)));
|
| ASSERT_TRUE(WaitFor(events::kOnDownloadChanged,
|
| base::StringPrintf("[{\"id\": %d,"
|
| @@ -2468,9 +2525,9 @@ IN_PROC_BROWSER_TEST_F(
|
| GetExtensionId(),
|
| result_id,
|
| base::FilePath(FILE_PATH_LITERAL("sneaky/../../sneaky.txt")),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error));
|
| - EXPECT_STREQ(download_extension_errors::kInvalidFilenameError, error.c_str());
|
| + EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
|
| ASSERT_TRUE(WaitFor(events::kOnDownloadChanged,
|
| base::StringPrintf("[{\"id\": %d,"
|
| " \"filename\": {"
|
| @@ -2533,9 +2590,9 @@ IN_PROC_BROWSER_TEST_F(
|
| GetExtensionId(),
|
| result_id,
|
| base::FilePath(FILE_PATH_LITERAL("<")),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error));
|
| - EXPECT_STREQ(download_extension_errors::kInvalidFilenameError, error.c_str());
|
| + EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
|
| ASSERT_TRUE(WaitFor(events::kOnDownloadChanged, base::StringPrintf(
|
| "[{\"id\": %d,"
|
| " \"filename\": {"
|
| @@ -2599,9 +2656,9 @@ IN_PROC_BROWSER_TEST_F(
|
| result_id,
|
| base::FilePath(FILE_PATH_LITERAL(
|
| "My Computer.{20D04FE0-3AEA-1069-A2D8-08002B30309D}/foo")),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error));
|
| - EXPECT_STREQ(download_extension_errors::kInvalidFilenameError, error.c_str());
|
| + EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
|
| ASSERT_TRUE(WaitFor(events::kOnDownloadChanged, base::StringPrintf(
|
| "[{\"id\": %d,"
|
| " \"filename\": {"
|
| @@ -2664,9 +2721,9 @@ IN_PROC_BROWSER_TEST_F(
|
| GetExtensionId(),
|
| result_id,
|
| base::FilePath(FILE_PATH_LITERAL("con.foo")),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error));
|
| - EXPECT_STREQ(download_extension_errors::kInvalidFilenameError, error.c_str());
|
| + EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
|
| ASSERT_TRUE(WaitFor(events::kOnDownloadChanged, base::StringPrintf(
|
| "[{\"id\": %d,"
|
| " \"filename\": {"
|
| @@ -2729,9 +2786,9 @@ IN_PROC_BROWSER_TEST_F(
|
| GetExtensionId(),
|
| result_id,
|
| base::FilePath(FILE_PATH_LITERAL(".")),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error));
|
| - EXPECT_STREQ(download_extension_errors::kInvalidFilenameError, error.c_str());
|
| + EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
|
| ASSERT_TRUE(WaitFor(events::kOnDownloadChanged,
|
| base::StringPrintf("[{\"id\": %d,"
|
| " \"filename\": {"
|
| @@ -2794,9 +2851,9 @@ IN_PROC_BROWSER_TEST_F(
|
| GetExtensionId(),
|
| result_id,
|
| base::FilePath(FILE_PATH_LITERAL("..")),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error));
|
| - EXPECT_STREQ(download_extension_errors::kInvalidFilenameError, error.c_str());
|
| + EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
|
| ASSERT_TRUE(WaitFor(events::kOnDownloadChanged,
|
| base::StringPrintf("[{\"id\": %d,"
|
| " \"filename\": {"
|
| @@ -2859,9 +2916,9 @@ IN_PROC_BROWSER_TEST_F(
|
| GetExtensionId(),
|
| result_id,
|
| downloads_directory().Append(FILE_PATH_LITERAL("sneaky.txt")),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error));
|
| - EXPECT_STREQ(download_extension_errors::kInvalidFilenameError, error.c_str());
|
| + EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
|
|
|
| ASSERT_TRUE(WaitFor(events::kOnDownloadChanged,
|
| base::StringPrintf("[{\"id\": %d,"
|
| @@ -2925,9 +2982,9 @@ IN_PROC_BROWSER_TEST_F(
|
| GetExtensionId(),
|
| result_id,
|
| base::FilePath(FILE_PATH_LITERAL("foo/")),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error));
|
| - EXPECT_STREQ(download_extension_errors::kInvalidFilenameError, error.c_str());
|
| + EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
|
|
|
| ASSERT_TRUE(WaitFor(events::kOnDownloadChanged,
|
| base::StringPrintf("[{\"id\": %d,"
|
| @@ -2990,7 +3047,7 @@ IN_PROC_BROWSER_TEST_F(
|
| GetExtensionId(),
|
| result_id,
|
| base::FilePath(),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error));
|
| EXPECT_EQ("", error);
|
|
|
| @@ -3048,7 +3105,7 @@ IN_PROC_BROWSER_TEST_F(
|
| GetExtensionId(),
|
| result_id,
|
| base::FilePath(FILE_PATH_LITERAL("foo")),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_OVERWRITE,
|
| + api::FILENAME_CONFLICT_ACTION_OVERWRITE,
|
| &error));
|
| EXPECT_EQ("", error);
|
|
|
| @@ -3173,7 +3230,7 @@ IN_PROC_BROWSER_TEST_F(
|
| GetExtensionId(),
|
| result_id,
|
| base::FilePath(FILE_PATH_LITERAL("42.txt")),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error));
|
| EXPECT_EQ("", error);
|
|
|
| @@ -3232,7 +3289,7 @@ IN_PROC_BROWSER_TEST_F(
|
| GetExtensionId(),
|
| result_id,
|
| base::FilePath(FILE_PATH_LITERAL("5.txt")),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error));
|
| EXPECT_EQ("", error);
|
|
|
| @@ -3307,7 +3364,7 @@ IN_PROC_BROWSER_TEST_F(
|
| GetExtensionId(),
|
| result_id,
|
| base::FilePath(FILE_PATH_LITERAL("42.txt")),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error));
|
| EXPECT_EQ("", error);
|
|
|
| @@ -3365,7 +3422,7 @@ IN_PROC_BROWSER_TEST_F(
|
| GetExtensionId(),
|
| result_id,
|
| base::FilePath(FILE_PATH_LITERAL("42.txt")),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error));
|
| EXPECT_EQ("", error);
|
|
|
| @@ -3471,7 +3528,7 @@ IN_PROC_BROWSER_TEST_F(
|
| GetExtensionId(),
|
| item->GetId(),
|
| base::FilePath(FILE_PATH_LITERAL("42.txt")),
|
| - extensions::api::downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| + api::FILENAME_CONFLICT_ACTION_UNIQUIFY,
|
| &error)) << error;
|
| EXPECT_EQ("", error);
|
| ASSERT_TRUE(WaitFor(events::kOnDownloadChanged,
|
| @@ -3487,7 +3544,7 @@ IN_PROC_BROWSER_TEST_F(
|
| ASSERT_TRUE(interrupted.WaitForEvent());
|
| ASSERT_TRUE(WaitFor(events::kOnDownloadChanged,
|
| base::StringPrintf("[{\"id\": %d,"
|
| - " \"error\":{\"current\":20},"
|
| + " \"error\":{\"current\":\"NETWORK_FAILED\"},"
|
| " \"state\":{"
|
| " \"previous\":\"in_progress\","
|
| " \"current\":\"interrupted\"}}]",
|
| @@ -3506,7 +3563,7 @@ IN_PROC_BROWSER_TEST_F(
|
|
|
| ASSERT_TRUE(WaitFor(events::kOnDownloadChanged,
|
| base::StringPrintf("[{\"id\": %d,"
|
| - " \"error\":{\"previous\":20},"
|
| + " \"error\":{\"previous\":\"NETWORK_FAILED\"},"
|
| " \"state\":{"
|
| " \"previous\":\"interrupted\","
|
| " \"current\":\"in_progress\"}}]",
|
| @@ -3542,3 +3599,17 @@ class DownloadsApiTest : public ExtensionApiTest {
|
| IN_PROC_BROWSER_TEST_F(DownloadsApiTest, DownloadsApiTest) {
|
| ASSERT_TRUE(RunExtensionTest("downloads")) << message_;
|
| }
|
| +
|
| +
|
| +TEST(DownloadInterruptReasonEnumsSynced,
|
| + DownloadInterruptReasonEnumsSynced) {
|
| +#define INTERRUPT_REASON(name, value) \
|
| + EXPECT_EQ(InterruptReasonContentToExtension( \
|
| + content::DOWNLOAD_INTERRUPT_REASON_##name), \
|
| + api::INTERRUPT_REASON_##name); \
|
| + EXPECT_EQ(InterruptReasonExtensionToContent( \
|
| + api::INTERRUPT_REASON_##name), \
|
| + content::DOWNLOAD_INTERRUPT_REASON_##name);
|
| +#include "content/public/browser/download_interrupt_reason_values.h"
|
| +#undef INTERRUPT_REASON
|
| +}
|
|
|