| Index: chrome/browser/download/download_test_observer.h
|
| diff --git a/chrome/browser/download/download_test_observer.h b/chrome/browser/download/download_test_observer.h
|
| index 30ed06e23263a255819e5d7ffb05687effc32377..76792a4be12aaaa5127b2a20a0df91fcefa995ca 100644
|
| --- a/chrome/browser/download/download_test_observer.h
|
| +++ b/chrome/browser/download/download_test_observer.h
|
| @@ -15,6 +15,12 @@
|
| #include "content/public/browser/download_url_parameters.h"
|
| #include "net/base/net_errors.h"
|
|
|
| +namespace internal {
|
| +class MockFileChooserDownloadManagerDelegate;
|
| +}
|
| +
|
| +class Profile;
|
| +
|
| // Detects changes to the downloads after construction.
|
| // Finishes when one of the following happens:
|
| // - A specified number of downloads change to a terminal state (defined
|
| @@ -39,20 +45,13 @@ class DownloadTestObserver : public content::DownloadManager::Observer,
|
|
|
| // Create an object that will be considered finished when |wait_count|
|
| // download items have entered a terminal state.
|
| - // If |finish_on_select_file| is true, the object will also be
|
| - // considered finished if the DownloadManager raises a
|
| - // SelectFileDialogDisplayed() notification.
|
| DownloadTestObserver(
|
| content::DownloadManager* download_manager,
|
| size_t wait_count,
|
| - bool finish_on_select_file,
|
| DangerousDownloadAction dangerous_download_action);
|
|
|
| virtual ~DownloadTestObserver();
|
|
|
| - // State accessors.
|
| - bool select_file_dialog_seen() const { return select_file_dialog_seen_; }
|
| -
|
| // Wait for the requested number of downloads to enter a terminal state.
|
| void WaitForFinished();
|
|
|
| @@ -66,9 +65,6 @@ class DownloadTestObserver : public content::DownloadManager::Observer,
|
| // content::DownloadManager::Observer
|
| virtual void ModelChanged(content::DownloadManager* manager) OVERRIDE;
|
|
|
| - virtual void SelectFileDialogDisplayed(
|
| - content::DownloadManager* manager, int32 id) OVERRIDE;
|
| -
|
| size_t NumDangerousDownloadsSeen() const;
|
|
|
| size_t NumDownloadsSeenInState(
|
| @@ -131,13 +127,6 @@ class DownloadTestObserver : public content::DownloadManager::Observer,
|
| // all downloads completing.
|
| bool waiting_;
|
|
|
| - // True if we should transition the DownloadTestObserver to finished if
|
| - // the select file dialog comes up.
|
| - bool finish_on_select_file_;
|
| -
|
| - // True if we've seen the select file dialog.
|
| - bool select_file_dialog_seen_;
|
| -
|
| // Action to take if a dangerous download is encountered.
|
| DangerousDownloadAction dangerous_download_action_;
|
|
|
| @@ -157,7 +146,6 @@ class DownloadTestObserverTerminal : public DownloadTestObserver {
|
| DownloadTestObserverTerminal(
|
| content::DownloadManager* download_manager,
|
| size_t wait_count,
|
| - bool finish_on_select_file,
|
| DangerousDownloadAction dangerous_download_action);
|
|
|
| virtual ~DownloadTestObserverTerminal();
|
| @@ -182,8 +170,7 @@ class DownloadTestObserverInProgress : public DownloadTestObserver {
|
| // SelectFileDialogDisplayed() notification.
|
| DownloadTestObserverInProgress(
|
| content::DownloadManager* download_manager,
|
| - size_t wait_count,
|
| - bool finish_on_select_file);
|
| + size_t wait_count);
|
|
|
| virtual ~DownloadTestObserverInProgress();
|
|
|
| @@ -279,4 +266,30 @@ class DownloadTestItemCreationObserver
|
| DISALLOW_COPY_AND_ASSIGN(DownloadTestItemCreationObserver);
|
| };
|
|
|
| +// Observes and overrides file chooser activity for a profile. By default, once
|
| +// attached to a profile, this class overrides the default file chooser by
|
| +// replacing the ChromeDownloadManagerDelegate associated with |profile|.
|
| +// NOTE: Again, this overrides the ChromeDownloadManagerDelegate for |profile|.
|
| +class DownloadTestFileChooserObserver {
|
| + public:
|
| + // Attaches to |profile|. By default file chooser dialogs will be disabled
|
| + // once attached. Call EnableFileChooser() to re-enable.
|
| + explicit DownloadTestFileChooserObserver(Profile* profile);
|
| + ~DownloadTestFileChooserObserver();
|
| +
|
| + // Sets whether the file chooser dialog is enabled. If |enable| is false, any
|
| + // attempt to display a file chooser dialog will cause the download to be
|
| + // canceled. Otherwise, attempting to display a file chooser dialog will
|
| + // result in the download continuing with the suggested path.
|
| + void EnableFileChooser(bool enable);
|
| +
|
| + // Returns true if a file chooser dialog was displayed since the last time
|
| + // this method was called.
|
| + bool TestAndResetDidShowFileChooser();
|
| +
|
| + private:
|
| + scoped_refptr<internal::MockFileChooserDownloadManagerDelegate>
|
| + test_delegate_;
|
| +};
|
| +
|
| #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_TEST_OBSERVER_H_
|
|
|