| 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 |