| 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 <sstream> | 5 #include <sstream> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
| 10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
| (...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 543 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 543 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 544 CheckDownloadStatesForBrowser(browser, 1, DownloadItem::COMPLETE); | 544 CheckDownloadStatesForBrowser(browser, 1, DownloadItem::COMPLETE); |
| 545 | 545 |
| 546 EXPECT_EQ(2, browser->tab_count()); | 546 EXPECT_EQ(2, browser->tab_count()); |
| 547 | 547 |
| 548 // TODO(ahendrickson): check download status text after downloading. | 548 // TODO(ahendrickson): check download status text after downloading. |
| 549 | 549 |
| 550 FilePath basefilename(filename.BaseName()); | 550 FilePath basefilename(filename.BaseName()); |
| 551 net::FileURLToFilePath(url, &filename); | 551 net::FileURLToFilePath(url, &filename); |
| 552 FilePath download_path = downloads_directory_.path().Append(basefilename); | 552 FilePath download_path = downloads_directory_.path().Append(basefilename); |
| 553 CheckDownloadUI(browser, true, true, basefilename); | 553 EXPECT_TRUE(browser->window()->IsDownloadShelfVisible()); |
| 554 | 554 |
| 555 bool downloaded_path_exists = file_util::PathExists(download_path); | 555 bool downloaded_path_exists = file_util::PathExists(download_path); |
| 556 EXPECT_TRUE(downloaded_path_exists); | 556 EXPECT_TRUE(downloaded_path_exists); |
| 557 if (!downloaded_path_exists) | 557 if (!downloaded_path_exists) |
| 558 return false; | 558 return false; |
| 559 | 559 |
| 560 // Check the file contents. | 560 // Check the file contents. |
| 561 size_t file_size = URLRequestSlowDownloadJob::kFirstDownloadSize + | 561 size_t file_size = URLRequestSlowDownloadJob::kFirstDownloadSize + |
| 562 URLRequestSlowDownloadJob::kSecondDownloadSize; | 562 URLRequestSlowDownloadJob::kSecondDownloadSize; |
| 563 std::string expected_contents(file_size, '*'); | 563 std::string expected_contents(file_size, '*'); |
| 564 EXPECT_TRUE(VerifyFile(download_path, expected_contents, file_size)); | 564 EXPECT_TRUE(VerifyFile(download_path, expected_contents, file_size)); |
| 565 | 565 |
| 566 // Delete the file we just downloaded. | 566 // Delete the file we just downloaded. |
| 567 EXPECT_TRUE(file_util::DieFileDie(download_path, true)); | 567 EXPECT_TRUE(file_util::DieFileDie(download_path, true)); |
| 568 EXPECT_FALSE(file_util::PathExists(download_path)); | 568 EXPECT_FALSE(file_util::PathExists(download_path)); |
| 569 | 569 |
| 570 return true; | 570 return true; |
| 571 } | 571 } |
| 572 | 572 |
| 573 void GetDownloads(Browser* browser, std::vector<DownloadItem*>* downloads) { | 573 void GetDownloads(Browser* browser, std::vector<DownloadItem*>* downloads) { |
| 574 DCHECK(downloads); | 574 DCHECK(downloads); |
| 575 DownloadManager* manager = DownloadManagerForBrowser(browser); | 575 DownloadManager* manager = DownloadManagerForBrowser(browser); |
| 576 manager->SearchDownloads(string16(), downloads); | 576 manager->SearchDownloads(string16(), downloads); |
| 577 } | 577 } |
| 578 | 578 |
| 579 // Check that the download UI (shelf on non-chromeos or panel on chromeos) | |
| 580 // is visible or not as expected. Additionally, check that the filename | |
| 581 // is present in the UI (currently only on chromeos). | |
| 582 void CheckDownloadUI(Browser* browser, bool expected_non_cros, | |
| 583 bool expected_cros, const FilePath& filename) { | |
| 584 EXPECT_EQ(expected_non_cros, browser->window()->IsDownloadShelfVisible()); | |
| 585 // TODO: Check for filename match in download shelf. | |
| 586 } | |
| 587 static void ExpectWindowCountAfterDownload(size_t expected) { | 579 static void ExpectWindowCountAfterDownload(size_t expected) { |
| 588 EXPECT_EQ(expected, BrowserList::size()); | 580 EXPECT_EQ(expected, BrowserList::size()); |
| 589 } | 581 } |
| 590 | 582 |
| 591 // Arrange for select file calls on the given browser from the | 583 // Arrange for select file calls on the given browser from the |
| 592 // download manager to always choose the suggested file. | 584 // download manager to always choose the suggested file. |
| 593 void NullSelectFile(Browser* browser) { | 585 void NullSelectFile(Browser* browser) { |
| 594 PickSuggestedFileDelegate* new_delegate = | 586 PickSuggestedFileDelegate* new_delegate = |
| 595 new PickSuggestedFileDelegate(browser->profile()); | 587 new PickSuggestedFileDelegate(browser->profile()); |
| 596 | 588 |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 877 ASSERT_TRUE(InitialSetup(false)); | 869 ASSERT_TRUE(InitialSetup(false)); |
| 878 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 870 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 879 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 871 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 880 | 872 |
| 881 // Download the file and wait. We do not expect the Select File dialog. | 873 // Download the file and wait. We do not expect the Select File dialog. |
| 882 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); | 874 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); |
| 883 | 875 |
| 884 // Check state. | 876 // Check state. |
| 885 EXPECT_EQ(1, browser()->tab_count()); | 877 EXPECT_EQ(1, browser()->tab_count()); |
| 886 CheckDownload(browser(), file, file); | 878 CheckDownload(browser(), file, file); |
| 887 CheckDownloadUI(browser(), true, true, file); | 879 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 888 } | 880 } |
| 889 | 881 |
| 890 #if defined(OS_WIN) | 882 #if defined(OS_WIN) |
| 891 // Download a file and confirm that the zone identifier (on windows) | 883 // Download a file and confirm that the zone identifier (on windows) |
| 892 // is set to internet. | 884 // is set to internet. |
| 893 IN_PROC_BROWSER_TEST_F(DownloadTest, CheckInternetZone) { | 885 IN_PROC_BROWSER_TEST_F(DownloadTest, CheckInternetZone) { |
| 894 ASSERT_TRUE(InitialSetup(false)); | 886 ASSERT_TRUE(InitialSetup(false)); |
| 895 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 887 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 896 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 888 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 897 | 889 |
| 898 // Download the file and wait. We do not expect the Select File dialog. | 890 // Download the file and wait. We do not expect the Select File dialog. |
| 899 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); | 891 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); |
| 900 | 892 |
| 901 // Check state. Special file state must be checked before CheckDownload, | 893 // Check state. Special file state must be checked before CheckDownload, |
| 902 // as CheckDownload will delete the output file. | 894 // as CheckDownload will delete the output file. |
| 903 EXPECT_EQ(1, browser()->tab_count()); | 895 EXPECT_EQ(1, browser()->tab_count()); |
| 904 FilePath downloaded_file(DestinationFile(browser(), file)); | 896 FilePath downloaded_file(DestinationFile(browser(), file)); |
| 905 if (file_util::VolumeSupportsADS(downloaded_file)) | 897 if (file_util::VolumeSupportsADS(downloaded_file)) |
| 906 EXPECT_TRUE(file_util::HasInternetZoneIdentifier(downloaded_file)); | 898 EXPECT_TRUE(file_util::HasInternetZoneIdentifier(downloaded_file)); |
| 907 CheckDownload(browser(), file, file); | 899 CheckDownload(browser(), file, file); |
| 908 CheckDownloadUI(browser(), true, true, file); | 900 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 909 } | 901 } |
| 910 #endif | 902 #endif |
| 911 | 903 |
| 912 // Put up a Select File dialog when the file is downloaded, due to | 904 // Put up a Select File dialog when the file is downloaded, due to |
| 913 // downloads preferences settings. | 905 // downloads preferences settings. |
| 914 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadMimeTypeSelect) { | 906 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadMimeTypeSelect) { |
| 915 ASSERT_TRUE(InitialSetup(true)); | 907 ASSERT_TRUE(InitialSetup(true)); |
| 916 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 908 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 917 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 909 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 918 | 910 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 930 browser(), url, CURRENT_TAB, | 922 browser(), url, CURRENT_TAB, |
| 931 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 923 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 932 observer->WaitForFinished(); | 924 observer->WaitForFinished(); |
| 933 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 925 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 934 CheckDownloadStates(1, DownloadItem::COMPLETE); | 926 CheckDownloadStates(1, DownloadItem::COMPLETE); |
| 935 EXPECT_TRUE(observer->select_file_dialog_seen()); | 927 EXPECT_TRUE(observer->select_file_dialog_seen()); |
| 936 | 928 |
| 937 // Check state. | 929 // Check state. |
| 938 EXPECT_EQ(1, browser()->tab_count()); | 930 EXPECT_EQ(1, browser()->tab_count()); |
| 939 CheckDownload(browser(), file, file); | 931 CheckDownload(browser(), file, file); |
| 940 CheckDownloadUI(browser(), true, true, file); | 932 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 941 } | 933 } |
| 942 | 934 |
| 943 // Access a file with a viewable mime-type, verify that a download | 935 // Access a file with a viewable mime-type, verify that a download |
| 944 // did not initiate. | 936 // did not initiate. |
| 945 IN_PROC_BROWSER_TEST_F(DownloadTest, NoDownload) { | 937 IN_PROC_BROWSER_TEST_F(DownloadTest, NoDownload) { |
| 946 ASSERT_TRUE(InitialSetup(false)); | 938 ASSERT_TRUE(InitialSetup(false)); |
| 947 FilePath file(FILE_PATH_LITERAL("download-test2.html")); | 939 FilePath file(FILE_PATH_LITERAL("download-test2.html")); |
| 948 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 940 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 949 FilePath file_path(DestinationFile(browser(), file)); | 941 FilePath file_path(DestinationFile(browser(), file)); |
| 950 | 942 |
| 951 // Open a web page and wait. | 943 // Open a web page and wait. |
| 952 ui_test_utils::NavigateToURL(browser(), url); | 944 ui_test_utils::NavigateToURL(browser(), url); |
| 953 | 945 |
| 954 // Check that we did not download the web page. | 946 // Check that we did not download the web page. |
| 955 EXPECT_FALSE(file_util::PathExists(file_path)); | 947 EXPECT_FALSE(file_util::PathExists(file_path)); |
| 956 | 948 |
| 957 // Check state. | 949 // Check state. |
| 958 EXPECT_EQ(1, browser()->tab_count()); | 950 EXPECT_EQ(1, browser()->tab_count()); |
| 959 CheckDownloadUI(browser(), false, false, FilePath()); | 951 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 960 } | 952 } |
| 961 | 953 |
| 962 // Verify that when the DownloadResourceThrottle cancels a download, the | 954 // Verify that when the DownloadResourceThrottle cancels a download, the |
| 963 // download never makes it to the downloads system. | 955 // download never makes it to the downloads system. |
| 964 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadResourceThrottleCancels) { | 956 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadResourceThrottleCancels) { |
| 965 ASSERT_TRUE(InitialSetup(false)); | 957 ASSERT_TRUE(InitialSetup(false)); |
| 966 | 958 |
| 967 // Navigate to a page with the same domain as the file to download. We can't | 959 // Navigate to a page with the same domain as the file to download. We can't |
| 968 // navigate directly to the file we don't want to download because cross-site | 960 // navigate directly to the file we don't want to download because cross-site |
| 969 // navigations reset the TabDownloadState. | 961 // navigations reset the TabDownloadState. |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1004 base::Bind(&MessageLoop::Quit, | 996 base::Bind(&MessageLoop::Quit, |
| 1005 base::Unretained(MessageLoopForUI::current()))); | 997 base::Unretained(MessageLoopForUI::current()))); |
| 1006 | 998 |
| 1007 // Check that we did not download the file. | 999 // Check that we did not download the file. |
| 1008 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1000 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1009 FilePath file_path(DestinationFile(browser(), file)); | 1001 FilePath file_path(DestinationFile(browser(), file)); |
| 1010 EXPECT_FALSE(file_util::PathExists(file_path)); | 1002 EXPECT_FALSE(file_util::PathExists(file_path)); |
| 1011 | 1003 |
| 1012 // Check state. | 1004 // Check state. |
| 1013 EXPECT_EQ(1, browser()->tab_count()); | 1005 EXPECT_EQ(1, browser()->tab_count()); |
| 1014 CheckDownloadUI(browser(), false, false, FilePath()); | 1006 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1015 | 1007 |
| 1016 // Verify that there's no pending download. | 1008 // Verify that there's no pending download. |
| 1017 EXPECT_TRUE(EnsureNoPendingDownloads()); | 1009 EXPECT_TRUE(EnsureNoPendingDownloads()); |
| 1018 } | 1010 } |
| 1019 | 1011 |
| 1020 // Download a 0-size file with a content-disposition header, verify that the | 1012 // Download a 0-size file with a content-disposition header, verify that the |
| 1021 // download tab opened and the file exists as the filename specified in the | 1013 // download tab opened and the file exists as the filename specified in the |
| 1022 // header. This also ensures we properly handle empty file downloads. | 1014 // header. This also ensures we properly handle empty file downloads. |
| 1023 // The download shelf should be visible in the current tab. | 1015 // The download shelf should be visible in the current tab. |
| 1024 IN_PROC_BROWSER_TEST_F(DownloadTest, ContentDisposition) { | 1016 IN_PROC_BROWSER_TEST_F(DownloadTest, ContentDisposition) { |
| 1025 ASSERT_TRUE(InitialSetup(false)); | 1017 ASSERT_TRUE(InitialSetup(false)); |
| 1026 FilePath file(FILE_PATH_LITERAL("download-test3.gif")); | 1018 FilePath file(FILE_PATH_LITERAL("download-test3.gif")); |
| 1027 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1019 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1028 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif")); | 1020 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif")); |
| 1029 | 1021 |
| 1030 // Download a file and wait. | 1022 // Download a file and wait. |
| 1031 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); | 1023 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); |
| 1032 | 1024 |
| 1033 CheckDownload(browser(), download_file, file); | 1025 CheckDownload(browser(), download_file, file); |
| 1034 | 1026 |
| 1035 // Check state. | 1027 // Check state. |
| 1036 EXPECT_EQ(1, browser()->tab_count()); | 1028 EXPECT_EQ(1, browser()->tab_count()); |
| 1037 CheckDownloadUI(browser(), true, true, download_file); | 1029 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1038 } | 1030 } |
| 1039 | 1031 |
| 1040 // Test that the download shelf is per-window by starting a download in one | 1032 // Test that the download shelf is per-window by starting a download in one |
| 1041 // tab, opening a second tab, closing the shelf, going back to the first tab, | 1033 // tab, opening a second tab, closing the shelf, going back to the first tab, |
| 1042 // and checking that the shelf is closed. | 1034 // and checking that the shelf is closed. |
| 1043 IN_PROC_BROWSER_TEST_F(DownloadTest, PerWindowShelf) { | 1035 IN_PROC_BROWSER_TEST_F(DownloadTest, PerWindowShelf) { |
| 1044 ASSERT_TRUE(InitialSetup(false)); | 1036 ASSERT_TRUE(InitialSetup(false)); |
| 1045 FilePath file(FILE_PATH_LITERAL("download-test3.gif")); | 1037 FilePath file(FILE_PATH_LITERAL("download-test3.gif")); |
| 1046 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1038 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1047 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif")); | 1039 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif")); |
| 1048 | 1040 |
| 1049 // Download a file and wait. | 1041 // Download a file and wait. |
| 1050 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); | 1042 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); |
| 1051 | 1043 |
| 1052 CheckDownload(browser(), download_file, file); | 1044 CheckDownload(browser(), download_file, file); |
| 1053 | 1045 |
| 1054 // Check state. | 1046 // Check state. |
| 1055 EXPECT_EQ(1, browser()->tab_count()); | 1047 EXPECT_EQ(1, browser()->tab_count()); |
| 1056 CheckDownloadUI(browser(), true, true, download_file); | 1048 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1057 | 1049 |
| 1058 // Open a second tab and wait. | 1050 // Open a second tab and wait. |
| 1059 EXPECT_NE(static_cast<TabContentsWrapper*>(NULL), | 1051 EXPECT_NE(static_cast<TabContentsWrapper*>(NULL), |
| 1060 browser()->AddSelectedTabWithURL( | 1052 browser()->AddSelectedTabWithURL( |
| 1061 GURL(), content::PAGE_TRANSITION_TYPED)); | 1053 GURL(), content::PAGE_TRANSITION_TYPED)); |
| 1062 EXPECT_EQ(2, browser()->tab_count()); | 1054 EXPECT_EQ(2, browser()->tab_count()); |
| 1063 CheckDownloadUI(browser(), true, true, download_file); | 1055 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1064 | 1056 |
| 1065 // Hide the download shelf. | 1057 // Hide the download shelf. |
| 1066 browser()->window()->GetDownloadShelf()->Close(); | 1058 browser()->window()->GetDownloadShelf()->Close(); |
| 1067 CheckDownloadUI(browser(), false, false, FilePath()); | 1059 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1068 | 1060 |
| 1069 // Go to the first tab. | 1061 // Go to the first tab. |
| 1070 browser()->ActivateTabAt(0, true); | 1062 browser()->ActivateTabAt(0, true); |
| 1071 EXPECT_EQ(2, browser()->tab_count()); | 1063 EXPECT_EQ(2, browser()->tab_count()); |
| 1072 | 1064 |
| 1073 // The download shelf should not be visible. | 1065 // The download shelf should not be visible. |
| 1074 CheckDownloadUI(browser(), false, false, FilePath()); | 1066 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1075 } | 1067 } |
| 1076 | 1068 |
| 1077 // Check whether the downloads shelf is closed when the downloads tab is | 1069 // Check whether the downloads shelf is closed when the downloads tab is |
| 1078 // invoked. | 1070 // invoked. |
| 1079 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseShelfOnDownloadsTab) { | 1071 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseShelfOnDownloadsTab) { |
| 1080 ASSERT_TRUE(InitialSetup(false)); | 1072 ASSERT_TRUE(InitialSetup(false)); |
| 1081 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1073 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1082 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1074 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1083 | 1075 |
| 1084 // Download the file and wait. We do not expect the Select File dialog. | 1076 // Download the file and wait. We do not expect the Select File dialog. |
| 1085 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); | 1077 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); |
| 1086 | 1078 |
| 1087 // Check state. | 1079 // Check state. |
| 1088 EXPECT_EQ(1, browser()->tab_count()); | 1080 EXPECT_EQ(1, browser()->tab_count()); |
| 1089 CheckDownloadUI(browser(), true, true, file); | 1081 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1090 | 1082 |
| 1091 // Open the downloads tab. | 1083 // Open the downloads tab. |
| 1092 browser()->ShowDownloadsTab(); | 1084 browser()->ShowDownloadsTab(); |
| 1093 // The shelf should now be closed. | 1085 // The shelf should now be closed. |
| 1094 CheckDownloadUI(browser(), false, false, FilePath()); | 1086 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1095 } | 1087 } |
| 1096 | 1088 |
| 1097 // UnknownSize and KnownSize are tests which depend on | 1089 // UnknownSize and KnownSize are tests which depend on |
| 1098 // URLRequestSlowDownloadJob to serve content in a certain way. Data will be | 1090 // URLRequestSlowDownloadJob to serve content in a certain way. Data will be |
| 1099 // sent in two chunks where the first chunk is 35K and the second chunk is 10K. | 1091 // sent in two chunks where the first chunk is 35K and the second chunk is 10K. |
| 1100 // The test will first attempt to download a file; but the server will "pause" | 1092 // The test will first attempt to download a file; but the server will "pause" |
| 1101 // in the middle until the server receives a second request for | 1093 // in the middle until the server receives a second request for |
| 1102 // "download-finish". At that time, the download will finish. | 1094 // "download-finish". At that time, the download will finish. |
| 1103 // These tests don't currently test much due to holes in |RunSizeTest()|. See | 1095 // These tests don't currently test much due to holes in |RunSizeTest()|. See |
| 1104 // comments in that routine for details. | 1096 // comments in that routine for details. |
| (...skipping 25 matching lines...) Expand all Loading... |
| 1130 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1122 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1131 // Since |incognito| is a separate browser, we have to set it up explicitly. | 1123 // Since |incognito| is a separate browser, we have to set it up explicitly. |
| 1132 incognito->profile()->GetPrefs()->SetBoolean(prefs::kPromptForDownload, | 1124 incognito->profile()->GetPrefs()->SetBoolean(prefs::kPromptForDownload, |
| 1133 false); | 1125 false); |
| 1134 DownloadAndWait(incognito, url, EXPECT_NO_SELECT_DIALOG); | 1126 DownloadAndWait(incognito, url, EXPECT_NO_SELECT_DIALOG); |
| 1135 | 1127 |
| 1136 // We should still have 2 windows. | 1128 // We should still have 2 windows. |
| 1137 ExpectWindowCountAfterDownload(2); | 1129 ExpectWindowCountAfterDownload(2); |
| 1138 | 1130 |
| 1139 // Verify that the download shelf is showing for the Incognito window. | 1131 // Verify that the download shelf is showing for the Incognito window. |
| 1140 CheckDownloadUI(incognito, true, true, file); | 1132 EXPECT_TRUE(incognito->window()->IsDownloadShelfVisible()); |
| 1141 | 1133 |
| 1142 #if !defined(OS_MACOSX) | 1134 #if !defined(OS_MACOSX) |
| 1143 // On Mac OS X, the UI window close is delayed until the outermost | 1135 // On Mac OS X, the UI window close is delayed until the outermost |
| 1144 // message loop runs. So it isn't possible to get a BROWSER_CLOSED | 1136 // message loop runs. So it isn't possible to get a BROWSER_CLOSED |
| 1145 // notification inside of a test. | 1137 // notification inside of a test. |
| 1146 ui_test_utils::WindowedNotificationObserver signal( | 1138 ui_test_utils::WindowedNotificationObserver signal( |
| 1147 chrome::NOTIFICATION_BROWSER_CLOSED, | 1139 chrome::NOTIFICATION_BROWSER_CLOSED, |
| 1148 content::Source<Browser>(incognito)); | 1140 content::Source<Browser>(incognito)); |
| 1149 #endif | 1141 #endif |
| 1150 | 1142 |
| 1151 // Close the Incognito window and don't crash. | 1143 // Close the Incognito window and don't crash. |
| 1152 incognito->CloseWindow(); | 1144 incognito->CloseWindow(); |
| 1153 | 1145 |
| 1154 #if !defined(OS_MACOSX) | 1146 #if !defined(OS_MACOSX) |
| 1155 signal.Wait(); | 1147 signal.Wait(); |
| 1156 ExpectWindowCountAfterDownload(1); | 1148 ExpectWindowCountAfterDownload(1); |
| 1157 #endif | 1149 #endif |
| 1158 | 1150 |
| 1159 // Verify that the regular window does not have a download shelf. | 1151 // Verify that the regular window does not have a download shelf. |
| 1160 // On ChromeOS, the download panel is common to both profiles, so | 1152 // On ChromeOS, the download panel is common to both profiles, so |
| 1161 // it is still visible. | 1153 // it is still visible. |
| 1162 CheckDownloadUI(browser(), false, true, file); | 1154 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1163 | 1155 |
| 1164 CheckDownload(browser(), file, file); | 1156 CheckDownload(browser(), file, file); |
| 1165 } | 1157 } |
| 1166 | 1158 |
| 1167 // Navigate to a new background page, but don't download. Confirm that the | 1159 // Navigate to a new background page, but don't download. Confirm that the |
| 1168 // download shelf is not visible and that we have two tabs. | 1160 // download shelf is not visible and that we have two tabs. |
| 1169 IN_PROC_BROWSER_TEST_F(DownloadTest, DontCloseNewTab1) { | 1161 IN_PROC_BROWSER_TEST_F(DownloadTest, DontCloseNewTab1) { |
| 1170 ASSERT_TRUE(InitialSetup(false)); | 1162 ASSERT_TRUE(InitialSetup(false)); |
| 1171 // Because it's an HTML link, it should open a web page rather than | 1163 // Because it's an HTML link, it should open a web page rather than |
| 1172 // downloading. | 1164 // downloading. |
| 1173 FilePath file1(FILE_PATH_LITERAL("download-test2.html")); | 1165 FilePath file1(FILE_PATH_LITERAL("download-test2.html")); |
| 1174 GURL url(URLRequestMockHTTPJob::GetMockUrl(file1)); | 1166 GURL url(URLRequestMockHTTPJob::GetMockUrl(file1)); |
| 1175 | 1167 |
| 1176 // Open a web page and wait. | 1168 // Open a web page and wait. |
| 1177 ui_test_utils::NavigateToURLWithDisposition( | 1169 ui_test_utils::NavigateToURLWithDisposition( |
| 1178 browser(), | 1170 browser(), |
| 1179 url, | 1171 url, |
| 1180 NEW_BACKGROUND_TAB, | 1172 NEW_BACKGROUND_TAB, |
| 1181 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 1173 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 1182 | 1174 |
| 1183 // We should have two tabs now. | 1175 // We should have two tabs now. |
| 1184 EXPECT_EQ(2, browser()->tab_count()); | 1176 EXPECT_EQ(2, browser()->tab_count()); |
| 1185 CheckDownloadUI(browser(), false, false, FilePath()); | 1177 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1186 } | 1178 } |
| 1187 | 1179 |
| 1188 // Download a file in a background tab. Verify that the tab is closed | 1180 // Download a file in a background tab. Verify that the tab is closed |
| 1189 // automatically, and that the download shelf is visible in the current tab. | 1181 // automatically, and that the download shelf is visible in the current tab. |
| 1190 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseNewTab1) { | 1182 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseNewTab1) { |
| 1191 ASSERT_TRUE(InitialSetup(false)); | 1183 ASSERT_TRUE(InitialSetup(false)); |
| 1192 | 1184 |
| 1193 // Download a file in a new background tab and wait. The tab is automatically | 1185 // Download a file in a new background tab and wait. The tab is automatically |
| 1194 // closed when the download begins. | 1186 // closed when the download begins. |
| 1195 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1187 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1196 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1188 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1197 DownloadAndWaitWithDisposition( | 1189 DownloadAndWaitWithDisposition( |
| 1198 browser(), | 1190 browser(), |
| 1199 url, | 1191 url, |
| 1200 NEW_BACKGROUND_TAB, | 1192 NEW_BACKGROUND_TAB, |
| 1201 EXPECT_NO_SELECT_DIALOG, | 1193 EXPECT_NO_SELECT_DIALOG, |
| 1202 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 1194 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 1203 | 1195 |
| 1204 // When the download finishes, we should still have one tab. | 1196 // When the download finishes, we should still have one tab. |
| 1205 CheckDownloadUI(browser(), true, true, file); | 1197 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1206 EXPECT_EQ(1, browser()->tab_count()); | 1198 EXPECT_EQ(1, browser()->tab_count()); |
| 1207 | 1199 |
| 1208 CheckDownload(browser(), file, file); | 1200 CheckDownload(browser(), file, file); |
| 1209 } | 1201 } |
| 1210 | 1202 |
| 1211 // Open a web page in the current tab, then download a file in another tab via | 1203 // Open a web page in the current tab, then download a file in another tab via |
| 1212 // a Javascript call. | 1204 // a Javascript call. |
| 1213 // Verify that we have 2 tabs, and the download shelf is visible in the current | 1205 // Verify that we have 2 tabs, and the download shelf is visible in the current |
| 1214 // tab. | 1206 // tab. |
| 1215 // | 1207 // |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1227 | 1219 |
| 1228 // Download a file in a new tab and wait (via Javascript). | 1220 // Download a file in a new tab and wait (via Javascript). |
| 1229 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1221 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1230 DownloadAndWaitWithDisposition(browser(), | 1222 DownloadAndWaitWithDisposition(browser(), |
| 1231 GURL("javascript:openNew()"), | 1223 GURL("javascript:openNew()"), |
| 1232 CURRENT_TAB, | 1224 CURRENT_TAB, |
| 1233 EXPECT_NO_SELECT_DIALOG, | 1225 EXPECT_NO_SELECT_DIALOG, |
| 1234 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 1226 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 1235 | 1227 |
| 1236 // When the download finishes, we should have two tabs. | 1228 // When the download finishes, we should have two tabs. |
| 1237 CheckDownloadUI(browser(), true, true, file); | 1229 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1238 EXPECT_EQ(2, browser()->tab_count()); | 1230 EXPECT_EQ(2, browser()->tab_count()); |
| 1239 | 1231 |
| 1240 CheckDownload(browser(), file, file); | 1232 CheckDownload(browser(), file, file); |
| 1241 } | 1233 } |
| 1242 | 1234 |
| 1243 // Open a web page in the current tab, open another tab via a Javascript call, | 1235 // Open a web page in the current tab, open another tab via a Javascript call, |
| 1244 // then download a file in the new tab. | 1236 // then download a file in the new tab. |
| 1245 // Verify that we have 2 tabs, and the download shelf is visible in the current | 1237 // Verify that we have 2 tabs, and the download shelf is visible in the current |
| 1246 // tab. | 1238 // tab. |
| 1247 // | 1239 // |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1269 // Download a file and wait. | 1261 // Download a file and wait. |
| 1270 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1262 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1271 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1263 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1272 DownloadAndWaitWithDisposition(browser(), | 1264 DownloadAndWaitWithDisposition(browser(), |
| 1273 url, | 1265 url, |
| 1274 CURRENT_TAB, | 1266 CURRENT_TAB, |
| 1275 EXPECT_NO_SELECT_DIALOG, | 1267 EXPECT_NO_SELECT_DIALOG, |
| 1276 ui_test_utils::BROWSER_TEST_NONE); | 1268 ui_test_utils::BROWSER_TEST_NONE); |
| 1277 | 1269 |
| 1278 // When the download finishes, we should have two tabs. | 1270 // When the download finishes, we should have two tabs. |
| 1279 CheckDownloadUI(browser(), true, true, file); | 1271 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1280 EXPECT_EQ(2, browser()->tab_count()); | 1272 EXPECT_EQ(2, browser()->tab_count()); |
| 1281 | 1273 |
| 1282 CheckDownload(browser(), file, file); | 1274 CheckDownload(browser(), file, file); |
| 1283 } | 1275 } |
| 1284 | 1276 |
| 1285 // Open a web page in the current tab, then download a file via Javascript, | 1277 // Open a web page in the current tab, then download a file via Javascript, |
| 1286 // which will do so in a temporary tab. | 1278 // which will do so in a temporary tab. |
| 1287 // Verify that we have 1 tab, and the download shelf is visible. | 1279 // Verify that we have 1 tab, and the download shelf is visible. |
| 1288 // | 1280 // |
| 1289 // The download_page3.html page contains an openNew() function that opens a | 1281 // The download_page3.html page contains an openNew() function that opens a |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1302 // Download a file and wait. | 1294 // Download a file and wait. |
| 1303 // The file to download is "download-test1.lib". | 1295 // The file to download is "download-test1.lib". |
| 1304 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1296 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1305 DownloadAndWaitWithDisposition(browser(), | 1297 DownloadAndWaitWithDisposition(browser(), |
| 1306 GURL("javascript:openNew()"), | 1298 GURL("javascript:openNew()"), |
| 1307 CURRENT_TAB, | 1299 CURRENT_TAB, |
| 1308 EXPECT_NO_SELECT_DIALOG, | 1300 EXPECT_NO_SELECT_DIALOG, |
| 1309 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 1301 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 1310 | 1302 |
| 1311 // When the download finishes, we should still have one tab. | 1303 // When the download finishes, we should still have one tab. |
| 1312 CheckDownloadUI(browser(), true, true, file); | 1304 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1313 EXPECT_EQ(1, browser()->tab_count()); | 1305 EXPECT_EQ(1, browser()->tab_count()); |
| 1314 | 1306 |
| 1315 CheckDownload(browser(), file, file); | 1307 CheckDownload(browser(), file, file); |
| 1316 } | 1308 } |
| 1317 | 1309 |
| 1318 // Open a web page in the current tab, then call Javascript via a button to | 1310 // Open a web page in the current tab, then call Javascript via a button to |
| 1319 // download a file in a new tab, which is closed automatically when the | 1311 // download a file in a new tab, which is closed automatically when the |
| 1320 // download begins. | 1312 // download begins. |
| 1321 // Verify that we have 1 tab, and the download shelf is visible. | 1313 // Verify that we have 1 tab, and the download shelf is visible. |
| 1322 // | 1314 // |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1337 // The file to download is "download-test1.lib". | 1329 // The file to download is "download-test1.lib". |
| 1338 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1330 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1339 DownloadAndWaitWithDisposition( | 1331 DownloadAndWaitWithDisposition( |
| 1340 browser(), | 1332 browser(), |
| 1341 GURL("javascript:document.getElementById('form').submit()"), | 1333 GURL("javascript:document.getElementById('form').submit()"), |
| 1342 CURRENT_TAB, | 1334 CURRENT_TAB, |
| 1343 EXPECT_NO_SELECT_DIALOG, | 1335 EXPECT_NO_SELECT_DIALOG, |
| 1344 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 1336 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 1345 | 1337 |
| 1346 // When the download finishes, we should still have one tab. | 1338 // When the download finishes, we should still have one tab. |
| 1347 CheckDownloadUI(browser(), true, true, file); | 1339 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1348 EXPECT_EQ(1, browser()->tab_count()); | 1340 EXPECT_EQ(1, browser()->tab_count()); |
| 1349 | 1341 |
| 1350 CheckDownload(browser(), file, file); | 1342 CheckDownload(browser(), file, file); |
| 1351 } | 1343 } |
| 1352 | 1344 |
| 1353 // Download a file in a new window. | 1345 // Download a file in a new window. |
| 1354 // Verify that we have 2 windows, and the download shelf is not visible in the | 1346 // Verify that we have 2 windows, and the download shelf is not visible in the |
| 1355 // first window, but is visible in the second window. | 1347 // first window, but is visible in the second window. |
| 1356 // Close the new window. | 1348 // Close the new window. |
| 1357 // Verify that we have 1 window, and the download shelf is not visible. | 1349 // Verify that we have 1 window, and the download shelf is not visible. |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1371 url, | 1363 url, |
| 1372 NEW_WINDOW, | 1364 NEW_WINDOW, |
| 1373 EXPECT_NO_SELECT_DIALOG, | 1365 EXPECT_NO_SELECT_DIALOG, |
| 1374 ui_test_utils::BROWSER_TEST_NONE); | 1366 ui_test_utils::BROWSER_TEST_NONE); |
| 1375 | 1367 |
| 1376 // When the download finishes, the download shelf SHOULD NOT be visible in | 1368 // When the download finishes, the download shelf SHOULD NOT be visible in |
| 1377 // the first window. | 1369 // the first window. |
| 1378 ExpectWindowCountAfterDownload(2); | 1370 ExpectWindowCountAfterDownload(2); |
| 1379 EXPECT_EQ(1, browser()->tab_count()); | 1371 EXPECT_EQ(1, browser()->tab_count()); |
| 1380 // Download shelf should close. Download panel stays open on ChromeOS. | 1372 // Download shelf should close. Download panel stays open on ChromeOS. |
| 1381 CheckDownloadUI(browser(), false, true, file); | 1373 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1382 | 1374 |
| 1383 // The download shelf SHOULD be visible in the second window. | 1375 // The download shelf SHOULD be visible in the second window. |
| 1384 std::set<Browser*> original_browsers; | 1376 std::set<Browser*> original_browsers; |
| 1385 original_browsers.insert(browser()); | 1377 original_browsers.insert(browser()); |
| 1386 Browser* download_browser = | 1378 Browser* download_browser = |
| 1387 ui_test_utils::GetBrowserNotInSet(original_browsers); | 1379 ui_test_utils::GetBrowserNotInSet(original_browsers); |
| 1388 ASSERT_TRUE(download_browser != NULL); | 1380 ASSERT_TRUE(download_browser != NULL); |
| 1389 EXPECT_NE(download_browser, browser()); | 1381 EXPECT_NE(download_browser, browser()); |
| 1390 EXPECT_EQ(1, download_browser->tab_count()); | 1382 EXPECT_EQ(1, download_browser->tab_count()); |
| 1391 CheckDownloadUI(download_browser, true, true, file); | 1383 EXPECT_TRUE(download_browser->window()->IsDownloadShelfVisible()); |
| 1392 | 1384 |
| 1393 #if !defined(OS_MACOSX) | 1385 #if !defined(OS_MACOSX) |
| 1394 // On Mac OS X, the UI window close is delayed until the outermost | 1386 // On Mac OS X, the UI window close is delayed until the outermost |
| 1395 // message loop runs. So it isn't possible to get a BROWSER_CLOSED | 1387 // message loop runs. So it isn't possible to get a BROWSER_CLOSED |
| 1396 // notification inside of a test. | 1388 // notification inside of a test. |
| 1397 ui_test_utils::WindowedNotificationObserver signal( | 1389 ui_test_utils::WindowedNotificationObserver signal( |
| 1398 chrome::NOTIFICATION_BROWSER_CLOSED, | 1390 chrome::NOTIFICATION_BROWSER_CLOSED, |
| 1399 content::Source<Browser>(download_browser)); | 1391 content::Source<Browser>(download_browser)); |
| 1400 #endif | 1392 #endif |
| 1401 | 1393 |
| 1402 // Close the new window. | 1394 // Close the new window. |
| 1403 download_browser->CloseWindow(); | 1395 download_browser->CloseWindow(); |
| 1404 | 1396 |
| 1405 #if !defined(OS_MACOSX) | 1397 #if !defined(OS_MACOSX) |
| 1406 signal.Wait(); | 1398 signal.Wait(); |
| 1407 EXPECT_EQ(first_browser, browser()); | 1399 EXPECT_EQ(first_browser, browser()); |
| 1408 ExpectWindowCountAfterDownload(1); | 1400 ExpectWindowCountAfterDownload(1); |
| 1409 #endif | 1401 #endif |
| 1410 | 1402 |
| 1411 EXPECT_EQ(1, browser()->tab_count()); | 1403 EXPECT_EQ(1, browser()->tab_count()); |
| 1412 // Download shelf should close. Download panel stays open on ChromeOS. | 1404 // Download shelf should close. Download panel stays open on ChromeOS. |
| 1413 CheckDownloadUI(browser(), false, true, file); | 1405 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1414 | 1406 |
| 1415 CheckDownload(browser(), file, file); | 1407 CheckDownload(browser(), file, file); |
| 1416 } | 1408 } |
| 1417 | 1409 |
| 1418 // Check that downloading multiple (in this case, 2) files does not result in | 1410 // Check that downloading multiple (in this case, 2) files does not result in |
| 1419 // corrupted files. | 1411 // corrupted files. |
| 1420 IN_PROC_BROWSER_TEST_F(DownloadTest, MultiDownload) { | 1412 IN_PROC_BROWSER_TEST_F(DownloadTest, MultiDownload) { |
| 1421 ASSERT_TRUE(InitialSetup(false)); | 1413 ASSERT_TRUE(InitialSetup(false)); |
| 1422 EXPECT_EQ(1, browser()->tab_count()); | 1414 EXPECT_EQ(1, browser()->tab_count()); |
| 1423 | 1415 |
| 1424 // Create a download, wait until it's started, and confirm | 1416 // Create a download, wait until it's started, and confirm |
| 1425 // we're in the expected state. | 1417 // we're in the expected state. |
| 1426 scoped_ptr<DownloadTestObserver> observer1( | 1418 scoped_ptr<DownloadTestObserver> observer1( |
| 1427 CreateInProgressWaiter(browser(), 1)); | 1419 CreateInProgressWaiter(browser(), 1)); |
| 1428 ui_test_utils::NavigateToURL( | 1420 ui_test_utils::NavigateToURL( |
| 1429 browser(), GURL(URLRequestSlowDownloadJob::kUnknownSizeUrl)); | 1421 browser(), GURL(URLRequestSlowDownloadJob::kUnknownSizeUrl)); |
| 1430 observer1->WaitForFinished(); | 1422 observer1->WaitForFinished(); |
| 1431 | 1423 |
| 1432 std::vector<DownloadItem*> downloads; | 1424 std::vector<DownloadItem*> downloads; |
| 1433 browser()->profile()->GetDownloadManager()->SearchDownloads( | 1425 browser()->profile()->GetDownloadManager()->SearchDownloads( |
| 1434 string16(), &downloads); | 1426 string16(), &downloads); |
| 1435 ASSERT_EQ(1u, downloads.size()); | 1427 ASSERT_EQ(1u, downloads.size()); |
| 1436 ASSERT_EQ(DownloadItem::IN_PROGRESS, downloads[0]->GetState()); | 1428 ASSERT_EQ(DownloadItem::IN_PROGRESS, downloads[0]->GetState()); |
| 1437 CheckDownloadUI(browser(), true, true, FilePath()); | 1429 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1438 DownloadItem* download1 = downloads[0]; // The only download. | 1430 DownloadItem* download1 = downloads[0]; // The only download. |
| 1439 | 1431 |
| 1440 // Start the second download and wait until it's done. | 1432 // Start the second download and wait until it's done. |
| 1441 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1433 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1442 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1434 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1443 // Download the file and wait. We do not expect the Select File dialog. | 1435 // Download the file and wait. We do not expect the Select File dialog. |
| 1444 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); | 1436 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); |
| 1445 | 1437 |
| 1446 // Should now have 2 items on the download shelf. | 1438 // Should now have 2 items on the download shelf. |
| 1447 downloads.clear(); | 1439 downloads.clear(); |
| 1448 browser()->profile()->GetDownloadManager()->SearchDownloads( | 1440 browser()->profile()->GetDownloadManager()->SearchDownloads( |
| 1449 string16(), &downloads); | 1441 string16(), &downloads); |
| 1450 ASSERT_EQ(2u, downloads.size()); | 1442 ASSERT_EQ(2u, downloads.size()); |
| 1451 // We don't know the order of the downloads. | 1443 // We don't know the order of the downloads. |
| 1452 DownloadItem* download2 = downloads[(download1 == downloads[0]) ? 1 : 0]; | 1444 DownloadItem* download2 = downloads[(download1 == downloads[0]) ? 1 : 0]; |
| 1453 | 1445 |
| 1454 ASSERT_EQ(DownloadItem::IN_PROGRESS, download1->GetState()); | 1446 ASSERT_EQ(DownloadItem::IN_PROGRESS, download1->GetState()); |
| 1455 ASSERT_EQ(DownloadItem::COMPLETE, download2->GetState()); | 1447 ASSERT_EQ(DownloadItem::COMPLETE, download2->GetState()); |
| 1456 // The download shelf should be open. | 1448 // The download shelf should be open. |
| 1457 CheckDownloadUI(browser(), true, true, FilePath()); | 1449 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1458 | 1450 |
| 1459 // Allow the first request to finish. We do this by loading a third URL | 1451 // Allow the first request to finish. We do this by loading a third URL |
| 1460 // in a separate tab. | 1452 // in a separate tab. |
| 1461 scoped_ptr<DownloadTestObserver> observer2(CreateWaiter(browser(), 1)); | 1453 scoped_ptr<DownloadTestObserver> observer2(CreateWaiter(browser(), 1)); |
| 1462 GURL finish_url(URLRequestSlowDownloadJob::kFinishDownloadUrl); | 1454 GURL finish_url(URLRequestSlowDownloadJob::kFinishDownloadUrl); |
| 1463 ui_test_utils::NavigateToURLWithDisposition( | 1455 ui_test_utils::NavigateToURLWithDisposition( |
| 1464 browser(), | 1456 browser(), |
| 1465 finish_url, | 1457 finish_url, |
| 1466 NEW_FOREGROUND_TAB, | 1458 NEW_FOREGROUND_TAB, |
| 1467 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 1459 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 1468 observer2->WaitForFinished(); // Wait for the third request. | 1460 observer2->WaitForFinished(); // Wait for the third request. |
| 1469 EXPECT_EQ(1u, observer2->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 1461 EXPECT_EQ(1u, observer2->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 1470 | 1462 |
| 1471 // Get the important info from other threads and check it. | 1463 // Get the important info from other threads and check it. |
| 1472 EXPECT_TRUE(EnsureNoPendingDownloads()); | 1464 EXPECT_TRUE(EnsureNoPendingDownloads()); |
| 1473 | 1465 |
| 1474 CheckDownloadUI(browser(), true, true, FilePath()); | 1466 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1475 | 1467 |
| 1476 // The |DownloadItem|s should now be done and have the final file names. | 1468 // The |DownloadItem|s should now be done and have the final file names. |
| 1477 // Verify that the files have the expected data and size. | 1469 // Verify that the files have the expected data and size. |
| 1478 // |file1| should be full of '*'s, and |file2| should be the same as the | 1470 // |file1| should be full of '*'s, and |file2| should be the same as the |
| 1479 // source file. | 1471 // source file. |
| 1480 FilePath file1(download1->GetFullPath()); | 1472 FilePath file1(download1->GetFullPath()); |
| 1481 size_t file_size1 = URLRequestSlowDownloadJob::kFirstDownloadSize + | 1473 size_t file_size1 = URLRequestSlowDownloadJob::kFirstDownloadSize + |
| 1482 URLRequestSlowDownloadJob::kSecondDownloadSize; | 1474 URLRequestSlowDownloadJob::kSecondDownloadSize; |
| 1483 std::string expected_contents(file_size1, '*'); | 1475 std::string expected_contents(file_size1, '*'); |
| 1484 ASSERT_TRUE(VerifyFile(file1, expected_contents, file_size1)); | 1476 ASSERT_TRUE(VerifyFile(file1, expected_contents, file_size1)); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 1513 CreateInProgressWaiter(browser(), 1)); | 1505 CreateInProgressWaiter(browser(), 1)); |
| 1514 ui_test_utils::NavigateToURL( | 1506 ui_test_utils::NavigateToURL( |
| 1515 browser(), GURL(URLRequestSlowDownloadJob::kUnknownSizeUrl)); | 1507 browser(), GURL(URLRequestSlowDownloadJob::kUnknownSizeUrl)); |
| 1516 observer->WaitForFinished(); | 1508 observer->WaitForFinished(); |
| 1517 | 1509 |
| 1518 std::vector<DownloadItem*> downloads; | 1510 std::vector<DownloadItem*> downloads; |
| 1519 DownloadManagerForBrowser(browser())->SearchDownloads( | 1511 DownloadManagerForBrowser(browser())->SearchDownloads( |
| 1520 string16(), &downloads); | 1512 string16(), &downloads); |
| 1521 ASSERT_EQ(1u, downloads.size()); | 1513 ASSERT_EQ(1u, downloads.size()); |
| 1522 ASSERT_EQ(DownloadItem::IN_PROGRESS, downloads[0]->GetState()); | 1514 ASSERT_EQ(DownloadItem::IN_PROGRESS, downloads[0]->GetState()); |
| 1523 CheckDownloadUI(browser(), true, true, FilePath()); | 1515 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1524 | 1516 |
| 1525 // Cancel the download and wait for download system quiesce. | 1517 // Cancel the download and wait for download system quiesce. |
| 1526 downloads[0]->Delete(DownloadItem::DELETE_DUE_TO_USER_DISCARD); | 1518 downloads[0]->Delete(DownloadItem::DELETE_DUE_TO_USER_DISCARD); |
| 1527 scoped_refptr<DownloadTestFlushObserver> flush_observer( | 1519 scoped_refptr<DownloadTestFlushObserver> flush_observer( |
| 1528 new DownloadTestFlushObserver( | 1520 new DownloadTestFlushObserver( |
| 1529 DownloadManagerForBrowser(browser()))); | 1521 DownloadManagerForBrowser(browser()))); |
| 1530 flush_observer->WaitForFlush(); | 1522 flush_observer->WaitForFlush(); |
| 1531 | 1523 |
| 1532 // Get the important info from other threads and check it. | 1524 // Get the important info from other threads and check it. |
| 1533 EXPECT_TRUE(EnsureNoPendingDownloads()); | 1525 EXPECT_TRUE(EnsureNoPendingDownloads()); |
| 1534 | 1526 |
| 1535 // Using "DownloadItem::Remove" follows the discard dangerous download path, | 1527 // Using "DownloadItem::Remove" follows the discard dangerous download path, |
| 1536 // which completely removes the browser from the shelf and closes the shelf | 1528 // which completely removes the browser from the shelf and closes the shelf |
| 1537 // if it was there. Download panel stays open on ChromeOS. | 1529 // if it was there. Download panel stays open on ChromeOS. |
| 1538 CheckDownloadUI(browser(), false, true, FilePath()); | 1530 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1539 } | 1531 } |
| 1540 | 1532 |
| 1541 // Confirm a download makes it into the history properly. | 1533 // Confirm a download makes it into the history properly. |
| 1542 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadHistoryCheck) { | 1534 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadHistoryCheck) { |
| 1543 ASSERT_TRUE(InitialSetup(false)); | 1535 ASSERT_TRUE(InitialSetup(false)); |
| 1544 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1536 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1545 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1537 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1546 FilePath origin_file(OriginFile(file)); | 1538 FilePath origin_file(OriginFile(file)); |
| 1547 int64 origin_size; | 1539 int64 origin_size; |
| 1548 file_util::GetFileSize(origin_file, &origin_size); | 1540 file_util::GetFileSize(origin_file, &origin_size); |
| 1549 | 1541 |
| 1550 // Download the file and wait. We do not expect the Select File dialog. | 1542 // Download the file and wait. We do not expect the Select File dialog. |
| 1551 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); | 1543 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); |
| 1552 | 1544 |
| 1553 // Get details of what downloads have just happened. | 1545 // Get details of what downloads have just happened. |
| 1554 std::vector<DownloadItem*> downloads; | 1546 std::vector<DownloadItem*> downloads; |
| 1555 GetDownloads(browser(), &downloads); | 1547 GetDownloads(browser(), &downloads); |
| 1556 ASSERT_EQ(1u, downloads.size()); | 1548 ASSERT_EQ(1u, downloads.size()); |
| 1557 int64 db_handle = downloads[0]->GetDbHandle(); | 1549 int64 db_handle = downloads[0]->GetDbHandle(); |
| 1558 | 1550 |
| 1559 // Check state. | 1551 // Check state. |
| 1560 EXPECT_EQ(1, browser()->tab_count()); | 1552 EXPECT_EQ(1, browser()->tab_count()); |
| 1561 CheckDownload(browser(), file, file); | 1553 CheckDownload(browser(), file, file); |
| 1562 CheckDownloadUI(browser(), true, true, file); | 1554 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1563 | 1555 |
| 1564 // Check history results. | 1556 // Check history results. |
| 1565 DownloadsHistoryDataCollector history_collector( | 1557 DownloadsHistoryDataCollector history_collector( |
| 1566 db_handle, | 1558 db_handle, |
| 1567 DownloadManagerForBrowser(browser())); | 1559 DownloadManagerForBrowser(browser())); |
| 1568 DownloadPersistentStoreInfo info; | 1560 DownloadPersistentStoreInfo info; |
| 1569 EXPECT_TRUE(history_collector.GetDownloadsHistoryEntry(&info)) << db_handle; | 1561 EXPECT_TRUE(history_collector.GetDownloadsHistoryEntry(&info)) << db_handle; |
| 1570 EXPECT_EQ(file, info.path.BaseName()); | 1562 EXPECT_EQ(file, info.path.BaseName()); |
| 1571 EXPECT_EQ(url, info.url); | 1563 EXPECT_EQ(url, info.url); |
| 1572 // Ignore start_time. | 1564 // Ignore start_time. |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1675 DownloadManagerForBrowser(browser())->SearchDownloads( | 1667 DownloadManagerForBrowser(browser())->SearchDownloads( |
| 1676 string16(), &downloads); | 1668 string16(), &downloads); |
| 1677 ASSERT_EQ(1u, downloads.size()); | 1669 ASSERT_EQ(1u, downloads.size()); |
| 1678 EXPECT_EQ(DownloadItem::COMPLETE, downloads[0]->GetState()); | 1670 EXPECT_EQ(DownloadItem::COMPLETE, downloads[0]->GetState()); |
| 1679 EXPECT_TRUE(downloads[0]->GetOpened()); | 1671 EXPECT_TRUE(downloads[0]->GetOpened()); |
| 1680 | 1672 |
| 1681 // As long as we're here, confirmed everything else is good. | 1673 // As long as we're here, confirmed everything else is good. |
| 1682 EXPECT_EQ(1, browser()->tab_count()); | 1674 EXPECT_EQ(1, browser()->tab_count()); |
| 1683 CheckDownload(browser(), file, file); | 1675 CheckDownload(browser(), file, file); |
| 1684 // Download shelf should close. Download panel stays open on ChromeOS. | 1676 // Download shelf should close. Download panel stays open on ChromeOS. |
| 1685 CheckDownloadUI(browser(), false, true, FilePath()); | 1677 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1686 } | 1678 } |
| 1687 | 1679 |
| 1688 // Download an extension. Expect a dangerous download warning. | 1680 // Download an extension. Expect a dangerous download warning. |
| 1689 // Deny the download. | 1681 // Deny the download. |
| 1690 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxDenyInstall) { | 1682 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxDenyInstall) { |
| 1691 ASSERT_TRUE(InitialSetup(false)); | 1683 ASSERT_TRUE(InitialSetup(false)); |
| 1692 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath)); | 1684 GURL extension_url(URLRequestMockHTTPJob::GetMockUrl(kGoodCrxPath)); |
| 1693 | 1685 |
| 1694 scoped_ptr<DownloadTestObserver> observer( | 1686 scoped_ptr<DownloadTestObserver> observer( |
| 1695 DangerousDownloadWaiter( | 1687 DangerousDownloadWaiter( |
| 1696 browser(), 1, | 1688 browser(), 1, |
| 1697 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_DENY)); | 1689 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_DENY)); |
| 1698 ui_test_utils::NavigateToURL(browser(), extension_url); | 1690 ui_test_utils::NavigateToURL(browser(), extension_url); |
| 1699 | 1691 |
| 1700 observer->WaitForFinished(); | 1692 observer->WaitForFinished(); |
| 1701 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::CANCELLED)); | 1693 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::CANCELLED)); |
| 1702 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); | 1694 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); |
| 1703 | 1695 |
| 1704 // Download shelf should close. Download panel stays open on ChromeOS. | 1696 // Download shelf should close. Download panel stays open on ChromeOS. |
| 1705 CheckDownloadUI(browser(), false, true, FilePath()); | 1697 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1706 | 1698 |
| 1707 // Check that the CRX is not installed. | 1699 // Check that the CRX is not installed. |
| 1708 ExtensionService* extension_service = | 1700 ExtensionService* extension_service = |
| 1709 browser()->profile()->GetExtensionService(); | 1701 browser()->profile()->GetExtensionService(); |
| 1710 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false)); | 1702 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false)); |
| 1711 } | 1703 } |
| 1712 | 1704 |
| 1713 // Download an extension. Expect a dangerous download warning. | 1705 // Download an extension. Expect a dangerous download warning. |
| 1714 // Allow the download, deny the install. | 1706 // Allow the download, deny the install. |
| 1715 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallDenysPermissions) { | 1707 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallDenysPermissions) { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1726 browser(), 1, | 1718 browser(), 1, |
| 1727 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); | 1719 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); |
| 1728 ui_test_utils::NavigateToURL(browser(), extension_url); | 1720 ui_test_utils::NavigateToURL(browser(), extension_url); |
| 1729 | 1721 |
| 1730 observer->WaitForFinished(); | 1722 observer->WaitForFinished(); |
| 1731 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 1723 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 1732 CheckDownloadStates(1, DownloadItem::COMPLETE); | 1724 CheckDownloadStates(1, DownloadItem::COMPLETE); |
| 1733 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); | 1725 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); |
| 1734 | 1726 |
| 1735 // Download shelf should close. Download panel stays open on ChromeOS. | 1727 // Download shelf should close. Download panel stays open on ChromeOS. |
| 1736 CheckDownloadUI(browser(), false, true, FilePath()); | 1728 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1737 | 1729 |
| 1738 // Check that the extension was not installed. | 1730 // Check that the extension was not installed. |
| 1739 ExtensionService* extension_service = | 1731 ExtensionService* extension_service = |
| 1740 browser()->profile()->GetExtensionService(); | 1732 browser()->profile()->GetExtensionService(); |
| 1741 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false)); | 1733 ASSERT_FALSE(extension_service->GetExtensionById(kGoodCrxId, false)); |
| 1742 } | 1734 } |
| 1743 | 1735 |
| 1744 // Download an extension. Expect a dangerous download warning. | 1736 // Download an extension. Expect a dangerous download warning. |
| 1745 // Allow the download, and the install. | 1737 // Allow the download, and the install. |
| 1746 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallAcceptPermissions) { | 1738 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInstallAcceptPermissions) { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1757 browser(), 1, | 1749 browser(), 1, |
| 1758 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); | 1750 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); |
| 1759 ui_test_utils::NavigateToURL(browser(), extension_url); | 1751 ui_test_utils::NavigateToURL(browser(), extension_url); |
| 1760 | 1752 |
| 1761 observer->WaitForFinished(); | 1753 observer->WaitForFinished(); |
| 1762 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 1754 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 1763 CheckDownloadStates(1, DownloadItem::COMPLETE); | 1755 CheckDownloadStates(1, DownloadItem::COMPLETE); |
| 1764 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); | 1756 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); |
| 1765 | 1757 |
| 1766 // Download shelf should close. Download panel stays open on ChromeOS. | 1758 // Download shelf should close. Download panel stays open on ChromeOS. |
| 1767 CheckDownloadUI(browser(), false, true, FilePath()); | 1759 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1768 | 1760 |
| 1769 // Check that the extension was installed. | 1761 // Check that the extension was installed. |
| 1770 ExtensionService* extension_service = | 1762 ExtensionService* extension_service = |
| 1771 browser()->profile()->GetExtensionService(); | 1763 browser()->profile()->GetExtensionService(); |
| 1772 ASSERT_TRUE(extension_service->GetExtensionById(kGoodCrxId, false)); | 1764 ASSERT_TRUE(extension_service->GetExtensionById(kGoodCrxId, false)); |
| 1773 } | 1765 } |
| 1774 | 1766 |
| 1775 // Test installing a CRX that fails integrity checks. | 1767 // Test installing a CRX that fails integrity checks. |
| 1776 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInvalid) { | 1768 IN_PROC_BROWSER_TEST_F(DownloadTest, CrxInvalid) { |
| 1777 ASSERT_TRUE(InitialSetup(false)); | 1769 ASSERT_TRUE(InitialSetup(false)); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1815 browser(), 1, | 1807 browser(), 1, |
| 1816 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); | 1808 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); |
| 1817 ui_test_utils::NavigateToURL(browser(), extension_url); | 1809 ui_test_utils::NavigateToURL(browser(), extension_url); |
| 1818 | 1810 |
| 1819 observer->WaitForFinished(); | 1811 observer->WaitForFinished(); |
| 1820 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 1812 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 1821 CheckDownloadStates(1, DownloadItem::COMPLETE); | 1813 CheckDownloadStates(1, DownloadItem::COMPLETE); |
| 1822 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); | 1814 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); |
| 1823 | 1815 |
| 1824 // Download shelf should close. Download panel stays open on ChromeOS. | 1816 // Download shelf should close. Download panel stays open on ChromeOS. |
| 1825 CheckDownloadUI(browser(), false, true, FilePath()); | 1817 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1826 | 1818 |
| 1827 // Check that the extension was installed. | 1819 // Check that the extension was installed. |
| 1828 ExtensionService* extension_service = | 1820 ExtensionService* extension_service = |
| 1829 browser()->profile()->GetExtensionService(); | 1821 browser()->profile()->GetExtensionService(); |
| 1830 ASSERT_TRUE(extension_service->GetExtensionById(kLargeThemeCrxId, false)); | 1822 ASSERT_TRUE(extension_service->GetExtensionById(kLargeThemeCrxId, false)); |
| 1831 } | 1823 } |
| 1832 | 1824 |
| 1833 // Sort download items by db_handle. | 1825 // Sort download items by db_handle. |
| 1834 static bool DownloadItemSorter(DownloadItem* d1, DownloadItem* d2) { | 1826 static bool DownloadItemSorter(DownloadItem* d1, DownloadItem* d2) { |
| 1835 return d1->GetDbHandle() < d2->GetDbHandle(); | 1827 return d1->GetDbHandle() < d2->GetDbHandle(); |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1985 url, GURL(""), "", false, -1, save_info, web_contents, | 1977 url, GURL(""), "", false, -1, save_info, web_contents, |
| 1986 DownloadManager::OnStartedCallback()); | 1978 DownloadManager::OnStartedCallback()); |
| 1987 observer->WaitForFinished(); | 1979 observer->WaitForFinished(); |
| 1988 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 1980 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 1989 CheckDownloadStates(1, DownloadItem::COMPLETE); | 1981 CheckDownloadStates(1, DownloadItem::COMPLETE); |
| 1990 EXPECT_TRUE(observer->select_file_dialog_seen()); | 1982 EXPECT_TRUE(observer->select_file_dialog_seen()); |
| 1991 | 1983 |
| 1992 // Check state. | 1984 // Check state. |
| 1993 EXPECT_EQ(1, browser()->tab_count()); | 1985 EXPECT_EQ(1, browser()->tab_count()); |
| 1994 ASSERT_TRUE(CheckDownload(browser(), file, file)); | 1986 ASSERT_TRUE(CheckDownload(browser(), file, file)); |
| 1995 CheckDownloadUI(browser(), true, true, file); | 1987 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1996 } | 1988 } |
| 1997 | 1989 |
| 1998 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrlToPath) { | 1990 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrlToPath) { |
| 1999 ASSERT_TRUE(InitialSetup(false)); | 1991 ASSERT_TRUE(InitialSetup(false)); |
| 2000 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1992 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 2001 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1993 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 2002 | 1994 |
| 2003 WebContents* web_contents = browser()->GetSelectedWebContents(); | 1995 WebContents* web_contents = browser()->GetSelectedWebContents(); |
| 2004 ASSERT_TRUE(web_contents); | 1996 ASSERT_TRUE(web_contents); |
| 2005 | 1997 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 2017 observer->WaitForFinished(); | 2009 observer->WaitForFinished(); |
| 2018 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 2010 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 2019 | 2011 |
| 2020 // Check state. | 2012 // Check state. |
| 2021 EXPECT_EQ(1, browser()->tab_count()); | 2013 EXPECT_EQ(1, browser()->tab_count()); |
| 2022 ASSERT_TRUE(CheckDownloadFullPaths(browser(), | 2014 ASSERT_TRUE(CheckDownloadFullPaths(browser(), |
| 2023 target_file_full_path, | 2015 target_file_full_path, |
| 2024 OriginFile(file))); | 2016 OriginFile(file))); |
| 2025 | 2017 |
| 2026 // Temporary downloads won't be visible. | 2018 // Temporary downloads won't be visible. |
| 2027 CheckDownloadUI(browser(), false, false, file); | 2019 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 2028 } | 2020 } |
| 2029 | 2021 |
| 2030 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaGet) { | 2022 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaGet) { |
| 2031 // Do initial setup. | 2023 // Do initial setup. |
| 2032 ASSERT_TRUE(InitialSetup(false)); | 2024 ASSERT_TRUE(InitialSetup(false)); |
| 2033 ASSERT_TRUE(test_server()->Start()); | 2025 ASSERT_TRUE(test_server()->Start()); |
| 2034 NullSelectFile(browser()); | 2026 NullSelectFile(browser()); |
| 2035 std::vector<DownloadItem*> download_items; | 2027 std::vector<DownloadItem*> download_items; |
| 2036 GetDownloads(browser(), &download_items); | 2028 GetDownloads(browser(), &download_items); |
| 2037 ASSERT_TRUE(download_items.empty()); | 2029 ASSERT_TRUE(download_items.empty()); |
| (...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2503 downloads.clear(); | 2495 downloads.clear(); |
| 2504 GetDownloads(browser(), &downloads); | 2496 GetDownloads(browser(), &downloads); |
| 2505 EXPECT_EQ(0u, downloads.size()); | 2497 EXPECT_EQ(0u, downloads.size()); |
| 2506 | 2498 |
| 2507 if (creation_observer->succeeded()) { | 2499 if (creation_observer->succeeded()) { |
| 2508 // Wait until the download is done. We don't care how it's finished. | 2500 // Wait until the download is done. We don't care how it's finished. |
| 2509 backup_observer.WaitForFinished(); | 2501 backup_observer.WaitForFinished(); |
| 2510 } | 2502 } |
| 2511 DownloadManagerForBrowser(browser())->RemoveAllDownloads(); | 2503 DownloadManagerForBrowser(browser())->RemoveAllDownloads(); |
| 2512 } | 2504 } |
| OLD | NEW |