OLD | NEW |
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 Loading... |
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 Loading... |
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 */ |
OLD | NEW |