Chromium Code Reviews| Index: chrome/browser/download/save_page_browsertest.cc |
| =================================================================== |
| --- chrome/browser/download/save_page_browsertest.cc (revision 73953) |
| +++ chrome/browser/download/save_page_browsertest.cc (working copy) |
| @@ -8,7 +8,10 @@ |
| #include "base/scoped_temp_dir.h" |
| #include "chrome/app/chrome_command_ids.h" |
| #include "chrome/browser/browser_window.h" |
| +#include "chrome/browser/download/download_history.h" |
| +#include "chrome/browser/download/download_manager.h" |
| #include "chrome/browser/net/url_request_mock_http_job.h" |
| +#include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/tab_contents/tab_contents.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/common/chrome_paths.h" |
| @@ -45,6 +48,36 @@ |
| return *Details<GURL>(observer.details()).ptr(); |
| } |
| + void QueryDownloadHistory(TabContents* current_tab) { |
| + DownloadManager* download_manager = |
| + current_tab->profile()->GetDownloadManager(); |
| + |
| + // Query the history system. |
| + download_manager->download_history()->Load( |
| + NewCallback(this, |
| + &SavePageBrowserTest::OnQueryDownloadEntriesComplete)); |
| + |
| + // Run message loop until a quit message is sent from |
| + // OnQueryDownloadEntriesComplete(). |
| + ui_test_utils::RunMessageLoop(); |
| + } |
| + |
| + void OnQueryDownloadEntriesComplete( |
| + std::vector<DownloadCreateInfo>* entries) { |
| + |
| + // Make a copy of the URLs returned by the history system. |
|
Paweł Hajdan Jr.
2011/02/18 11:11:35
This should clear history_urls_ to avoid possible
magnus
2011/02/18 17:54:01
Done.
|
| + for (size_t i = 0; i < entries->size(); ++i) { |
| + history_urls_.push_back(entries->at(i).url); |
| + } |
| + |
| + // Indicate thet we have received the history and |
| + // can continue. |
| + MessageLoopForUI::current()->Quit(); |
| + } |
| + |
| + // URLs found in the history. |
| + std::vector<GURL> history_urls_; |
| + |
| // Path to directory containing test data. |
| FilePath test_dir_; |
| @@ -71,6 +104,10 @@ |
| if (browser()->SupportsWindowFeature(Browser::FEATURE_DOWNLOADSHELF)) |
| EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| + QueryDownloadHistory(current_tab); |
| + EXPECT_TRUE(std::find(history_urls_.begin(), history_urls_.end(), |
| + url) != history_urls_.end()); |
| + |
| EXPECT_TRUE(file_util::PathExists(full_file_name)); |
| EXPECT_FALSE(file_util::PathExists(dir)); |
| EXPECT_TRUE(file_util::ContentsEqual( |
| @@ -100,6 +137,10 @@ |
| if (browser()->SupportsWindowFeature(Browser::FEATURE_DOWNLOADSHELF)) |
| EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| + QueryDownloadHistory(current_tab); |
| + EXPECT_TRUE(std::find(history_urls_.begin(), history_urls_.end(), |
| + actual_page_url) != history_urls_.end()); |
| + |
| EXPECT_TRUE(file_util::PathExists(full_file_name)); |
| EXPECT_FALSE(file_util::PathExists(dir)); |
| EXPECT_TRUE(file_util::ContentsEqual( |
| @@ -126,6 +167,10 @@ |
| if (browser()->SupportsWindowFeature(Browser::FEATURE_DOWNLOADSHELF)) |
| EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| + QueryDownloadHistory(current_tab); |
| + EXPECT_TRUE(std::find(history_urls_.begin(), history_urls_.end(), |
| + url) != history_urls_.end()); |
| + |
| EXPECT_TRUE(file_util::PathExists(full_file_name)); |
| EXPECT_TRUE(file_util::PathExists(dir)); |
| EXPECT_TRUE(file_util::TextContentsEqual( |
| @@ -168,6 +213,10 @@ |
| if (browser()->SupportsWindowFeature(Browser::FEATURE_DOWNLOADSHELF)) |
| EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); |
| + QueryDownloadHistory(current_tab); |
| + EXPECT_TRUE(std::find(history_urls_.begin(), history_urls_.end(), |
| + url) != history_urls_.end()); |
| + |
| EXPECT_TRUE(file_util::PathExists(full_file_name)); |
| EXPECT_TRUE(file_util::PathExists(dir)); |
| EXPECT_TRUE(file_util::TextContentsEqual( |