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

Side by Side Diff: media/base/mock_filters.h

Issue 5974011: Revert 70277 - Revert 70275 - Revert 70267 - Refactor PipelineImpl to use Com... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 12 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 | Annotate | Revision Log
« no previous file with comments | « media/base/composite_filter_unittest.cc ('k') | media/base/mock_filters.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 // A new breed of mock media filters, this time using gmock! Feel free to add 5 // A new breed of mock media filters, this time using gmock! Feel free to add
6 // actions if you need interesting side-effects (i.e., copying data to the 6 // actions if you need interesting side-effects (i.e., copying data to the
7 // buffer passed into MockDataSource::Read()). 7 // buffer passed into MockDataSource::Read()).
8 // 8 //
9 // Don't forget you can use StrictMock<> and NiceMock<> if you want the mock 9 // Don't forget you can use StrictMock<> and NiceMock<> if you want the mock
10 // filters to fail the test or do nothing when an unexpected method is called. 10 // filters to fail the test or do nothing when an unexpected method is called.
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 private: 43 private:
44 DISALLOW_COPY_AND_ASSIGN(Destroyable); 44 DISALLOW_COPY_AND_ASSIGN(Destroyable);
45 }; 45 };
46 46
47 // Helper class used to test that callbacks are executed. It is recommend you 47 // Helper class used to test that callbacks are executed. It is recommend you
48 // combine this class with StrictMock<> to verify that the callback is executed. 48 // combine this class with StrictMock<> to verify that the callback is executed.
49 // You can reuse the same instance of a MockFilterCallback many times since 49 // You can reuse the same instance of a MockFilterCallback many times since
50 // gmock will track the number of times the methods are executed. 50 // gmock will track the number of times the methods are executed.
51 class MockFilterCallback { 51 class MockFilterCallback {
52 public: 52 public:
53 MockFilterCallback() : run_destroy_callback_(true) { 53 MockFilterCallback() {}
54 }
55
56 MockFilterCallback(bool run_destroy_callback) :
57 run_destroy_callback_(run_destroy_callback) {
58 }
59 virtual ~MockFilterCallback() {} 54 virtual ~MockFilterCallback() {}
60 55
61 MOCK_METHOD0(OnCallbackDestroyed, void()); 56 MOCK_METHOD0(OnCallbackDestroyed, void());
62 MOCK_METHOD0(OnFilterCallback, void()); 57 MOCK_METHOD0(OnFilterCallback, void());
63 58
64 // Helper method to create a new callback for this mock. The callback will 59 // Helper method to create a new callback for this mock. The callback will
65 // call OnFilterCallback() when executed and OnCallbackDestroyed() when 60 // call OnFilterCallback() when executed and OnCallbackDestroyed() when
66 // destroyed. Clients should use NiceMock<> or StrictMock<> depending on the 61 // destroyed. Clients should use NiceMock<> or StrictMock<> depending on the
67 // test. 62 // test.
68 FilterCallback* NewCallback() { 63 FilterCallback* NewCallback() {
69 return new CallbackImpl(this, run_destroy_callback_); 64 return new CallbackImpl(this);
70 } 65 }
71 66
72 private: 67 private:
73 // Private implementation of CallbackRunner used to trigger expectations on 68 // Private implementation of CallbackRunner used to trigger expectations on
74 // MockFilterCallback. 69 // MockFilterCallback.
75 class CallbackImpl : public CallbackRunner<Tuple0> { 70 class CallbackImpl : public CallbackRunner<Tuple0> {
76 public: 71 public:
77 explicit CallbackImpl(MockFilterCallback* mock_callback, 72 explicit CallbackImpl(MockFilterCallback* mock_callback)
78 bool run_destroy_callback) 73 : mock_callback_(mock_callback) {
79 : mock_callback_(mock_callback),
80 run_destroy_callback_(run_destroy_callback) {
81 } 74 }
82 75
83 virtual ~CallbackImpl() { 76 virtual ~CallbackImpl() {
84 if (run_destroy_callback_) 77 mock_callback_->OnCallbackDestroyed();
85 mock_callback_->OnCallbackDestroyed();
86 } 78 }
87 79
88 virtual void RunWithParams(const Tuple0& params) { 80 virtual void RunWithParams(const Tuple0& params) {
89 mock_callback_->OnFilterCallback(); 81 mock_callback_->OnFilterCallback();
90 } 82 }
91 83
92 private: 84 private:
93 MockFilterCallback* mock_callback_; 85 MockFilterCallback* mock_callback_;
94 bool run_destroy_callback_;
95 86
96 DISALLOW_COPY_AND_ASSIGN(CallbackImpl); 87 DISALLOW_COPY_AND_ASSIGN(CallbackImpl);
97 }; 88 };
98 89
99 bool run_destroy_callback_;
100 DISALLOW_COPY_AND_ASSIGN(MockFilterCallback); 90 DISALLOW_COPY_AND_ASSIGN(MockFilterCallback);
101 }; 91 };
102 92
103 class MockFilter : public Filter {
104 public:
105 MockFilter();
106 MockFilter(bool requires_message_loop);
107
108 // Filter implementation.
109 virtual bool requires_message_loop() const;
110 virtual const char* message_loop_name() const;
111
112 MOCK_METHOD1(Play, void(FilterCallback* callback));
113 MOCK_METHOD1(Pause, void(FilterCallback* callback));
114 MOCK_METHOD1(Flush, void(FilterCallback* callback));
115 MOCK_METHOD1(Stop, void(FilterCallback* callback));
116 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate));
117 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback));
118 MOCK_METHOD0(OnAudioRendererDisabled, void());
119
120 protected:
121 virtual ~MockFilter();
122
123 private:
124 bool requires_message_loop_;
125
126 DISALLOW_COPY_AND_ASSIGN(MockFilter);
127 };
128
129 class MockDataSource : public DataSource { 93 class MockDataSource : public DataSource {
130 public: 94 public:
131 MockDataSource() {} 95 MockDataSource() {}
132 96
133 // Filter implementation. 97 // Filter implementation.
134 MOCK_METHOD1(Stop, void(FilterCallback* callback)); 98 MOCK_METHOD1(Stop, void(FilterCallback* callback));
135 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); 99 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate));
136 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); 100 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback));
137 MOCK_METHOD0(OnAudioRendererDisabled, void()); 101 MOCK_METHOD0(OnAudioRendererDisabled, void());
138 102
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 354
391 // Helper gmock action that calls DisableAudioRenderer() on behalf of the 355 // Helper gmock action that calls DisableAudioRenderer() on behalf of the
392 // provided filter. 356 // provided filter.
393 ACTION_P(DisableAudioRenderer, filter) { 357 ACTION_P(DisableAudioRenderer, filter) {
394 filter->host()->DisableAudioRenderer(); 358 filter->host()->DisableAudioRenderer();
395 } 359 }
396 360
397 } // namespace media 361 } // namespace media
398 362
399 #endif // MEDIA_BASE_MOCK_FILTERS_H_ 363 #endif // MEDIA_BASE_MOCK_FILTERS_H_
OLDNEW
« no previous file with comments | « media/base/composite_filter_unittest.cc ('k') | media/base/mock_filters.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698