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

Side by Side Diff: content/renderer/media/audio_message_filter_unittest.cc

Issue 1930393002: Switch stream creation and closing in Chrome audio rendering from IPC to Mojo (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: unique_ptr for Binding Created 4 years, 6 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 #include <stdint.h> 5 #include <stdint.h>
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "content/common/media/audio_messages.h" 10 #include "content/common/media/audio_messages.h"
11 #include "content/renderer/media/audio_message_filter.h" 11 #include "content/renderer/media/audio_message_filter.h"
12 #include "content/renderer/media/audio_output_client.h"
12 #include "media/audio/audio_output_ipc.h" 13 #include "media/audio/audio_output_ipc.h"
13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
14 15 /*
15 namespace content { 16 namespace content {
16 namespace { 17 namespace {
17 18
18 const int kRenderFrameId = 2; 19 const int kRenderFrameId = 2;
19 const char kEmptyMatchedDeviceId[] = ""; 20 const char kEmptyMatchedDeviceId[] = "";
20 21
21 class MockAudioDelegate : public media::AudioOutputIPCDelegate { 22 class MockAudioDelegate : public media::AudioOutputIPCDelegate {
22 public: 23 public:
23 MockAudioDelegate() { 24 MockAudioDelegate() {
24 Reset(); 25 Reset();
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 106
106 TEST(AudioMessageFilterTest, Basic) { 107 TEST(AudioMessageFilterTest, Basic) {
107 base::MessageLoopForIO message_loop; 108 base::MessageLoopForIO message_loop;
108 109
109 scoped_refptr<AudioMessageFilter> filter( 110 scoped_refptr<AudioMessageFilter> filter(
110 new AudioMessageFilter(message_loop.task_runner())); 111 new AudioMessageFilter(message_loop.task_runner()));
111 112
112 MockAudioDelegate delegate; 113 MockAudioDelegate delegate;
113 const std::unique_ptr<media::AudioOutputIPC> ipc = 114 const std::unique_ptr<media::AudioOutputIPC> ipc =
114 filter->CreateAudioOutputIPC(kRenderFrameId); 115 filter->CreateAudioOutputIPC(kRenderFrameId);
116 filter->set_audio_output_client(kRenderFrameId, new AudioOutputClient(NULL));
115 static const int kSessionId = 0; 117 static const int kSessionId = 0;
116 static const std::string kDeviceId; 118 static const std::string kDeviceId;
117 static const url::Origin kSecurityOrigin; 119 static const url::Origin kSecurityOrigin;
118 ipc->RequestDeviceAuthorization(&delegate, kSessionId, kDeviceId, 120 ipc->RequestDeviceAuthorization(&delegate, kSessionId, kDeviceId,
119 kSecurityOrigin); 121 kSecurityOrigin);
120 ipc->CreateStream(&delegate, media::AudioParameters()); 122 ipc->CreateStream(&delegate, media::AudioParameters());
121 static const int kStreamId = 1; 123 static const int kStreamId = 1;
122 EXPECT_EQ(&delegate, filter->delegates_.Lookup(kStreamId)); 124 EXPECT_EQ(&delegate, filter->delegates_.Lookup(kStreamId));
123 125
124 // AudioMsg_NotifyDeviceAuthorized 126 // AudioMsg_NotifyDeviceAuthorized
125 EXPECT_FALSE(delegate.device_authorized_received()); 127 EXPECT_FALSE(delegate.device_authorized_received());
126 filter->OnMessageReceived(AudioMsg_NotifyDeviceAuthorized( 128 filter->OnMessageReceived(AudioMsg_NotifyDeviceAuthorized(
127 kStreamId, media::OUTPUT_DEVICE_STATUS_OK, MockOutputParams(), 129 kStreamId, media::OUTPUT_DEVICE_STATUS_OK, MockOutputParams(),
128 kEmptyMatchedDeviceId)); 130 kEmptyMatchedDeviceId));
129 EXPECT_TRUE(delegate.device_authorized_received()); 131 EXPECT_TRUE(delegate.device_authorized_received());
130 EXPECT_TRUE(delegate.output_params().Equals(MockOutputParams())); 132 EXPECT_TRUE(delegate.output_params().Equals(MockOutputParams()));
131 delegate.Reset(); 133 delegate.Reset();
132 134
133 // AudioMsg_NotifyStreamCreated 135 // AudioMsg_NotifyStreamCreated
134 base::SyncSocket::TransitDescriptor socket_descriptor; 136 base::SyncSocket::TransitDescriptor socket_descriptor;
135 const uint32_t kLength = 1024; 137 const uint32_t kLength = 1024;
136 EXPECT_FALSE(delegate.created_received()); 138 EXPECT_FALSE(delegate.created_received());
137 filter->OnMessageReceived(AudioMsg_NotifyStreamCreated( 139 filter->OnStreamCreated(kStreamId, base::SharedMemory::NULLHandle(),
138 kStreamId, base::SharedMemory::NULLHandle(), socket_descriptor, kLength)); 140 socket_descriptor, kLength);
139 EXPECT_TRUE(delegate.created_received()); 141 EXPECT_TRUE(delegate.created_received());
140 EXPECT_FALSE(base::SharedMemory::IsHandleValid(delegate.handle())); 142 EXPECT_FALSE(base::SharedMemory::IsHandleValid(delegate.handle()));
141 EXPECT_EQ(kLength, delegate.length()); 143 EXPECT_EQ(kLength, delegate.length());
142 delegate.Reset(); 144 delegate.Reset();
143 145
144 // AudioMsg_NotifyStreamStateChanged 146 // AudioMsg_NotifyStreamStateChanged
145 EXPECT_FALSE(delegate.state_changed_received()); 147 EXPECT_FALSE(delegate.state_changed_received());
146 filter->OnMessageReceived( 148 filter->OnMessageReceived(
147 AudioMsg_NotifyStreamStateChanged( 149 AudioMsg_NotifyStreamStateChanged(
148 kStreamId, media::AUDIO_OUTPUT_IPC_DELEGATE_STATE_PLAYING)); 150 kStreamId, media::AUDIO_OUTPUT_IPC_DELEGATE_STATE_PLAYING));
151 filter->OnStreamCreated(kStreamId, base::SharedMemory::NULLHandle(),
152 socket_descriptor, kLength);
149 EXPECT_TRUE(delegate.state_changed_received()); 153 EXPECT_TRUE(delegate.state_changed_received());
150 EXPECT_EQ(media::AUDIO_OUTPUT_IPC_DELEGATE_STATE_PLAYING, delegate.state()); 154 EXPECT_EQ(media::AUDIO_OUTPUT_IPC_DELEGATE_STATE_PLAYING, delegate.state());
151 delegate.Reset(); 155 delegate.Reset();
152 156
153 ipc->CloseStream(); 157 ipc->CloseStream();
154 EXPECT_EQ(static_cast<media::AudioOutputIPCDelegate*>(NULL), 158 EXPECT_EQ(static_cast<media::AudioOutputIPCDelegate*>(NULL),
155 filter->delegates_.Lookup(kStreamId)); 159 filter->delegates_.Lookup(kStreamId));
156 } 160 }
157 161
158 TEST(AudioMessageFilterTest, Delegates) { 162 TEST(AudioMessageFilterTest, Delegates) {
159 base::MessageLoopForIO message_loop; 163 base::MessageLoopForIO message_loop;
160 164
161 scoped_refptr<AudioMessageFilter> filter( 165 scoped_refptr<AudioMessageFilter> filter(
162 new AudioMessageFilter(message_loop.task_runner())); 166 new AudioMessageFilter(message_loop.task_runner()));
163 167 filter->set_audio_output_client(kRenderFrameId, new AudioOutputClient(NULL));
164 MockAudioDelegate delegate1; 168 MockAudioDelegate delegate1;
165 MockAudioDelegate delegate2; 169 MockAudioDelegate delegate2;
166 const std::unique_ptr<media::AudioOutputIPC> ipc1 = 170 const std::unique_ptr<media::AudioOutputIPC> ipc1 =
167 filter->CreateAudioOutputIPC(kRenderFrameId); 171 filter->CreateAudioOutputIPC(kRenderFrameId);
168 const std::unique_ptr<media::AudioOutputIPC> ipc2 = 172 const std::unique_ptr<media::AudioOutputIPC> ipc2 =
169 filter->CreateAudioOutputIPC(kRenderFrameId); 173 filter->CreateAudioOutputIPC(kRenderFrameId);
170 ipc1->CreateStream(&delegate1, media::AudioParameters()); 174 ipc1->CreateStream(&delegate1, media::AudioParameters());
171 ipc2->CreateStream(&delegate2, media::AudioParameters()); 175 ipc2->CreateStream(&delegate2, media::AudioParameters());
172 static const int kStreamId1 = 1; 176 static const int kStreamId1 = 1;
173 static const int kStreamId2 = 2; 177 static const int kStreamId2 = 2;
(...skipping 22 matching lines...) Expand all
196 message_loop.RunUntilIdle(); 200 message_loop.RunUntilIdle();
197 201
198 ipc1->CloseStream(); 202 ipc1->CloseStream();
199 ipc2->CloseStream(); 203 ipc2->CloseStream();
200 EXPECT_EQ(static_cast<media::AudioOutputIPCDelegate*>(NULL), 204 EXPECT_EQ(static_cast<media::AudioOutputIPCDelegate*>(NULL),
201 filter->delegates_.Lookup(kStreamId1)); 205 filter->delegates_.Lookup(kStreamId1));
202 EXPECT_EQ(static_cast<media::AudioOutputIPCDelegate*>(NULL), 206 EXPECT_EQ(static_cast<media::AudioOutputIPCDelegate*>(NULL),
203 filter->delegates_.Lookup(kStreamId2)); 207 filter->delegates_.Lookup(kStreamId2));
204 } 208 }
205 209
206 } // namespace content 210 }
211
212 // namespace content
213
214 */
OLDNEW
« no previous file with comments | « content/renderer/media/audio_message_filter.cc ('k') | content/renderer/media/audio_output_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698