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

Unified Diff: chrome/browser/ui/webui/md_downloads/md_downloads_dom_handler_unittest.cc

Issue 2314903003: Improve download recovery flow: (Closed)
Patch Set: address final nits Created 4 years, 3 months 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
Index: chrome/browser/ui/webui/md_downloads/md_downloads_dom_handler_unittest.cc
diff --git a/chrome/browser/ui/webui/md_downloads/md_downloads_dom_handler_unittest.cc b/chrome/browser/ui/webui/md_downloads/md_downloads_dom_handler_unittest.cc
index 3310c8709b5d6e0e683f74659ea4384e30e66afa..11bc794678cc42ac3877af835e2af0005f0aaa6d 100644
--- a/chrome/browser/ui/webui/md_downloads/md_downloads_dom_handler_unittest.cc
+++ b/chrome/browser/ui/webui/md_downloads/md_downloads_dom_handler_unittest.cc
@@ -21,11 +21,25 @@ class TestMdDownloadsDOMHandler : public MdDownloadsDOMHandler {
public:
explicit TestMdDownloadsDOMHandler(content::DownloadManager* download_manager,
content::WebUI* web_ui)
- : MdDownloadsDOMHandler(download_manager, web_ui) {}
+ : MdDownloadsDOMHandler(download_manager, web_ui),
+ danger_prompt_count_(0) {}
using MdDownloadsDOMHandler::set_web_ui;
using MdDownloadsDOMHandler::FinalizeRemovals;
using MdDownloadsDOMHandler::RemoveDownloads;
+ using MdDownloadsDOMHandler::SaveDownload;
+
+ int danger_prompt_count() { return danger_prompt_count_; }
+
+ private:
+ void ShowDangerPrompt(content::DownloadItem* dangerous) override {
+ danger_prompt_count_++;
+ }
+
+ void DangerPromptDone(int download_id,
+ DownloadDangerPrompt::Action action) override {}
+
+ int danger_prompt_count_;
};
} // namespace
@@ -112,3 +126,27 @@ TEST_F(MdDownloadsDOMHandlerTest, ClearAll) {
EXPECT_CALL(completed, Remove());
handler.FinalizeRemovals();
}
+
+TEST_F(MdDownloadsDOMHandlerTest, HandleSaveDownload) {
+ // When user chooses to recover a download, download danger prompt should NOT
+ // be shown if download danger type is DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE.
+ testing::StrictMock<content::MockDownloadItem> dangerous_file_type;
+ EXPECT_CALL(dangerous_file_type, GetDangerType())
+ .WillRepeatedly(
+ testing::Return(content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE));
+ EXPECT_CALL(dangerous_file_type, GetId())
+ .WillOnce(testing::Return(uint32_t()));
+ TestMdDownloadsDOMHandler handler(manager(), web_ui());
+ EXPECT_EQ(0, handler.danger_prompt_count());
+ handler.SaveDownload(&dangerous_file_type);
+ EXPECT_EQ(0, handler.danger_prompt_count());
+
+ // For other download danger types, download danger prompt should
+ // be shown.
+ testing::StrictMock<content::MockDownloadItem> malicious_download;
+ EXPECT_CALL(malicious_download, GetDangerType())
+ .WillRepeatedly(
+ testing::Return(content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL));
+ handler.SaveDownload(&malicious_download);
+ EXPECT_EQ(1, handler.danger_prompt_count());
+}

Powered by Google App Engine
This is Rietveld 408576698