Chromium Code Reviews| 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 94% |
| rename from chrome/browser/extensions/api/downloads/downloads_api_unittest.cc |
| rename to chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc |
| index 93a40f2ffc6d5696c3131292794f540b4f70cf15..62fe0d1913c8812ff61737221f9e01db9066e0fe 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::kNotInProgress, 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,10 +1540,10 @@ 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, |
| + EXPECT_STREQ(errors::kNotInProgress, |
| error.c_str()); |
| error = RunFunctionAndReturnError(new DownloadsResumeFunction(), on_item_arg); |
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError, |
| + EXPECT_STREQ(errors::kNotInProgress, |
| error.c_str()); |
| EXPECT_TRUE(RunFunction(new DownloadsPauseFunction(), off_item_arg)); |
| EXPECT_TRUE(off_item->IsPaused()); |
| @@ -1530,11 +1561,11 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest, |
| EXPECT_EQ(DownloadItem::CANCELLED, off_item->GetState()); |
| error = RunFunctionAndReturnError(new DownloadsPauseFunction(), |
| off_item_arg); |
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError, |
| + EXPECT_STREQ(errors::kNotInProgress, |
| error.c_str()); |
| error = RunFunctionAndReturnError(new DownloadsResumeFunction(), |
| off_item_arg); |
| - EXPECT_STREQ(download_extension_errors::kInvalidOperationError, |
| + EXPECT_STREQ(errors::kNotInProgress, |
| error.c_str()); |
| } |
| @@ -1673,7 +1704,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 +1718,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 +1726,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 +1770,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 +1788,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 +1976,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 +2061,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 +2189,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 +2230,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 +2279,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 +2388,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 +2455,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 +2463,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 +2530,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 +2595,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 +2661,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 +2726,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 +2791,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 +2856,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 +2921,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 +2987,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 +3052,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 +3110,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 +3235,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 +3294,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 +3369,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 +3427,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 +3533,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 +3549,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 +3568,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 +3604,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( \ |
|
asanka
2013/07/26 15:47:22
Could we use COMPILE_ASSERT for this?
benjhayden
2013/07/26 19:56:25
non-constexpr function 'InterruptReasonContentToEx
|
| + 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 |
| +} |