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

Side by Side Diff: content/public/test/download_test_observer.h

Issue 671663002: Standardize usage of virtual/override/final in content/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 unified diff | Download patch
OLDNEW
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
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "base/callback_forward.h" 12 #include "base/callback_forward.h"
13 #include "base/memory/ref_counted.h" 13 #include "base/memory/ref_counted.h"
14 #include "content/public/browser/download_interrupt_reasons.h" 14 #include "content/public/browser/download_interrupt_reasons.h"
15 #include "content/public/browser/download_item.h" 15 #include "content/public/browser/download_item.h"
16 #include "content/public/browser/download_manager.h" 16 #include "content/public/browser/download_manager.h"
17 #include "content/public/browser/download_url_parameters.h" 17 #include "content/public/browser/download_url_parameters.h"
18 18
19 namespace content { 19 namespace content {
20 20
21 // Detects an arbitrary change on a download item. 21 // Detects an arbitrary change on a download item.
22 // TODO: Rewrite other observers to use this (or be replaced by it). 22 // TODO: Rewrite other observers to use this (or be replaced by it).
23 class DownloadUpdatedObserver : public DownloadItem::Observer { 23 class DownloadUpdatedObserver : public DownloadItem::Observer {
24 public: 24 public:
25 typedef base::Callback<bool(DownloadItem*)> EventFilter; 25 typedef base::Callback<bool(DownloadItem*)> EventFilter;
26 26
27 // The filter passed may be called multiple times, even after it 27 // The filter passed may be called multiple times, even after it
28 // returns true. 28 // returns true.
29 DownloadUpdatedObserver(DownloadItem* item, EventFilter filter); 29 DownloadUpdatedObserver(DownloadItem* item, EventFilter filter);
30 virtual ~DownloadUpdatedObserver(); 30 ~DownloadUpdatedObserver() override;
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 void OnDownloadUpdated(DownloadItem* item) override;
41 virtual void OnDownloadDestroyed(DownloadItem* item) override; 41 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 15 matching lines...) Expand all
67 ON_DANGEROUS_DOWNLOAD_IGNORE, // Make it the callers problem. 67 ON_DANGEROUS_DOWNLOAD_IGNORE, // Make it the callers problem.
68 ON_DANGEROUS_DOWNLOAD_QUIT // Will set final state without decision. 68 ON_DANGEROUS_DOWNLOAD_QUIT // Will set final state without decision.
69 }; 69 };
70 70
71 // Create an object that will be considered finished when |wait_count| 71 // Create an object that will be considered finished when |wait_count|
72 // download items have entered a terminal state. 72 // download items have entered a terminal state.
73 DownloadTestObserver(DownloadManager* download_manager, 73 DownloadTestObserver(DownloadManager* download_manager,
74 size_t wait_count, 74 size_t wait_count,
75 DangerousDownloadAction dangerous_download_action); 75 DangerousDownloadAction dangerous_download_action);
76 76
77 virtual ~DownloadTestObserver(); 77 ~DownloadTestObserver() override;
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 void OnDownloadUpdated(DownloadItem* download) override;
87 virtual void OnDownloadDestroyed(DownloadItem* download) override; 87 void OnDownloadDestroyed(DownloadItem* download) override;
88 88
89 // DownloadManager::Observer 89 // DownloadManager::Observer
90 virtual void OnDownloadCreated( 90 void OnDownloadCreated(DownloadManager* manager, DownloadItem* item) override;
91 DownloadManager* manager, DownloadItem* item) override; 91 void ManagerGoingDown(DownloadManager* manager) override;
92 virtual void ManagerGoingDown(DownloadManager* manager) override;
93 92
94 size_t NumDangerousDownloadsSeen() const; 93 size_t NumDangerousDownloadsSeen() const;
95 94
96 size_t NumDownloadsSeenInState(DownloadItem::DownloadState state) const; 95 size_t NumDownloadsSeenInState(DownloadItem::DownloadState state) const;
97 96
98 protected: 97 protected:
99 // Only to be called by derived classes' constructors. 98 // Only to be called by derived classes' constructors.
100 virtual void Init(); 99 virtual void Init();
101 100
102 // Called to see if a download item is in a final state. 101 // Called to see if a download item is in a final state.
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 class DownloadTestObserverTerminal : public DownloadTestObserver { 170 class DownloadTestObserverTerminal : public DownloadTestObserver {
172 public: 171 public:
173 // Create an object that will be considered finished when |wait_count| 172 // Create an object that will be considered finished when |wait_count|
174 // download items have entered a terminal state (DownloadItem::IsDone() is 173 // download items have entered a terminal state (DownloadItem::IsDone() is
175 // true). 174 // true).
176 DownloadTestObserverTerminal( 175 DownloadTestObserverTerminal(
177 DownloadManager* download_manager, 176 DownloadManager* download_manager,
178 size_t wait_count, 177 size_t wait_count,
179 DangerousDownloadAction dangerous_download_action); 178 DangerousDownloadAction dangerous_download_action);
180 179
181 virtual ~DownloadTestObserverTerminal(); 180 ~DownloadTestObserverTerminal() override;
182 181
183 private: 182 private:
184 virtual bool IsDownloadInFinalState(DownloadItem* download) override; 183 bool IsDownloadInFinalState(DownloadItem* download) override;
185 184
186 DISALLOW_COPY_AND_ASSIGN(DownloadTestObserverTerminal); 185 DISALLOW_COPY_AND_ASSIGN(DownloadTestObserverTerminal);
187 }; 186 };
188 187
189 // Detects changes to the downloads after construction. 188 // Detects changes to the downloads after construction.
190 // Finishes when a specified number of downloads change to the 189 // Finishes when a specified number of downloads change to the
191 // IN_PROGRESS state, or when the download manager is destroyed. 190 // IN_PROGRESS state, or when the download manager is destroyed.
192 // Dangerous downloads are accepted. 191 // Dangerous downloads are accepted.
193 // Callers may either probe for the finished state, or wait on it. 192 // Callers may either probe for the finished state, or wait on it.
194 class DownloadTestObserverInProgress : public DownloadTestObserver { 193 class DownloadTestObserverInProgress : public DownloadTestObserver {
195 public: 194 public:
196 // Create an object that will be considered finished when |wait_count| 195 // Create an object that will be considered finished when |wait_count|
197 // download items have entered state |IN_PROGRESS|. 196 // download items have entered state |IN_PROGRESS|.
198 DownloadTestObserverInProgress( 197 DownloadTestObserverInProgress(
199 DownloadManager* download_manager, size_t wait_count); 198 DownloadManager* download_manager, size_t wait_count);
200 199
201 virtual ~DownloadTestObserverInProgress(); 200 ~DownloadTestObserverInProgress() override;
202 201
203 private: 202 private:
204 virtual bool IsDownloadInFinalState(DownloadItem* download) override; 203 bool IsDownloadInFinalState(DownloadItem* download) override;
205 204
206 DISALLOW_COPY_AND_ASSIGN(DownloadTestObserverInProgress); 205 DISALLOW_COPY_AND_ASSIGN(DownloadTestObserverInProgress);
207 }; 206 };
208 207
209 class DownloadTestObserverInterrupted : public DownloadTestObserver { 208 class DownloadTestObserverInterrupted : public DownloadTestObserver {
210 public: 209 public:
211 // Create an object that will be considered finished when |wait_count| 210 // Create an object that will be considered finished when |wait_count|
212 // download items are interrupted. 211 // download items are interrupted.
213 DownloadTestObserverInterrupted( 212 DownloadTestObserverInterrupted(
214 DownloadManager* download_manager, 213 DownloadManager* download_manager,
215 size_t wait_count, 214 size_t wait_count,
216 DangerousDownloadAction dangerous_download_action); 215 DangerousDownloadAction dangerous_download_action);
217 216
218 virtual ~DownloadTestObserverInterrupted(); 217 ~DownloadTestObserverInterrupted() override;
219 218
220 private: 219 private:
221 virtual bool IsDownloadInFinalState(DownloadItem* download) override; 220 bool IsDownloadInFinalState(DownloadItem* download) override;
222 221
223 DISALLOW_COPY_AND_ASSIGN(DownloadTestObserverInterrupted); 222 DISALLOW_COPY_AND_ASSIGN(DownloadTestObserverInterrupted);
224 }; 223 };
225 224
226 // The WaitForFlush() method on this class returns after: 225 // The WaitForFlush() method on this class returns after:
227 // * There are no IN_PROGRESS download items remaining on the 226 // * There are no IN_PROGRESS download items remaining on the
228 // DownloadManager. 227 // DownloadManager.
229 // * There have been two round trip messages through the file and 228 // * There have been two round trip messages through the file and
230 // IO threads. 229 // IO threads.
231 // This almost certainly means that a Download cancel has propagated through 230 // This almost certainly means that a Download cancel has propagated through
232 // the system. 231 // the system.
233 class DownloadTestFlushObserver 232 class DownloadTestFlushObserver
234 : public DownloadManager::Observer, 233 : public DownloadManager::Observer,
235 public DownloadItem::Observer, 234 public DownloadItem::Observer,
236 public base::RefCountedThreadSafe<DownloadTestFlushObserver> { 235 public base::RefCountedThreadSafe<DownloadTestFlushObserver> {
237 public: 236 public:
238 explicit DownloadTestFlushObserver(DownloadManager* download_manager); 237 explicit DownloadTestFlushObserver(DownloadManager* download_manager);
239 238
240 void WaitForFlush(); 239 void WaitForFlush();
241 240
242 // DownloadsManager observer methods. 241 // DownloadsManager observer methods.
243 virtual void OnDownloadCreated( 242 void OnDownloadCreated(DownloadManager* manager, DownloadItem* item) override;
244 DownloadManager* manager,
245 DownloadItem* item) override;
246 243
247 // DownloadItem observer methods. 244 // DownloadItem observer methods.
248 virtual void OnDownloadUpdated(DownloadItem* download) override; 245 void OnDownloadUpdated(DownloadItem* download) override;
249 virtual void OnDownloadDestroyed(DownloadItem* download) override; 246 void OnDownloadDestroyed(DownloadItem* download) override;
250 247
251 protected: 248 protected:
252 friend class base::RefCountedThreadSafe<DownloadTestFlushObserver>; 249 friend class base::RefCountedThreadSafe<DownloadTestFlushObserver>;
253 250
254 virtual ~DownloadTestFlushObserver(); 251 ~DownloadTestFlushObserver() override;
255 252
256 private: 253 private:
257 typedef std::set<DownloadItem*> DownloadSet; 254 typedef std::set<DownloadItem*> DownloadSet;
258 255
259 // If we're waiting for that flush point, check the number 256 // If we're waiting for that flush point, check the number
260 // of downloads in the IN_PROGRESS state and take appropriate 257 // of downloads in the IN_PROGRESS state and take appropriate
261 // action. If requested, also observes all downloads while iterating. 258 // action. If requested, also observes all downloads while iterating.
262 void CheckDownloadsInProgress(bool observe_downloads); 259 void CheckDownloadsInProgress(bool observe_downloads);
263 260
264 void PingFileThread(int cycle); 261 void PingFileThread(int cycle);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 304
308 // We are in the message loop. 305 // We are in the message loop.
309 bool waiting_; 306 bool waiting_;
310 307
311 DISALLOW_COPY_AND_ASSIGN(DownloadTestItemCreationObserver); 308 DISALLOW_COPY_AND_ASSIGN(DownloadTestItemCreationObserver);
312 }; 309 };
313 310
314 } // namespace content` 311 } // namespace content`
315 312
316 #endif // CONTENT_TEST_DOWNLOAD_TEST_OBSERVER_H_ 313 #endif // CONTENT_TEST_DOWNLOAD_TEST_OBSERVER_H_
OLDNEW
« no previous file with comments | « content/public/test/content_test_suite_base.h ('k') | content/public/test/fake_speech_recognition_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698