Chromium Code Reviews| 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( |