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 23 matching lines...) Expand all Loading... |
34 const int kRenderId = 6; | 34 const int kRenderId = 6; |
35 const int kPageRequestId = 7; | 35 const int kPageRequestId = 7; |
36 | 36 |
37 namespace content { | 37 namespace content { |
38 | 38 |
39 class MockMediaStreamDispatcherHost : public MediaStreamDispatcherHost, | 39 class MockMediaStreamDispatcherHost : public MediaStreamDispatcherHost, |
40 public TestContentBrowserClient { | 40 public TestContentBrowserClient { |
41 public: | 41 public: |
42 MockMediaStreamDispatcherHost(base::MessageLoop* message_loop, | 42 MockMediaStreamDispatcherHost(base::MessageLoop* message_loop, |
43 MediaStreamManager* manager) | 43 MediaStreamManager* manager) |
44 : MediaStreamDispatcherHost(kProcessId), | 44 : MediaStreamDispatcherHost(kProcessId, manager), |
45 message_loop_(message_loop), | 45 message_loop_(message_loop) {} |
46 manager_(manager) {} | |
47 | 46 |
48 // A list of mock methods. | 47 // A list of mock methods. |
49 MOCK_METHOD4(OnStreamGenerated, | 48 MOCK_METHOD4(OnStreamGenerated, |
50 void(int routing_id, int request_id, int audio_array_size, | 49 void(int routing_id, int request_id, int audio_array_size, |
51 int video_array_size)); | 50 int video_array_size)); |
52 MOCK_METHOD2(OnStreamGenerationFailed, void(int routing_id, int request_id)); | 51 MOCK_METHOD2(OnStreamGenerationFailed, void(int routing_id, int request_id)); |
53 | 52 |
54 // Accessor to private functions. | 53 // Accessor to private functions. |
55 void OnGenerateStream(int page_request_id, const StreamOptions& components) { | 54 void OnGenerateStream(int page_request_id, const StreamOptions& components) { |
56 MediaStreamDispatcherHost::OnGenerateStream(kRenderId, | 55 MediaStreamDispatcherHost::OnGenerateStream(kRenderId, |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 IPC_MESSAGE_HANDLER(MediaStreamMsg_StreamGenerationFailed, | 87 IPC_MESSAGE_HANDLER(MediaStreamMsg_StreamGenerationFailed, |
89 OnStreamGenerationFailed) | 88 OnStreamGenerationFailed) |
90 IPC_MESSAGE_UNHANDLED(handled = false) | 89 IPC_MESSAGE_UNHANDLED(handled = false) |
91 IPC_END_MESSAGE_MAP() | 90 IPC_END_MESSAGE_MAP() |
92 EXPECT_TRUE(handled); | 91 EXPECT_TRUE(handled); |
93 | 92 |
94 delete message; | 93 delete message; |
95 return true; | 94 return true; |
96 } | 95 } |
97 | 96 |
98 // Use our own MediaStreamManager. | |
99 virtual MediaStreamManager* GetManager() OVERRIDE { | |
100 return manager_; | |
101 } | |
102 | |
103 // These handler methods do minimal things and delegate to the mock methods. | 97 // These handler methods do minimal things and delegate to the mock methods. |
104 void OnStreamGenerated( | 98 void OnStreamGenerated( |
105 const IPC::Message& msg, | 99 const IPC::Message& msg, |
106 int request_id, | 100 int request_id, |
107 std::string label, | 101 std::string label, |
108 StreamDeviceInfoArray audio_device_list, | 102 StreamDeviceInfoArray audio_device_list, |
109 StreamDeviceInfoArray video_device_list) { | 103 StreamDeviceInfoArray video_device_list) { |
110 OnStreamGenerated(msg.routing_id(), request_id, audio_device_list.size(), | 104 OnStreamGenerated(msg.routing_id(), request_id, audio_device_list.size(), |
111 video_device_list.size()); | 105 video_device_list.size()); |
112 // Notify that the event have occured. | 106 // Notify that the event have occured. |
113 message_loop_->PostTask(FROM_HERE, base::MessageLoop::QuitClosure()); | 107 message_loop_->PostTask(FROM_HERE, base::MessageLoop::QuitClosure()); |
114 label_ = label; | 108 label_ = label; |
115 audio_devices_ = audio_device_list; | 109 audio_devices_ = audio_device_list; |
116 video_devices_ = video_device_list; | 110 video_devices_ = video_device_list; |
117 } | 111 } |
118 | 112 |
119 void OnStreamGenerationFailed(const IPC::Message& msg, int request_id) { | 113 void OnStreamGenerationFailed(const IPC::Message& msg, int request_id) { |
120 OnStreamGenerationFailed(msg.routing_id(), request_id); | 114 OnStreamGenerationFailed(msg.routing_id(), request_id); |
121 message_loop_->PostTask(FROM_HERE, base::MessageLoop::QuitClosure()); | 115 message_loop_->PostTask(FROM_HERE, base::MessageLoop::QuitClosure()); |
122 label_= ""; | 116 label_= ""; |
123 } | 117 } |
124 | 118 |
125 base::MessageLoop* message_loop_; | 119 base::MessageLoop* message_loop_; |
126 MediaStreamManager* manager_; | |
127 }; | 120 }; |
128 | 121 |
129 class MockMediaStreamUIProxy : public FakeMediaStreamUIProxy { | 122 class MockMediaStreamUIProxy : public FakeMediaStreamUIProxy { |
130 public: | 123 public: |
131 MOCK_METHOD1(OnStarted, void(const base::Closure& stop)); | 124 MOCK_METHOD1(OnStarted, void(const base::Closure& stop)); |
132 }; | 125 }; |
133 | 126 |
134 class MediaStreamDispatcherHostTest : public testing::Test { | 127 class MediaStreamDispatcherHostTest : public testing::Test { |
135 public: | 128 public: |
136 MediaStreamDispatcherHostTest() : old_browser_client_(NULL) {} | 129 MediaStreamDispatcherHostTest() : old_browser_client_(NULL) {} |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 EXPECT_EQ(host_->NumberOfStreams(), 1u); | 348 EXPECT_EQ(host_->NumberOfStreams(), 1u); |
356 | 349 |
357 ASSERT_FALSE(close_callback.is_null()); | 350 ASSERT_FALSE(close_callback.is_null()); |
358 close_callback.Run(); | 351 close_callback.Run(); |
359 message_loop_->RunUntilIdle(); | 352 message_loop_->RunUntilIdle(); |
360 | 353 |
361 EXPECT_EQ(host_->NumberOfStreams(), 0u); | 354 EXPECT_EQ(host_->NumberOfStreams(), 0u); |
362 } | 355 } |
363 | 356 |
364 }; // namespace content | 357 }; // namespace content |
OLD | NEW |