| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CONTENT_TEST_DOWNLOAD_TEST_OBSERVER_H_ | 5 #ifndef CONTENT_TEST_DOWNLOAD_TEST_OBSERVER_H_ |
| 6 #define CONTENT_TEST_DOWNLOAD_TEST_OBSERVER_H_ | 6 #define CONTENT_TEST_DOWNLOAD_TEST_OBSERVER_H_ |
| 7 | 7 |
| 8 #include <set> | 8 #include <set> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 virtual ~DownloadUpdatedObserver(); | 30 virtual ~DownloadUpdatedObserver(); |
| 31 | 31 |
| 32 // Returns when either the event has been seen (at least once since | 32 // Returns when either the event has been seen (at least once since |
| 33 // object construction) or the item is destroyed. Return value indicates | 33 // object construction) or the item is destroyed. Return value indicates |
| 34 // if the wait ended because the item was seen (true) or the object | 34 // if the wait ended because the item was seen (true) or the object |
| 35 // destroyed (false). | 35 // destroyed (false). |
| 36 bool WaitForEvent(); | 36 bool WaitForEvent(); |
| 37 | 37 |
| 38 private: | 38 private: |
| 39 // DownloadItem::Observer | 39 // DownloadItem::Observer |
| 40 virtual void OnDownloadUpdated(DownloadItem* item) OVERRIDE; | 40 virtual void OnDownloadUpdated(DownloadItem* item) override; |
| 41 virtual void OnDownloadDestroyed(DownloadItem* item) OVERRIDE; | 41 virtual void OnDownloadDestroyed(DownloadItem* item) override; |
| 42 | 42 |
| 43 DownloadItem* item_; | 43 DownloadItem* item_; |
| 44 EventFilter filter_; | 44 EventFilter filter_; |
| 45 bool waiting_; | 45 bool waiting_; |
| 46 bool event_seen_; | 46 bool event_seen_; |
| 47 | 47 |
| 48 DISALLOW_COPY_AND_ASSIGN(DownloadUpdatedObserver); | 48 DISALLOW_COPY_AND_ASSIGN(DownloadUpdatedObserver); |
| 49 }; | 49 }; |
| 50 | 50 |
| 51 // Detects changes to the downloads after construction. | 51 // Detects changes to the downloads after construction. |
| (...skipping 24 matching lines...) Expand all Loading... |
| 76 | 76 |
| 77 virtual ~DownloadTestObserver(); | 77 virtual ~DownloadTestObserver(); |
| 78 | 78 |
| 79 // Wait for one of the finish conditions. | 79 // Wait for one of the finish conditions. |
| 80 void WaitForFinished(); | 80 void WaitForFinished(); |
| 81 | 81 |
| 82 // Return true if we reached one of the finish conditions. | 82 // Return true if we reached one of the finish conditions. |
| 83 bool IsFinished() const; | 83 bool IsFinished() const; |
| 84 | 84 |
| 85 // DownloadItem::Observer | 85 // DownloadItem::Observer |
| 86 virtual void OnDownloadUpdated(DownloadItem* download) OVERRIDE; | 86 virtual void OnDownloadUpdated(DownloadItem* download) override; |
| 87 virtual void OnDownloadDestroyed(DownloadItem* download) OVERRIDE; | 87 virtual void OnDownloadDestroyed(DownloadItem* download) override; |
| 88 | 88 |
| 89 // DownloadManager::Observer | 89 // DownloadManager::Observer |
| 90 virtual void OnDownloadCreated( | 90 virtual void OnDownloadCreated( |
| 91 DownloadManager* manager, DownloadItem* item) OVERRIDE; | 91 DownloadManager* manager, DownloadItem* item) override; |
| 92 virtual void ManagerGoingDown(DownloadManager* manager) OVERRIDE; | 92 virtual void ManagerGoingDown(DownloadManager* manager) override; |
| 93 | 93 |
| 94 size_t NumDangerousDownloadsSeen() const; | 94 size_t NumDangerousDownloadsSeen() const; |
| 95 | 95 |
| 96 size_t NumDownloadsSeenInState(DownloadItem::DownloadState state) const; | 96 size_t NumDownloadsSeenInState(DownloadItem::DownloadState state) const; |
| 97 | 97 |
| 98 protected: | 98 protected: |
| 99 // Only to be called by derived classes' constructors. | 99 // Only to be called by derived classes' constructors. |
| 100 virtual void Init(); | 100 virtual void Init(); |
| 101 | 101 |
| 102 // Called to see if a download item is in a final state. | 102 // Called to see if a download item is in a final state. |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 // download items have entered a terminal state (DownloadItem::IsDone() is | 174 // download items have entered a terminal state (DownloadItem::IsDone() is |
| 175 // true). | 175 // true). |
| 176 DownloadTestObserverTerminal( | 176 DownloadTestObserverTerminal( |
| 177 DownloadManager* download_manager, | 177 DownloadManager* download_manager, |
| 178 size_t wait_count, | 178 size_t wait_count, |
| 179 DangerousDownloadAction dangerous_download_action); | 179 DangerousDownloadAction dangerous_download_action); |
| 180 | 180 |
| 181 virtual ~DownloadTestObserverTerminal(); | 181 virtual ~DownloadTestObserverTerminal(); |
| 182 | 182 |
| 183 private: | 183 private: |
| 184 virtual bool IsDownloadInFinalState(DownloadItem* download) OVERRIDE; | 184 virtual bool IsDownloadInFinalState(DownloadItem* download) override; |
| 185 | 185 |
| 186 DISALLOW_COPY_AND_ASSIGN(DownloadTestObserverTerminal); | 186 DISALLOW_COPY_AND_ASSIGN(DownloadTestObserverTerminal); |
| 187 }; | 187 }; |
| 188 | 188 |
| 189 // Detects changes to the downloads after construction. | 189 // Detects changes to the downloads after construction. |
| 190 // Finishes when a specified number of downloads change to the | 190 // Finishes when a specified number of downloads change to the |
| 191 // IN_PROGRESS state, or when the download manager is destroyed. | 191 // IN_PROGRESS state, or when the download manager is destroyed. |
| 192 // Dangerous downloads are accepted. | 192 // Dangerous downloads are accepted. |
| 193 // Callers may either probe for the finished state, or wait on it. | 193 // Callers may either probe for the finished state, or wait on it. |
| 194 class DownloadTestObserverInProgress : public DownloadTestObserver { | 194 class DownloadTestObserverInProgress : public DownloadTestObserver { |
| 195 public: | 195 public: |
| 196 // Create an object that will be considered finished when |wait_count| | 196 // Create an object that will be considered finished when |wait_count| |
| 197 // download items have entered state |IN_PROGRESS|. | 197 // download items have entered state |IN_PROGRESS|. |
| 198 DownloadTestObserverInProgress( | 198 DownloadTestObserverInProgress( |
| 199 DownloadManager* download_manager, size_t wait_count); | 199 DownloadManager* download_manager, size_t wait_count); |
| 200 | 200 |
| 201 virtual ~DownloadTestObserverInProgress(); | 201 virtual ~DownloadTestObserverInProgress(); |
| 202 | 202 |
| 203 private: | 203 private: |
| 204 virtual bool IsDownloadInFinalState(DownloadItem* download) OVERRIDE; | 204 virtual bool IsDownloadInFinalState(DownloadItem* download) override; |
| 205 | 205 |
| 206 DISALLOW_COPY_AND_ASSIGN(DownloadTestObserverInProgress); | 206 DISALLOW_COPY_AND_ASSIGN(DownloadTestObserverInProgress); |
| 207 }; | 207 }; |
| 208 | 208 |
| 209 class DownloadTestObserverInterrupted : public DownloadTestObserver { | 209 class DownloadTestObserverInterrupted : public DownloadTestObserver { |
| 210 public: | 210 public: |
| 211 // Create an object that will be considered finished when |wait_count| | 211 // Create an object that will be considered finished when |wait_count| |
| 212 // download items are interrupted. | 212 // download items are interrupted. |
| 213 DownloadTestObserverInterrupted( | 213 DownloadTestObserverInterrupted( |
| 214 DownloadManager* download_manager, | 214 DownloadManager* download_manager, |
| 215 size_t wait_count, | 215 size_t wait_count, |
| 216 DangerousDownloadAction dangerous_download_action); | 216 DangerousDownloadAction dangerous_download_action); |
| 217 | 217 |
| 218 virtual ~DownloadTestObserverInterrupted(); | 218 virtual ~DownloadTestObserverInterrupted(); |
| 219 | 219 |
| 220 private: | 220 private: |
| 221 virtual bool IsDownloadInFinalState(DownloadItem* download) OVERRIDE; | 221 virtual bool IsDownloadInFinalState(DownloadItem* download) override; |
| 222 | 222 |
| 223 DISALLOW_COPY_AND_ASSIGN(DownloadTestObserverInterrupted); | 223 DISALLOW_COPY_AND_ASSIGN(DownloadTestObserverInterrupted); |
| 224 }; | 224 }; |
| 225 | 225 |
| 226 // The WaitForFlush() method on this class returns after: | 226 // The WaitForFlush() method on this class returns after: |
| 227 // * There are no IN_PROGRESS download items remaining on the | 227 // * There are no IN_PROGRESS download items remaining on the |
| 228 // DownloadManager. | 228 // DownloadManager. |
| 229 // * There have been two round trip messages through the file and | 229 // * There have been two round trip messages through the file and |
| 230 // IO threads. | 230 // IO threads. |
| 231 // This almost certainly means that a Download cancel has propagated through | 231 // This almost certainly means that a Download cancel has propagated through |
| 232 // the system. | 232 // the system. |
| 233 class DownloadTestFlushObserver | 233 class DownloadTestFlushObserver |
| 234 : public DownloadManager::Observer, | 234 : public DownloadManager::Observer, |
| 235 public DownloadItem::Observer, | 235 public DownloadItem::Observer, |
| 236 public base::RefCountedThreadSafe<DownloadTestFlushObserver> { | 236 public base::RefCountedThreadSafe<DownloadTestFlushObserver> { |
| 237 public: | 237 public: |
| 238 explicit DownloadTestFlushObserver(DownloadManager* download_manager); | 238 explicit DownloadTestFlushObserver(DownloadManager* download_manager); |
| 239 | 239 |
| 240 void WaitForFlush(); | 240 void WaitForFlush(); |
| 241 | 241 |
| 242 // DownloadsManager observer methods. | 242 // DownloadsManager observer methods. |
| 243 virtual void OnDownloadCreated( | 243 virtual void OnDownloadCreated( |
| 244 DownloadManager* manager, | 244 DownloadManager* manager, |
| 245 DownloadItem* item) OVERRIDE; | 245 DownloadItem* item) override; |
| 246 | 246 |
| 247 // DownloadItem observer methods. | 247 // DownloadItem observer methods. |
| 248 virtual void OnDownloadUpdated(DownloadItem* download) OVERRIDE; | 248 virtual void OnDownloadUpdated(DownloadItem* download) override; |
| 249 virtual void OnDownloadDestroyed(DownloadItem* download) OVERRIDE; | 249 virtual void OnDownloadDestroyed(DownloadItem* download) override; |
| 250 | 250 |
| 251 protected: | 251 protected: |
| 252 friend class base::RefCountedThreadSafe<DownloadTestFlushObserver>; | 252 friend class base::RefCountedThreadSafe<DownloadTestFlushObserver>; |
| 253 | 253 |
| 254 virtual ~DownloadTestFlushObserver(); | 254 virtual ~DownloadTestFlushObserver(); |
| 255 | 255 |
| 256 private: | 256 private: |
| 257 typedef std::set<DownloadItem*> DownloadSet; | 257 typedef std::set<DownloadItem*> DownloadSet; |
| 258 | 258 |
| 259 // If we're waiting for that flush point, check the number | 259 // If we're waiting for that flush point, check the number |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 307 | 307 |
| 308 // We are in the message loop. | 308 // We are in the message loop. |
| 309 bool waiting_; | 309 bool waiting_; |
| 310 | 310 |
| 311 DISALLOW_COPY_AND_ASSIGN(DownloadTestItemCreationObserver); | 311 DISALLOW_COPY_AND_ASSIGN(DownloadTestItemCreationObserver); |
| 312 }; | 312 }; |
| 313 | 313 |
| 314 } // namespace content` | 314 } // namespace content` |
| 315 | 315 |
| 316 #endif // CONTENT_TEST_DOWNLOAD_TEST_OBSERVER_H_ | 316 #endif // CONTENT_TEST_DOWNLOAD_TEST_OBSERVER_H_ |
| OLD | NEW |