Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(464)

Unified Diff: chrome/browser/ui/webui/downloads_dom_handler_browsertest.cc

Issue 795353002: downloads: prevent "Clear all" from removing in progress downloads (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: gmock Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/webui/downloads_dom_handler.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.
« no previous file with comments | « chrome/browser/ui/webui/downloads_dom_handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698