| Index: chrome/browser/download/download_browsertest.cc
|
| diff --git a/chrome/browser/download/download_browsertest.cc b/chrome/browser/download/download_browsertest.cc
|
| index ada1a540491f35be8d626aac6efb688b7db4eebc..b56b452d7e578999c8dcd74a2b4b6b6b9dcffb97 100644
|
| --- a/chrome/browser/download/download_browsertest.cc
|
| +++ b/chrome/browser/download/download_browsertest.cc
|
| @@ -467,6 +467,13 @@ class DownloadTest : public InProcessBrowserTest {
|
|
|
| // Find the origin path (from which the data comes).
|
| FilePath origin_file(OriginFile(origin_filename));
|
| + return CheckDownloadFullPaths(browser, downloaded_file, origin_file);
|
| + }
|
| +
|
| + // A version of CheckDownload that allows complete path specification.
|
| + bool CheckDownloadFullPaths(Browser* browser,
|
| + const FilePath& downloaded_file,
|
| + const FilePath& origin_file) {
|
| bool origin_file_exists = file_util::PathExists(origin_file);
|
| EXPECT_TRUE(origin_file_exists);
|
| if (!origin_file_exists)
|
| @@ -1670,3 +1677,66 @@ IN_PROC_BROWSER_TEST_F(DownloadTest, SearchDownloads) {
|
| EXPECT_EQ(3, search_results[1]->GetDbHandle());
|
| search_results.clear();
|
| }
|
| +
|
| +// Tests for download initiation functions.
|
| +IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrl) {
|
| + ASSERT_TRUE(InitialSetup(false));
|
| + FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
|
| + GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
|
| +
|
| + // DownloadUrl always prompts; return acceptance of whatever it prompts.
|
| + NullSelectFile(browser());
|
| +
|
| + TabContents* tab_contents = browser()->GetSelectedTabContents();
|
| + ASSERT_TRUE(tab_contents);
|
| +
|
| + DownloadTestObserver* observer(
|
| + new DownloadTestObserver(
|
| + DownloadManagerForBrowser(browser()), 1,
|
| + DownloadItem::COMPLETE, // Really done
|
| + false, // Ignore select file.
|
| + DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL));
|
| + DownloadManagerForBrowser(browser())->DownloadUrl(
|
| + url, GURL(""), "", tab_contents);
|
| + observer->WaitForFinished();
|
| + EXPECT_TRUE(observer->select_file_dialog_seen());
|
| +
|
| + // Check state.
|
| + EXPECT_EQ(1, browser()->tab_count());
|
| + ASSERT_TRUE(CheckDownload(browser(), file, file));
|
| + CheckDownloadUI(browser(), true, true, file);
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrlToFile) {
|
| + ASSERT_TRUE(InitialSetup(false));
|
| + FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
|
| + GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
|
| +
|
| + TabContents* tab_contents = browser()->GetSelectedTabContents();
|
| + ASSERT_TRUE(tab_contents);
|
| +
|
| + ScopedTempDir other_directory;
|
| + ASSERT_TRUE(other_directory.CreateUniqueTempDir());
|
| + FilePath target_file_full_path
|
| + = other_directory.path().Append(file.BaseName());
|
| + DownloadSaveInfo save_info;
|
| + save_info.file_path = target_file_full_path;
|
| +
|
| + DownloadTestObserver* observer(CreateWaiter(browser(), 1));
|
| + DownloadManagerForBrowser(browser())->DownloadUrlToFile(
|
| + url, GURL(""), "", save_info, tab_contents);
|
| + observer->WaitForFinished();
|
| +
|
| + // Check state.
|
| + EXPECT_EQ(1, browser()->tab_count());
|
| + ASSERT_TRUE(CheckDownloadFullPaths(browser(),
|
| + target_file_full_path,
|
| + OriginFile(file)));
|
| +#if !defined(OS_CHROMEOS)
|
| + // TODO(rdsmith/achuith): Re-enable on ChromeOS when
|
| + // http://crbug.com/106856 is fixed.
|
| +
|
| + // Temporary downloads won't be visible.
|
| + CheckDownloadUI(browser(), false, false, file);
|
| +#endif
|
| +}
|
|
|