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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "content/browser/browser_thread_impl.h" | 9 #include "content/browser/browser_thread_impl.h" |
10 #include "content/browser/renderer_host/media/media_stream_dispatcher_host.h" | 10 #include "content/browser/renderer_host/media/media_stream_dispatcher_host.h" |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 MediaStreamManager* manager) | 44 MediaStreamManager* manager) |
45 : MediaStreamDispatcherHost(kProcessId), | 45 : MediaStreamDispatcherHost(kProcessId), |
46 message_loop_(message_loop), | 46 message_loop_(message_loop), |
47 manager_(manager) {} | 47 manager_(manager) {} |
48 | 48 |
49 // A list of mock methods. | 49 // A list of mock methods. |
50 MOCK_METHOD4(OnStreamGenerated, | 50 MOCK_METHOD4(OnStreamGenerated, |
51 void(int routing_id, int request_id, int audio_array_size, | 51 void(int routing_id, int request_id, int audio_array_size, |
52 int video_array_size)); | 52 int video_array_size)); |
53 MOCK_METHOD2(OnStreamGenerationFailed, void(int routing_id, int request_id)); | 53 MOCK_METHOD2(OnStreamGenerationFailed, void(int routing_id, int request_id)); |
54 MOCK_METHOD2(OnAudioDeviceFailed, void(int routing_id, int index)); | |
55 MOCK_METHOD2(OnVideoDeviceFailed, void(int routing_id, int index)); | |
56 MOCK_METHOD0(GetMediaObserver, content::MediaObserver*()); | 54 MOCK_METHOD0(GetMediaObserver, content::MediaObserver*()); |
57 | 55 |
58 // Accessor to private functions. | 56 // Accessor to private functions. |
59 void OnGenerateStream(int page_request_id, const StreamOptions& components) { | 57 void OnGenerateStream(int page_request_id, const StreamOptions& components) { |
60 MediaStreamDispatcherHost::OnGenerateStream(kRenderId, | 58 MediaStreamDispatcherHost::OnGenerateStream(kRenderId, |
61 page_request_id, | 59 page_request_id, |
62 components, | 60 components, |
63 GURL()); | 61 GURL()); |
64 } | 62 } |
65 void OnGenerateStreamForDevice(int page_request_id, | 63 void OnGenerateStreamForDevice(int page_request_id, |
(...skipping 27 matching lines...) Expand all Loading... |
93 virtual bool Send(IPC::Message* message) OVERRIDE { | 91 virtual bool Send(IPC::Message* message) OVERRIDE { |
94 CHECK(message); | 92 CHECK(message); |
95 | 93 |
96 // In this method we dispatch the messages to the according handlers as if | 94 // In this method we dispatch the messages to the according handlers as if |
97 // we are the renderer. | 95 // we are the renderer. |
98 bool handled = true; | 96 bool handled = true; |
99 IPC_BEGIN_MESSAGE_MAP(MockMediaStreamDispatcherHost, *message) | 97 IPC_BEGIN_MESSAGE_MAP(MockMediaStreamDispatcherHost, *message) |
100 IPC_MESSAGE_HANDLER(MediaStreamMsg_StreamGenerated, OnStreamGenerated) | 98 IPC_MESSAGE_HANDLER(MediaStreamMsg_StreamGenerated, OnStreamGenerated) |
101 IPC_MESSAGE_HANDLER(MediaStreamMsg_StreamGenerationFailed, | 99 IPC_MESSAGE_HANDLER(MediaStreamMsg_StreamGenerationFailed, |
102 OnStreamGenerationFailed) | 100 OnStreamGenerationFailed) |
103 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_VideoDeviceFailed, | |
104 OnVideoDeviceFailed) | |
105 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_AudioDeviceFailed, | |
106 OnAudioDeviceFailed) | |
107 IPC_MESSAGE_UNHANDLED(handled = false) | 101 IPC_MESSAGE_UNHANDLED(handled = false) |
108 IPC_END_MESSAGE_MAP() | 102 IPC_END_MESSAGE_MAP() |
109 EXPECT_TRUE(handled); | 103 EXPECT_TRUE(handled); |
110 | 104 |
111 delete message; | 105 delete message; |
112 return true; | 106 return true; |
113 } | 107 } |
114 | 108 |
115 // Use our own MediaStreamManager. | 109 // Use our own MediaStreamManager. |
116 virtual MediaStreamManager* GetManager() OVERRIDE { | 110 virtual MediaStreamManager* GetManager() OVERRIDE { |
(...skipping 15 matching lines...) Expand all Loading... |
132 audio_devices_ = audio_device_list; | 126 audio_devices_ = audio_device_list; |
133 video_devices_ = video_device_list; | 127 video_devices_ = video_device_list; |
134 } | 128 } |
135 | 129 |
136 void OnStreamGenerationFailed(const IPC::Message& msg, int request_id) { | 130 void OnStreamGenerationFailed(const IPC::Message& msg, int request_id) { |
137 OnStreamGenerationFailed(msg.routing_id(), request_id); | 131 OnStreamGenerationFailed(msg.routing_id(), request_id); |
138 message_loop_->PostTask(FROM_HERE, MessageLoop::QuitClosure()); | 132 message_loop_->PostTask(FROM_HERE, MessageLoop::QuitClosure()); |
139 label_= ""; | 133 label_= ""; |
140 } | 134 } |
141 | 135 |
142 void OnAudioDeviceFailed(const IPC::Message& msg, | |
143 std::string label, | |
144 int index) { | |
145 OnAudioDeviceFailed(msg.routing_id(), index); | |
146 audio_devices_.erase(audio_devices_.begin() + index); | |
147 message_loop_->PostTask(FROM_HERE, MessageLoop::QuitClosure()); | |
148 } | |
149 | |
150 void OnVideoDeviceFailed(const IPC::Message& msg, | |
151 std::string label, | |
152 int index) { | |
153 OnVideoDeviceFailed(msg.routing_id(), index); | |
154 video_devices_.erase(video_devices_.begin() + index); | |
155 message_loop_->PostTask(FROM_HERE, MessageLoop::QuitClosure()); | |
156 } | |
157 | |
158 MessageLoop* message_loop_; | 136 MessageLoop* message_loop_; |
159 MediaStreamManager* manager_; | 137 MediaStreamManager* manager_; |
160 }; | 138 }; |
161 | 139 |
162 class MediaStreamDispatcherHostTest : public testing::Test { | 140 class MediaStreamDispatcherHostTest : public testing::Test { |
163 public: | 141 public: |
164 MediaStreamDispatcherHostTest() : old_client_(NULL), | 142 MediaStreamDispatcherHostTest() : old_client_(NULL), |
165 old_browser_client_(NULL) {} | 143 old_browser_client_(NULL) {} |
166 virtual ~MediaStreamDispatcherHostTest() {} | 144 virtual ~MediaStreamDispatcherHostTest() {} |
167 | 145 |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
396 // Calling OnChannelClosing() to cancel all the pending/generated streams. | 374 // Calling OnChannelClosing() to cancel all the pending/generated streams. |
397 EXPECT_CALL(*media_observer_.get(), OnCaptureDevicesClosed(_, _, _)) | 375 EXPECT_CALL(*media_observer_.get(), OnCaptureDevicesClosed(_, _, _)) |
398 .Times(3); | 376 .Times(3); |
399 host_->OnChannelClosing(); | 377 host_->OnChannelClosing(); |
400 | 378 |
401 // Streams should have been cleaned up. | 379 // Streams should have been cleaned up. |
402 EXPECT_EQ(host_->NumberOfStreams(), 0u); | 380 EXPECT_EQ(host_->NumberOfStreams(), 0u); |
403 } | 381 } |
404 | 382 |
405 }; // namespace media_stream | 383 }; // namespace media_stream |
OLD | NEW |