| 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 <algorithm> | 5 #include <algorithm> |
| 6 | 6 |
| 7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
| 9 #include "base/json/json_writer.h" | 9 #include "base/json/json_writer.h" |
| 10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
| (...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 270 BrowserThread::PostTask( | 270 BrowserThread::PostTask( |
| 271 BrowserThread::IO, FROM_HERE, | 271 BrowserThread::IO, FROM_HERE, |
| 272 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true)); | 272 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true)); |
| 273 InProcessBrowserTest::SetUpOnMainThread(); | 273 InProcessBrowserTest::SetUpOnMainThread(); |
| 274 GoOnTheRecord(); | 274 GoOnTheRecord(); |
| 275 CreateAndSetDownloadsDirectory(); | 275 CreateAndSetDownloadsDirectory(); |
| 276 current_browser()->profile()->GetPrefs()->SetBoolean( | 276 current_browser()->profile()->GetPrefs()->SetBoolean( |
| 277 prefs::kPromptForDownload, false); | 277 prefs::kPromptForDownload, false); |
| 278 GetOnRecordManager()->RemoveAllDownloads(); | 278 GetOnRecordManager()->RemoveAllDownloads(); |
| 279 events_listener_.reset(new DownloadsEventsListener()); | 279 events_listener_.reset(new DownloadsEventsListener()); |
| 280 // Disable file chooser for current profile. |
| 281 DownloadTestFileChooserObserver observer(current_browser()->profile()); |
| 282 observer.EnableFileChooser(false); |
| 280 } | 283 } |
| 281 | 284 |
| 282 void GoOnTheRecord() { current_browser_ = browser(); } | 285 void GoOnTheRecord() { current_browser_ = browser(); } |
| 283 | 286 |
| 284 void GoOffTheRecord() { | 287 void GoOffTheRecord() { |
| 285 if (!incognito_browser_) { | 288 if (!incognito_browser_) { |
| 286 incognito_browser_ = CreateIncognitoBrowser(); | 289 incognito_browser_ = CreateIncognitoBrowser(); |
| 287 GetOffRecordManager()->RemoveAllDownloads(); | 290 GetOffRecordManager()->RemoveAllDownloads(); |
| 291 // Disable file chooser for incognito profile. |
| 292 DownloadTestFileChooserObserver observer(incognito_browser_->profile()); |
| 293 observer.EnableFileChooser(false); |
| 288 } | 294 } |
| 289 current_browser_ = incognito_browser_; | 295 current_browser_ = incognito_browser_; |
| 290 } | 296 } |
| 291 | 297 |
| 292 bool WaitFor(const std::string& event_name, const std::string& json_args) { | 298 bool WaitFor(const std::string& event_name, const std::string& json_args) { |
| 293 return events_listener_->WaitFor( | 299 return events_listener_->WaitFor( |
| 294 current_browser()->profile(), event_name, json_args); | 300 current_browser()->profile(), event_name, json_args); |
| 295 } | 301 } |
| 296 | 302 |
| 297 bool WaitForInterruption(DownloadItem* item, int expected_error, | 303 bool WaitForInterruption(DownloadItem* item, int expected_error, |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 386 for (size_t i = 0; i < count; ++i) { | 392 for (size_t i = 0; i < count; ++i) { |
| 387 scoped_ptr<DownloadTestObserver> observer( | 393 scoped_ptr<DownloadTestObserver> observer( |
| 388 CreateInProgressDownloadObserver(1)); | 394 CreateInProgressDownloadObserver(1)); |
| 389 GURL slow_download_url(URLRequestSlowDownloadJob::kUnknownSizeUrl); | 395 GURL slow_download_url(URLRequestSlowDownloadJob::kUnknownSizeUrl); |
| 390 ui_test_utils::NavigateToURLWithDisposition( | 396 ui_test_utils::NavigateToURLWithDisposition( |
| 391 current_browser(), slow_download_url, CURRENT_TAB, | 397 current_browser(), slow_download_url, CURRENT_TAB, |
| 392 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 398 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 393 observer->WaitForFinished(); | 399 observer->WaitForFinished(); |
| 394 EXPECT_EQ( | 400 EXPECT_EQ( |
| 395 1u, observer->NumDownloadsSeenInState(DownloadItem::IN_PROGRESS)); | 401 1u, observer->NumDownloadsSeenInState(DownloadItem::IN_PROGRESS)); |
| 396 // We don't expect a select file dialog. | |
| 397 ASSERT_FALSE(observer->select_file_dialog_seen()); | |
| 398 } | 402 } |
| 399 GetCurrentManager()->GetAllDownloads(FilePath(), items); | 403 GetCurrentManager()->GetAllDownloads(FilePath(), items); |
| 400 ASSERT_EQ(count, items->size()); | 404 ASSERT_EQ(count, items->size()); |
| 401 } | 405 } |
| 402 | 406 |
| 403 DownloadItem* CreateSlowTestDownload() { | 407 DownloadItem* CreateSlowTestDownload() { |
| 404 scoped_ptr<DownloadTestObserver> observer( | 408 scoped_ptr<DownloadTestObserver> observer( |
| 405 CreateInProgressDownloadObserver(1)); | 409 CreateInProgressDownloadObserver(1)); |
| 406 GURL slow_download_url(URLRequestSlowDownloadJob::kUnknownSizeUrl); | 410 GURL slow_download_url(URLRequestSlowDownloadJob::kUnknownSizeUrl); |
| 407 DownloadManager* manager = GetCurrentManager(); | 411 DownloadManager* manager = GetCurrentManager(); |
| 408 | 412 |
| 409 EXPECT_EQ(0, manager->InProgressCount()); | 413 EXPECT_EQ(0, manager->InProgressCount()); |
| 410 if (manager->InProgressCount() != 0) | 414 if (manager->InProgressCount() != 0) |
| 411 return NULL; | 415 return NULL; |
| 412 | 416 |
| 413 ui_test_utils::NavigateToURLWithDisposition( | 417 ui_test_utils::NavigateToURLWithDisposition( |
| 414 current_browser(), slow_download_url, CURRENT_TAB, | 418 current_browser(), slow_download_url, CURRENT_TAB, |
| 415 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 419 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 416 | 420 |
| 417 observer->WaitForFinished(); | 421 observer->WaitForFinished(); |
| 418 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::IN_PROGRESS)); | 422 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::IN_PROGRESS)); |
| 419 // We don't expect a select file dialog. | |
| 420 if (observer->select_file_dialog_seen()) | |
| 421 return NULL; | |
| 422 | 423 |
| 423 DownloadManager::DownloadVector items; | 424 DownloadManager::DownloadVector items; |
| 424 manager->GetAllDownloads(FilePath(), &items); | 425 manager->GetAllDownloads(FilePath(), &items); |
| 425 | 426 |
| 426 DownloadItem* new_item = NULL; | 427 DownloadItem* new_item = NULL; |
| 427 for (DownloadManager::DownloadVector::iterator iter = items.begin(); | 428 for (DownloadManager::DownloadVector::iterator iter = items.begin(); |
| 428 iter != items.end(); ++iter) { | 429 iter != items.end(); ++iter) { |
| 429 if ((*iter)->GetState() == DownloadItem::IN_PROGRESS) { | 430 if ((*iter)->GetState() == DownloadItem::IN_PROGRESS) { |
| 430 // There should be only one IN_PROGRESS item. | 431 // There should be only one IN_PROGRESS item. |
| 431 EXPECT_EQ(NULL, new_item); | 432 EXPECT_EQ(NULL, new_item); |
| 432 new_item = *iter; | 433 new_item = *iter; |
| 433 } | 434 } |
| 434 } | 435 } |
| 435 return new_item; | 436 return new_item; |
| 436 } | 437 } |
| 437 | 438 |
| 438 void FinishPendingSlowDownloads() { | 439 void FinishPendingSlowDownloads() { |
| 439 scoped_ptr<DownloadTestObserver> observer( | 440 scoped_ptr<DownloadTestObserver> observer( |
| 440 CreateDownloadObserver(1)); | 441 CreateDownloadObserver(1)); |
| 441 GURL finish_url(URLRequestSlowDownloadJob::kFinishDownloadUrl); | 442 GURL finish_url(URLRequestSlowDownloadJob::kFinishDownloadUrl); |
| 442 ui_test_utils::NavigateToURLWithDisposition( | 443 ui_test_utils::NavigateToURLWithDisposition( |
| 443 current_browser(), finish_url, NEW_FOREGROUND_TAB, | 444 current_browser(), finish_url, NEW_FOREGROUND_TAB, |
| 444 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 445 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 445 observer->WaitForFinished(); | 446 observer->WaitForFinished(); |
| 446 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); | 447 EXPECT_EQ(1u, observer->NumDownloadsSeenInState(DownloadItem::COMPLETE)); |
| 447 } | 448 } |
| 448 | 449 |
| 449 DownloadTestObserver* CreateDownloadObserver(size_t download_count) { | 450 DownloadTestObserver* CreateDownloadObserver(size_t download_count) { |
| 450 return new DownloadTestObserverTerminal( | 451 return new DownloadTestObserverTerminal( |
| 451 GetCurrentManager(), download_count, true, | 452 GetCurrentManager(), download_count, |
| 452 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL); | 453 DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL); |
| 453 } | 454 } |
| 454 | 455 |
| 455 DownloadTestObserver* CreateInProgressDownloadObserver( | 456 DownloadTestObserver* CreateInProgressDownloadObserver( |
| 456 size_t download_count) { | 457 size_t download_count) { |
| 457 return new DownloadTestObserverInProgress( | 458 return new DownloadTestObserverInProgress( |
| 458 GetCurrentManager(), download_count, true); | 459 GetCurrentManager(), download_count); |
| 459 } | 460 } |
| 460 | 461 |
| 461 bool RunFunction(UIThreadExtensionFunction* function, | 462 bool RunFunction(UIThreadExtensionFunction* function, |
| 462 const std::string& args) { | 463 const std::string& args) { |
| 463 scoped_refptr<UIThreadExtensionFunction> delete_function(function); | 464 scoped_refptr<UIThreadExtensionFunction> delete_function(function); |
| 464 SetUpExtensionFunction(function); | 465 SetUpExtensionFunction(function); |
| 465 return extension_function_test_utils::RunFunction( | 466 return extension_function_test_utils::RunFunction( |
| 466 function, args, browser(), GetFlags()); | 467 function, args, browser(), GetFlags()); |
| 467 } | 468 } |
| 468 | 469 |
| (...skipping 1684 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2153 " \"state\": {" | 2154 " \"state\": {" |
| 2154 " \"previous\": \"in_progress\"," | 2155 " \"previous\": \"in_progress\"," |
| 2155 " \"current\": \"complete\"}}]", | 2156 " \"current\": \"complete\"}}]", |
| 2156 result_id, | 2157 result_id, |
| 2157 GetFilename("on_record.txt.crdownload").c_str(), | 2158 GetFilename("on_record.txt.crdownload").c_str(), |
| 2158 GetFilename("on_record.txt").c_str()))); | 2159 GetFilename("on_record.txt").c_str()))); |
| 2159 std::string disk_data; | 2160 std::string disk_data; |
| 2160 EXPECT_TRUE(file_util::ReadFileToString(item->GetFullPath(), &disk_data)); | 2161 EXPECT_TRUE(file_util::ReadFileToString(item->GetFullPath(), &disk_data)); |
| 2161 EXPECT_STREQ(kPayloadData, disk_data.c_str()); | 2162 EXPECT_STREQ(kPayloadData, disk_data.c_str()); |
| 2162 } | 2163 } |
| OLD | NEW |