| OLD | NEW | 
|     1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |     1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|     2 // Use of this source code is governed by a BSD-style license that can be |     2 // Use of this source code is governed by a BSD-style license that can be | 
|     3 // found in the LICENSE file. |     3 // found in the LICENSE file. | 
|     4  |     4  | 
|     5 // This file contains download browser tests that are known to be runnable |     5 // This file contains download browser tests that are known to be runnable | 
|     6 // in a pure content context.  Over time tests should be migrated here. |     6 // in a pure content context.  Over time tests should be migrated here. | 
|     7  |     7  | 
|     8 #include <vector> |     8 #include <vector> | 
|     9  |     9  | 
|    10 #include "base/callback_helpers.h" |    10 #include "base/callback_helpers.h" | 
| (...skipping 1503 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1514   request_handler.StartServing(parameters); |  1514   request_handler.StartServing(parameters); | 
|  1515  |  1515  | 
|  1516   DownloadItem* download = StartDownloadAndReturnItem( |  1516   DownloadItem* download = StartDownloadAndReturnItem( | 
|  1517       initiator_shell_for_resumption(), request_handler.url()); |  1517       initiator_shell_for_resumption(), request_handler.url()); | 
|  1518   WaitForInterrupt(download); |  1518   WaitForInterrupt(download); | 
|  1519  |  1519  | 
|  1520   base::FilePath intermediate_path(download->GetFullPath()); |  1520   base::FilePath intermediate_path(download->GetFullPath()); | 
|  1521   ASSERT_FALSE(intermediate_path.empty()); |  1521   ASSERT_FALSE(intermediate_path.empty()); | 
|  1522   EXPECT_TRUE(base::PathExists(intermediate_path)); |  1522   EXPECT_TRUE(base::PathExists(intermediate_path)); | 
|  1523  |  1523  | 
|  1524   // Resume and remove download. We expect only a single OnDownloadCreated() |  1524   // Resume and cancel download. We expect only a single OnDownloadCreated() | 
|  1525   // call, and that's for the second download created below. |  1525   // call, and that's for the second download created below. | 
|  1526   MockDownloadManagerObserver dm_observer( |  1526   MockDownloadManagerObserver dm_observer( | 
|  1527       DownloadManagerForShell(initiator_shell_for_resumption())); |  1527       DownloadManagerForShell(initiator_shell_for_resumption())); | 
|  1528   EXPECT_CALL(dm_observer, OnDownloadCreated(_,_)).Times(1); |  1528   EXPECT_CALL(dm_observer, OnDownloadCreated(_,_)).Times(1); | 
|  1529  |  1529  | 
|  1530   TestRequestStartHandler request_start_handler; |  1530   TestRequestStartHandler request_start_handler; | 
|  1531   parameters.on_start_handler = request_start_handler.GetOnStartHandler(); |  1531   parameters.on_start_handler = request_start_handler.GetOnStartHandler(); | 
|  1532   request_handler.StartServing(parameters); |  1532   request_handler.StartServing(parameters); | 
|  1533  |  1533  | 
|  1534   PrepareToResume(); |  1534   PrepareToResume(); | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
|  1553  |  1553  | 
|  1554   // Start the second download and wait until it's done. This exercises the |  1554   // Start the second download and wait until it's done. This exercises the | 
|  1555   // entire downloads stack and effectively flushes all of our worker threads. |  1555   // entire downloads stack and effectively flushes all of our worker threads. | 
|  1556   // We are testing whether the URL request created in the previous |  1556   // We are testing whether the URL request created in the previous | 
|  1557   // DownloadItem::Resume() call reulted in a new download or not. |  1557   // DownloadItem::Resume() call reulted in a new download or not. | 
|  1558   NavigateToURLAndWaitForDownload(shell(), request_handler.url(), |  1558   NavigateToURLAndWaitForDownload(shell(), request_handler.url(), | 
|  1559                                   DownloadItem::COMPLETE); |  1559                                   DownloadItem::COMPLETE); | 
|  1560   EXPECT_TRUE(EnsureNoPendingDownloads()); |  1560   EXPECT_TRUE(EnsureNoPendingDownloads()); | 
|  1561 } |  1561 } | 
|  1562  |  1562  | 
 |  1563 IN_PROC_BROWSER_TEST_P(DownloadResumptionContentTest, RemoveResumedDownload) { | 
 |  1564   TestDownloadRequestHandler::Parameters parameters = | 
 |  1565       TestDownloadRequestHandler::Parameters::WithSingleInterruption(); | 
 |  1566   TestDownloadRequestHandler request_handler; | 
 |  1567   request_handler.StartServing(parameters); | 
 |  1568  | 
 |  1569   DownloadItem* download = StartDownloadAndReturnItem( | 
 |  1570       initiator_shell_for_resumption(), request_handler.url()); | 
 |  1571   WaitForInterrupt(download); | 
 |  1572  | 
 |  1573   base::FilePath intermediate_path(download->GetFullPath()); | 
 |  1574   base::FilePath target_path(download->GetTargetFilePath()); | 
 |  1575   ASSERT_FALSE(intermediate_path.empty()); | 
 |  1576   EXPECT_TRUE(base::PathExists(intermediate_path)); | 
 |  1577   EXPECT_FALSE(base::PathExists(target_path)); | 
 |  1578  | 
 |  1579   // Resume and remove download. We don't expect OnDownloadCreated() calls. | 
 |  1580   MockDownloadManagerObserver dm_observer( | 
 |  1581       DownloadManagerForShell(initiator_shell_for_resumption())); | 
 |  1582   EXPECT_CALL(dm_observer, OnDownloadCreated(_, _)).Times(0); | 
 |  1583  | 
 |  1584   PrepareToResume(); | 
 |  1585   download->Resume(); | 
 |  1586   WaitForInProgress(download); | 
 |  1587  | 
 |  1588   download->Remove(); | 
 |  1589  | 
 |  1590   // The intermediate file should now be gone. | 
 |  1591   RunAllPendingInMessageLoop(BrowserThread::FILE); | 
 |  1592   RunAllPendingInMessageLoop(); | 
 |  1593   EXPECT_FALSE(base::PathExists(intermediate_path)); | 
 |  1594   EXPECT_FALSE(base::PathExists(target_path)); | 
 |  1595   EXPECT_TRUE(EnsureNoPendingDownloads()); | 
 |  1596 } | 
 |  1597  | 
 |  1598 IN_PROC_BROWSER_TEST_P(DownloadResumptionContentTest, CancelResumedDownload) { | 
 |  1599   TestDownloadRequestHandler::Parameters parameters = | 
 |  1600       TestDownloadRequestHandler::Parameters::WithSingleInterruption(); | 
 |  1601   TestDownloadRequestHandler request_handler; | 
 |  1602   request_handler.StartServing(parameters); | 
 |  1603  | 
 |  1604   DownloadItem* download = StartDownloadAndReturnItem( | 
 |  1605       initiator_shell_for_resumption(), request_handler.url()); | 
 |  1606   WaitForInterrupt(download); | 
 |  1607  | 
 |  1608   base::FilePath intermediate_path(download->GetFullPath()); | 
 |  1609   base::FilePath target_path(download->GetTargetFilePath()); | 
 |  1610   ASSERT_FALSE(intermediate_path.empty()); | 
 |  1611   EXPECT_TRUE(base::PathExists(intermediate_path)); | 
 |  1612   EXPECT_FALSE(base::PathExists(target_path)); | 
 |  1613  | 
 |  1614   // Resume and remove download. We don't expect OnDownloadCreated() calls. | 
 |  1615   MockDownloadManagerObserver dm_observer( | 
 |  1616       DownloadManagerForShell(initiator_shell_for_resumption())); | 
 |  1617   EXPECT_CALL(dm_observer, OnDownloadCreated(_, _)).Times(0); | 
 |  1618  | 
 |  1619   PrepareToResume(); | 
 |  1620   download->Resume(); | 
 |  1621   WaitForInProgress(download); | 
 |  1622  | 
 |  1623   download->Cancel(true); | 
 |  1624  | 
 |  1625   // The intermediate file should now be gone. | 
 |  1626   RunAllPendingInMessageLoop(BrowserThread::FILE); | 
 |  1627   RunAllPendingInMessageLoop(); | 
 |  1628   EXPECT_FALSE(base::PathExists(intermediate_path)); | 
 |  1629   EXPECT_FALSE(base::PathExists(target_path)); | 
 |  1630   EXPECT_TRUE(EnsureNoPendingDownloads()); | 
 |  1631 } | 
 |  1632  | 
|  1563 // Check that the cookie policy is correctly updated when downloading a file |  1633 // Check that the cookie policy is correctly updated when downloading a file | 
|  1564 // that redirects cross origin. |  1634 // that redirects cross origin. | 
|  1565 IN_PROC_BROWSER_TEST_F(DownloadContentTest, CookiePolicy) { |  1635 IN_PROC_BROWSER_TEST_F(DownloadContentTest, CookiePolicy) { | 
|  1566   net::EmbeddedTestServer origin_one; |  1636   net::EmbeddedTestServer origin_one; | 
|  1567   net::EmbeddedTestServer origin_two; |  1637   net::EmbeddedTestServer origin_two; | 
|  1568   ASSERT_TRUE(origin_one.Start()); |  1638   ASSERT_TRUE(origin_one.Start()); | 
|  1569   ASSERT_TRUE(origin_two.Start()); |  1639   ASSERT_TRUE(origin_two.Start()); | 
|  1570  |  1640  | 
|  1571   // Block third-party cookies. |  1641   // Block third-party cookies. | 
|  1572   ShellNetworkDelegate::SetAcceptAllCookies(false); |  1642   ShellNetworkDelegate::SetAcceptAllCookies(false); | 
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1698  |  1768  | 
|  1699 // The file empty.bin is served with a MIME type of application/octet-stream. |  1769 // The file empty.bin is served with a MIME type of application/octet-stream. | 
|  1700 // The content body is empty. Make sure this case is handled properly and we |  1770 // The content body is empty. Make sure this case is handled properly and we | 
|  1701 // don't regress on http://crbug.com/320394. |  1771 // don't regress on http://crbug.com/320394. | 
|  1702 IN_PROC_BROWSER_TEST_F(DownloadContentTest, DownloadGZipWithNoContent) { |  1772 IN_PROC_BROWSER_TEST_F(DownloadContentTest, DownloadGZipWithNoContent) { | 
|  1703   GURL url = net::URLRequestMockHTTPJob::GetMockUrl("empty.bin"); |  1773   GURL url = net::URLRequestMockHTTPJob::GetMockUrl("empty.bin"); | 
|  1704   NavigateToURLAndWaitForDownload(shell(), url, DownloadItem::COMPLETE); |  1774   NavigateToURLAndWaitForDownload(shell(), url, DownloadItem::COMPLETE); | 
|  1705   // That's it. This should work without crashing. |  1775   // That's it. This should work without crashing. | 
|  1706 } |  1776 } | 
|  1707  |  1777  | 
 |  1778 // Make sure that sniffed MIME types are correctly passed through to the | 
 |  1779 // download item. | 
 |  1780 IN_PROC_BROWSER_TEST_F(DownloadContentTest, SniffedMimeType) { | 
 |  1781   GURL url = net::URLRequestMockHTTPJob::GetMockUrl("gzip-content.gz"); | 
 |  1782   DownloadItem* item = StartDownloadAndReturnItem(shell(), url); | 
 |  1783   WaitForCompletion(item); | 
 |  1784  | 
 |  1785   EXPECT_STREQ("application/x-gzip", item->GetMimeType().c_str()); | 
 |  1786   EXPECT_TRUE(item->GetOriginalMimeType().empty()); | 
 |  1787 } | 
 |  1788  | 
|  1708 IN_PROC_BROWSER_TEST_F(DownloadContentTest, Spam) { |  1789 IN_PROC_BROWSER_TEST_F(DownloadContentTest, Spam) { | 
|  1709   ASSERT_TRUE(embedded_test_server()->Start()); |  1790   ASSERT_TRUE(embedded_test_server()->Start()); | 
|  1710  |  1791  | 
|  1711   NavigateToURLAndWaitForDownload( |  1792   NavigateToURLAndWaitForDownload( | 
|  1712       shell(), |  1793       shell(), | 
|  1713       embedded_test_server()->GetURL( |  1794       embedded_test_server()->GetURL( | 
|  1714           "/download/double-content-disposition.txt"), |  1795           "/download/double-content-disposition.txt"), | 
|  1715       DownloadItem::COMPLETE); |  1796       DownloadItem::COMPLETE); | 
|  1716  |  1797  | 
|  1717   std::vector<DownloadItem*> downloads; |  1798   std::vector<DownloadItem*> downloads; | 
|  1718   DownloadManagerForShell(shell())->GetAllDownloads(&downloads); |  1799   DownloadManagerForShell(shell())->GetAllDownloads(&downloads); | 
|  1719   ASSERT_EQ(1u, downloads.size()); |  1800   ASSERT_EQ(1u, downloads.size()); | 
|  1720  |  1801  | 
|  1721   EXPECT_EQ(FILE_PATH_LITERAL("Jumboshrimp.txt"), |  1802   EXPECT_EQ(FILE_PATH_LITERAL("Jumboshrimp.txt"), | 
|  1722             downloads[0]->GetTargetFilePath().BaseName().value()); |  1803             downloads[0]->GetTargetFilePath().BaseName().value()); | 
|  1723 } |  1804 } | 
|  1724  |  1805  | 
|  1725 }  // namespace content |  1806 }  // namespace content | 
| OLD | NEW |