| 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());
 | 
| +}
 | 
| 
 |