Chromium Code Reviews| 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/path_service.h" | 9 #include "base/path_service.h" |
| 10 #include "base/scoped_temp_dir.h" | 10 #include "base/scoped_temp_dir.h" |
| 11 #include "base/test/test_file_util.h" | 11 #include "base/test/test_file_util.h" |
| 12 #include "chrome/app/chrome_command_ids.h" | 12 #include "chrome/app/chrome_command_ids.h" |
| 13 #include "chrome/browser/download/chrome_download_manager_delegate.h" | 13 #include "chrome/browser/download/chrome_download_manager_delegate.h" |
| 14 #include "chrome/browser/download/download_history.h" | 14 #include "chrome/browser/download/download_history.h" |
| 15 #include "chrome/browser/download/download_prefs.h" | 15 #include "chrome/browser/download/download_prefs.h" |
| 16 #include "chrome/browser/download/download_service.h" | 16 #include "chrome/browser/download/download_service.h" |
| 17 #include "chrome/browser/download/download_service_factory.h" | 17 #include "chrome/browser/download/download_service_factory.h" |
| 18 #include "chrome/browser/download/save_package_file_picker.h" | 18 #include "chrome/browser/download/save_package_file_picker.h" |
| 19 #include "chrome/browser/net/url_request_mock_util.h" | 19 #include "chrome/browser/net/url_request_mock_util.h" |
| 20 #include "chrome/browser/profiles/profile.h" | 20 #include "chrome/browser/profiles/profile.h" |
| 21 #include "chrome/browser/ui/browser.h" | 21 #include "chrome/browser/ui/browser.h" |
| 22 #include "chrome/browser/ui/browser_window.h" | 22 #include "chrome/browser/ui/browser_window.h" |
| 23 #include "chrome/browser/ui/webui/chromeos/active_downloads_ui.h" | |
| 24 #include "chrome/common/chrome_paths.h" | 23 #include "chrome/common/chrome_paths.h" |
| 25 #include "chrome/common/url_constants.h" | 24 #include "chrome/common/url_constants.h" |
| 26 #include "chrome/test/base/in_process_browser_test.h" | 25 #include "chrome/test/base/in_process_browser_test.h" |
| 27 #include "chrome/test/base/ui_test_utils.h" | 26 #include "chrome/test/base/ui_test_utils.h" |
| 28 #include "content/public/browser/download_item.h" | 27 #include "content/public/browser/download_item.h" |
| 29 #include "content/public/browser/download_manager.h" | 28 #include "content/public/browser/download_manager.h" |
| 30 #include "content/public/browser/download_persistent_store_info.h" | 29 #include "content/public/browser/download_persistent_store_info.h" |
| 31 #include "content/public/browser/notification_service.h" | 30 #include "content/public/browser/notification_service.h" |
| 32 #include "content/public/browser/notification_types.h" | 31 #include "content/public/browser/notification_types.h" |
| 33 #include "content/public/browser/web_contents.h" | 32 #include "content/public/browser/web_contents.h" |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 91 | 90 |
| 92 GURL WaitForSavePackageToFinish() const { | 91 GURL WaitForSavePackageToFinish() const { |
| 93 ui_test_utils::TestNotificationObserver observer; | 92 ui_test_utils::TestNotificationObserver observer; |
| 94 ui_test_utils::RegisterAndWait(&observer, | 93 ui_test_utils::RegisterAndWait(&observer, |
| 95 content::NOTIFICATION_SAVE_PACKAGE_SUCCESSFULLY_FINISHED, | 94 content::NOTIFICATION_SAVE_PACKAGE_SUCCESSFULLY_FINISHED, |
| 96 content::NotificationService::AllSources()); | 95 content::NotificationService::AllSources()); |
| 97 return content::Details<DownloadItem>(observer.details()).ptr()-> | 96 return content::Details<DownloadItem>(observer.details()).ptr()-> |
| 98 GetOriginalUrl(); | 97 GetOriginalUrl(); |
| 99 } | 98 } |
| 100 | 99 |
| 101 #if defined(OS_CHROMEOS) && !defined(USE_AURA) | 100 void CheckDownloadShelfIsVisible() const { |
|
achuithb
2012/04/16 14:27:05
Not sure if the indirection is worthwhile. Might b
asanka
2012/04/17 20:02:25
Done.
| |
| 102 const ActiveDownloadsUI::DownloadList& GetDownloads() const { | |
| 103 Browser* popup = ActiveDownloadsUI::GetPopup(); | |
| 104 EXPECT_TRUE(popup); | |
| 105 ActiveDownloadsUI* downloads_ui = static_cast<ActiveDownloadsUI*>( | |
| 106 popup->GetSelectedWebContents()->GetWebUI()->GetController()); | |
| 107 EXPECT_TRUE(downloads_ui); | |
| 108 return downloads_ui->GetDownloads(); | |
| 109 } | |
| 110 #endif | |
| 111 | |
| 112 void CheckDownloadUI(const FilePath& download_path) const { | |
| 113 #if defined(OS_CHROMEOS) && !defined(USE_AURA) | |
| 114 const ActiveDownloadsUI::DownloadList& downloads = GetDownloads(); | |
| 115 EXPECT_EQ(downloads.size(), 1U); | |
| 116 | |
| 117 bool found = false; | |
| 118 for (size_t i = 0; i < downloads.size(); ++i) { | |
| 119 if (downloads[i]->GetFullPath() == download_path) { | |
| 120 found = true; | |
| 121 break; | |
| 122 } | |
| 123 } | |
| 124 EXPECT_TRUE(found); | |
| 125 #else | |
| 126 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); | 101 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 127 #endif | |
| 128 } | 102 } |
| 129 | 103 |
| 130 DownloadManager* GetDownloadManager() const { | 104 DownloadManager* GetDownloadManager() const { |
| 131 DownloadManager* download_manager = | 105 DownloadManager* download_manager = |
| 132 DownloadServiceFactory::GetForProfile( | 106 DownloadServiceFactory::GetForProfile( |
| 133 browser()->profile())->GetDownloadManager(); | 107 browser()->profile())->GetDownloadManager(); |
| 134 EXPECT_TRUE(download_manager); | 108 EXPECT_TRUE(download_manager); |
| 135 return download_manager; | 109 return download_manager; |
| 136 } | 110 } |
| 137 | 111 |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 204 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveHTMLOnly) { | 178 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveHTMLOnly) { |
| 205 GURL url = NavigateToMockURL("a"); | 179 GURL url = NavigateToMockURL("a"); |
| 206 | 180 |
| 207 FilePath full_file_name, dir; | 181 FilePath full_file_name, dir; |
| 208 GetDestinationPaths("a", &full_file_name, &dir); | 182 GetDestinationPaths("a", &full_file_name, &dir); |
| 209 ASSERT_TRUE(GetCurrentTab()->SavePage(full_file_name, dir, | 183 ASSERT_TRUE(GetCurrentTab()->SavePage(full_file_name, dir, |
| 210 content::SAVE_PAGE_TYPE_AS_ONLY_HTML)); | 184 content::SAVE_PAGE_TYPE_AS_ONLY_HTML)); |
| 211 | 185 |
| 212 EXPECT_EQ(url, WaitForSavePackageToFinish()); | 186 EXPECT_EQ(url, WaitForSavePackageToFinish()); |
| 213 | 187 |
| 214 CheckDownloadUI(full_file_name); | 188 CheckDownloadShelfIsVisible(); |
| 215 CheckDownloadHistory(url, full_file_name, 1); // a.htm is 1 file. | 189 CheckDownloadHistory(url, full_file_name, 1); // a.htm is 1 file. |
| 216 | 190 |
| 217 EXPECT_TRUE(file_util::PathExists(full_file_name)); | 191 EXPECT_TRUE(file_util::PathExists(full_file_name)); |
| 218 EXPECT_FALSE(file_util::PathExists(dir)); | 192 EXPECT_FALSE(file_util::PathExists(dir)); |
| 219 EXPECT_TRUE(file_util::ContentsEqual( | 193 EXPECT_TRUE(file_util::ContentsEqual( |
| 220 test_dir_.Append(FilePath(kTestDir)).Append(FILE_PATH_LITERAL("a.htm")), | 194 test_dir_.Append(FilePath(kTestDir)).Append(FILE_PATH_LITERAL("a.htm")), |
| 221 full_file_name)); | 195 full_file_name)); |
| 222 } | 196 } |
| 223 | 197 |
| 224 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveViewSourceHTMLOnly) { | 198 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveViewSourceHTMLOnly) { |
| 225 FilePath file_name(FILE_PATH_LITERAL("a.htm")); | 199 FilePath file_name(FILE_PATH_LITERAL("a.htm")); |
| 226 GURL view_source_url = URLRequestMockHTTPJob::GetMockViewSourceUrl( | 200 GURL view_source_url = URLRequestMockHTTPJob::GetMockViewSourceUrl( |
| 227 FilePath(kTestDir).Append(file_name)); | 201 FilePath(kTestDir).Append(file_name)); |
| 228 GURL actual_page_url = URLRequestMockHTTPJob::GetMockUrl( | 202 GURL actual_page_url = URLRequestMockHTTPJob::GetMockUrl( |
| 229 FilePath(kTestDir).Append(file_name)); | 203 FilePath(kTestDir).Append(file_name)); |
| 230 ui_test_utils::NavigateToURL(browser(), view_source_url); | 204 ui_test_utils::NavigateToURL(browser(), view_source_url); |
| 231 | 205 |
| 232 FilePath full_file_name, dir; | 206 FilePath full_file_name, dir; |
| 233 GetDestinationPaths("a", &full_file_name, &dir); | 207 GetDestinationPaths("a", &full_file_name, &dir); |
| 234 ASSERT_TRUE(GetCurrentTab()->SavePage(full_file_name, dir, | 208 ASSERT_TRUE(GetCurrentTab()->SavePage(full_file_name, dir, |
| 235 content::SAVE_PAGE_TYPE_AS_ONLY_HTML)); | 209 content::SAVE_PAGE_TYPE_AS_ONLY_HTML)); |
| 236 | 210 |
| 237 EXPECT_EQ(actual_page_url, WaitForSavePackageToFinish()); | 211 EXPECT_EQ(actual_page_url, WaitForSavePackageToFinish()); |
| 238 | 212 |
| 239 CheckDownloadUI(full_file_name); | 213 CheckDownloadShelfIsVisible(); |
| 240 CheckDownloadHistory(actual_page_url, full_file_name, 1); // a.htm is 1 file. | 214 CheckDownloadHistory(actual_page_url, full_file_name, 1); // a.htm is 1 file. |
| 241 | 215 |
| 242 EXPECT_TRUE(file_util::PathExists(full_file_name)); | 216 EXPECT_TRUE(file_util::PathExists(full_file_name)); |
| 243 EXPECT_FALSE(file_util::PathExists(dir)); | 217 EXPECT_FALSE(file_util::PathExists(dir)); |
| 244 EXPECT_TRUE(file_util::ContentsEqual( | 218 EXPECT_TRUE(file_util::ContentsEqual( |
| 245 test_dir_.Append(FilePath(kTestDir)).Append(file_name), | 219 test_dir_.Append(FilePath(kTestDir)).Append(file_name), |
| 246 full_file_name)); | 220 full_file_name)); |
| 247 } | 221 } |
| 248 | 222 |
| 249 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveCompleteHTML) { | 223 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveCompleteHTML) { |
| 250 GURL url = NavigateToMockURL("b"); | 224 GURL url = NavigateToMockURL("b"); |
| 251 | 225 |
| 252 FilePath full_file_name, dir; | 226 FilePath full_file_name, dir; |
| 253 GetDestinationPaths("b", &full_file_name, &dir); | 227 GetDestinationPaths("b", &full_file_name, &dir); |
| 254 ASSERT_TRUE(GetCurrentTab()->SavePage( | 228 ASSERT_TRUE(GetCurrentTab()->SavePage( |
| 255 full_file_name, dir, content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML)); | 229 full_file_name, dir, content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML)); |
| 256 | 230 |
| 257 EXPECT_EQ(url, WaitForSavePackageToFinish()); | 231 EXPECT_EQ(url, WaitForSavePackageToFinish()); |
| 258 | 232 |
| 259 CheckDownloadUI(full_file_name); | 233 CheckDownloadShelfIsVisible(); |
| 260 CheckDownloadHistory(url, full_file_name, 3); // b.htm is 3 files. | 234 CheckDownloadHistory(url, full_file_name, 3); // b.htm is 3 files. |
| 261 | 235 |
| 262 EXPECT_TRUE(file_util::PathExists(full_file_name)); | 236 EXPECT_TRUE(file_util::PathExists(full_file_name)); |
| 263 EXPECT_TRUE(file_util::PathExists(dir)); | 237 EXPECT_TRUE(file_util::PathExists(dir)); |
| 264 EXPECT_TRUE(file_util::TextContentsEqual( | 238 EXPECT_TRUE(file_util::TextContentsEqual( |
| 265 test_dir_.Append(FilePath(kTestDir)).AppendASCII("b.saved1.htm"), | 239 test_dir_.Append(FilePath(kTestDir)).AppendASCII("b.saved1.htm"), |
| 266 full_file_name)); | 240 full_file_name)); |
| 267 EXPECT_TRUE(file_util::ContentsEqual( | 241 EXPECT_TRUE(file_util::ContentsEqual( |
| 268 test_dir_.Append(FilePath(kTestDir)).AppendASCII("1.png"), | 242 test_dir_.Append(FilePath(kTestDir)).AppendASCII("1.png"), |
| 269 dir.AppendASCII("1.png"))); | 243 dir.AppendASCII("1.png"))); |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 283 | 257 |
| 284 FilePath full_file_name = save_dir_.path().AppendASCII( | 258 FilePath full_file_name = save_dir_.path().AppendASCII( |
| 285 std::string("Test page for saving page feature") + kAppendedExtension); | 259 std::string("Test page for saving page feature") + kAppendedExtension); |
| 286 FilePath dir = save_dir_.path().AppendASCII( | 260 FilePath dir = save_dir_.path().AppendASCII( |
| 287 "Test page for saving page feature_files"); | 261 "Test page for saving page feature_files"); |
| 288 ASSERT_TRUE(GetCurrentTab()->SavePage( | 262 ASSERT_TRUE(GetCurrentTab()->SavePage( |
| 289 full_file_name, dir, content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML)); | 263 full_file_name, dir, content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML)); |
| 290 | 264 |
| 291 EXPECT_EQ(url, WaitForSavePackageToFinish()); | 265 EXPECT_EQ(url, WaitForSavePackageToFinish()); |
| 292 | 266 |
| 293 CheckDownloadUI(full_file_name); | 267 CheckDownloadShelfIsVisible(); |
| 294 CheckDownloadHistory(url, full_file_name, 3); // b.htm is 3 files. | 268 CheckDownloadHistory(url, full_file_name, 3); // b.htm is 3 files. |
| 295 | 269 |
| 296 EXPECT_TRUE(file_util::PathExists(full_file_name)); | 270 EXPECT_TRUE(file_util::PathExists(full_file_name)); |
| 297 EXPECT_TRUE(file_util::PathExists(dir)); | 271 EXPECT_TRUE(file_util::PathExists(dir)); |
| 298 EXPECT_TRUE(file_util::TextContentsEqual( | 272 EXPECT_TRUE(file_util::TextContentsEqual( |
| 299 test_dir_.Append(FilePath(kTestDir)).AppendASCII("b.saved2.htm"), | 273 test_dir_.Append(FilePath(kTestDir)).AppendASCII("b.saved2.htm"), |
| 300 full_file_name)); | 274 full_file_name)); |
| 301 EXPECT_TRUE(file_util::ContentsEqual( | 275 EXPECT_TRUE(file_util::ContentsEqual( |
| 302 test_dir_.Append(FilePath(kTestDir)).AppendASCII("1.png"), | 276 test_dir_.Append(FilePath(kTestDir)).AppendASCII("1.png"), |
| 303 dir.AppendASCII("1.png"))); | 277 dir.AppendASCII("1.png"))); |
| 304 EXPECT_TRUE(file_util::ContentsEqual( | 278 EXPECT_TRUE(file_util::ContentsEqual( |
| 305 test_dir_.Append(FilePath(kTestDir)).AppendASCII("1.css"), | 279 test_dir_.Append(FilePath(kTestDir)).AppendASCII("1.css"), |
| 306 dir.AppendASCII("1.css"))); | 280 dir.AppendASCII("1.css"))); |
| 307 } | 281 } |
| 308 | 282 |
| 309 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, RemoveFromList) { | 283 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, RemoveFromList) { |
| 310 GURL url = NavigateToMockURL("a"); | 284 GURL url = NavigateToMockURL("a"); |
| 311 | 285 |
| 312 FilePath full_file_name, dir; | 286 FilePath full_file_name, dir; |
| 313 GetDestinationPaths("a", &full_file_name, &dir); | 287 GetDestinationPaths("a", &full_file_name, &dir); |
| 314 ASSERT_TRUE(GetCurrentTab()->SavePage(full_file_name, dir, | 288 ASSERT_TRUE(GetCurrentTab()->SavePage(full_file_name, dir, |
| 315 content::SAVE_PAGE_TYPE_AS_ONLY_HTML)); | 289 content::SAVE_PAGE_TYPE_AS_ONLY_HTML)); |
| 316 | 290 |
| 317 EXPECT_EQ(url, WaitForSavePackageToFinish()); | 291 EXPECT_EQ(url, WaitForSavePackageToFinish()); |
| 318 | 292 |
| 319 CheckDownloadUI(full_file_name); | 293 CheckDownloadShelfIsVisible(); |
| 320 CheckDownloadHistory(url, full_file_name, 1); // a.htm is 1 file. | 294 CheckDownloadHistory(url, full_file_name, 1); // a.htm is 1 file. |
| 321 | 295 |
| 322 EXPECT_EQ(GetDownloadManager()->RemoveAllDownloads(), 1); | 296 EXPECT_EQ(GetDownloadManager()->RemoveAllDownloads(), 1); |
| 323 | 297 |
| 324 #if defined(OS_CHROMEOS) && !defined(USE_AURA) | |
| 325 EXPECT_EQ(GetDownloads().size(), 0U); | |
| 326 #endif | |
| 327 | |
| 328 // Should not be in history. | 298 // Should not be in history. |
| 329 QueryDownloadHistory(); | 299 QueryDownloadHistory(); |
| 330 EXPECT_EQ(std::find_if(history_entries_.begin(), history_entries_.end(), | 300 EXPECT_EQ(std::find_if(history_entries_.begin(), history_entries_.end(), |
| 331 DownloadPersistentStoreInfoMatch(url, full_file_name, 1)), | 301 DownloadPersistentStoreInfoMatch(url, full_file_name, 1)), |
| 332 history_entries_.end()); | 302 history_entries_.end()); |
| 333 | 303 |
| 334 EXPECT_TRUE(file_util::PathExists(full_file_name)); | 304 EXPECT_TRUE(file_util::PathExists(full_file_name)); |
| 335 EXPECT_FALSE(file_util::PathExists(dir)); | 305 EXPECT_FALSE(file_util::PathExists(dir)); |
| 336 EXPECT_TRUE(file_util::ContentsEqual( | 306 EXPECT_TRUE(file_util::ContentsEqual( |
| 337 test_dir_.Append(FilePath(kTestDir)).Append(FILE_PATH_LITERAL("a.htm")), | 307 test_dir_.Append(FilePath(kTestDir)).Append(FILE_PATH_LITERAL("a.htm")), |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 362 content::NotificationService::AllSources()); | 332 content::NotificationService::AllSources()); |
| 363 browser()->SavePage(); | 333 browser()->SavePage(); |
| 364 observer.Wait(); | 334 observer.Wait(); |
| 365 | 335 |
| 366 EXPECT_TRUE(file_util::PathExists(full_file_name)); | 336 EXPECT_TRUE(file_util::PathExists(full_file_name)); |
| 367 | 337 |
| 368 EXPECT_TRUE(file_util::DieFileDie(full_file_name, false)); | 338 EXPECT_TRUE(file_util::DieFileDie(full_file_name, false)); |
| 369 EXPECT_TRUE(file_util::DieFileDie(dir, true)); | 339 EXPECT_TRUE(file_util::DieFileDie(dir, true)); |
| 370 } | 340 } |
| 371 #endif | 341 #endif |
| OLD | NEW |