| Index: chrome/browser/ui/webui/downloads_dom_handler_browsertest.cc
|
| diff --git a/chrome/browser/ui/webui/downloads_dom_handler_browsertest.cc b/chrome/browser/ui/webui/downloads_dom_handler_browsertest.cc
|
| index ba592274a6beac1eca5066757ba79e5e2254998c..fbc6a48f8bd1c7cec2384a181d6292c0f3ff19f7 100644
|
| --- a/chrome/browser/ui/webui/downloads_dom_handler_browsertest.cc
|
| +++ b/chrome/browser/ui/webui/downloads_dom_handler_browsertest.cc
|
| @@ -14,6 +14,8 @@
|
| #include "chrome/common/pref_names.h"
|
| #include "chrome/test/base/in_process_browser_test.h"
|
| #include "content/public/browser/web_contents.h"
|
| +#include "content/public/test/mock_download_item.h"
|
| +#include "content/public/test/mock_download_manager.h"
|
| #include "content/public/test/test_utils.h"
|
|
|
| namespace {
|
| @@ -53,7 +55,8 @@ class MockDownloadsDOMHandler : public DownloadsDOMHandler {
|
| explicit MockDownloadsDOMHandler(content::DownloadManager* dlm)
|
| : DownloadsDOMHandler(dlm),
|
| waiting_list_(false),
|
| - waiting_updated_(false) {
|
| + waiting_updated_(false),
|
| + manager_(nullptr) {
|
| }
|
| ~MockDownloadsDOMHandler() override {}
|
|
|
| @@ -81,6 +84,8 @@ class MockDownloadsDOMHandler : public DownloadsDOMHandler {
|
| void reset_downloads_list() { downloads_list_.reset(); }
|
| void reset_download_updated() { download_updated_.reset(); }
|
|
|
| + void set_manager(content::DownloadManager* manager) { manager_ = manager; }
|
| +
|
| protected:
|
| content::WebContents* GetWebUIWebContents() override { return NULL; }
|
|
|
| @@ -102,11 +107,16 @@ class MockDownloadsDOMHandler : public DownloadsDOMHandler {
|
| }
|
| }
|
|
|
| + content::DownloadManager* GetMainNotifierManager() override {
|
| + return manager_ ? manager_ : DownloadsDOMHandler::GetMainNotifierManager();
|
| + }
|
| +
|
| private:
|
| scoped_ptr<base::ListValue> downloads_list_;
|
| scoped_ptr<base::ListValue> download_updated_;
|
| bool waiting_list_;
|
| bool waiting_updated_;
|
| + content::DownloadManager* manager_; // weak.
|
|
|
| DISALLOW_COPY_AND_ASSIGN(MockDownloadsDOMHandler);
|
| };
|
| @@ -223,6 +233,23 @@ IN_PROC_BROWSER_TEST_F(DownloadsDOMHandlerTest, RemoveOneItem) {
|
| EXPECT_EQ(0, static_cast<int>(mock_handler_->downloads_list()->GetSize()));
|
| }
|
|
|
| +IN_PROC_BROWSER_TEST_F(DownloadsDOMHandlerTest, ClearAllSkipsInProgress) {
|
| + content::MockDownloadManager manager;
|
| + mock_handler_->set_manager(&manager);
|
| +
|
| + content::MockDownloadItem item;
|
| + EXPECT_CALL(item, GetState()).WillRepeatedly(
|
| + testing::Return(content::DownloadItem::IN_PROGRESS));
|
| + EXPECT_CALL(item, UpdateObservers()).Times(0);
|
| +
|
| + std::vector<content::DownloadItem*> items;
|
| + items.push_back(&item);
|
| + EXPECT_CALL(manager, GetAllDownloads(testing::_)).WillOnce(
|
| + testing::SetArgPointee<0>(items));
|
| +
|
| + mock_handler_->HandleClearAll(NULL);
|
| +}
|
| +
|
| // Tests that DownloadsDOMHandler detects new downloads and relays them to the
|
| // renderer.
|
| // crbug.com/159390: This test fails when daylight savings time ends.
|
|
|