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

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

Issue 1706193002: Expose final download URL (actual url after redirects) in the extension API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Additional documentation. Created 4 years, 6 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 cede2fe261628b87aafc6973b236772fad9f72ba..985e507e3dc315a4fd19657bc3e7058a562bbd11 100644
--- a/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
+++ b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
@@ -829,7 +829,9 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
" \"incognito\": false,"
" \"mime\": \"application/octet-stream\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
+ download_item->GetURL().spec().c_str(),
download_item->GetURL().spec().c_str())));
open_function = new DownloadsOpenFunction();
open_function->set_user_gesture(true);
@@ -1518,7 +1520,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 +1540,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,
@@ -1563,7 +1618,9 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
" \"incognito\": true,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(
WaitFor(downloads::OnChanged::kEventName,
@@ -1747,7 +1804,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,
base::StringPrintf(
@@ -1882,7 +1941,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,
@@ -1925,7 +1986,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,
base::StringPrintf(
@@ -1961,7 +2024,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,
base::StringPrintf(
@@ -2006,7 +2071,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,
base::StringPrintf(
@@ -2062,7 +2129,9 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
" \"incognito\": false,"
" \"mime\": \"text/html\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnChanged::kEventName,
base::StringPrintf(
@@ -2112,7 +2181,9 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
base::StringPrintf("[{\"danger\": \"safe\","
" \"incognito\": false,"
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
+ download_url.c_str(),
download_url.c_str())));
}
@@ -2151,7 +2222,9 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
" \"incognito\": false,"
" \"mime\": \"application/octet-stream\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnChanged::kEventName,
base::StringPrintf(
@@ -2208,7 +2281,9 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
" \"fileSize\": 0.0,"
" \"mime\": \"\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
+ download_url.c_str(),
download_url.c_str())));
}
@@ -2247,7 +2322,9 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
" \"bytesReceived\": 0.0,"
" \"mime\": \"text/html\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnChanged::kEventName,
base::StringPrintf(
@@ -2292,7 +2369,9 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
" \"incognito\": false,"
" \"mime\": \"application/octet-stream\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnChanged::kEventName,
base::StringPrintf(
@@ -2349,8 +2428,10 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
" \"mime\": \"\","
" \"paused\": false,"
" \"id\": %d,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
}
@@ -2392,8 +2473,10 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
" \"mime\": \"\","
" \"paused\": false,"
" \"id\": %d,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
}
@@ -2428,8 +2511,10 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
" \"mime\": \"application/octet-stream\","
" \"paused\": false,"
" \"id\": %d,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
item->Cancel(true);
ASSERT_TRUE(WaitFor(downloads::OnChanged::kEventName,
@@ -2489,7 +2574,9 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
" \"incognito\": false,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
asanka 2016/07/07 19:28:31 Are all these test changes necessary? I'm inclined
mharanczyk 2016/07/08 10:10:54 I've removed most of additions, left finalUrl chec
" \"url\": \"%s\"}]",
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnChanged::kEventName,
base::StringPrintf(
@@ -2539,8 +2626,10 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -2611,8 +2700,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(
downloads::OnDeterminingFilename::kEventName,
@@ -2667,8 +2758,10 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest,
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(
downloads::OnDeterminingFilename::kEventName,
@@ -2746,8 +2839,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -2824,8 +2919,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -2890,8 +2987,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -2956,8 +3055,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -3029,8 +3130,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -3095,8 +3198,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -3161,8 +3266,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -3227,8 +3334,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -3294,8 +3403,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -3361,8 +3472,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -3418,8 +3531,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -3487,8 +3602,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -3544,8 +3661,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -3624,8 +3743,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -3681,8 +3802,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -3742,8 +3865,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
// On-Record renderers should not see events for off-record items.
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
@@ -3820,8 +3945,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(
@@ -3881,8 +4008,10 @@ IN_PROC_BROWSER_TEST_F(
" \"id\": %d,"
" \"mime\": \"text/plain\","
" \"paused\": false,"
+ " \"finalUrl\": \"%s\","
" \"url\": \"%s\"}]",
result_id,
+ download_url.c_str(),
download_url.c_str())));
ASSERT_TRUE(WaitFor(downloads::OnDeterminingFilename::kEventName,
base::StringPrintf(

Powered by Google App Engine
This is Rietveld 408576698