| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this |
| 2 // source code is governed by a BSD-style license that can be found in the | 2 // source code is governed by a BSD-style license that can be found in the |
| 3 // LICENSE file. | 3 // LICENSE file. |
| 4 | 4 |
| 5 // The corresponding FilterHost implementation for MockPipeline. Maintains a | 5 // The corresponding FilterHost implementation for MockPipeline. Maintains a |
| 6 // reference to the parent MockPipeline and a reference to the Filter its | 6 // reference to the parent MockPipeline and a reference to the Filter its |
| 7 // hosting. Common usage is to check if the hosted filter has initialized by | 7 // hosting. Common usage is to check if the hosted filter has initialized by |
| 8 // calling IsInitialized(). | 8 // calling IsInitialized(). |
| 9 | 9 |
| 10 #ifndef MEDIA_BASE_MOCK_FILTER_HOST_H_ | 10 #ifndef MEDIA_BASE_MOCK_FILTER_HOST_H_ |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 error_(PIPELINE_OK), | 33 error_(PIPELINE_OK), |
| 34 wait_for_initialized_(false, false), | 34 wait_for_initialized_(false, false), |
| 35 wait_for_error_(false, false) { | 35 wait_for_error_(false, false) { |
| 36 EXPECT_TRUE(mock_pipeline_); | 36 EXPECT_TRUE(mock_pipeline_); |
| 37 EXPECT_TRUE(filter_); | 37 EXPECT_TRUE(filter_); |
| 38 filter_->SetFilterHost(this); | 38 filter_->SetFilterHost(this); |
| 39 } | 39 } |
| 40 | 40 |
| 41 virtual ~MockFilterHost() {} | 41 virtual ~MockFilterHost() {} |
| 42 | 42 |
| 43 virtual const PipelineStatus* GetPipelineStatus() const { | |
| 44 return mock_pipeline_; | |
| 45 } | |
| 46 | |
| 47 virtual void SetTimeUpdateCallback(Callback1<base::TimeDelta>::Type* cb) { | |
| 48 time_update_callback_.reset(cb); | |
| 49 } | |
| 50 | |
| 51 virtual void ScheduleTimeUpdateCallback(base::TimeDelta time) { | |
| 52 scheduled_callback_time_ = time; | |
| 53 } | |
| 54 | |
| 55 virtual void InitializationComplete() { | 43 virtual void InitializationComplete() { |
| 56 EXPECT_FALSE(initialized_); | 44 EXPECT_FALSE(initialized_); |
| 57 initialized_ = true; | 45 initialized_ = true; |
| 58 wait_for_initialized_.Signal(); | 46 wait_for_initialized_.Signal(); |
| 59 } | 47 } |
| 60 | 48 |
| 61 virtual void Error(PipelineError error) { | 49 virtual void Error(PipelineError error) { |
| 62 error_ = error; | 50 error_ = error; |
| 63 mock_pipeline_->Error(error); | 51 mock_pipeline_->Error(error); |
| 64 wait_for_error_.Signal(); | 52 wait_for_error_.Signal(); |
| 65 } | 53 } |
| 66 | 54 |
| 55 virtual base::TimeDelta GetTime() const { |
| 56 return mock_pipeline_->GetTime(); |
| 57 } |
| 58 |
| 67 virtual void SetTime(base::TimeDelta time) { | 59 virtual void SetTime(base::TimeDelta time) { |
| 68 mock_pipeline_->SetTime(time); | 60 mock_pipeline_->SetTime(time); |
| 69 } | 61 } |
| 70 | 62 |
| 71 virtual void SetDuration(base::TimeDelta duration) { | 63 virtual void SetDuration(base::TimeDelta duration) { |
| 72 mock_pipeline_->SetDuration(duration); | 64 mock_pipeline_->SetDuration(duration); |
| 73 } | 65 } |
| 74 | 66 |
| 75 virtual void SetBufferedTime(base::TimeDelta buffered_time) { | 67 virtual void SetBufferedTime(base::TimeDelta buffered_time) { |
| 76 mock_pipeline_->SetBufferedTime(buffered_time); | 68 mock_pipeline_->SetBufferedTime(buffered_time); |
| 77 } | 69 } |
| 78 | 70 |
| 79 virtual void SetTotalBytes(int64 total_bytes) { | 71 virtual void SetTotalBytes(int64 total_bytes) { |
| 80 mock_pipeline_->SetTotalBytes(total_bytes); | 72 mock_pipeline_->SetTotalBytes(total_bytes); |
| 81 } | 73 } |
| 82 | 74 |
| 83 virtual void SetBufferedBytes(int64 buffered_bytes) { | 75 virtual void SetBufferedBytes(int64 buffered_bytes) { |
| 84 mock_pipeline_->SetBufferedBytes(buffered_bytes); | 76 mock_pipeline_->SetBufferedBytes(buffered_bytes); |
| 85 } | 77 } |
| 86 | 78 |
| 87 virtual void SetVideoSize(size_t width, size_t height) { | 79 virtual void SetVideoSize(size_t width, size_t height) { |
| 88 mock_pipeline_->SetVideoSize(width, height); | 80 mock_pipeline_->SetVideoSize(width, height); |
| 89 } | 81 } |
| 90 | 82 |
| 91 // Used by unit tests to manipulate the filter. | |
| 92 base::TimeDelta GetScheduledCallbackTime() const { | |
| 93 return scheduled_callback_time_; | |
| 94 } | |
| 95 | |
| 96 Callback1<base::TimeDelta>::Type* GetTimeUpdateCallback() const { | |
| 97 return time_update_callback_.get(); | |
| 98 } | |
| 99 | |
| 100 bool IsInitialized() const { | 83 bool IsInitialized() const { |
| 101 return initialized_; | 84 return initialized_; |
| 102 } | 85 } |
| 103 | 86 |
| 104 bool WaitForInitialized() { | 87 bool WaitForInitialized() { |
| 105 const base::TimeDelta kTimedWait = base::TimeDelta::FromMilliseconds(500); | 88 const base::TimeDelta kTimedWait = base::TimeDelta::FromMilliseconds(500); |
| 106 while (!initialized_) { | 89 while (!initialized_) { |
| 107 if (!wait_for_initialized_.TimedWait(kTimedWait)) { | 90 if (!wait_for_initialized_.TimedWait(kTimedWait)) { |
| 108 return false; | 91 return false; |
| 109 } | 92 } |
| 110 } | 93 } |
| 111 return true; | 94 return true; |
| 112 } | 95 } |
| 113 | 96 |
| 114 bool WaitForError(PipelineError error) { | 97 bool WaitForError(PipelineError error) { |
| 115 const base::TimeDelta kTimedWait = base::TimeDelta::FromMilliseconds(500); | 98 const base::TimeDelta kTimedWait = base::TimeDelta::FromMilliseconds(500); |
| 116 while (error_ != error) { | 99 while (error_ != error) { |
| 117 if (!wait_for_error_.TimedWait(kTimedWait)) { | 100 if (!wait_for_error_.TimedWait(kTimedWait)) { |
| 118 return false; | 101 return false; |
| 119 } | 102 } |
| 120 } | 103 } |
| 121 return true; | 104 return true; |
| 122 } | 105 } |
| 123 | 106 |
| 124 private: | 107 private: |
| 125 MockPipeline* mock_pipeline_; | 108 MockPipeline* mock_pipeline_; |
| 126 scoped_refptr<Filter> filter_; | 109 scoped_refptr<Filter> filter_; |
| 127 scoped_ptr<Callback1<base::TimeDelta>::Type> time_update_callback_; | |
| 128 | |
| 129 // Keeps track of the time passed into ScheduleTimeUpdateCallback(). | |
| 130 base::TimeDelta scheduled_callback_time_; | |
| 131 | 110 |
| 132 // Tracks if the filter has executed InitializationComplete(). | 111 // Tracks if the filter has executed InitializationComplete(). |
| 133 bool initialized_; | 112 bool initialized_; |
| 134 | 113 |
| 135 // Tracks the last pipeline error set by the filter. | 114 // Tracks the last pipeline error set by the filter. |
| 136 PipelineError error_; | 115 PipelineError error_; |
| 137 | 116 |
| 138 // Allows unit tests to wait for particular conditions before asserting. | 117 // Allows unit tests to wait for particular conditions before asserting. |
| 139 base::WaitableEvent wait_for_initialized_; | 118 base::WaitableEvent wait_for_initialized_; |
| 140 base::WaitableEvent wait_for_error_; | 119 base::WaitableEvent wait_for_error_; |
| 141 | 120 |
| 142 DISALLOW_COPY_AND_ASSIGN(MockFilterHost); | 121 DISALLOW_COPY_AND_ASSIGN(MockFilterHost); |
| 143 }; | 122 }; |
| 144 | 123 |
| 145 } // namespace media | 124 } // namespace media |
| 146 | 125 |
| 147 #endif // MEDIA_BASE_MOCK_FILTER_HOST_H_ | 126 #endif // MEDIA_BASE_MOCK_FILTER_HOST_H_ |
| OLD | NEW |