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

Side by Side Diff: media/audio/audio_output_proxy_unittest.cc

Issue 8680009: Call close_timer_.Reset() from StopStreamTask. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 9 years 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/audio/audio_output_dispatcher.cc ('k') | no next file » | 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #include "base/message_loop.h" 5 #include "base/message_loop.h"
6 #include "base/threading/platform_thread.h" 6 #include "base/threading/platform_thread.h"
7 #include "media/audio/audio_output_dispatcher.h" 7 #include "media/audio/audio_output_dispatcher.h"
8 #include "media/audio/audio_output_proxy.h" 8 #include "media/audio/audio_output_proxy.h"
9 #include "media/audio/audio_manager.h" 9 #include "media/audio/audio_manager.h"
10 #include "testing/gmock/include/gmock/gmock.h" 10 #include "testing/gmock/include/gmock/gmock.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 78
79 // This is necessary to free all proxy objects that have been 79 // This is necessary to free all proxy objects that have been
80 // closed by the test. 80 // closed by the test.
81 message_loop_.RunAllPending(); 81 message_loop_.RunAllPending();
82 } 82 }
83 83
84 void InitDispatcher(int close_delay_ms) { 84 void InitDispatcher(int close_delay_ms) {
85 AudioParameters params(AudioParameters::AUDIO_PCM_LINEAR, 85 AudioParameters params(AudioParameters::AUDIO_PCM_LINEAR,
86 CHANNEL_LAYOUT_STEREO, 44100, 16, 1024); 86 CHANNEL_LAYOUT_STEREO, 44100, 16, 1024);
87 dispatcher_ = new AudioOutputDispatcher(&manager_, params, close_delay_ms); 87 dispatcher_ = new AudioOutputDispatcher(&manager_, params, close_delay_ms);
88
89 // Necessary to know how long the dispatcher will wait before posting
90 // StopStreamTask.
91 pause_delay_milliseconds_ = dispatcher_->pause_delay_milliseconds_;
88 } 92 }
89 93
90 MessageLoop message_loop_; 94 MessageLoop message_loop_;
91 scoped_refptr<AudioOutputDispatcher> dispatcher_; 95 scoped_refptr<AudioOutputDispatcher> dispatcher_;
96 int64 pause_delay_milliseconds_;
92 MockAudioManager manager_; 97 MockAudioManager manager_;
93 MockAudioSourceCallback callback_; 98 MockAudioSourceCallback callback_;
94 }; 99 };
95 100
96 TEST_F(AudioOutputProxyTest, CreateAndClose) { 101 TEST_F(AudioOutputProxyTest, CreateAndClose) {
97 AudioOutputProxy* proxy = new AudioOutputProxy(dispatcher_); 102 AudioOutputProxy* proxy = new AudioOutputProxy(dispatcher_);
98 proxy->Close(); 103 proxy->Close();
99 } 104 }
100 105
101 TEST_F(AudioOutputProxyTest, OpenAndClose) { 106 TEST_F(AudioOutputProxyTest, OpenAndClose) {
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 .Times(1); 185 .Times(1);
181 EXPECT_CALL(stream, Close()) 186 EXPECT_CALL(stream, Close())
182 .Times(1); 187 .Times(1);
183 188
184 AudioOutputProxy* proxy = new AudioOutputProxy(dispatcher_); 189 AudioOutputProxy* proxy = new AudioOutputProxy(dispatcher_);
185 EXPECT_TRUE(proxy->Open()); 190 EXPECT_TRUE(proxy->Open());
186 191
187 proxy->Start(&callback_); 192 proxy->Start(&callback_);
188 proxy->Stop(); 193 proxy->Stop();
189 194
190 // Simulate a delay. 195 // Wait for StreamStopped to post StopStreamTask.
Sergey Ulanov 2011/11/23 19:12:18 nit: StreamStopped() and StopStreamTask() to make
Reid Kleckner (google) 2011/11/23 19:23:04 Done.
196 base::PlatformThread::Sleep(pause_delay_milliseconds_ * 3);
Sergey Ulanov 2011/11/23 19:12:18 I think sleeping pause_delay_milliseconds_ should
Reid Kleckner (google) 2011/11/23 19:23:04 Done.
191 message_loop_.RunAllPending(); 197 message_loop_.RunAllPending();
192 base::PlatformThread::Sleep(kTestCloseDelayMs * 10); 198
199 // Wait for the close timer to fire.
200 base::PlatformThread::Sleep(kTestCloseDelayMs * 3);
Sergey Ulanov 2011/11/23 19:12:18 "*2" and can you please update two other tests tha
Reid Kleckner (google) 2011/11/23 19:23:04 Done.
193 message_loop_.RunAllPending(); 201 message_loop_.RunAllPending();
194 202
195 // Verify expectation before calling Close(). 203 // Verify expectation before calling Close().
196 Mock::VerifyAndClear(&stream); 204 Mock::VerifyAndClear(&stream);
197 205
198 proxy->Close(); 206 proxy->Close();
199 } 207 }
200 208
201 // Create two streams, but don't start them. Only one device must be open. 209 // Create two streams, but don't start them. Only one device must be open.
202 TEST_F(AudioOutputProxyTest, TwoStreams) { 210 TEST_F(AudioOutputProxyTest, TwoStreams) {
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 356
349 EXPECT_CALL(callback_, OnError(_, _)) 357 EXPECT_CALL(callback_, OnError(_, _))
350 .Times(1); 358 .Times(1);
351 359
352 proxy->Start(&callback_); 360 proxy->Start(&callback_);
353 361
354 Mock::VerifyAndClear(&callback_); 362 Mock::VerifyAndClear(&callback_);
355 363
356 proxy->Close(); 364 proxy->Close();
357 } 365 }
OLDNEW
« no previous file with comments | « media/audio/audio_output_dispatcher.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698