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 #include "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/bind_helpers.h" | 6 #include "base/bind_helpers.h" |
7 #include "base/file_path.h" | 7 #include "base/file_path.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 FilePath GetDownloadDirectory(Browser* browser) { | 388 FilePath GetDownloadDirectory(Browser* browser) { |
389 return GetDownloadPrefs(browser)->download_path(); | 389 return GetDownloadPrefs(browser)->download_path(); |
390 } | 390 } |
391 | 391 |
392 // Create a DownloadTestObserver that will wait for the | 392 // Create a DownloadTestObserver that will wait for the |
393 // specified number of downloads to finish. | 393 // specified number of downloads to finish. |
394 DownloadTestObserver* CreateWaiter(Browser* browser, int num_downloads) { | 394 DownloadTestObserver* CreateWaiter(Browser* browser, int num_downloads) { |
395 DownloadManager* download_manager = DownloadManagerForBrowser(browser); | 395 DownloadManager* download_manager = DownloadManagerForBrowser(browser); |
396 return new DownloadTestObserver( | 396 return new DownloadTestObserver( |
397 download_manager, num_downloads, | 397 download_manager, num_downloads, |
398 DownloadItem::COMPLETE, // Really done | |
399 true, // Bail on select file | 398 true, // Bail on select file |
400 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL); | 399 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL); |
401 } | 400 } |
402 | 401 |
403 // Create a DownloadTestObserver that will wait for the | 402 // Create a DownloadTestObserver that will wait for the |
404 // specified number of downloads to start. | 403 // specified number of downloads to start. |
405 DownloadTestObserver* CreateInProgressWaiter(Browser* browser, | 404 DownloadTestObserver* CreateInProgressWaiter(Browser* browser, |
406 int num_downloads) { | 405 int num_downloads) { |
407 DownloadManager* download_manager = DownloadManagerForBrowser(browser); | 406 DownloadManager* download_manager = DownloadManagerForBrowser(browser); |
408 return new DownloadTestObserver( | 407 return new DownloadTestObserverInProgress( |
409 download_manager, num_downloads, | 408 download_manager, num_downloads); |
410 DownloadItem::IN_PROGRESS, // Has started | |
411 true, // Bail on select file | |
412 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL); | |
413 } | 409 } |
414 | 410 |
415 // Create a DownloadTestObserver that will wait for the | 411 // Create a DownloadTestObserver that will wait for the |
416 // specified number of downloads to finish, or for | 412 // specified number of downloads to finish, or for |
417 // a dangerous download warning to be shown. | 413 // a dangerous download warning to be shown. |
418 DownloadTestObserver* DangerousInstallWaiter( | 414 DownloadTestObserver* DangerousInstallWaiter( |
419 Browser* browser, | 415 Browser* browser, |
420 int num_downloads, | 416 int num_downloads, |
421 DownloadItem::DownloadState final_state, | |
422 DownloadTestObserver::DangerousDownloadAction dangerous_download_action) { | 417 DownloadTestObserver::DangerousDownloadAction dangerous_download_action) { |
423 DownloadManager* download_manager = DownloadManagerForBrowser(browser); | 418 DownloadManager* download_manager = DownloadManagerForBrowser(browser); |
424 return new DownloadTestObserver( | 419 return new DownloadTestObserver( |
425 download_manager, num_downloads, | 420 download_manager, num_downloads, |
426 final_state, | |
427 true, // Bail on select file | 421 true, // Bail on select file |
428 dangerous_download_action); | 422 dangerous_download_action); |
429 } | 423 } |
430 | 424 |
431 // Download |url|, then wait for the download to finish. | 425 // Download |url|, then wait for the download to finish. |
432 // |disposition| indicates where the navigation occurs (current tab, new | 426 // |disposition| indicates where the navigation occurs (current tab, new |
433 // foreground tab, etc). | 427 // foreground tab, etc). |
434 // |expectation| indicates whether or not a Select File dialog should be | 428 // |expectation| indicates whether or not a Select File dialog should be |
435 // open when the download is finished, or if we don't care. | 429 // open when the download is finished, or if we don't care. |
436 // If the dialog appears, the routine exits. The only effect |expectation| | 430 // If the dialog appears, the routine exits. The only effect |expectation| |
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
690 std::string server_path = "files/downloads/"; | 684 std::string server_path = "files/downloads/"; |
691 server_path += download_info.url_name; | 685 server_path += download_info.url_name; |
692 GURL url = test_server()->GetURL(server_path); | 686 GURL url = test_server()->GetURL(server_path); |
693 ASSERT_TRUE(url.is_valid()); | 687 ASSERT_TRUE(url.is_valid()); |
694 | 688 |
695 DownloadManager* download_manager = DownloadManagerForBrowser(browser()); | 689 DownloadManager* download_manager = DownloadManagerForBrowser(browser()); |
696 scoped_ptr<DownloadTestObserver> observer( | 690 scoped_ptr<DownloadTestObserver> observer( |
697 new DownloadTestObserver( | 691 new DownloadTestObserver( |
698 download_manager, | 692 download_manager, |
699 1, | 693 1, |
700 download_info.reason == DOWNLOAD_INTERRUPT_REASON_NONE ? | |
701 DownloadItem::COMPLETE : // Really done | |
702 DownloadItem::INTERRUPTED, | |
703 true, // Bail on select file | 694 true, // Bail on select file |
704 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 695 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
705 | 696 |
706 if (download_info.download_method == DOWNLOAD_DIRECT) { | 697 if (download_info.download_method == DOWNLOAD_DIRECT) { |
707 // Go directly to download. | 698 // Go directly to download. |
708 WebContents* web_contents = browser()->GetSelectedWebContents(); | 699 WebContents* web_contents = browser()->GetSelectedWebContents(); |
709 ASSERT_TRUE(web_contents); | 700 ASSERT_TRUE(web_contents); |
710 DownloadSaveInfo save_info; | 701 DownloadSaveInfo save_info; |
711 save_info.prompt_for_save_location = false; | 702 save_info.prompt_for_save_location = false; |
712 | 703 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
795 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 786 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
796 | 787 |
797 NullSelectFile(browser()); | 788 NullSelectFile(browser()); |
798 | 789 |
799 // Download the file and wait. We expect the Select File dialog to appear | 790 // Download the file and wait. We expect the Select File dialog to appear |
800 // due to the MIME type, but we still wait until the download completes. | 791 // due to the MIME type, but we still wait until the download completes. |
801 scoped_ptr<DownloadTestObserver> observer( | 792 scoped_ptr<DownloadTestObserver> observer( |
802 new DownloadTestObserver( | 793 new DownloadTestObserver( |
803 DownloadManagerForBrowser(browser()), | 794 DownloadManagerForBrowser(browser()), |
804 1, | 795 1, |
805 DownloadItem::COMPLETE, // Really done | |
806 false, // Continue on select file. | 796 false, // Continue on select file. |
807 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 797 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
808 ui_test_utils::NavigateToURLWithDisposition( | 798 ui_test_utils::NavigateToURLWithDisposition( |
809 browser(), url, CURRENT_TAB, | 799 browser(), url, CURRENT_TAB, |
810 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 800 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
811 observer->WaitForFinished(); | 801 observer->WaitForFinished(); |
812 EXPECT_TRUE(observer->select_file_dialog_seen()); | 802 EXPECT_TRUE(observer->select_file_dialog_seen()); |
813 | 803 |
814 // Check state. | 804 // Check state. |
815 EXPECT_EQ(1, browser()->tab_count()); | 805 EXPECT_EQ(1, browser()->tab_count()); |
(...skipping 729 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1545 } | 1535 } |
1546 | 1536 |
1547 // Download an extension. Expect a dangerous download warning. | 1537 // Download an extension. Expect a dangerous download warning. |
1548 // Deny the download. | 1538 // Deny the download. |
1549 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxDenyInstall) { | 1539 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxDenyInstall) { |
1550 ASSERT_TRUE(InitialSetup(false)); | 1540 ASSERT_TRUE(InitialSetup(false)); |
1551 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath)); | 1541 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath)); |
1552 | 1542 |
1553 scoped_ptr<DownloadTestObserver> observer( | 1543 scoped_ptr<DownloadTestObserver> observer( |
1554 DangerousInstallWaiter( | 1544 DangerousInstallWaiter( |
1555 browser(), 1, DownloadItem::CANCELLED, | 1545 browser(), 1, |
1556 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_DENY)); | 1546 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_DENY)); |
1557 ui_test_utils::NavigateToURL(browser(), extension_url); | 1547 ui_test_utils::NavigateToURL(browser(), extension_url); |
1558 | 1548 |
1559 observer->WaitForFinished(); | 1549 observer->WaitForFinished(); |
1560 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); | 1550 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); |
1561 | 1551 |
1562 // Download shelf should close. Download panel stays open on ChromeOS. | 1552 // Download shelf should close. Download panel stays open on ChromeOS. |
1563 CheckDownloadUI(browser(), false, true, FilePath()); | 1553 CheckDownloadUI(browser(), false, true, FilePath()); |
1564 | 1554 |
1565 // Check that the CRX is not installed. | 1555 // Check that the CRX is not installed. |
1566 ExtensionService* extension_service = | 1556 ExtensionService* extension_service = |
1567 browser()->profile()->GetExtensionService(); | 1557 browser()->profile()->GetExtensionService(); |
1568 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false)); | 1558 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false)); |
1569 } | 1559 } |
1570 | 1560 |
1571 // Download an extension. Expect a dangerous download warning. | 1561 // Download an extension. Expect a dangerous download warning. |
1572 // Allow the download, deny the install. | 1562 // Allow the download, deny the install. |
1573 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallDenysPermissions) { | 1563 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallDenysPermissions) { |
1574 ASSERT_TRUE(InitialSetup(false)); | 1564 ASSERT_TRUE(InitialSetup(false)); |
1575 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath)); | 1565 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath)); |
1576 | 1566 |
1577 // Install a mock install UI that simulates a user denying permission to | 1567 // Install a mock install UI that simulates a user denying permission to |
1578 // finish the install. | 1568 // finish the install. |
1579 download_crx_util::SetMockInstallUIForTesting( | 1569 download_crx_util::SetMockInstallUIForTesting( |
1580 new MockAbortExtensionInstallUI()); | 1570 new MockAbortExtensionInstallUI()); |
1581 | 1571 |
1582 scoped_ptr<DownloadTestObserver> observer( | 1572 scoped_ptr<DownloadTestObserver> observer( |
1583 DangerousInstallWaiter( | 1573 DangerousInstallWaiter( |
1584 browser(), 1, DownloadItem::COMPLETE, | 1574 browser(), 1, |
1585 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); | 1575 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); |
1586 ui_test_utils::NavigateToURL(browser(), extension_url); | 1576 ui_test_utils::NavigateToURL(browser(), extension_url); |
1587 | 1577 |
1588 observer->WaitForFinished(); | 1578 observer->WaitForFinished(); |
1589 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); | 1579 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); |
1590 | 1580 |
1591 // Download shelf should close. Download panel stays open on ChromeOS. | 1581 // Download shelf should close. Download panel stays open on ChromeOS. |
1592 CheckDownloadUI(browser(), false, true, FilePath()); | 1582 CheckDownloadUI(browser(), false, true, FilePath()); |
1593 | 1583 |
1594 // Check that the extension was not installed. | 1584 // Check that the extension was not installed. |
1595 ExtensionService* extension_service = | 1585 ExtensionService* extension_service = |
1596 browser()->profile()->GetExtensionService(); | 1586 browser()->profile()->GetExtensionService(); |
1597 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false)); | 1587 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false)); |
1598 } | 1588 } |
1599 | 1589 |
1600 // Download an extension. Expect a dangerous download warning. | 1590 // Download an extension. Expect a dangerous download warning. |
1601 // Allow the download, and the install. | 1591 // Allow the download, and the install. |
1602 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallAcceptPermissions) { | 1592 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallAcceptPermissions) { |
1603 ASSERT_TRUE(InitialSetup(false)); | 1593 ASSERT_TRUE(InitialSetup(false)); |
1604 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath)); | 1594 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath)); |
1605 | 1595 |
1606 // Install a mock install UI that simulates a user allowing permission to | 1596 // Install a mock install UI that simulates a user allowing permission to |
1607 // finish the install. | 1597 // finish the install. |
1608 download_crx_util::SetMockInstallUIForTesting( | 1598 download_crx_util::SetMockInstallUIForTesting( |
1609 new MockAutoConfirmExtensionInstallUI(browser()->profile())); | 1599 new MockAutoConfirmExtensionInstallUI(browser()->profile())); |
1610 | 1600 |
1611 scoped_ptr<DownloadTestObserver> observer( | 1601 scoped_ptr<DownloadTestObserver> observer( |
1612 DangerousInstallWaiter( | 1602 DangerousInstallWaiter( |
1613 browser(), 1, DownloadItem::COMPLETE, | 1603 browser(), 1, |
1614 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); | 1604 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); |
1615 ui_test_utils::NavigateToURL(browser(), extension_url); | 1605 ui_test_utils::NavigateToURL(browser(), extension_url); |
1616 | 1606 |
1617 observer->WaitForFinished(); | 1607 observer->WaitForFinished(); |
1618 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); | 1608 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); |
1619 | 1609 |
1620 // Download shelf should close. Download panel stays open on ChromeOS. | 1610 // Download shelf should close. Download panel stays open on ChromeOS. |
1621 CheckDownloadUI(browser(), false, true, FilePath()); | 1611 CheckDownloadUI(browser(), false, true, FilePath()); |
1622 | 1612 |
1623 // Check that the extension was installed. | 1613 // Check that the extension was installed. |
1624 ExtensionService* extension_service = | 1614 ExtensionService* extension_service = |
1625 browser()->profile()->GetExtensionService(); | 1615 browser()->profile()->GetExtensionService(); |
1626 ASSERT_TRUE(extension_service->GetExtensionById(kGoodCrxId, false)); | 1616 ASSERT_TRUE(extension_service->GetExtensionById(kGoodCrxId, false)); |
1627 } | 1617 } |
1628 | 1618 |
1629 // Test installing a CRX that fails integrity checks. | 1619 // Test installing a CRX that fails integrity checks. |
1630 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInvalid) { | 1620 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInvalid) { |
1631 ASSERT_TRUE(InitialSetup(false)); | 1621 ASSERT_TRUE(InitialSetup(false)); |
1632 FilePath file(FILE_PATH_LITERAL("extensions/bad_signature.crx")); | 1622 FilePath file(FILE_PATH_LITERAL("extensions/bad_signature.crx")); |
1633 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1623 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(file)); |
1634 | 1624 |
1635 // Install a mock install UI that simulates a user allowing permission to | 1625 // Install a mock install UI that simulates a user allowing permission to |
1636 // finish the install, and dismisses any error message. We check that the | 1626 // finish the install, and dismisses any error message. We check that the |
1637 // install failed below. | 1627 // install failed below. |
1638 download_crx_util::SetMockInstallUIForTesting( | 1628 download_crx_util::SetMockInstallUIForTesting( |
1639 new MockAutoConfirmExtensionInstallUI(browser()->profile())); | 1629 new MockAutoConfirmExtensionInstallUI(browser()->profile())); |
1640 | 1630 |
1641 scoped_ptr<DownloadTestObserver> observer( | 1631 scoped_ptr<DownloadTestObserver> observer( |
1642 DangerousInstallWaiter( | 1632 DangerousInstallWaiter( |
1643 browser(), 1, DownloadItem::COMPLETE, | 1633 browser(), 1, |
1644 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); | 1634 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); |
1645 ui_test_utils::NavigateToURL(browser(), extension_url); | 1635 ui_test_utils::NavigateToURL(browser(), extension_url); |
1646 | 1636 |
1647 observer->WaitForFinished(); | 1637 observer->WaitForFinished(); |
1648 | 1638 |
1649 // Check that the extension was not installed. | 1639 // Check that the extension was not installed. |
1650 ExtensionService* extension_service = | 1640 ExtensionService* extension_service = |
1651 browser()->profile()->GetExtensionService(); | 1641 browser()->profile()->GetExtensionService(); |
1652 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false)); | 1642 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false)); |
1653 } | 1643 } |
1654 | 1644 |
1655 // Install a large (100kb) theme. | 1645 // Install a large (100kb) theme. |
1656 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxLargeTheme) { | 1646 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxLargeTheme) { |
1657 ASSERT_TRUE(InitialSetup(false)); | 1647 ASSERT_TRUE(InitialSetup(false)); |
1658 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kLargeThemePath)); | 1648 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kLargeThemePath)); |
1659 | 1649 |
1660 // Install a mock install UI that simulates a user allowing permission to | 1650 // Install a mock install UI that simulates a user allowing permission to |
1661 // finish the install. | 1651 // finish the install. |
1662 download_crx_util::SetMockInstallUIForTesting( | 1652 download_crx_util::SetMockInstallUIForTesting( |
1663 new MockAutoConfirmExtensionInstallUI(browser()->profile())); | 1653 new MockAutoConfirmExtensionInstallUI(browser()->profile())); |
1664 | 1654 |
1665 scoped_ptr<DownloadTestObserver> observer( | 1655 scoped_ptr<DownloadTestObserver> observer( |
1666 DangerousInstallWaiter( | 1656 DangerousInstallWaiter( |
1667 browser(), 1, DownloadItem::COMPLETE, | 1657 browser(), 1, |
1668 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); | 1658 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); |
1669 ui_test_utils::NavigateToURL(browser(), extension_url); | 1659 ui_test_utils::NavigateToURL(browser(), extension_url); |
1670 | 1660 |
1671 observer->WaitForFinished(); | 1661 observer->WaitForFinished(); |
1672 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); | 1662 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); |
1673 | 1663 |
1674 // Download shelf should close. Download panel stays open on ChromeOS. | 1664 // Download shelf should close. Download panel stays open on ChromeOS. |
1675 CheckDownloadUI(browser(), false, true, FilePath()); | 1665 CheckDownloadUI(browser(), false, true, FilePath()); |
1676 | 1666 |
1677 // Check that the extension was installed. | 1667 // Check that the extension was installed. |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1820 | 1810 |
1821 // DownloadUrl always prompts; return acceptance of whatever it prompts. | 1811 // DownloadUrl always prompts; return acceptance of whatever it prompts. |
1822 NullSelectFile(browser()); | 1812 NullSelectFile(browser()); |
1823 | 1813 |
1824 WebContents* web_contents = browser()->GetSelectedWebContents(); | 1814 WebContents* web_contents = browser()->GetSelectedWebContents(); |
1825 ASSERT_TRUE(web_contents); | 1815 ASSERT_TRUE(web_contents); |
1826 | 1816 |
1827 DownloadTestObserver* observer( | 1817 DownloadTestObserver* observer( |
1828 new DownloadTestObserver( | 1818 new DownloadTestObserver( |
1829 DownloadManagerForBrowser(browser()), 1, | 1819 DownloadManagerForBrowser(browser()), 1, |
1830 DownloadItem::COMPLETE, // Really done | |
1831 false, // Ignore select file. | 1820 false, // Ignore select file. |
1832 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 1821 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
1833 DownloadSaveInfo save_info; | 1822 DownloadSaveInfo save_info; |
1834 save_info.prompt_for_save_location = true; | 1823 save_info.prompt_for_save_location = true; |
1835 DownloadManagerForBrowser(browser())->DownloadUrl( | 1824 DownloadManagerForBrowser(browser())->DownloadUrl( |
1836 url, GURL(""), "", false, -1, save_info, web_contents); | 1825 url, GURL(""), "", false, -1, save_info, web_contents); |
1837 observer->WaitForFinished(); | 1826 observer->WaitForFinished(); |
1838 EXPECT_TRUE(observer->select_file_dialog_seen()); | 1827 EXPECT_TRUE(observer->select_file_dialog_seen()); |
1839 | 1828 |
1840 // Check state. | 1829 // Check state. |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1888 GURL url = test_server()->GetURL("files/downloads/image.jpg"); | 1877 GURL url = test_server()->GetURL("files/downloads/image.jpg"); |
1889 ASSERT_TRUE(url.is_valid()); | 1878 ASSERT_TRUE(url.is_valid()); |
1890 ui_test_utils::NavigateToURL(browser(), url); | 1879 ui_test_utils::NavigateToURL(browser(), url); |
1891 | 1880 |
1892 // Stop the test server, and then try to save the page. If cache validation | 1881 // Stop the test server, and then try to save the page. If cache validation |
1893 // is not bypassed then this will fail since the server is no longer | 1882 // is not bypassed then this will fail since the server is no longer |
1894 // reachable. | 1883 // reachable. |
1895 ASSERT_TRUE(test_server()->Stop()); | 1884 ASSERT_TRUE(test_server()->Stop()); |
1896 scoped_ptr<DownloadTestObserver> waiter( | 1885 scoped_ptr<DownloadTestObserver> waiter( |
1897 new DownloadTestObserver( | 1886 new DownloadTestObserver( |
1898 DownloadManagerForBrowser(browser()), 1, DownloadItem::COMPLETE, | 1887 DownloadManagerForBrowser(browser()), 1, |
1899 false, DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 1888 false, DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
1900 browser()->SavePage(); | 1889 browser()->SavePage(); |
1901 waiter->WaitForFinished(); | 1890 waiter->WaitForFinished(); |
1902 | 1891 |
1903 // Validate that the correct file was downloaded. | 1892 // Validate that the correct file was downloaded. |
1904 GetDownloads(browser(), &download_items); | 1893 GetDownloads(browser(), &download_items); |
1905 EXPECT_TRUE(waiter->select_file_dialog_seen()); | 1894 EXPECT_TRUE(waiter->select_file_dialog_seen()); |
1906 ASSERT_EQ(1u, download_items.size()); | 1895 ASSERT_EQ(1u, download_items.size()); |
1907 ASSERT_EQ(url, download_items[0]->GetOriginalUrl()); | 1896 ASSERT_EQ(url, download_items[0]->GetOriginalUrl()); |
| 1897 EXPECT_EQ(DownloadItem::COMPLETE, download_items[0]->GetState()); |
1908 | 1898 |
1909 // Try to download it via a context menu. | 1899 // Try to download it via a context menu. |
1910 scoped_ptr<DownloadTestObserver> waiter_context_menu( | 1900 scoped_ptr<DownloadTestObserver> waiter_context_menu( |
1911 new DownloadTestObserver( | 1901 new DownloadTestObserver( |
1912 DownloadManagerForBrowser(browser()), 1, DownloadItem::COMPLETE, | 1902 DownloadManagerForBrowser(browser()), 1, |
1913 false, DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 1903 false, DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
1914 content::ContextMenuParams context_menu_params; | 1904 content::ContextMenuParams context_menu_params; |
1915 context_menu_params.media_type = WebKit::WebContextMenuData::MediaTypeImage; | 1905 context_menu_params.media_type = WebKit::WebContextMenuData::MediaTypeImage; |
1916 context_menu_params.src_url = url; | 1906 context_menu_params.src_url = url; |
1917 context_menu_params.page_url = url; | 1907 context_menu_params.page_url = url; |
1918 TestRenderViewContextMenu menu(browser()->GetSelectedWebContents(), | 1908 TestRenderViewContextMenu menu(browser()->GetSelectedWebContents(), |
1919 context_menu_params); | 1909 context_menu_params); |
1920 menu.Init(); | 1910 menu.Init(); |
1921 menu.ExecuteCommand(IDC_CONTENT_CONTEXT_SAVEIMAGEAS); | 1911 menu.ExecuteCommand(IDC_CONTENT_CONTEXT_SAVEIMAGEAS); |
1922 waiter_context_menu->WaitForFinished(); | 1912 waiter_context_menu->WaitForFinished(); |
1923 | 1913 |
1924 // Validate that the correct file was downloaded via the context menu. | 1914 // Validate that the correct file was downloaded via the context menu. |
1925 download_items.clear(); | 1915 download_items.clear(); |
1926 GetDownloads(browser(), &download_items); | 1916 GetDownloads(browser(), &download_items); |
1927 EXPECT_TRUE(waiter_context_menu->select_file_dialog_seen()); | 1917 EXPECT_TRUE(waiter_context_menu->select_file_dialog_seen()); |
| 1918 EXPECT_EQ(DownloadItem::COMPLETE, download_items[0]->GetState()); |
1928 ASSERT_EQ(2u, download_items.size()); | 1919 ASSERT_EQ(2u, download_items.size()); |
1929 ASSERT_EQ(url, download_items[0]->GetOriginalUrl()); | 1920 ASSERT_EQ(url, download_items[0]->GetOriginalUrl()); |
1930 ASSERT_EQ(url, download_items[1]->GetOriginalUrl()); | 1921 ASSERT_EQ(url, download_items[1]->GetOriginalUrl()); |
| 1922 EXPECT_EQ(DownloadItem::COMPLETE, download_items[1]->GetState()); |
1931 } | 1923 } |
1932 | 1924 |
1933 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaPost) { | 1925 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaPost) { |
1934 // Do initial setup. | 1926 // Do initial setup. |
1935 ASSERT_TRUE(InitialSetup(false)); | 1927 ASSERT_TRUE(InitialSetup(false)); |
1936 ASSERT_TRUE(test_server()->Start()); | 1928 ASSERT_TRUE(test_server()->Start()); |
1937 NullSelectFile(browser()); | 1929 NullSelectFile(browser()); |
1938 std::vector<DownloadItem*> download_items; | 1930 std::vector<DownloadItem*> download_items; |
1939 GetDownloads(browser(), &download_items); | 1931 GetDownloads(browser(), &download_items); |
1940 ASSERT_TRUE(download_items.empty()); | 1932 ASSERT_TRUE(download_items.empty()); |
(...skipping 22 matching lines...) Expand all Loading... |
1963 observer.Wait(); | 1955 observer.Wait(); |
1964 EXPECT_EQ(jpeg_url, web_contents->GetURL()); | 1956 EXPECT_EQ(jpeg_url, web_contents->GetURL()); |
1965 | 1957 |
1966 // Stop the test server, and then try to save the page. If cache validation | 1958 // Stop the test server, and then try to save the page. If cache validation |
1967 // is not bypassed then this will fail since the server is no longer | 1959 // is not bypassed then this will fail since the server is no longer |
1968 // reachable. This will also fail if it tries to be retrieved via "GET" | 1960 // reachable. This will also fail if it tries to be retrieved via "GET" |
1969 // rather than "POST". | 1961 // rather than "POST". |
1970 ASSERT_TRUE(test_server()->Stop()); | 1962 ASSERT_TRUE(test_server()->Stop()); |
1971 scoped_ptr<DownloadTestObserver> waiter( | 1963 scoped_ptr<DownloadTestObserver> waiter( |
1972 new DownloadTestObserver( | 1964 new DownloadTestObserver( |
1973 DownloadManagerForBrowser(browser()), 1, DownloadItem::COMPLETE, | 1965 DownloadManagerForBrowser(browser()), 1, |
1974 false, DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 1966 false, DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
1975 browser()->SavePage(); | 1967 browser()->SavePage(); |
1976 waiter->WaitForFinished(); | 1968 waiter->WaitForFinished(); |
1977 | 1969 |
1978 // Validate that the correct file was downloaded. | 1970 // Validate that the correct file was downloaded. |
1979 GetDownloads(browser(), &download_items); | 1971 GetDownloads(browser(), &download_items); |
1980 EXPECT_TRUE(waiter->select_file_dialog_seen()); | 1972 EXPECT_TRUE(waiter->select_file_dialog_seen()); |
1981 ASSERT_EQ(1u, download_items.size()); | 1973 ASSERT_EQ(1u, download_items.size()); |
1982 ASSERT_EQ(jpeg_url, download_items[0]->GetOriginalUrl()); | 1974 ASSERT_EQ(jpeg_url, download_items[0]->GetOriginalUrl()); |
1983 | 1975 |
1984 // Try to download it via a context menu. | 1976 // Try to download it via a context menu. |
1985 scoped_ptr<DownloadTestObserver> waiter_context_menu( | 1977 scoped_ptr<DownloadTestObserver> waiter_context_menu( |
1986 new DownloadTestObserver( | 1978 new DownloadTestObserver( |
1987 DownloadManagerForBrowser(browser()), 1, DownloadItem::COMPLETE, | 1979 DownloadManagerForBrowser(browser()), 1, |
1988 false, DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 1980 false, DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
1989 content::ContextMenuParams context_menu_params; | 1981 content::ContextMenuParams context_menu_params; |
1990 context_menu_params.media_type = WebKit::WebContextMenuData::MediaTypeImage; | 1982 context_menu_params.media_type = WebKit::WebContextMenuData::MediaTypeImage; |
1991 context_menu_params.src_url = jpeg_url; | 1983 context_menu_params.src_url = jpeg_url; |
1992 context_menu_params.page_url = jpeg_url; | 1984 context_menu_params.page_url = jpeg_url; |
1993 TestRenderViewContextMenu menu(web_contents, context_menu_params); | 1985 TestRenderViewContextMenu menu(web_contents, context_menu_params); |
1994 menu.Init(); | 1986 menu.Init(); |
1995 menu.ExecuteCommand(IDC_CONTENT_CONTEXT_SAVEIMAGEAS); | 1987 menu.ExecuteCommand(IDC_CONTENT_CONTEXT_SAVEIMAGEAS); |
1996 waiter_context_menu->WaitForFinished(); | 1988 waiter_context_menu->WaitForFinished(); |
1997 | 1989 |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2074 "zip_file_not_found.zip", | 2066 "zip_file_not_found.zip", |
2075 DOWNLOAD_NAVIGATE, | 2067 DOWNLOAD_NAVIGATE, |
2076 DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED, | 2068 DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED, |
2077 false | 2069 false |
2078 }; | 2070 }; |
2079 | 2071 |
2080 // Do initial setup. | 2072 // Do initial setup. |
2081 ASSERT_TRUE(InitialSetup(false)); | 2073 ASSERT_TRUE(InitialSetup(false)); |
2082 DownloadFileCheckErrors(download_info); | 2074 DownloadFileCheckErrors(download_info); |
2083 } | 2075 } |
OLD | NEW |