| 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" |
| 11 #include "base/memory/ref_counted.h" | 11 #include "base/memory/ref_counted.h" |
| 12 #include "base/path_service.h" | 12 #include "base/path_service.h" |
| 13 #include "base/scoped_temp_dir.h" | 13 #include "base/scoped_temp_dir.h" |
| 14 #include "base/stl_util.h" | 14 #include "base/stl_util.h" |
| 15 #include "base/stringprintf.h" | 15 #include "base/stringprintf.h" |
| 16 #include "base/test/test_file_util.h" | 16 #include "base/test/test_file_util.h" |
| 17 #include "base/utf_string_conversions.h" | 17 #include "base/utf_string_conversions.h" |
| 18 #include "chrome/app/chrome_command_ids.h" | 18 #include "chrome/app/chrome_command_ids.h" |
| 19 #include "chrome/browser/browser_process.h" | 19 #include "chrome/browser/browser_process.h" |
| 20 #include "chrome/browser/cancelable_request.h" | 20 #include "chrome/browser/cancelable_request.h" |
| 21 #include "chrome/browser/download/chrome_download_manager_delegate.h" | 21 #include "chrome/browser/download/chrome_download_manager_delegate.h" |
| 22 #include "chrome/browser/download/download_crx_util.h" | 22 #include "chrome/browser/download/download_crx_util.h" |
| 23 #include "chrome/browser/download/download_history.h" | 23 #include "chrome/browser/download/download_history.h" |
| 24 #include "chrome/browser/download/download_prefs.h" | 24 #include "chrome/browser/download/download_prefs.h" |
| 25 #include "chrome/browser/download/download_request_limiter.h" | 25 #include "chrome/browser/download/download_request_limiter.h" |
| 26 #include "chrome/browser/download/download_service.h" | |
| 27 #include "chrome/browser/download/download_service_factory.h" | |
| 28 #include "chrome/browser/download/download_shelf.h" | 26 #include "chrome/browser/download/download_shelf.h" |
| 29 #include "chrome/browser/download/download_test_observer.h" | 27 #include "chrome/browser/download/download_test_observer.h" |
| 30 #include "chrome/browser/download/download_util.h" | 28 #include "chrome/browser/download/download_util.h" |
| 31 #include "chrome/browser/extensions/extension_install_prompt.h" | 29 #include "chrome/browser/extensions/extension_install_prompt.h" |
| 32 #include "chrome/browser/extensions/extension_service.h" | 30 #include "chrome/browser/extensions/extension_service.h" |
| 33 #include "chrome/browser/history/history.h" | 31 #include "chrome/browser/history/history.h" |
| 34 #include "chrome/browser/history/history_service_factory.h" | 32 #include "chrome/browser/history/history_service_factory.h" |
| 35 #include "chrome/browser/net/url_request_mock_util.h" | 33 #include "chrome/browser/net/url_request_mock_util.h" |
| 36 #include "chrome/browser/prefs/pref_service.h" | 34 #include "chrome/browser/prefs/pref_service.h" |
| 37 #include "chrome/browser/profiles/profile.h" | 35 #include "chrome/browser/profiles/profile.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 | 78 |
| 81 namespace { | 79 namespace { |
| 82 | 80 |
| 83 // IDs and paths of CRX files used in tests. | 81 // IDs and paths of CRX files used in tests. |
| 84 const char kGoodCrxId[] = "ldnnhddmnhbkjipkidpdiheffobcpfmf"; | 82 const char kGoodCrxId[] = "ldnnhddmnhbkjipkidpdiheffobcpfmf"; |
| 85 const FilePath kGoodCrxPath(FILE_PATH_LITERAL("extensions/good.crx")); | 83 const FilePath kGoodCrxPath(FILE_PATH_LITERAL("extensions/good.crx")); |
| 86 | 84 |
| 87 const char kLargeThemeCrxId[] = "pjpgmfcmabopnnfonnhmdjglfpjjfkbf"; | 85 const char kLargeThemeCrxId[] = "pjpgmfcmabopnnfonnhmdjglfpjjfkbf"; |
| 88 const FilePath kLargeThemePath(FILE_PATH_LITERAL("extensions/theme2.crx")); | 86 const FilePath kLargeThemePath(FILE_PATH_LITERAL("extensions/theme2.crx")); |
| 89 | 87 |
| 90 class PickSuggestedFileDelegate : public ChromeDownloadManagerDelegate { | |
| 91 public: | |
| 92 explicit PickSuggestedFileDelegate(Profile* profile) | |
| 93 : ChromeDownloadManagerDelegate(profile) { | |
| 94 } | |
| 95 | |
| 96 virtual void ChooseDownloadPath(DownloadItem* item) OVERRIDE { | |
| 97 if (download_manager_) | |
| 98 download_manager_->FileSelected(item->GetTargetFilePath(), item->GetId()); | |
| 99 } | |
| 100 | |
| 101 protected: | |
| 102 virtual ~PickSuggestedFileDelegate() {} | |
| 103 }; | |
| 104 | |
| 105 // Get History Information. | 88 // Get History Information. |
| 106 class DownloadsHistoryDataCollector { | 89 class DownloadsHistoryDataCollector { |
| 107 public: | 90 public: |
| 108 DownloadsHistoryDataCollector(int64 download_db_handle, | 91 DownloadsHistoryDataCollector(int64 download_db_handle, |
| 109 DownloadManager* manager) | 92 DownloadManager* manager) |
| 110 : result_valid_(false), | 93 : result_valid_(false), |
| 111 download_db_handle_(download_db_handle) { | 94 download_db_handle_(download_db_handle) { |
| 112 HistoryService* hs = HistoryServiceFactory::GetForProfile( | 95 HistoryService* hs = HistoryServiceFactory::GetForProfile( |
| 113 Profile::FromBrowserContext(manager->GetBrowserContext()), | 96 Profile::FromBrowserContext(manager->GetBrowserContext()), |
| 114 Profile::EXPLICIT_ACCESS); | 97 Profile::EXPLICIT_ACCESS); |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 } | 224 } |
| 242 | 225 |
| 243 private: | 226 private: |
| 244 DownloadManager* download_manager_; | 227 DownloadManager* download_manager_; |
| 245 | 228 |
| 246 DISALLOW_COPY_AND_ASSIGN(MockDownloadOpeningObserver); | 229 DISALLOW_COPY_AND_ASSIGN(MockDownloadOpeningObserver); |
| 247 }; | 230 }; |
| 248 | 231 |
| 249 class DownloadTest : public InProcessBrowserTest { | 232 class DownloadTest : public InProcessBrowserTest { |
| 250 public: | 233 public: |
| 251 enum SelectExpectation { | |
| 252 EXPECT_NO_SELECT_DIALOG = -1, | |
| 253 EXPECT_NOTHING, | |
| 254 EXPECT_SELECT_DIALOG | |
| 255 }; | |
| 256 | |
| 257 // Choice of navigation or direct fetch. Used by |DownloadFileCheckErrors()|. | 234 // Choice of navigation or direct fetch. Used by |DownloadFileCheckErrors()|. |
| 258 enum DownloadMethod { | 235 enum DownloadMethod { |
| 259 DOWNLOAD_NAVIGATE, | 236 DOWNLOAD_NAVIGATE, |
| 260 DOWNLOAD_DIRECT | 237 DOWNLOAD_DIRECT |
| 261 }; | 238 }; |
| 262 | 239 |
| 263 // Information passed in to |DownloadFileCheckErrors()|. | 240 // Information passed in to |DownloadFileCheckErrors()|. |
| 264 struct DownloadInfo { | 241 struct DownloadInfo { |
| 265 const char* url_name; // URL for the download. | 242 const char* url_name; // URL for the download. |
| 266 DownloadMethod download_method; // Navigation or Direct. | 243 DownloadMethod download_method; // Navigation or Direct. |
| 267 // Download interrupt reason (NONE is OK). | 244 // Download interrupt reason (NONE is OK). |
| 268 content::DownloadInterruptReason reason; | 245 content::DownloadInterruptReason reason; |
| 269 bool show_download_item; // True if the download item appears on the shelf. | 246 bool show_download_item; // True if the download item appears on the shelf. |
| 270 bool should_redirect_to_documents; // True if we save it in "My Documents". | 247 bool should_redirect_to_documents; // True if we save it in "My Documents". |
| 271 }; | 248 }; |
| 272 | 249 |
| 273 struct FileErrorInjectInfo { | 250 struct FileErrorInjectInfo { |
| 274 DownloadInfo download_info; | 251 DownloadInfo download_info; |
| 275 content::TestFileErrorInjector::FileErrorInfo error_info; | 252 content::TestFileErrorInjector::FileErrorInfo error_info; |
| 276 }; | 253 }; |
| 277 | 254 |
| 278 DownloadTest() {} | 255 DownloadTest() {} |
| 279 | 256 |
| 280 void SetUpOnMainThread() OVERRIDE { | 257 virtual void SetUpOnMainThread() OVERRIDE { |
| 281 BrowserThread::PostTask( | 258 BrowserThread::PostTask( |
| 282 BrowserThread::IO, FROM_HERE, | 259 BrowserThread::IO, FROM_HERE, |
| 283 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true)); | 260 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true)); |
| 284 ASSERT_TRUE(InitialSetup()); | 261 ASSERT_TRUE(InitialSetup()); |
| 285 } | 262 } |
| 286 | 263 |
| 264 virtual void CleanUpOnMainThread() OVERRIDE { |
| 265 // Needs to be torn down on the main thread. file_chooser_observer_ holds a |
| 266 // reference to the ChromeDownloadManagerDelegate which should be destroyed |
| 267 // on the UI thread. |
| 268 file_chooser_observer_.reset(); |
| 269 } |
| 270 |
| 287 // Returning false indicates a failure of the setup, and should be asserted | 271 // Returning false indicates a failure of the setup, and should be asserted |
| 288 // in the caller. | 272 // in the caller. |
| 289 virtual bool InitialSetup() { | 273 virtual bool InitialSetup() { |
| 290 bool have_test_dir = PathService::Get(chrome::DIR_TEST_DATA, &test_dir_); | 274 bool have_test_dir = PathService::Get(chrome::DIR_TEST_DATA, &test_dir_); |
| 291 EXPECT_TRUE(have_test_dir); | 275 EXPECT_TRUE(have_test_dir); |
| 292 if (!have_test_dir) | 276 if (!have_test_dir) |
| 293 return false; | 277 return false; |
| 294 | 278 |
| 295 // Sanity check default values for window / tab count and shelf visibility. | 279 // Sanity check default values for window / tab count and shelf visibility. |
| 296 int window_count = BrowserList::size(); | 280 int window_count = BrowserList::size(); |
| 297 EXPECT_EQ(1, window_count); | 281 EXPECT_EQ(1, window_count); |
| 298 EXPECT_EQ(1, browser()->tab_count()); | 282 EXPECT_EQ(1, browser()->tab_count()); |
| 299 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); | 283 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 300 | 284 |
| 301 // Set up the temporary download folder. | 285 // Set up the temporary download folder. |
| 302 bool created_downloads_dir = CreateAndSetDownloadsDirectory(browser()); | 286 bool created_downloads_dir = CreateAndSetDownloadsDirectory(browser()); |
| 303 EXPECT_TRUE(created_downloads_dir); | 287 EXPECT_TRUE(created_downloads_dir); |
| 304 if (!created_downloads_dir) | 288 if (!created_downloads_dir) |
| 305 return false; | 289 return false; |
| 306 browser()->profile()->GetPrefs()->SetBoolean( | 290 browser()->profile()->GetPrefs()->SetBoolean( |
| 307 prefs::kPromptForDownload, false); | 291 prefs::kPromptForDownload, false); |
| 308 | 292 |
| 309 DownloadManager* manager = DownloadManagerForBrowser(browser()); | 293 DownloadManager* manager = DownloadManagerForBrowser(browser()); |
| 310 DownloadPrefs::FromDownloadManager(manager)->ResetAutoOpen(); | 294 DownloadPrefs::FromDownloadManager(manager)->ResetAutoOpen(); |
| 311 manager->RemoveAllDownloads(); | 295 manager->RemoveAllDownloads(); |
| 312 | 296 |
| 297 file_chooser_observer_.reset( |
| 298 new DownloadTestFileChooserObserver(browser()->profile())); |
| 299 |
| 313 return true; | 300 return true; |
| 314 } | 301 } |
| 315 | 302 |
| 316 protected: | 303 protected: |
| 317 | 304 |
| 318 enum SizeTestType { | 305 enum SizeTestType { |
| 319 SIZE_TEST_TYPE_KNOWN, | 306 SIZE_TEST_TYPE_KNOWN, |
| 320 SIZE_TEST_TYPE_UNKNOWN, | 307 SIZE_TEST_TYPE_UNKNOWN, |
| 321 }; | 308 }; |
| 322 | 309 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 356 FilePath GetDownloadDirectory(Browser* browser) { | 343 FilePath GetDownloadDirectory(Browser* browser) { |
| 357 return GetDownloadPrefs(browser)->DownloadPath(); | 344 return GetDownloadPrefs(browser)->DownloadPath(); |
| 358 } | 345 } |
| 359 | 346 |
| 360 // Create a DownloadTestObserverTerminal that will wait for the | 347 // Create a DownloadTestObserverTerminal that will wait for the |
| 361 // specified number of downloads to finish. | 348 // specified number of downloads to finish. |
| 362 DownloadTestObserver* CreateWaiter(Browser* browser, int num_downloads) { | 349 DownloadTestObserver* CreateWaiter(Browser* browser, int num_downloads) { |
| 363 DownloadManager* download_manager = DownloadManagerForBrowser(browser); | 350 DownloadManager* download_manager = DownloadManagerForBrowser(browser); |
| 364 return new DownloadTestObserverTerminal( | 351 return new DownloadTestObserverTerminal( |
| 365 download_manager, num_downloads, | 352 download_manager, num_downloads, |
| 366 true, // Bail on select file | |
| 367 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL); | 353 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL); |
| 368 } | 354 } |
| 369 | 355 |
| 370 // Create a DownloadTestObserverInProgress that will wait for the | 356 // Create a DownloadTestObserverInProgress that will wait for the |
| 371 // specified number of downloads to start. | 357 // specified number of downloads to start. |
| 372 DownloadTestObserver* CreateInProgressWaiter(Browser* browser, | 358 DownloadTestObserver* CreateInProgressWaiter(Browser* browser, |
| 373 int num_downloads) { | 359 int num_downloads) { |
| 374 DownloadManager* download_manager = DownloadManagerForBrowser(browser); | 360 DownloadManager* download_manager = DownloadManagerForBrowser(browser); |
| 375 return new DownloadTestObserverInProgress( | 361 return new DownloadTestObserverInProgress( |
| 376 download_manager, num_downloads, true); // Bail on select file. | 362 download_manager, num_downloads); |
| 377 } | 363 } |
| 378 | 364 |
| 379 // Create a DownloadTestObserverTerminal that will wait for the | 365 // Create a DownloadTestObserverTerminal that will wait for the |
| 380 // specified number of downloads to finish, or for | 366 // specified number of downloads to finish, or for |
| 381 // a dangerous download warning to be shown. | 367 // a dangerous download warning to be shown. |
| 382 DownloadTestObserver* DangerousDownloadWaiter( | 368 DownloadTestObserver* DangerousDownloadWaiter( |
| 383 Browser* browser, | 369 Browser* browser, |
| 384 int num_downloads, | 370 int num_downloads, |
| 385 DownloadTestObserver::DangerousDownloadAction dangerous_download_action) { | 371 DownloadTestObserver::DangerousDownloadAction dangerous_download_action) { |
| 386 DownloadManager* download_manager = DownloadManagerForBrowser(browser); | 372 DownloadManager* download_manager = DownloadManagerForBrowser(browser); |
| 387 return new DownloadTestObserverTerminal( | 373 return new DownloadTestObserverTerminal( |
| 388 download_manager, num_downloads, | 374 download_manager, num_downloads, |
| 389 true, // Bail on select file | |
| 390 dangerous_download_action); | 375 dangerous_download_action); |
| 391 } | 376 } |
| 392 | 377 |
| 393 void CheckDownloadStatesForBrowser(Browser* browser, | 378 void CheckDownloadStatesForBrowser(Browser* browser, |
| 394 size_t num, | 379 size_t num, |
| 395 DownloadItem::DownloadState state) { | 380 DownloadItem::DownloadState state) { |
| 396 std::vector<DownloadItem*> download_items; | 381 std::vector<DownloadItem*> download_items; |
| 397 GetDownloads(browser, &download_items); | 382 GetDownloads(browser, &download_items); |
| 398 | 383 |
| 399 EXPECT_EQ(num, download_items.size()); | 384 EXPECT_EQ(num, download_items.size()); |
| 400 | 385 |
| 401 for (size_t i = 0; i < download_items.size(); ++i) { | 386 for (size_t i = 0; i < download_items.size(); ++i) { |
| 402 EXPECT_EQ(state, download_items[i]->GetState()) << " Item " << i; | 387 EXPECT_EQ(state, download_items[i]->GetState()) << " Item " << i; |
| 403 } | 388 } |
| 404 } | 389 } |
| 405 | 390 |
| 406 void CheckDownloadStates(size_t num, DownloadItem::DownloadState state) { | 391 void CheckDownloadStates(size_t num, DownloadItem::DownloadState state) { |
| 407 CheckDownloadStatesForBrowser(browser(), num, state); | 392 CheckDownloadStatesForBrowser(browser(), num, state); |
| 408 } | 393 } |
| 409 | 394 |
| 410 // Download |url|, then wait for the download to finish. | 395 // Download |url|, then wait for the download to finish. |
| 411 // |disposition| indicates where the navigation occurs (current tab, new | 396 // |disposition| indicates where the navigation occurs (current tab, new |
| 412 // foreground tab, etc). | 397 // foreground tab, etc). |
| 413 // |expectation| indicates whether or not a Select File dialog should be | |
| 414 // open when the download is finished, or if we don't care. | |
| 415 // If the dialog appears, the routine exits. The only effect |expectation| | |
| 416 // has is whether or not the test succeeds. | |
| 417 // |browser_test_flags| indicate what to wait for, and is an OR of 0 or more | 398 // |browser_test_flags| indicate what to wait for, and is an OR of 0 or more |
| 418 // values in the ui_test_utils::BrowserTestWaitFlags enum. | 399 // values in the ui_test_utils::BrowserTestWaitFlags enum. |
| 419 void DownloadAndWaitWithDisposition(Browser* browser, | 400 void DownloadAndWaitWithDisposition(Browser* browser, |
| 420 const GURL& url, | 401 const GURL& url, |
| 421 WindowOpenDisposition disposition, | 402 WindowOpenDisposition disposition, |
| 422 SelectExpectation expectation, | |
| 423 int browser_test_flags) { | 403 int browser_test_flags) { |
| 424 // Setup notification, navigate, and block. | 404 // Setup notification, navigate, and block. |
| 425 scoped_ptr<DownloadTestObserver> observer(CreateWaiter(browser, 1)); | 405 scoped_ptr<DownloadTestObserver> observer(CreateWaiter(browser, 1)); |
| 426 // This call will block until the condition specified by | 406 // This call will block until the condition specified by |
| 427 // |browser_test_flags|, but will not wait for the download to finish. | 407 // |browser_test_flags|, but will not wait for the download to finish. |
| 428 ui_test_utils::NavigateToURLWithDisposition(browser, | 408 ui_test_utils::NavigateToURLWithDisposition(browser, |
| 429 url, | 409 url, |
| 430 disposition, | 410 disposition, |
| 431 browser_test_flags); | 411 browser_test_flags); |
| 432 // Waits for the download to complete. | 412 // Waits for the download to complete. |
| 433 observer->WaitForFinished(); | 413 observer->WaitForFinished(); |
| 434 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 414 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 435 | 415 // We don't expect a file chooser to be shown. |
| 436 // If specified, check the state of the select file dialog. | 416 EXPECT_FALSE(DidShowFileChooser()); |
| 437 if (expectation != EXPECT_NOTHING) { | |
| 438 EXPECT_EQ(expectation == EXPECT_SELECT_DIALOG, | |
| 439 observer->select_file_dialog_seen()); | |
| 440 } | |
| 441 } | 417 } |
| 442 | 418 |
| 443 // Download a file in the current tab, then wait for the download to finish. | 419 // Download a file in the current tab, then wait for the download to finish. |
| 444 void DownloadAndWait(Browser* browser, | 420 void DownloadAndWait(Browser* browser, |
| 445 const GURL& url, | 421 const GURL& url) { |
| 446 SelectExpectation expectation) { | |
| 447 DownloadAndWaitWithDisposition( | 422 DownloadAndWaitWithDisposition( |
| 448 browser, | 423 browser, |
| 449 url, | 424 url, |
| 450 CURRENT_TAB, | 425 CURRENT_TAB, |
| 451 expectation, | |
| 452 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 426 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 453 } | 427 } |
| 454 | 428 |
| 455 // Should only be called when the download is known to have finished | 429 // Should only be called when the download is known to have finished |
| 456 // (in error or not). | 430 // (in error or not). |
| 457 // Returning false indicates a failure of the function, and should be asserted | 431 // Returning false indicates a failure of the function, and should be asserted |
| 458 // in the caller. | 432 // in the caller. |
| 459 bool CheckDownload(Browser* browser, | 433 bool CheckDownload(Browser* browser, |
| 460 const FilePath& downloaded_filename, | 434 const FilePath& downloaded_filename, |
| 461 const FilePath& origin_filename) { | 435 const FilePath& origin_filename) { |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 574 void GetDownloads(Browser* browser, std::vector<DownloadItem*>* downloads) { | 548 void GetDownloads(Browser* browser, std::vector<DownloadItem*>* downloads) { |
| 575 DCHECK(downloads); | 549 DCHECK(downloads); |
| 576 DownloadManager* manager = DownloadManagerForBrowser(browser); | 550 DownloadManager* manager = DownloadManagerForBrowser(browser); |
| 577 manager->SearchDownloads(string16(), downloads); | 551 manager->SearchDownloads(string16(), downloads); |
| 578 } | 552 } |
| 579 | 553 |
| 580 static void ExpectWindowCountAfterDownload(size_t expected) { | 554 static void ExpectWindowCountAfterDownload(size_t expected) { |
| 581 EXPECT_EQ(expected, BrowserList::size()); | 555 EXPECT_EQ(expected, BrowserList::size()); |
| 582 } | 556 } |
| 583 | 557 |
| 584 // Arrange for select file calls on the given browser from the | 558 void EnableFileChooser(bool enable) { |
| 585 // download manager to always choose the suggested file. | 559 file_chooser_observer_->EnableFileChooser(enable); |
| 586 void NullSelectFile(Browser* browser) { | 560 } |
| 587 PickSuggestedFileDelegate* new_delegate = | |
| 588 new PickSuggestedFileDelegate(browser->profile()); | |
| 589 | 561 |
| 590 // Gives ownership to DownloadService. | 562 bool DidShowFileChooser() { |
| 591 DownloadServiceFactory::GetForProfile( | 563 return file_chooser_observer_->TestAndResetDidShowFileChooser(); |
| 592 browser->profile())->SetDownloadManagerDelegateForTesting(new_delegate); | |
| 593 } | 564 } |
| 594 | 565 |
| 595 // Checks that |path| is has |file_size| bytes, and matches the |value| | 566 // Checks that |path| is has |file_size| bytes, and matches the |value| |
| 596 // string. | 567 // string. |
| 597 bool VerifyFile(const FilePath& path, | 568 bool VerifyFile(const FilePath& path, |
| 598 const std::string& value, | 569 const std::string& value, |
| 599 const int64 file_size) { | 570 const int64 file_size) { |
| 600 std::string file_contents; | 571 std::string file_contents; |
| 601 | 572 |
| 602 bool read = file_util::ReadFileToString(path, &file_contents); | 573 bool read = file_util::ReadFileToString(path, &file_contents); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 622 } | 593 } |
| 623 | 594 |
| 624 // Attempts to download a file, based on information in |download_info|. | 595 // Attempts to download a file, based on information in |download_info|. |
| 625 // If a Select File dialog opens, will automatically choose the default. | 596 // If a Select File dialog opens, will automatically choose the default. |
| 626 void DownloadFilesCheckErrorsSetup() { | 597 void DownloadFilesCheckErrorsSetup() { |
| 627 ASSERT_TRUE(test_server()->Start()); | 598 ASSERT_TRUE(test_server()->Start()); |
| 628 std::vector<DownloadItem*> download_items; | 599 std::vector<DownloadItem*> download_items; |
| 629 GetDownloads(browser(), &download_items); | 600 GetDownloads(browser(), &download_items); |
| 630 ASSERT_TRUE(download_items.empty()); | 601 ASSERT_TRUE(download_items.empty()); |
| 631 | 602 |
| 632 NullSelectFile(browser()); | 603 EnableFileChooser(true); |
| 633 } | 604 } |
| 634 | 605 |
| 635 void DownloadFilesCheckErrorsLoopBody(const DownloadInfo& download_info, | 606 void DownloadFilesCheckErrorsLoopBody(const DownloadInfo& download_info, |
| 636 size_t i) { | 607 size_t i) { |
| 637 std::stringstream s; | 608 std::stringstream s; |
| 638 s << " " << __FUNCTION__ << "()" | 609 s << " " << __FUNCTION__ << "()" |
| 639 << " index = " << i | 610 << " index = " << i |
| 640 << " url = '" << download_info.url_name << "'" | 611 << " url = '" << download_info.url_name << "'" |
| 641 << " method = " | 612 << " method = " |
| 642 << ((download_info.download_method == DOWNLOAD_DIRECT) ? | 613 << ((download_info.download_method == DOWNLOAD_DIRECT) ? |
| (...skipping 12 matching lines...) Expand all Loading... |
| 655 ASSERT_TRUE(url.is_valid()) << s.str(); | 626 ASSERT_TRUE(url.is_valid()) << s.str(); |
| 656 | 627 |
| 657 DownloadManager* download_manager = DownloadManagerForBrowser(browser()); | 628 DownloadManager* download_manager = DownloadManagerForBrowser(browser()); |
| 658 WebContents* web_contents = chrome::GetActiveWebContents(browser()); | 629 WebContents* web_contents = chrome::GetActiveWebContents(browser()); |
| 659 ASSERT_TRUE(web_contents) << s.str(); | 630 ASSERT_TRUE(web_contents) << s.str(); |
| 660 | 631 |
| 661 scoped_ptr<DownloadTestObserver> observer( | 632 scoped_ptr<DownloadTestObserver> observer( |
| 662 new DownloadTestObserverTerminal( | 633 new DownloadTestObserverTerminal( |
| 663 download_manager, | 634 download_manager, |
| 664 1, | 635 1, |
| 665 false, // Don't bail on select file. | |
| 666 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 636 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
| 667 | 637 |
| 668 if (download_info.download_method == DOWNLOAD_DIRECT) { | 638 if (download_info.download_method == DOWNLOAD_DIRECT) { |
| 669 // Go directly to download. Don't wait for navigation. | 639 // Go directly to download. Don't wait for navigation. |
| 670 content::DownloadSaveInfo save_info; | 640 content::DownloadSaveInfo save_info; |
| 671 // NOTE: |prompt_for_save_location| may change during the download. | 641 // NOTE: |prompt_for_save_location| may change during the download. |
| 672 save_info.prompt_for_save_location = false; | 642 save_info.prompt_for_save_location = false; |
| 673 | 643 |
| 674 scoped_refptr<DownloadTestItemCreationObserver> creation_observer( | 644 scoped_refptr<DownloadTestItemCreationObserver> creation_observer( |
| 675 new DownloadTestItemCreationObserver); | 645 new DownloadTestItemCreationObserver); |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 859 *result = false; | 829 *result = false; |
| 860 BrowserThread::PostTask( | 830 BrowserThread::PostTask( |
| 861 BrowserThread::UI, FROM_HERE, MessageLoop::QuitClosure()); | 831 BrowserThread::UI, FROM_HERE, MessageLoop::QuitClosure()); |
| 862 } | 832 } |
| 863 | 833 |
| 864 // Location of the test data. | 834 // Location of the test data. |
| 865 FilePath test_dir_; | 835 FilePath test_dir_; |
| 866 | 836 |
| 867 // Location of the downloads directory for these tests | 837 // Location of the downloads directory for these tests |
| 868 ScopedTempDir downloads_directory_; | 838 ScopedTempDir downloads_directory_; |
| 839 |
| 840 scoped_ptr<DownloadTestFileChooserObserver> file_chooser_observer_; |
| 869 }; | 841 }; |
| 870 | 842 |
| 871 // NOTES: | 843 // NOTES: |
| 872 // | 844 // |
| 873 // Files for these tests are found in DIR_TEST_DATA (currently | 845 // Files for these tests are found in DIR_TEST_DATA (currently |
| 874 // "chrome\test\data\", see chrome_paths.cc). | 846 // "chrome\test\data\", see chrome_paths.cc). |
| 875 // Mock responses have extension .mock-http-headers appended to the file name. | 847 // Mock responses have extension .mock-http-headers appended to the file name. |
| 876 | 848 |
| 877 // Download a file due to the associated MIME type. | 849 // Download a file due to the associated MIME type. |
| 878 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadMimeType) { | 850 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadMimeType) { |
| 879 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 851 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 880 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 852 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 881 | 853 |
| 882 // Download the file and wait. We do not expect the Select File dialog. | 854 // Download the file and wait. We do not expect the Select File dialog. |
| 883 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); | 855 DownloadAndWait(browser(), url); |
| 884 | 856 |
| 885 // Check state. | 857 // Check state. |
| 886 EXPECT_EQ(1, browser()->tab_count()); | 858 EXPECT_EQ(1, browser()->tab_count()); |
| 887 CheckDownload(browser(), file, file); | 859 CheckDownload(browser(), file, file); |
| 888 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); | 860 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 889 } | 861 } |
| 890 | 862 |
| 891 #if defined(OS_WIN) | 863 #if defined(OS_WIN) |
| 892 // Download a file and confirm that the zone identifier (on windows) | 864 // Download a file and confirm that the zone identifier (on windows) |
| 893 // is set to internet. | 865 // is set to internet. |
| 894 IN_PROC_BROWSER_TEST_F(DownloadTest, CheckInternetZone) { | 866 IN_PROC_BROWSER_TEST_F(DownloadTest, CheckInternetZone) { |
| 895 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 867 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 896 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 868 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 897 | 869 |
| 898 // Download the file and wait. We do not expect the Select File dialog. | 870 // Download the file and wait. We do not expect the Select File dialog. |
| 899 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); | 871 DownloadAndWait(browser(), url); |
| 900 | 872 |
| 901 // Check state. Special file state must be checked before CheckDownload, | 873 // Check state. Special file state must be checked before CheckDownload, |
| 902 // as CheckDownload will delete the output file. | 874 // as CheckDownload will delete the output file. |
| 903 EXPECT_EQ(1, browser()->tab_count()); | 875 EXPECT_EQ(1, browser()->tab_count()); |
| 904 FilePath downloaded_file(DestinationFile(browser(), file)); | 876 FilePath downloaded_file(DestinationFile(browser(), file)); |
| 905 if (file_util::VolumeSupportsADS(downloaded_file)) | 877 if (file_util::VolumeSupportsADS(downloaded_file)) |
| 906 EXPECT_TRUE(file_util::HasInternetZoneIdentifier(downloaded_file)); | 878 EXPECT_TRUE(file_util::HasInternetZoneIdentifier(downloaded_file)); |
| 907 CheckDownload(browser(), file, file); | 879 CheckDownload(browser(), file, file); |
| 908 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); | 880 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 909 } | 881 } |
| 910 #endif | 882 #endif |
| 911 | 883 |
| 912 // Put up a Select File dialog when the file is downloaded, due to | 884 // Put up a Select File dialog when the file is downloaded, due to |
| 913 // downloads preferences settings. | 885 // downloads preferences settings. |
| 914 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadMimeTypeSelect) { | 886 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadMimeTypeSelect) { |
| 915 // Re-enable prompting. | 887 // Re-enable prompting. |
| 916 browser()->profile()->GetPrefs()->SetBoolean( | 888 browser()->profile()->GetPrefs()->SetBoolean( |
| 917 prefs::kPromptForDownload, true); | 889 prefs::kPromptForDownload, true); |
| 918 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 890 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 919 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 891 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 920 | 892 |
| 921 NullSelectFile(browser()); | 893 EnableFileChooser(true); |
| 922 | 894 |
| 923 // Download the file and wait. We expect the Select File dialog to appear | 895 // Download the file and wait. We expect the Select File dialog to appear |
| 924 // due to the MIME type, but we still wait until the download completes. | 896 // due to the MIME type, but we still wait until the download completes. |
| 925 scoped_ptr<DownloadTestObserver> observer( | 897 scoped_ptr<DownloadTestObserver> observer( |
| 926 new DownloadTestObserverTerminal( | 898 new DownloadTestObserverTerminal( |
| 927 DownloadManagerForBrowser(browser()), | 899 DownloadManagerForBrowser(browser()), |
| 928 1, | 900 1, |
| 929 false, // Continue on select file. | |
| 930 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 901 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
| 931 ui_test_utils::NavigateToURLWithDisposition( | 902 ui_test_utils::NavigateToURLWithDisposition( |
| 932 browser(), url, CURRENT_TAB, | 903 browser(), url, CURRENT_TAB, |
| 933 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 904 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 934 observer->WaitForFinished(); | 905 observer->WaitForFinished(); |
| 935 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 906 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 936 CheckDownloadStates(1, DownloadItem::COMPLETE); | 907 CheckDownloadStates(1, DownloadItem::COMPLETE); |
| 937 EXPECT_TRUE(observer->select_file_dialog_seen()); | 908 EXPECT_TRUE(DidShowFileChooser()); |
| 938 | 909 |
| 939 // Check state. | 910 // Check state. |
| 940 EXPECT_EQ(1, browser()->tab_count()); | 911 EXPECT_EQ(1, browser()->tab_count()); |
| 941 CheckDownload(browser(), file, file); | 912 CheckDownload(browser(), file, file); |
| 942 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); | 913 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 943 } | 914 } |
| 944 | 915 |
| 945 // Access a file with a viewable mime-type, verify that a download | 916 // Access a file with a viewable mime-type, verify that a download |
| 946 // did not initiate. | 917 // did not initiate. |
| 947 IN_PROC_BROWSER_TEST_F(DownloadTest, NoDownload) { | 918 IN_PROC_BROWSER_TEST_F(DownloadTest, NoDownload) { |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1054 // Download a 0-size file with a content-disposition header, verify that the | 1025 // Download a 0-size file with a content-disposition header, verify that the |
| 1055 // download tab opened and the file exists as the filename specified in the | 1026 // download tab opened and the file exists as the filename specified in the |
| 1056 // header. This also ensures we properly handle empty file downloads. | 1027 // header. This also ensures we properly handle empty file downloads. |
| 1057 // The download shelf should be visible in the current tab. | 1028 // The download shelf should be visible in the current tab. |
| 1058 IN_PROC_BROWSER_TEST_F(DownloadTest, ContentDisposition) { | 1029 IN_PROC_BROWSER_TEST_F(DownloadTest, ContentDisposition) { |
| 1059 FilePath file(FILE_PATH_LITERAL("download-test3.gif")); | 1030 FilePath file(FILE_PATH_LITERAL("download-test3.gif")); |
| 1060 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1031 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1061 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif")); | 1032 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif")); |
| 1062 | 1033 |
| 1063 // Download a file and wait. | 1034 // Download a file and wait. |
| 1064 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); | 1035 DownloadAndWait(browser(), url); |
| 1065 | 1036 |
| 1066 CheckDownload(browser(), download_file, file); | 1037 CheckDownload(browser(), download_file, file); |
| 1067 | 1038 |
| 1068 // Check state. | 1039 // Check state. |
| 1069 EXPECT_EQ(1, browser()->tab_count()); | 1040 EXPECT_EQ(1, browser()->tab_count()); |
| 1070 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); | 1041 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1071 } | 1042 } |
| 1072 | 1043 |
| 1073 // Test that the download shelf is per-window by starting a download in one | 1044 // Test that the download shelf is per-window by starting a download in one |
| 1074 // tab, opening a second tab, closing the shelf, going back to the first tab, | 1045 // tab, opening a second tab, closing the shelf, going back to the first tab, |
| 1075 // and checking that the shelf is closed. | 1046 // and checking that the shelf is closed. |
| 1076 IN_PROC_BROWSER_TEST_F(DownloadTest, PerWindowShelf) { | 1047 IN_PROC_BROWSER_TEST_F(DownloadTest, PerWindowShelf) { |
| 1077 FilePath file(FILE_PATH_LITERAL("download-test3.gif")); | 1048 FilePath file(FILE_PATH_LITERAL("download-test3.gif")); |
| 1078 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1049 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1079 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif")); | 1050 FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif")); |
| 1080 | 1051 |
| 1081 // Download a file and wait. | 1052 // Download a file and wait. |
| 1082 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); | 1053 DownloadAndWait(browser(), url); |
| 1083 | 1054 |
| 1084 CheckDownload(browser(), download_file, file); | 1055 CheckDownload(browser(), download_file, file); |
| 1085 | 1056 |
| 1086 // Check state. | 1057 // Check state. |
| 1087 EXPECT_EQ(1, browser()->tab_count()); | 1058 EXPECT_EQ(1, browser()->tab_count()); |
| 1088 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); | 1059 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1089 | 1060 |
| 1090 // Open a second tab and wait. | 1061 // Open a second tab and wait. |
| 1091 EXPECT_NE(static_cast<TabContents*>(NULL), | 1062 EXPECT_NE(static_cast<TabContents*>(NULL), |
| 1092 chrome::AddSelectedTabWithURL(browser(), GURL(), | 1063 chrome::AddSelectedTabWithURL(browser(), GURL(), |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1106 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); | 1077 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1107 } | 1078 } |
| 1108 | 1079 |
| 1109 // Check whether the downloads shelf is closed when the downloads tab is | 1080 // Check whether the downloads shelf is closed when the downloads tab is |
| 1110 // invoked. | 1081 // invoked. |
| 1111 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseShelfOnDownloadsTab) { | 1082 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseShelfOnDownloadsTab) { |
| 1112 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1083 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1113 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1084 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1114 | 1085 |
| 1115 // Download the file and wait. We do not expect the Select File dialog. | 1086 // Download the file and wait. We do not expect the Select File dialog. |
| 1116 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); | 1087 DownloadAndWait(browser(), url); |
| 1117 | 1088 |
| 1118 // Check state. | 1089 // Check state. |
| 1119 EXPECT_EQ(1, browser()->tab_count()); | 1090 EXPECT_EQ(1, browser()->tab_count()); |
| 1120 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); | 1091 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1121 | 1092 |
| 1122 // Open the downloads tab. | 1093 // Open the downloads tab. |
| 1123 chrome::ShowDownloads(browser()); | 1094 chrome::ShowDownloads(browser()); |
| 1124 // The shelf should now be closed. | 1095 // The shelf should now be closed. |
| 1125 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); | 1096 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1126 } | 1097 } |
| (...skipping 27 matching lines...) Expand all Loading... |
| 1154 int window_count = BrowserList::size(); | 1125 int window_count = BrowserList::size(); |
| 1155 EXPECT_EQ(2, window_count); | 1126 EXPECT_EQ(2, window_count); |
| 1156 | 1127 |
| 1157 // Download a file in the Incognito window and wait. | 1128 // Download a file in the Incognito window and wait. |
| 1158 CreateAndSetDownloadsDirectory(incognito); | 1129 CreateAndSetDownloadsDirectory(incognito); |
| 1159 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1130 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1160 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1131 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1161 // Since |incognito| is a separate browser, we have to set it up explicitly. | 1132 // Since |incognito| is a separate browser, we have to set it up explicitly. |
| 1162 incognito->profile()->GetPrefs()->SetBoolean(prefs::kPromptForDownload, | 1133 incognito->profile()->GetPrefs()->SetBoolean(prefs::kPromptForDownload, |
| 1163 false); | 1134 false); |
| 1164 DownloadAndWait(incognito, url, EXPECT_NO_SELECT_DIALOG); | 1135 DownloadAndWait(incognito, url); |
| 1165 | 1136 |
| 1166 // We should still have 2 windows. | 1137 // We should still have 2 windows. |
| 1167 ExpectWindowCountAfterDownload(2); | 1138 ExpectWindowCountAfterDownload(2); |
| 1168 | 1139 |
| 1169 // Verify that the download shelf is showing for the Incognito window. | 1140 // Verify that the download shelf is showing for the Incognito window. |
| 1170 EXPECT_TRUE(incognito->window()->IsDownloadShelfVisible()); | 1141 EXPECT_TRUE(incognito->window()->IsDownloadShelfVisible()); |
| 1171 | 1142 |
| 1172 #if !defined(OS_MACOSX) | 1143 #if !defined(OS_MACOSX) |
| 1173 // On Mac OS X, the UI window close is delayed until the outermost | 1144 // On Mac OS X, the UI window close is delayed until the outermost |
| 1174 // message loop runs. So it isn't possible to get a BROWSER_CLOSED | 1145 // message loop runs. So it isn't possible to get a BROWSER_CLOSED |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1218 // automatically, and that the download shelf is visible in the current tab. | 1189 // automatically, and that the download shelf is visible in the current tab. |
| 1219 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseNewTab1) { | 1190 IN_PROC_BROWSER_TEST_F(DownloadTest, CloseNewTab1) { |
| 1220 // Download a file in a new background tab and wait. The tab is automatically | 1191 // Download a file in a new background tab and wait. The tab is automatically |
| 1221 // closed when the download begins. | 1192 // closed when the download begins. |
| 1222 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1193 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1223 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1194 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1224 DownloadAndWaitWithDisposition( | 1195 DownloadAndWaitWithDisposition( |
| 1225 browser(), | 1196 browser(), |
| 1226 url, | 1197 url, |
| 1227 NEW_BACKGROUND_TAB, | 1198 NEW_BACKGROUND_TAB, |
| 1228 EXPECT_NO_SELECT_DIALOG, | |
| 1229 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 1199 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 1230 | 1200 |
| 1231 // When the download finishes, we should still have one tab. | 1201 // When the download finishes, we should still have one tab. |
| 1232 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); | 1202 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1233 EXPECT_EQ(1, browser()->tab_count()); | 1203 EXPECT_EQ(1, browser()->tab_count()); |
| 1234 | 1204 |
| 1235 CheckDownload(browser(), file, file); | 1205 CheckDownload(browser(), file, file); |
| 1236 } | 1206 } |
| 1237 | 1207 |
| 1238 // Open a web page in the current tab, then download a file in another tab via | 1208 // Open a web page in the current tab, then download a file in another tab via |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1249 GURL url(URLRequestMockHTTPJob::GetMockUrl(file1)); | 1219 GURL url(URLRequestMockHTTPJob::GetMockUrl(file1)); |
| 1250 | 1220 |
| 1251 // Open a web page and wait. | 1221 // Open a web page and wait. |
| 1252 ui_test_utils::NavigateToURL(browser(), url); | 1222 ui_test_utils::NavigateToURL(browser(), url); |
| 1253 | 1223 |
| 1254 // Download a file in a new tab and wait (via Javascript). | 1224 // Download a file in a new tab and wait (via Javascript). |
| 1255 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1225 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1256 DownloadAndWaitWithDisposition(browser(), | 1226 DownloadAndWaitWithDisposition(browser(), |
| 1257 GURL("javascript:openNew()"), | 1227 GURL("javascript:openNew()"), |
| 1258 CURRENT_TAB, | 1228 CURRENT_TAB, |
| 1259 EXPECT_NO_SELECT_DIALOG, | |
| 1260 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 1229 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 1261 | 1230 |
| 1262 // When the download finishes, we should have two tabs. | 1231 // When the download finishes, we should have two tabs. |
| 1263 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); | 1232 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1264 EXPECT_EQ(2, browser()->tab_count()); | 1233 EXPECT_EQ(2, browser()->tab_count()); |
| 1265 | 1234 |
| 1266 CheckDownload(browser(), file, file); | 1235 CheckDownload(browser(), file, file); |
| 1267 } | 1236 } |
| 1268 | 1237 |
| 1269 // Open a web page in the current tab, open another tab via a Javascript call, | 1238 // Open a web page in the current tab, open another tab via a Javascript call, |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1290 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 1259 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 1291 | 1260 |
| 1292 EXPECT_EQ(2, browser()->tab_count()); | 1261 EXPECT_EQ(2, browser()->tab_count()); |
| 1293 | 1262 |
| 1294 // Download a file and wait. | 1263 // Download a file and wait. |
| 1295 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1264 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1296 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1265 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1297 DownloadAndWaitWithDisposition(browser(), | 1266 DownloadAndWaitWithDisposition(browser(), |
| 1298 url, | 1267 url, |
| 1299 CURRENT_TAB, | 1268 CURRENT_TAB, |
| 1300 EXPECT_NO_SELECT_DIALOG, | |
| 1301 ui_test_utils::BROWSER_TEST_NONE); | 1269 ui_test_utils::BROWSER_TEST_NONE); |
| 1302 | 1270 |
| 1303 // When the download finishes, we should have two tabs. | 1271 // When the download finishes, we should have two tabs. |
| 1304 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); | 1272 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1305 EXPECT_EQ(2, browser()->tab_count()); | 1273 EXPECT_EQ(2, browser()->tab_count()); |
| 1306 | 1274 |
| 1307 CheckDownload(browser(), file, file); | 1275 CheckDownload(browser(), file, file); |
| 1308 } | 1276 } |
| 1309 | 1277 |
| 1310 // Open a web page in the current tab, then download a file via Javascript, | 1278 // Open a web page in the current tab, then download a file via Javascript, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1322 | 1290 |
| 1323 // Open a web page and wait. | 1291 // Open a web page and wait. |
| 1324 ui_test_utils::NavigateToURL(browser(), url); | 1292 ui_test_utils::NavigateToURL(browser(), url); |
| 1325 | 1293 |
| 1326 // Download a file and wait. | 1294 // Download a file and wait. |
| 1327 // The file to download is "download-test1.lib". | 1295 // The file to download is "download-test1.lib". |
| 1328 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1296 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1329 DownloadAndWaitWithDisposition(browser(), | 1297 DownloadAndWaitWithDisposition(browser(), |
| 1330 GURL("javascript:openNew()"), | 1298 GURL("javascript:openNew()"), |
| 1331 CURRENT_TAB, | 1299 CURRENT_TAB, |
| 1332 EXPECT_NO_SELECT_DIALOG, | |
| 1333 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 1300 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 1334 | 1301 |
| 1335 // When the download finishes, we should still have one tab. | 1302 // When the download finishes, we should still have one tab. |
| 1336 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); | 1303 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1337 EXPECT_EQ(1, browser()->tab_count()); | 1304 EXPECT_EQ(1, browser()->tab_count()); |
| 1338 | 1305 |
| 1339 CheckDownload(browser(), file, file); | 1306 CheckDownload(browser(), file, file); |
| 1340 } | 1307 } |
| 1341 | 1308 |
| 1342 // Open a web page in the current tab, then call Javascript via a button to | 1309 // Open a web page in the current tab, then call Javascript via a button to |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1356 ui_test_utils::NavigateToURL(browser(), url); | 1323 ui_test_utils::NavigateToURL(browser(), url); |
| 1357 | 1324 |
| 1358 // Download a file in a new tab and wait. The tab will automatically close | 1325 // Download a file in a new tab and wait. The tab will automatically close |
| 1359 // when the download begins. | 1326 // when the download begins. |
| 1360 // The file to download is "download-test1.lib". | 1327 // The file to download is "download-test1.lib". |
| 1361 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1328 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1362 DownloadAndWaitWithDisposition( | 1329 DownloadAndWaitWithDisposition( |
| 1363 browser(), | 1330 browser(), |
| 1364 GURL("javascript:document.getElementById('form').submit()"), | 1331 GURL("javascript:document.getElementById('form').submit()"), |
| 1365 CURRENT_TAB, | 1332 CURRENT_TAB, |
| 1366 EXPECT_NO_SELECT_DIALOG, | |
| 1367 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 1333 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 1368 | 1334 |
| 1369 // When the download finishes, we should still have one tab. | 1335 // When the download finishes, we should still have one tab. |
| 1370 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); | 1336 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1371 EXPECT_EQ(1, browser()->tab_count()); | 1337 EXPECT_EQ(1, browser()->tab_count()); |
| 1372 | 1338 |
| 1373 CheckDownload(browser(), file, file); | 1339 CheckDownload(browser(), file, file); |
| 1374 } | 1340 } |
| 1375 | 1341 |
| 1376 // Download a file in a new window. | 1342 // Download a file in a new window. |
| 1377 // Verify that we have 2 windows, and the download shelf is not visible in the | 1343 // Verify that we have 2 windows, and the download shelf is not visible in the |
| 1378 // first window, but is visible in the second window. | 1344 // first window, but is visible in the second window. |
| 1379 // Close the new window. | 1345 // Close the new window. |
| 1380 // Verify that we have 1 window, and the download shelf is not visible. | 1346 // Verify that we have 1 window, and the download shelf is not visible. |
| 1381 // | 1347 // |
| 1382 // Regression test for http://crbug.com/44454 | 1348 // Regression test for http://crbug.com/44454 |
| 1383 IN_PROC_BROWSER_TEST_F(DownloadTest, NewWindow) { | 1349 IN_PROC_BROWSER_TEST_F(DownloadTest, NewWindow) { |
| 1384 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1350 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1385 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1351 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1386 #if !defined(OS_MACOSX) | 1352 #if !defined(OS_MACOSX) |
| 1387 // See below. | 1353 // See below. |
| 1388 Browser* first_browser = browser(); | 1354 Browser* first_browser = browser(); |
| 1389 #endif | 1355 #endif |
| 1390 | 1356 |
| 1391 // Download a file in a new window and wait. | 1357 // Download a file in a new window and wait. |
| 1392 DownloadAndWaitWithDisposition(browser(), | 1358 DownloadAndWaitWithDisposition(browser(), |
| 1393 url, | 1359 url, |
| 1394 NEW_WINDOW, | 1360 NEW_WINDOW, |
| 1395 EXPECT_NO_SELECT_DIALOG, | |
| 1396 ui_test_utils::BROWSER_TEST_NONE); | 1361 ui_test_utils::BROWSER_TEST_NONE); |
| 1397 | 1362 |
| 1398 // When the download finishes, the download shelf SHOULD NOT be visible in | 1363 // When the download finishes, the download shelf SHOULD NOT be visible in |
| 1399 // the first window. | 1364 // the first window. |
| 1400 ExpectWindowCountAfterDownload(2); | 1365 ExpectWindowCountAfterDownload(2); |
| 1401 EXPECT_EQ(1, browser()->tab_count()); | 1366 EXPECT_EQ(1, browser()->tab_count()); |
| 1402 // Download shelf should close. Download panel stays open on ChromeOS. | 1367 // Download shelf should close. Download panel stays open on ChromeOS. |
| 1403 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); | 1368 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 1404 | 1369 |
| 1405 // The download shelf SHOULD be visible in the second window. | 1370 // The download shelf SHOULD be visible in the second window. |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1455 string16(), &downloads); | 1420 string16(), &downloads); |
| 1456 ASSERT_EQ(1u, downloads.size()); | 1421 ASSERT_EQ(1u, downloads.size()); |
| 1457 ASSERT_EQ(DownloadItem::IN_PROGRESS, downloads[0]->GetState()); | 1422 ASSERT_EQ(DownloadItem::IN_PROGRESS, downloads[0]->GetState()); |
| 1458 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); | 1423 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 1459 DownloadItem* download1 = downloads[0]; // The only download. | 1424 DownloadItem* download1 = downloads[0]; // The only download. |
| 1460 | 1425 |
| 1461 // Start the second download and wait until it's done. | 1426 // Start the second download and wait until it's done. |
| 1462 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1427 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1463 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1428 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1464 // Download the file and wait. We do not expect the Select File dialog. | 1429 // Download the file and wait. We do not expect the Select File dialog. |
| 1465 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); | 1430 DownloadAndWait(browser(), url); |
| 1466 | 1431 |
| 1467 // Should now have 2 items on the download shelf. | 1432 // Should now have 2 items on the download shelf. |
| 1468 downloads.clear(); | 1433 downloads.clear(); |
| 1469 DownloadManagerForBrowser(browser())->SearchDownloads( | 1434 DownloadManagerForBrowser(browser())->SearchDownloads( |
| 1470 string16(), &downloads); | 1435 string16(), &downloads); |
| 1471 ASSERT_EQ(2u, downloads.size()); | 1436 ASSERT_EQ(2u, downloads.size()); |
| 1472 // We don't know the order of the downloads. | 1437 // We don't know the order of the downloads. |
| 1473 DownloadItem* download2 = downloads[(download1 == downloads[0]) ? 1 : 0]; | 1438 DownloadItem* download2 = downloads[(download1 == downloads[0]) ? 1 : 0]; |
| 1474 | 1439 |
| 1475 ASSERT_EQ(DownloadItem::IN_PROGRESS, download1->GetState()); | 1440 ASSERT_EQ(DownloadItem::IN_PROGRESS, download1->GetState()); |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1560 | 1525 |
| 1561 // Confirm a download makes it into the history properly. | 1526 // Confirm a download makes it into the history properly. |
| 1562 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadHistoryCheck) { | 1527 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadHistoryCheck) { |
| 1563 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1528 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1564 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1529 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1565 FilePath origin_file(OriginFile(file)); | 1530 FilePath origin_file(OriginFile(file)); |
| 1566 int64 origin_size; | 1531 int64 origin_size; |
| 1567 file_util::GetFileSize(origin_file, &origin_size); | 1532 file_util::GetFileSize(origin_file, &origin_size); |
| 1568 | 1533 |
| 1569 // Download the file and wait. We do not expect the Select File dialog. | 1534 // Download the file and wait. We do not expect the Select File dialog. |
| 1570 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); | 1535 DownloadAndWait(browser(), url); |
| 1571 | 1536 |
| 1572 // Get details of what downloads have just happened. | 1537 // Get details of what downloads have just happened. |
| 1573 std::vector<DownloadItem*> downloads; | 1538 std::vector<DownloadItem*> downloads; |
| 1574 GetDownloads(browser(), &downloads); | 1539 GetDownloads(browser(), &downloads); |
| 1575 ASSERT_EQ(1u, downloads.size()); | 1540 ASSERT_EQ(1u, downloads.size()); |
| 1576 int64 db_handle = downloads[0]->GetDbHandle(); | 1541 int64 db_handle = downloads[0]->GetDbHandle(); |
| 1577 | 1542 |
| 1578 // Check state. | 1543 // Check state. |
| 1579 EXPECT_EQ(1, browser()->tab_count()); | 1544 EXPECT_EQ(1, browser()->tab_count()); |
| 1580 CheckDownload(browser(), file, file); | 1545 CheckDownload(browser(), file, file); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1596 | 1561 |
| 1597 // Test for crbug.com/14505. This tests that chrome:// urls are still functional | 1562 // Test for crbug.com/14505. This tests that chrome:// urls are still functional |
| 1598 // after download of a file while viewing another chrome://. | 1563 // after download of a file while viewing another chrome://. |
| 1599 IN_PROC_BROWSER_TEST_F(DownloadTest, ChromeURLAfterDownload) { | 1564 IN_PROC_BROWSER_TEST_F(DownloadTest, ChromeURLAfterDownload) { |
| 1600 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1565 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1601 GURL download_url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1566 GURL download_url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1602 GURL flags_url(chrome::kChromeUIFlagsURL); | 1567 GURL flags_url(chrome::kChromeUIFlagsURL); |
| 1603 GURL extensions_url(chrome::kChromeUIExtensionsFrameURL); | 1568 GURL extensions_url(chrome::kChromeUIExtensionsFrameURL); |
| 1604 | 1569 |
| 1605 ui_test_utils::NavigateToURL(browser(), flags_url); | 1570 ui_test_utils::NavigateToURL(browser(), flags_url); |
| 1606 DownloadAndWait(browser(), download_url, EXPECT_NO_SELECT_DIALOG); | 1571 DownloadAndWait(browser(), download_url); |
| 1607 ui_test_utils::NavigateToURL(browser(), extensions_url); | 1572 ui_test_utils::NavigateToURL(browser(), extensions_url); |
| 1608 WebContents* contents = chrome::GetActiveWebContents(browser()); | 1573 WebContents* contents = chrome::GetActiveWebContents(browser()); |
| 1609 ASSERT_TRUE(contents); | 1574 ASSERT_TRUE(contents); |
| 1610 bool webui_responded = false; | 1575 bool webui_responded = false; |
| 1611 EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool( | 1576 EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool( |
| 1612 contents->GetRenderViewHost(), | 1577 contents->GetRenderViewHost(), |
| 1613 L"", | 1578 L"", |
| 1614 L"window.domAutomationController.send(window.webui_responded_);", | 1579 L"window.domAutomationController.send(window.webui_responded_);", |
| 1615 &webui_responded)); | 1580 &webui_responded)); |
| 1616 EXPECT_TRUE(webui_responded); | 1581 EXPECT_TRUE(webui_responded); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1629 ASSERT_TRUE(contents); | 1594 ASSERT_TRUE(contents); |
| 1630 bool result = false; | 1595 bool result = false; |
| 1631 EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool( | 1596 EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool( |
| 1632 contents->GetRenderViewHost(), | 1597 contents->GetRenderViewHost(), |
| 1633 L"", | 1598 L"", |
| 1634 L"window.onunload = function() { var do_nothing = 0; }; " | 1599 L"window.onunload = function() { var do_nothing = 0; }; " |
| 1635 L"window.domAutomationController.send(true);", | 1600 L"window.domAutomationController.send(true);", |
| 1636 &result)); | 1601 &result)); |
| 1637 EXPECT_TRUE(result); | 1602 EXPECT_TRUE(result); |
| 1638 | 1603 |
| 1639 DownloadAndWait(browser(), download_url, EXPECT_NO_SELECT_DIALOG); | 1604 DownloadAndWait(browser(), download_url); |
| 1640 | 1605 |
| 1641 content::WindowedNotificationObserver signal( | 1606 content::WindowedNotificationObserver signal( |
| 1642 chrome::NOTIFICATION_BROWSER_CLOSED, | 1607 chrome::NOTIFICATION_BROWSER_CLOSED, |
| 1643 content::Source<Browser>(browser())); | 1608 content::Source<Browser>(browser())); |
| 1644 chrome::CloseWindow(browser()); | 1609 chrome::CloseWindow(browser()); |
| 1645 signal.Wait(); | 1610 signal.Wait(); |
| 1646 } | 1611 } |
| 1647 | 1612 |
| 1648 // Test to make sure the 'download' attribute in anchor tag is respected. | 1613 // Test to make sure the 'download' attribute in anchor tag is respected. |
| 1649 IN_PROC_BROWSER_TEST_F(DownloadTest, AnchorDownloadTag) { | 1614 IN_PROC_BROWSER_TEST_F(DownloadTest, AnchorDownloadTag) { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1671 FilePath file(FILE_PATH_LITERAL("download-autoopen.txt")); | 1636 FilePath file(FILE_PATH_LITERAL("download-autoopen.txt")); |
| 1672 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1637 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1673 | 1638 |
| 1674 ASSERT_TRUE( | 1639 ASSERT_TRUE( |
| 1675 GetDownloadPrefs(browser())->EnableAutoOpenBasedOnExtension(file)); | 1640 GetDownloadPrefs(browser())->EnableAutoOpenBasedOnExtension(file)); |
| 1676 | 1641 |
| 1677 // Mock out external opening on all downloads until end of test. | 1642 // Mock out external opening on all downloads until end of test. |
| 1678 MockDownloadOpeningObserver observer( | 1643 MockDownloadOpeningObserver observer( |
| 1679 DownloadManagerForBrowser(browser())); | 1644 DownloadManagerForBrowser(browser())); |
| 1680 | 1645 |
| 1681 DownloadAndWait(browser(), url, EXPECT_NO_SELECT_DIALOG); | 1646 DownloadAndWait(browser(), url); |
| 1682 | 1647 |
| 1683 // Find the download and confirm it was opened. | 1648 // Find the download and confirm it was opened. |
| 1684 std::vector<DownloadItem*> downloads; | 1649 std::vector<DownloadItem*> downloads; |
| 1685 DownloadManagerForBrowser(browser())->SearchDownloads( | 1650 DownloadManagerForBrowser(browser())->SearchDownloads( |
| 1686 string16(), &downloads); | 1651 string16(), &downloads); |
| 1687 ASSERT_EQ(1u, downloads.size()); | 1652 ASSERT_EQ(1u, downloads.size()); |
| 1688 EXPECT_EQ(DownloadItem::COMPLETE, downloads[0]->GetState()); | 1653 EXPECT_EQ(DownloadItem::COMPLETE, downloads[0]->GetState()); |
| 1689 EXPECT_TRUE(downloads[0]->GetOpened()); | 1654 EXPECT_TRUE(downloads[0]->GetOpened()); |
| 1690 | 1655 |
| 1691 // As long as we're here, confirmed everything else is good. | 1656 // As long as we're here, confirmed everything else is good. |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1973 EXPECT_EQ(3, search_results[1]->GetDbHandle()); | 1938 EXPECT_EQ(3, search_results[1]->GetDbHandle()); |
| 1974 search_results.clear(); | 1939 search_results.clear(); |
| 1975 } | 1940 } |
| 1976 | 1941 |
| 1977 // Tests for download initiation functions. | 1942 // Tests for download initiation functions. |
| 1978 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrl) { | 1943 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrl) { |
| 1979 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1944 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1980 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1945 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1981 | 1946 |
| 1982 // DownloadUrl always prompts; return acceptance of whatever it prompts. | 1947 // DownloadUrl always prompts; return acceptance of whatever it prompts. |
| 1983 NullSelectFile(browser()); | 1948 EnableFileChooser(true); |
| 1984 | 1949 |
| 1985 WebContents* web_contents = chrome::GetActiveWebContents(browser()); | 1950 WebContents* web_contents = chrome::GetActiveWebContents(browser()); |
| 1986 ASSERT_TRUE(web_contents); | 1951 ASSERT_TRUE(web_contents); |
| 1987 | 1952 |
| 1988 DownloadTestObserver* observer( | 1953 DownloadTestObserver* observer( |
| 1989 new DownloadTestObserverTerminal( | 1954 new DownloadTestObserverTerminal( |
| 1990 DownloadManagerForBrowser(browser()), 1, | 1955 DownloadManagerForBrowser(browser()), 1, |
| 1991 false, // Ignore select file. | |
| 1992 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 1956 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
| 1993 content::DownloadSaveInfo save_info; | 1957 content::DownloadSaveInfo save_info; |
| 1994 save_info.prompt_for_save_location = true; | 1958 save_info.prompt_for_save_location = true; |
| 1995 scoped_ptr<DownloadUrlParameters> params( | 1959 scoped_ptr<DownloadUrlParameters> params( |
| 1996 DownloadUrlParameters::FromWebContents(web_contents, url, save_info)); | 1960 DownloadUrlParameters::FromWebContents(web_contents, url, save_info)); |
| 1997 DownloadManagerForBrowser(browser())->DownloadUrl(params.Pass()); | 1961 DownloadManagerForBrowser(browser())->DownloadUrl(params.Pass()); |
| 1998 observer->WaitForFinished(); | 1962 observer->WaitForFinished(); |
| 1999 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 1963 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 2000 CheckDownloadStates(1, DownloadItem::COMPLETE); | 1964 CheckDownloadStates(1, DownloadItem::COMPLETE); |
| 2001 EXPECT_TRUE(observer->select_file_dialog_seen()); | 1965 EXPECT_TRUE(DidShowFileChooser()); |
| 2002 | 1966 |
| 2003 // Check state. | 1967 // Check state. |
| 2004 EXPECT_EQ(1, browser()->tab_count()); | 1968 EXPECT_EQ(1, browser()->tab_count()); |
| 2005 ASSERT_TRUE(CheckDownload(browser(), file, file)); | 1969 ASSERT_TRUE(CheckDownload(browser(), file, file)); |
| 2006 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); | 1970 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| 2007 } | 1971 } |
| 2008 | 1972 |
| 2009 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrlToPath) { | 1973 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadUrlToPath) { |
| 2010 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1974 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 2011 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1975 GURL url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 2033 target_file_full_path, | 1997 target_file_full_path, |
| 2034 OriginFile(file))); | 1998 OriginFile(file))); |
| 2035 | 1999 |
| 2036 // Temporary downloads won't be visible. | 2000 // Temporary downloads won't be visible. |
| 2037 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); | 2001 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 2038 } | 2002 } |
| 2039 | 2003 |
| 2040 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaGet) { | 2004 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaGet) { |
| 2041 // Do initial setup. | 2005 // Do initial setup. |
| 2042 ASSERT_TRUE(test_server()->Start()); | 2006 ASSERT_TRUE(test_server()->Start()); |
| 2043 NullSelectFile(browser()); | 2007 EnableFileChooser(true); |
| 2044 std::vector<DownloadItem*> download_items; | 2008 std::vector<DownloadItem*> download_items; |
| 2045 GetDownloads(browser(), &download_items); | 2009 GetDownloads(browser(), &download_items); |
| 2046 ASSERT_TRUE(download_items.empty()); | 2010 ASSERT_TRUE(download_items.empty()); |
| 2047 | 2011 |
| 2048 // Navigate to a non-HTML resource. The resource also has | 2012 // Navigate to a non-HTML resource. The resource also has |
| 2049 // Cache-Control: no-cache set, which normally requires revalidation | 2013 // Cache-Control: no-cache set, which normally requires revalidation |
| 2050 // each time. | 2014 // each time. |
| 2051 GURL url = test_server()->GetURL("files/downloads/image.jpg"); | 2015 GURL url = test_server()->GetURL("files/downloads/image.jpg"); |
| 2052 ASSERT_TRUE(url.is_valid()); | 2016 ASSERT_TRUE(url.is_valid()); |
| 2053 ui_test_utils::NavigateToURL(browser(), url); | 2017 ui_test_utils::NavigateToURL(browser(), url); |
| 2054 | 2018 |
| 2055 // Stop the test server, and then try to save the page. If cache validation | 2019 // Stop the test server, and then try to save the page. If cache validation |
| 2056 // is not bypassed then this will fail since the server is no longer | 2020 // is not bypassed then this will fail since the server is no longer |
| 2057 // reachable. | 2021 // reachable. |
| 2058 ASSERT_TRUE(test_server()->Stop()); | 2022 ASSERT_TRUE(test_server()->Stop()); |
| 2059 scoped_ptr<DownloadTestObserver> waiter( | 2023 scoped_ptr<DownloadTestObserver> waiter( |
| 2060 new DownloadTestObserverTerminal( | 2024 new DownloadTestObserverTerminal( |
| 2061 DownloadManagerForBrowser(browser()), 1, | 2025 DownloadManagerForBrowser(browser()), 1, |
| 2062 false, DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 2026 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
| 2063 chrome::SavePage(browser()); | 2027 chrome::SavePage(browser()); |
| 2064 waiter->WaitForFinished(); | 2028 waiter->WaitForFinished(); |
| 2065 EXPECT_EQ(1u, waiter->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 2029 EXPECT_EQ(1u, waiter->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 2066 CheckDownloadStates(1, DownloadItem::COMPLETE); | 2030 CheckDownloadStates(1, DownloadItem::COMPLETE); |
| 2067 | 2031 |
| 2068 // Validate that the correct file was downloaded. | 2032 // Validate that the correct file was downloaded. |
| 2069 GetDownloads(browser(), &download_items); | 2033 GetDownloads(browser(), &download_items); |
| 2070 EXPECT_TRUE(waiter->select_file_dialog_seen()); | 2034 EXPECT_TRUE(DidShowFileChooser()); |
| 2071 ASSERT_EQ(1u, download_items.size()); | 2035 ASSERT_EQ(1u, download_items.size()); |
| 2072 ASSERT_EQ(url, download_items[0]->GetOriginalUrl()); | 2036 ASSERT_EQ(url, download_items[0]->GetOriginalUrl()); |
| 2073 | 2037 |
| 2074 // Try to download it via a context menu. | 2038 // Try to download it via a context menu. |
| 2075 scoped_ptr<DownloadTestObserver> waiter_context_menu( | 2039 scoped_ptr<DownloadTestObserver> waiter_context_menu( |
| 2076 new DownloadTestObserverTerminal( | 2040 new DownloadTestObserverTerminal( |
| 2077 DownloadManagerForBrowser(browser()), 1, | 2041 DownloadManagerForBrowser(browser()), 1, |
| 2078 false, DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 2042 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
| 2079 content::ContextMenuParams context_menu_params; | 2043 content::ContextMenuParams context_menu_params; |
| 2080 context_menu_params.media_type = WebKit::WebContextMenuData::MediaTypeImage; | 2044 context_menu_params.media_type = WebKit::WebContextMenuData::MediaTypeImage; |
| 2081 context_menu_params.src_url = url; | 2045 context_menu_params.src_url = url; |
| 2082 context_menu_params.page_url = url; | 2046 context_menu_params.page_url = url; |
| 2083 TestRenderViewContextMenu menu(chrome::GetActiveWebContents(browser()), | 2047 TestRenderViewContextMenu menu(chrome::GetActiveWebContents(browser()), |
| 2084 context_menu_params); | 2048 context_menu_params); |
| 2085 menu.Init(); | 2049 menu.Init(); |
| 2086 menu.ExecuteCommand(IDC_CONTENT_CONTEXT_SAVEIMAGEAS); | 2050 menu.ExecuteCommand(IDC_CONTENT_CONTEXT_SAVEIMAGEAS); |
| 2087 waiter_context_menu->WaitForFinished(); | 2051 waiter_context_menu->WaitForFinished(); |
| 2088 EXPECT_EQ( | 2052 EXPECT_EQ( |
| 2089 1u, waiter_context_menu->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 2053 1u, waiter_context_menu->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 2090 CheckDownloadStates(2, DownloadItem::COMPLETE); | 2054 CheckDownloadStates(2, DownloadItem::COMPLETE); |
| 2091 | 2055 |
| 2092 // Validate that the correct file was downloaded via the context menu. | 2056 // Validate that the correct file was downloaded via the context menu. |
| 2093 download_items.clear(); | 2057 download_items.clear(); |
| 2094 GetDownloads(browser(), &download_items); | 2058 GetDownloads(browser(), &download_items); |
| 2095 EXPECT_TRUE(waiter_context_menu->select_file_dialog_seen()); | 2059 EXPECT_TRUE(DidShowFileChooser()); |
| 2096 ASSERT_EQ(2u, download_items.size()); | 2060 ASSERT_EQ(2u, download_items.size()); |
| 2097 ASSERT_EQ(url, download_items[0]->GetOriginalUrl()); | 2061 ASSERT_EQ(url, download_items[0]->GetOriginalUrl()); |
| 2098 ASSERT_EQ(url, download_items[1]->GetOriginalUrl()); | 2062 ASSERT_EQ(url, download_items[1]->GetOriginalUrl()); |
| 2099 } | 2063 } |
| 2100 | 2064 |
| 2101 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaPost) { | 2065 IN_PROC_BROWSER_TEST_F(DownloadTest, SavePageNonHTMLViaPost) { |
| 2102 // Do initial setup. | 2066 // Do initial setup. |
| 2103 ASSERT_TRUE(test_server()->Start()); | 2067 ASSERT_TRUE(test_server()->Start()); |
| 2104 NullSelectFile(browser()); | 2068 EnableFileChooser(true); |
| 2105 std::vector<DownloadItem*> download_items; | 2069 std::vector<DownloadItem*> download_items; |
| 2106 GetDownloads(browser(), &download_items); | 2070 GetDownloads(browser(), &download_items); |
| 2107 ASSERT_TRUE(download_items.empty()); | 2071 ASSERT_TRUE(download_items.empty()); |
| 2108 | 2072 |
| 2109 // Navigate to a form page. | 2073 // Navigate to a form page. |
| 2110 GURL form_url = test_server()->GetURL( | 2074 GURL form_url = test_server()->GetURL( |
| 2111 "files/downloads/form_page_to_post.html"); | 2075 "files/downloads/form_page_to_post.html"); |
| 2112 ASSERT_TRUE(form_url.is_valid()); | 2076 ASSERT_TRUE(form_url.is_valid()); |
| 2113 ui_test_utils::NavigateToURL(browser(), form_url); | 2077 ui_test_utils::NavigateToURL(browser(), form_url); |
| 2114 | 2078 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 2131 EXPECT_EQ(jpeg_url, web_contents->GetURL()); | 2095 EXPECT_EQ(jpeg_url, web_contents->GetURL()); |
| 2132 | 2096 |
| 2133 // Stop the test server, and then try to save the page. If cache validation | 2097 // Stop the test server, and then try to save the page. If cache validation |
| 2134 // is not bypassed then this will fail since the server is no longer | 2098 // is not bypassed then this will fail since the server is no longer |
| 2135 // reachable. This will also fail if it tries to be retrieved via "GET" | 2099 // reachable. This will also fail if it tries to be retrieved via "GET" |
| 2136 // rather than "POST". | 2100 // rather than "POST". |
| 2137 ASSERT_TRUE(test_server()->Stop()); | 2101 ASSERT_TRUE(test_server()->Stop()); |
| 2138 scoped_ptr<DownloadTestObserver> waiter( | 2102 scoped_ptr<DownloadTestObserver> waiter( |
| 2139 new DownloadTestObserverTerminal( | 2103 new DownloadTestObserverTerminal( |
| 2140 DownloadManagerForBrowser(browser()), 1, | 2104 DownloadManagerForBrowser(browser()), 1, |
| 2141 false, DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 2105 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
| 2142 chrome::SavePage(browser()); | 2106 chrome::SavePage(browser()); |
| 2143 waiter->WaitForFinished(); | 2107 waiter->WaitForFinished(); |
| 2144 EXPECT_EQ(1u, waiter->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 2108 EXPECT_EQ(1u, waiter->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 2145 CheckDownloadStates(1, DownloadItem::COMPLETE); | 2109 CheckDownloadStates(1, DownloadItem::COMPLETE); |
| 2146 | 2110 |
| 2147 // Validate that the correct file was downloaded. | 2111 // Validate that the correct file was downloaded. |
| 2148 GetDownloads(browser(), &download_items); | 2112 GetDownloads(browser(), &download_items); |
| 2149 EXPECT_TRUE(waiter->select_file_dialog_seen()); | 2113 EXPECT_TRUE(DidShowFileChooser()); |
| 2150 ASSERT_EQ(1u, download_items.size()); | 2114 ASSERT_EQ(1u, download_items.size()); |
| 2151 ASSERT_EQ(jpeg_url, download_items[0]->GetOriginalUrl()); | 2115 ASSERT_EQ(jpeg_url, download_items[0]->GetOriginalUrl()); |
| 2152 | 2116 |
| 2153 // Try to download it via a context menu. | 2117 // Try to download it via a context menu. |
| 2154 scoped_ptr<DownloadTestObserver> waiter_context_menu( | 2118 scoped_ptr<DownloadTestObserver> waiter_context_menu( |
| 2155 new DownloadTestObserverTerminal( | 2119 new DownloadTestObserverTerminal( |
| 2156 DownloadManagerForBrowser(browser()), 1, | 2120 DownloadManagerForBrowser(browser()), 1, |
| 2157 false, DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 2121 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
| 2158 content::ContextMenuParams context_menu_params; | 2122 content::ContextMenuParams context_menu_params; |
| 2159 context_menu_params.media_type = WebKit::WebContextMenuData::MediaTypeImage; | 2123 context_menu_params.media_type = WebKit::WebContextMenuData::MediaTypeImage; |
| 2160 context_menu_params.src_url = jpeg_url; | 2124 context_menu_params.src_url = jpeg_url; |
| 2161 context_menu_params.page_url = jpeg_url; | 2125 context_menu_params.page_url = jpeg_url; |
| 2162 TestRenderViewContextMenu menu(web_contents, context_menu_params); | 2126 TestRenderViewContextMenu menu(web_contents, context_menu_params); |
| 2163 menu.Init(); | 2127 menu.Init(); |
| 2164 menu.ExecuteCommand(IDC_CONTENT_CONTEXT_SAVEIMAGEAS); | 2128 menu.ExecuteCommand(IDC_CONTENT_CONTEXT_SAVEIMAGEAS); |
| 2165 waiter_context_menu->WaitForFinished(); | 2129 waiter_context_menu->WaitForFinished(); |
| 2166 EXPECT_EQ( | 2130 EXPECT_EQ( |
| 2167 1u, waiter_context_menu->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 2131 1u, waiter_context_menu->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 2168 CheckDownloadStates(2, DownloadItem::COMPLETE); | 2132 CheckDownloadStates(2, DownloadItem::COMPLETE); |
| 2169 | 2133 |
| 2170 // Validate that the correct file was downloaded via the context menu. | 2134 // Validate that the correct file was downloaded via the context menu. |
| 2171 download_items.clear(); | 2135 download_items.clear(); |
| 2172 GetDownloads(browser(), &download_items); | 2136 GetDownloads(browser(), &download_items); |
| 2173 EXPECT_TRUE(waiter_context_menu->select_file_dialog_seen()); | 2137 EXPECT_TRUE(DidShowFileChooser()); |
| 2174 ASSERT_EQ(2u, download_items.size()); | 2138 ASSERT_EQ(2u, download_items.size()); |
| 2175 ASSERT_EQ(jpeg_url, download_items[0]->GetOriginalUrl()); | 2139 ASSERT_EQ(jpeg_url, download_items[0]->GetOriginalUrl()); |
| 2176 ASSERT_EQ(jpeg_url, download_items[1]->GetOriginalUrl()); | 2140 ASSERT_EQ(jpeg_url, download_items[1]->GetOriginalUrl()); |
| 2177 } | 2141 } |
| 2178 | 2142 |
| 2179 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadErrorsServer) { | 2143 IN_PROC_BROWSER_TEST_F(DownloadTest, DownloadErrorsServer) { |
| 2180 DownloadInfo download_info[] = { | 2144 DownloadInfo download_info[] = { |
| 2181 { // Normal navigated download. | 2145 { // Normal navigated download. |
| 2182 "a_zip_file.zip", | 2146 "a_zip_file.zip", |
| 2183 DOWNLOAD_NAVIGATE, | 2147 DOWNLOAD_NAVIGATE, |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2452 ui_test_utils::NavigateToURL(browser(), url); | 2416 ui_test_utils::NavigateToURL(browser(), url); |
| 2453 observer->WaitForFinished(); | 2417 observer->WaitForFinished(); |
| 2454 | 2418 |
| 2455 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 2419 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 2456 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); | 2420 EXPECT_EQ(1u, observer->NumDangerousDownloadsSeen()); |
| 2457 } | 2421 } |
| 2458 | 2422 |
| 2459 IN_PROC_BROWSER_TEST_F(DownloadTest, LoadURLExternallyReferrerPolicy) { | 2423 IN_PROC_BROWSER_TEST_F(DownloadTest, LoadURLExternallyReferrerPolicy) { |
| 2460 // Do initial setup. | 2424 // Do initial setup. |
| 2461 ASSERT_TRUE(test_server()->Start()); | 2425 ASSERT_TRUE(test_server()->Start()); |
| 2462 NullSelectFile(browser()); | 2426 EnableFileChooser(true); |
| 2463 std::vector<DownloadItem*> download_items; | 2427 std::vector<DownloadItem*> download_items; |
| 2464 GetDownloads(browser(), &download_items); | 2428 GetDownloads(browser(), &download_items); |
| 2465 ASSERT_TRUE(download_items.empty()); | 2429 ASSERT_TRUE(download_items.empty()); |
| 2466 | 2430 |
| 2467 // Navigate to a page with a referrer policy and a link on it. The link points | 2431 // Navigate to a page with a referrer policy and a link on it. The link points |
| 2468 // to testserver's /echoheader. | 2432 // to testserver's /echoheader. |
| 2469 GURL url = test_server()->GetURL("files/downloads/referrer_policy.html"); | 2433 GURL url = test_server()->GetURL("files/downloads/referrer_policy.html"); |
| 2470 ASSERT_TRUE(url.is_valid()); | 2434 ASSERT_TRUE(url.is_valid()); |
| 2471 ui_test_utils::NavigateToURL(browser(), url); | 2435 ui_test_utils::NavigateToURL(browser(), url); |
| 2472 | 2436 |
| 2473 scoped_ptr<DownloadTestObserver> waiter( | 2437 scoped_ptr<DownloadTestObserver> waiter( |
| 2474 new DownloadTestObserverTerminal( | 2438 new DownloadTestObserverTerminal( |
| 2475 DownloadManagerForBrowser(browser()), 1, | 2439 DownloadManagerForBrowser(browser()), 1, |
| 2476 false, DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); | 2440 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL)); |
| 2477 | 2441 |
| 2478 // Click on the link with the alt key pressed. This will download the link | 2442 // Click on the link with the alt key pressed. This will download the link |
| 2479 // target. | 2443 // target. |
| 2480 WebContents* tab = chrome::GetActiveWebContents(browser()); | 2444 WebContents* tab = chrome::GetActiveWebContents(browser()); |
| 2481 WebKit::WebMouseEvent mouse_event; | 2445 WebKit::WebMouseEvent mouse_event; |
| 2482 mouse_event.type = WebKit::WebInputEvent::MouseDown; | 2446 mouse_event.type = WebKit::WebInputEvent::MouseDown; |
| 2483 mouse_event.button = WebKit::WebMouseEvent::ButtonLeft; | 2447 mouse_event.button = WebKit::WebMouseEvent::ButtonLeft; |
| 2484 mouse_event.x = 15; | 2448 mouse_event.x = 15; |
| 2485 mouse_event.y = 15; | 2449 mouse_event.y = 15; |
| 2486 mouse_event.clickCount = 1; | 2450 mouse_event.clickCount = 1; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 2497 GetDownloads(browser(), &download_items); | 2461 GetDownloads(browser(), &download_items); |
| 2498 ASSERT_EQ(1u, download_items.size()); | 2462 ASSERT_EQ(1u, download_items.size()); |
| 2499 ASSERT_EQ(test_server()->GetURL("echoheader?Referer"), | 2463 ASSERT_EQ(test_server()->GetURL("echoheader?Referer"), |
| 2500 download_items[0]->GetOriginalUrl()); | 2464 download_items[0]->GetOriginalUrl()); |
| 2501 | 2465 |
| 2502 // Check that the file contains the expected referrer. | 2466 // Check that the file contains the expected referrer. |
| 2503 FilePath file(download_items[0]->GetFullPath()); | 2467 FilePath file(download_items[0]->GetFullPath()); |
| 2504 std::string expected_contents = test_server()->GetURL("").spec(); | 2468 std::string expected_contents = test_server()->GetURL("").spec(); |
| 2505 ASSERT_TRUE(VerifyFile(file, expected_contents, expected_contents.length())); | 2469 ASSERT_TRUE(VerifyFile(file, expected_contents, expected_contents.length())); |
| 2506 } | 2470 } |
| OLD | NEW |