| 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 cede2fe261628b87aafc6973b236772fad9f72ba..a49363f4af664de2e068a2a64ade70fa4bb3861f 100644
|
| --- a/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
|
| +++ b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
|
| @@ -1518,7 +1518,9 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| " \"incognito\": false,"
|
| " \"mime\": \"text/plain\","
|
| " \"paused\": false,"
|
| + " \"finalUrl\": \"%s\","
|
| " \"url\": \"%s\"}]",
|
| + download_url.c_str(),
|
| download_url.c_str())));
|
| ASSERT_TRUE(
|
| WaitFor(downloads::OnChanged::kEventName,
|
| @@ -1536,6 +1538,57 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| result_id)));
|
| }
|
|
|
| +// Test that we can start a download that gets redirected and that the correct
|
| +// sequence of events is fired for it.
|
| +IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
| + DownloadExtensionTest_Download_Redirect) {
|
| + LoadExtension("downloads_split");
|
| + ASSERT_TRUE(StartEmbeddedTestServer());
|
| + GURL download_final_url(embedded_test_server()->GetURL("/slow?0"));
|
| + GURL download_url(embedded_test_server()->GetURL(
|
| + "/server-redirect?" + download_final_url.spec()));
|
| +
|
| + GoOnTheRecord();
|
| +
|
| + // Start downloading a file.
|
| + std::unique_ptr<base::Value> result(RunFunctionAndReturnResult(
|
| + new DownloadsDownloadFunction(),
|
| + base::StringPrintf("[{\"url\": \"%s\"}]", download_url.spec().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());
|
| + ASSERT_EQ(GetExtensionURL(), item->GetSiteUrl().spec());
|
| +
|
| + ASSERT_TRUE(WaitFor(downloads::OnCreated::kEventName,
|
| + base::StringPrintf(
|
| + "[{\"danger\": \"safe\","
|
| + " \"incognito\": false,"
|
| + " \"mime\": \"text/plain\","
|
| + " \"paused\": false,"
|
| + " \"finalUrl\": \"%s\","
|
| + " \"url\": \"%s\"}]",
|
| + download_final_url.spec().c_str(),
|
| + download_url.spec().c_str())));
|
| + ASSERT_TRUE(
|
| + WaitFor(downloads::OnChanged::kEventName,
|
| + base::StringPrintf("[{\"id\": %d,"
|
| + " \"filename\": {"
|
| + " \"previous\": \"\","
|
| + " \"current\": \"%s\"}}]",
|
| + result_id, GetFilename("slow.txt").c_str())));
|
| + ASSERT_TRUE(WaitFor(downloads::OnChanged::kEventName,
|
| + base::StringPrintf(
|
| + "[{\"id\": %d,"
|
| + " \"state\": {"
|
| + " \"previous\": \"in_progress\","
|
| + " \"current\": \"complete\"}}]",
|
| + result_id)));
|
| +}
|
| +
|
| // Test that we can start a download from an incognito context, and that the
|
| // download knows that it's incognito.
|
| IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
|
|
|