1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_DOWNLOAD_DOWNLOAD_TEST_FILE_ACTIVITY_OBSERVER_H_ 6 #define CHROME_BROWSER_DOWNLOAD_DOWNLOAD_TEST_FILE_ACTIVITY_OBSERVER_H_ 7 8 #include "base/memory/weak_ptr.h" 9 10 class Profile; 11 12 // Observes and overrides file chooser dialog and open activity for a profile. 13 // By default, once attached to a profile, this class overrides the default file 14 // related activity by replacing the ChromeDownloadManagerDelegate associated 15 // with |profile|. 16 // NOTE: Again, this overrides the ChromeDownloadManagerDelegate for |profile|. 17 class DownloadTestFileActivityObserver { 18 public: 19 // Attaches to |profile|. By default file chooser dialogs will be disabled 20 // once attached. Call EnableFileChooser() to re-enable. 21 explicit DownloadTestFileActivityObserver(Profile* profile); 22 ~DownloadTestFileActivityObserver(); 23 24 // Sets whether the file chooser dialog is enabled. If |enable| is false, any 25 // attempt to display a file chooser dialog will cause the download to be 26 // canceled. Otherwise, attempting to display a file chooser dialog will 27 // result in the download continuing with the suggested path. 28 void EnableFileChooser(bool enable); 29 30 // Returns true if a file chooser dialog was displayed since the last time 31 // this method was called. 32 bool TestAndResetDidShowFileChooser(); 33 34 private: 35 class MockDownloadManagerDelegate; 36 37 base::WeakPtr<MockDownloadManagerDelegate> test_delegate_; 38 }; 39 40 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_TEST_FILE_ACTIVITY_OBSERVER_H_ 41