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

Unified Diff: chrome/browser/download/download_test_file_activity_observer.cc

Issue 197883010: Add browsertest for the feedback service (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Passing tests Created 6 years, 7 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/download/download_test_file_activity_observer.cc
diff --git a/chrome/browser/download/download_test_file_activity_observer.cc b/chrome/browser/download/download_test_file_activity_observer.cc
index db68b6fd60906615ff11c3777cc62fdcc3eb4f0a..3b51dadbbe5c08eb9ad88a814e26a5e46e70046c 100644
--- a/chrome/browser/download/download_test_file_activity_observer.cc
+++ b/chrome/browser/download/download_test_file_activity_observer.cc
@@ -25,6 +25,8 @@ class DownloadTestFileActivityObserver::MockDownloadManagerDelegate
: ChromeDownloadManagerDelegate(profile),
file_chooser_enabled_(false),
file_chooser_displayed_(false),
+ mark_downloads_dangerous_(false),
+ global_danger_type_(content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS),
weak_ptr_factory_(this) {
if (!profile->IsOffTheRecord())
GetDownloadIdReceiverCallback().Run(
@@ -47,6 +49,40 @@ class DownloadTestFileActivityObserver::MockDownloadManagerDelegate
return weak_ptr_factory_.GetWeakPtr();
}
+ void SetDangerTypeForNewDownloads(bool mark_downloads_dangerous,
+ content::DownloadDangerType danger_type) {
+ mark_downloads_dangerous_ = mark_downloads_dangerous;
+ global_danger_type_ = danger_type;
+ }
+
+ virtual bool DetermineDownloadTarget(
+ content::DownloadItem* item,
+ const content::DownloadTargetCallback& callback) OVERRIDE {
+ if (mark_downloads_dangerous_ &&
+ item->GetDangerType() != content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS) {
asanka 2014/06/05 19:20:12 Nit: Might be simpler to just route the callback t
+ content::DownloadTargetCallback dangerous_callback =
+ base::Bind(&MockDownloadManagerDelegate::SetDangerous,
+ callback);
+ return ChromeDownloadManagerDelegate::DetermineDownloadTarget(
+ item, dangerous_callback);
+ } else {
+ return ChromeDownloadManagerDelegate::DetermineDownloadTarget(
+ item, callback);
+ }
+ }
+
+ static void SetDangerous(
+ const content::DownloadTargetCallback& callback,
+ const base::FilePath& target_path,
+ content::DownloadItem::TargetDisposition disp,
+ content::DownloadDangerType danger_type,
+ const base::FilePath& intermediate_path) {
+ callback.Run(target_path,
+ disp,
+ content::DOWNLOAD_DANGER_TYPE_UNCOMMON_CONTENT,
+ intermediate_path);
+ }
+
protected:
virtual void PromptUserForDownloadPath(content::DownloadItem* item,
@@ -64,6 +100,8 @@ class DownloadTestFileActivityObserver::MockDownloadManagerDelegate
private:
bool file_chooser_enabled_;
bool file_chooser_displayed_;
+ bool mark_downloads_dangerous_; // Whether the danger type should be changed.
+ content::DownloadDangerType global_danger_type_;
asanka 2014/06/05 19:20:12 Nit: maybe call it "forced_danger_type_" ? Just a
base::WeakPtrFactory<MockDownloadManagerDelegate> weak_ptr_factory_;
};
@@ -89,3 +127,10 @@ bool DownloadTestFileActivityObserver::TestAndResetDidShowFileChooser() {
return test_delegate_.get() &&
test_delegate_->TestAndResetDidShowFileChooser();
}
+
+void DownloadTestFileActivityObserver::SetDangerTypeForNewDownloads(
+ bool mark_dangerous,
+ content::DownloadDangerType danger_type) {
+ if (test_delegate_.get())
+ test_delegate_->SetDangerTypeForNewDownloads(mark_dangerous, danger_type);
+}

Powered by Google App Engine
This is Rietveld 408576698