OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
| 11 #include <memory> |
11 #include <string> | 12 #include <string> |
12 #include <utility> | 13 #include <utility> |
13 | 14 |
14 #include "webrtc/api/mediastreaminterface.h" | 15 #include "webrtc/api/mediastreaminterface.h" |
15 #include "webrtc/api/peerconnectionfactory.h" | 16 #include "webrtc/api/peerconnectionfactory.h" |
16 #ifdef WEBRTC_ANDROID | 17 #ifdef WEBRTC_ANDROID |
17 #include "webrtc/api/test/androidtestinitializer.h" | 18 #include "webrtc/api/test/androidtestinitializer.h" |
18 #endif | 19 #endif |
19 #include "webrtc/api/test/fakedtlsidentitystore.h" | 20 #include "webrtc/api/test/fakedtlsidentitystore.h" |
20 #include "webrtc/api/test/fakevideotrackrenderer.h" | 21 #include "webrtc/api/test/fakevideotrackrenderer.h" |
21 #include "webrtc/base/gunit.h" | 22 #include "webrtc/base/gunit.h" |
22 #include "webrtc/base/scoped_ptr.h" | |
23 #include "webrtc/base/thread.h" | 23 #include "webrtc/base/thread.h" |
24 #include "webrtc/media/base/fakevideocapturer.h" | 24 #include "webrtc/media/base/fakevideocapturer.h" |
25 #include "webrtc/media/engine/webrtccommon.h" | 25 #include "webrtc/media/engine/webrtccommon.h" |
26 #include "webrtc/media/engine/webrtcvoe.h" | 26 #include "webrtc/media/engine/webrtcvoe.h" |
27 #include "webrtc/p2p/client/fakeportallocator.h" | 27 #include "webrtc/p2p/client/fakeportallocator.h" |
28 | 28 |
29 using webrtc::DataChannelInterface; | 29 using webrtc::DataChannelInterface; |
30 using webrtc::DtlsIdentityStoreInterface; | 30 using webrtc::DtlsIdentityStoreInterface; |
31 using webrtc::FakeVideoTrackRenderer; | 31 using webrtc::FakeVideoTrackRenderer; |
32 using webrtc::MediaStreamInterface; | 32 using webrtc::MediaStreamInterface; |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 raw_port_allocator_->turn_servers()[i].ports[0].proto); | 115 raw_port_allocator_->turn_servers()[i].ports[0].proto); |
116 EXPECT_EQ(turn_servers[i].credentials.username, | 116 EXPECT_EQ(turn_servers[i].credentials.username, |
117 raw_port_allocator_->turn_servers()[i].credentials.username); | 117 raw_port_allocator_->turn_servers()[i].credentials.username); |
118 EXPECT_EQ(turn_servers[i].credentials.password, | 118 EXPECT_EQ(turn_servers[i].credentials.password, |
119 raw_port_allocator_->turn_servers()[i].credentials.password); | 119 raw_port_allocator_->turn_servers()[i].credentials.password); |
120 } | 120 } |
121 } | 121 } |
122 | 122 |
123 rtc::scoped_refptr<PeerConnectionFactoryInterface> factory_; | 123 rtc::scoped_refptr<PeerConnectionFactoryInterface> factory_; |
124 NullPeerConnectionObserver observer_; | 124 NullPeerConnectionObserver observer_; |
125 rtc::scoped_ptr<cricket::FakePortAllocator> port_allocator_; | 125 std::unique_ptr<cricket::FakePortAllocator> port_allocator_; |
126 // Since the PC owns the port allocator after it's been initialized, | 126 // Since the PC owns the port allocator after it's been initialized, |
127 // this should only be used when known to be safe. | 127 // this should only be used when known to be safe. |
128 cricket::FakePortAllocator* raw_port_allocator_; | 128 cricket::FakePortAllocator* raw_port_allocator_; |
129 }; | 129 }; |
130 | 130 |
131 // Verify creation of PeerConnection using internal ADM, video factory and | 131 // Verify creation of PeerConnection using internal ADM, video factory and |
132 // internal libjingle threads. | 132 // internal libjingle threads. |
133 TEST(PeerConnectionFactoryTestInternal, CreatePCUsingInternalModules) { | 133 TEST(PeerConnectionFactoryTestInternal, CreatePCUsingInternalModules) { |
134 #ifdef WEBRTC_ANDROID | 134 #ifdef WEBRTC_ANDROID |
135 webrtc::InitializeAndroidObjects(); | 135 webrtc::InitializeAndroidObjects(); |
136 #endif | 136 #endif |
137 | 137 |
138 rtc::scoped_refptr<PeerConnectionFactoryInterface> factory( | 138 rtc::scoped_refptr<PeerConnectionFactoryInterface> factory( |
139 webrtc::CreatePeerConnectionFactory()); | 139 webrtc::CreatePeerConnectionFactory()); |
140 | 140 |
141 NullPeerConnectionObserver observer; | 141 NullPeerConnectionObserver observer; |
142 webrtc::PeerConnectionInterface::RTCConfiguration config; | 142 webrtc::PeerConnectionInterface::RTCConfiguration config; |
143 | 143 |
144 rtc::scoped_ptr<FakeDtlsIdentityStore> dtls_identity_store( | 144 std::unique_ptr<FakeDtlsIdentityStore> dtls_identity_store( |
145 new FakeDtlsIdentityStore()); | 145 new FakeDtlsIdentityStore()); |
146 rtc::scoped_refptr<PeerConnectionInterface> pc(factory->CreatePeerConnection( | 146 rtc::scoped_refptr<PeerConnectionInterface> pc(factory->CreatePeerConnection( |
147 config, nullptr, nullptr, std::move(dtls_identity_store), &observer)); | 147 config, nullptr, nullptr, std::move(dtls_identity_store), &observer)); |
148 | 148 |
149 EXPECT_TRUE(pc.get() != nullptr); | 149 EXPECT_TRUE(pc.get() != nullptr); |
150 } | 150 } |
151 | 151 |
152 // This test verifies creation of PeerConnection with valid STUN and TURN | 152 // This test verifies creation of PeerConnection with valid STUN and TURN |
153 // configuration. Also verifies the URL's parsed correctly as expected. | 153 // configuration. Also verifies the URL's parsed correctly as expected. |
154 TEST_F(PeerConnectionFactoryTest, CreatePCUsingIceServers) { | 154 TEST_F(PeerConnectionFactoryTest, CreatePCUsingIceServers) { |
155 PeerConnectionInterface::RTCConfiguration config; | 155 PeerConnectionInterface::RTCConfiguration config; |
156 webrtc::PeerConnectionInterface::IceServer ice_server; | 156 webrtc::PeerConnectionInterface::IceServer ice_server; |
157 ice_server.uri = kStunIceServer; | 157 ice_server.uri = kStunIceServer; |
158 config.servers.push_back(ice_server); | 158 config.servers.push_back(ice_server); |
159 ice_server.uri = kTurnIceServer; | 159 ice_server.uri = kTurnIceServer; |
160 ice_server.password = kTurnPassword; | 160 ice_server.password = kTurnPassword; |
161 config.servers.push_back(ice_server); | 161 config.servers.push_back(ice_server); |
162 ice_server.uri = kTurnIceServerWithTransport; | 162 ice_server.uri = kTurnIceServerWithTransport; |
163 ice_server.password = kTurnPassword; | 163 ice_server.password = kTurnPassword; |
164 config.servers.push_back(ice_server); | 164 config.servers.push_back(ice_server); |
165 rtc::scoped_ptr<DtlsIdentityStoreInterface> dtls_identity_store( | 165 std::unique_ptr<DtlsIdentityStoreInterface> dtls_identity_store( |
166 new FakeDtlsIdentityStore()); | 166 new FakeDtlsIdentityStore()); |
167 rtc::scoped_refptr<PeerConnectionInterface> pc(factory_->CreatePeerConnection( | 167 rtc::scoped_refptr<PeerConnectionInterface> pc(factory_->CreatePeerConnection( |
168 config, nullptr, std::move(port_allocator_), | 168 config, nullptr, std::move(port_allocator_), |
169 std::move(dtls_identity_store), &observer_)); | 169 std::move(dtls_identity_store), &observer_)); |
170 ASSERT_TRUE(pc.get() != NULL); | 170 ASSERT_TRUE(pc.get() != NULL); |
171 cricket::ServerAddresses stun_servers; | 171 cricket::ServerAddresses stun_servers; |
172 rtc::SocketAddress stun1("stun.l.google.com", 19302); | 172 rtc::SocketAddress stun1("stun.l.google.com", 19302); |
173 stun_servers.insert(stun1); | 173 stun_servers.insert(stun1); |
174 VerifyStunServers(stun_servers); | 174 VerifyStunServers(stun_servers); |
175 std::vector<cricket::RelayServerConfig> turn_servers; | 175 std::vector<cricket::RelayServerConfig> turn_servers; |
176 cricket::RelayServerConfig turn1("test.com", 1234, "test@hello.com", | 176 cricket::RelayServerConfig turn1("test.com", 1234, "test@hello.com", |
177 kTurnPassword, cricket::PROTO_UDP, false); | 177 kTurnPassword, cricket::PROTO_UDP, false); |
178 turn_servers.push_back(turn1); | 178 turn_servers.push_back(turn1); |
179 cricket::RelayServerConfig turn2("hello.com", kDefaultStunPort, "test", | 179 cricket::RelayServerConfig turn2("hello.com", kDefaultStunPort, "test", |
180 kTurnPassword, cricket::PROTO_TCP, false); | 180 kTurnPassword, cricket::PROTO_TCP, false); |
181 turn_servers.push_back(turn2); | 181 turn_servers.push_back(turn2); |
182 VerifyTurnServers(turn_servers); | 182 VerifyTurnServers(turn_servers); |
183 } | 183 } |
184 | 184 |
185 // This test verifies creation of PeerConnection with valid STUN and TURN | 185 // This test verifies creation of PeerConnection with valid STUN and TURN |
186 // configuration. Also verifies the list of URL's parsed correctly as expected. | 186 // configuration. Also verifies the list of URL's parsed correctly as expected. |
187 TEST_F(PeerConnectionFactoryTest, CreatePCUsingIceServersUrls) { | 187 TEST_F(PeerConnectionFactoryTest, CreatePCUsingIceServersUrls) { |
188 PeerConnectionInterface::RTCConfiguration config; | 188 PeerConnectionInterface::RTCConfiguration config; |
189 webrtc::PeerConnectionInterface::IceServer ice_server; | 189 webrtc::PeerConnectionInterface::IceServer ice_server; |
190 ice_server.urls.push_back(kStunIceServer); | 190 ice_server.urls.push_back(kStunIceServer); |
191 ice_server.urls.push_back(kTurnIceServer); | 191 ice_server.urls.push_back(kTurnIceServer); |
192 ice_server.urls.push_back(kTurnIceServerWithTransport); | 192 ice_server.urls.push_back(kTurnIceServerWithTransport); |
193 ice_server.password = kTurnPassword; | 193 ice_server.password = kTurnPassword; |
194 config.servers.push_back(ice_server); | 194 config.servers.push_back(ice_server); |
195 rtc::scoped_ptr<DtlsIdentityStoreInterface> dtls_identity_store( | 195 std::unique_ptr<DtlsIdentityStoreInterface> dtls_identity_store( |
196 new FakeDtlsIdentityStore()); | 196 new FakeDtlsIdentityStore()); |
197 rtc::scoped_refptr<PeerConnectionInterface> pc(factory_->CreatePeerConnection( | 197 rtc::scoped_refptr<PeerConnectionInterface> pc(factory_->CreatePeerConnection( |
198 config, nullptr, std::move(port_allocator_), | 198 config, nullptr, std::move(port_allocator_), |
199 std::move(dtls_identity_store), &observer_)); | 199 std::move(dtls_identity_store), &observer_)); |
200 ASSERT_TRUE(pc.get() != NULL); | 200 ASSERT_TRUE(pc.get() != NULL); |
201 cricket::ServerAddresses stun_servers; | 201 cricket::ServerAddresses stun_servers; |
202 rtc::SocketAddress stun1("stun.l.google.com", 19302); | 202 rtc::SocketAddress stun1("stun.l.google.com", 19302); |
203 stun_servers.insert(stun1); | 203 stun_servers.insert(stun1); |
204 VerifyStunServers(stun_servers); | 204 VerifyStunServers(stun_servers); |
205 std::vector<cricket::RelayServerConfig> turn_servers; | 205 std::vector<cricket::RelayServerConfig> turn_servers; |
206 cricket::RelayServerConfig turn1("test.com", 1234, "test@hello.com", | 206 cricket::RelayServerConfig turn1("test.com", 1234, "test@hello.com", |
207 kTurnPassword, cricket::PROTO_UDP, false); | 207 kTurnPassword, cricket::PROTO_UDP, false); |
208 turn_servers.push_back(turn1); | 208 turn_servers.push_back(turn1); |
209 cricket::RelayServerConfig turn2("hello.com", kDefaultStunPort, "test", | 209 cricket::RelayServerConfig turn2("hello.com", kDefaultStunPort, "test", |
210 kTurnPassword, cricket::PROTO_TCP, false); | 210 kTurnPassword, cricket::PROTO_TCP, false); |
211 turn_servers.push_back(turn2); | 211 turn_servers.push_back(turn2); |
212 VerifyTurnServers(turn_servers); | 212 VerifyTurnServers(turn_servers); |
213 } | 213 } |
214 | 214 |
215 TEST_F(PeerConnectionFactoryTest, CreatePCUsingNoUsernameInUri) { | 215 TEST_F(PeerConnectionFactoryTest, CreatePCUsingNoUsernameInUri) { |
216 PeerConnectionInterface::RTCConfiguration config; | 216 PeerConnectionInterface::RTCConfiguration config; |
217 webrtc::PeerConnectionInterface::IceServer ice_server; | 217 webrtc::PeerConnectionInterface::IceServer ice_server; |
218 ice_server.uri = kStunIceServer; | 218 ice_server.uri = kStunIceServer; |
219 config.servers.push_back(ice_server); | 219 config.servers.push_back(ice_server); |
220 ice_server.uri = kTurnIceServerWithNoUsernameInUri; | 220 ice_server.uri = kTurnIceServerWithNoUsernameInUri; |
221 ice_server.username = kTurnUsername; | 221 ice_server.username = kTurnUsername; |
222 ice_server.password = kTurnPassword; | 222 ice_server.password = kTurnPassword; |
223 config.servers.push_back(ice_server); | 223 config.servers.push_back(ice_server); |
224 rtc::scoped_ptr<DtlsIdentityStoreInterface> dtls_identity_store( | 224 std::unique_ptr<DtlsIdentityStoreInterface> dtls_identity_store( |
225 new FakeDtlsIdentityStore()); | 225 new FakeDtlsIdentityStore()); |
226 rtc::scoped_refptr<PeerConnectionInterface> pc(factory_->CreatePeerConnection( | 226 rtc::scoped_refptr<PeerConnectionInterface> pc(factory_->CreatePeerConnection( |
227 config, nullptr, std::move(port_allocator_), | 227 config, nullptr, std::move(port_allocator_), |
228 std::move(dtls_identity_store), &observer_)); | 228 std::move(dtls_identity_store), &observer_)); |
229 ASSERT_TRUE(pc.get() != NULL); | 229 ASSERT_TRUE(pc.get() != NULL); |
230 std::vector<cricket::RelayServerConfig> turn_servers; | 230 std::vector<cricket::RelayServerConfig> turn_servers; |
231 cricket::RelayServerConfig turn("test.com", 1234, kTurnUsername, | 231 cricket::RelayServerConfig turn("test.com", 1234, kTurnUsername, |
232 kTurnPassword, cricket::PROTO_UDP, false); | 232 kTurnPassword, cricket::PROTO_UDP, false); |
233 turn_servers.push_back(turn); | 233 turn_servers.push_back(turn); |
234 VerifyTurnServers(turn_servers); | 234 VerifyTurnServers(turn_servers); |
235 } | 235 } |
236 | 236 |
237 // This test verifies the PeerConnection created properly with TURN url which | 237 // This test verifies the PeerConnection created properly with TURN url which |
238 // has transport parameter in it. | 238 // has transport parameter in it. |
239 TEST_F(PeerConnectionFactoryTest, CreatePCUsingTurnUrlWithTransportParam) { | 239 TEST_F(PeerConnectionFactoryTest, CreatePCUsingTurnUrlWithTransportParam) { |
240 PeerConnectionInterface::RTCConfiguration config; | 240 PeerConnectionInterface::RTCConfiguration config; |
241 webrtc::PeerConnectionInterface::IceServer ice_server; | 241 webrtc::PeerConnectionInterface::IceServer ice_server; |
242 ice_server.uri = kTurnIceServerWithTransport; | 242 ice_server.uri = kTurnIceServerWithTransport; |
243 ice_server.password = kTurnPassword; | 243 ice_server.password = kTurnPassword; |
244 config.servers.push_back(ice_server); | 244 config.servers.push_back(ice_server); |
245 rtc::scoped_ptr<DtlsIdentityStoreInterface> dtls_identity_store( | 245 std::unique_ptr<DtlsIdentityStoreInterface> dtls_identity_store( |
246 new FakeDtlsIdentityStore()); | 246 new FakeDtlsIdentityStore()); |
247 rtc::scoped_refptr<PeerConnectionInterface> pc(factory_->CreatePeerConnection( | 247 rtc::scoped_refptr<PeerConnectionInterface> pc(factory_->CreatePeerConnection( |
248 config, nullptr, std::move(port_allocator_), | 248 config, nullptr, std::move(port_allocator_), |
249 std::move(dtls_identity_store), &observer_)); | 249 std::move(dtls_identity_store), &observer_)); |
250 ASSERT_TRUE(pc.get() != NULL); | 250 ASSERT_TRUE(pc.get() != NULL); |
251 std::vector<cricket::RelayServerConfig> turn_servers; | 251 std::vector<cricket::RelayServerConfig> turn_servers; |
252 cricket::RelayServerConfig turn("hello.com", kDefaultStunPort, "test", | 252 cricket::RelayServerConfig turn("hello.com", kDefaultStunPort, "test", |
253 kTurnPassword, cricket::PROTO_TCP, false); | 253 kTurnPassword, cricket::PROTO_TCP, false); |
254 turn_servers.push_back(turn); | 254 turn_servers.push_back(turn); |
255 VerifyTurnServers(turn_servers); | 255 VerifyTurnServers(turn_servers); |
256 } | 256 } |
257 | 257 |
258 TEST_F(PeerConnectionFactoryTest, CreatePCUsingSecureTurnUrl) { | 258 TEST_F(PeerConnectionFactoryTest, CreatePCUsingSecureTurnUrl) { |
259 PeerConnectionInterface::RTCConfiguration config; | 259 PeerConnectionInterface::RTCConfiguration config; |
260 webrtc::PeerConnectionInterface::IceServer ice_server; | 260 webrtc::PeerConnectionInterface::IceServer ice_server; |
261 ice_server.uri = kSecureTurnIceServer; | 261 ice_server.uri = kSecureTurnIceServer; |
262 ice_server.password = kTurnPassword; | 262 ice_server.password = kTurnPassword; |
263 config.servers.push_back(ice_server); | 263 config.servers.push_back(ice_server); |
264 ice_server.uri = kSecureTurnIceServerWithoutTransportParam; | 264 ice_server.uri = kSecureTurnIceServerWithoutTransportParam; |
265 ice_server.password = kTurnPassword; | 265 ice_server.password = kTurnPassword; |
266 config.servers.push_back(ice_server); | 266 config.servers.push_back(ice_server); |
267 ice_server.uri = kSecureTurnIceServerWithoutTransportAndPortParam; | 267 ice_server.uri = kSecureTurnIceServerWithoutTransportAndPortParam; |
268 ice_server.password = kTurnPassword; | 268 ice_server.password = kTurnPassword; |
269 config.servers.push_back(ice_server); | 269 config.servers.push_back(ice_server); |
270 rtc::scoped_ptr<DtlsIdentityStoreInterface> dtls_identity_store( | 270 std::unique_ptr<DtlsIdentityStoreInterface> dtls_identity_store( |
271 new FakeDtlsIdentityStore()); | 271 new FakeDtlsIdentityStore()); |
272 rtc::scoped_refptr<PeerConnectionInterface> pc(factory_->CreatePeerConnection( | 272 rtc::scoped_refptr<PeerConnectionInterface> pc(factory_->CreatePeerConnection( |
273 config, nullptr, std::move(port_allocator_), | 273 config, nullptr, std::move(port_allocator_), |
274 std::move(dtls_identity_store), &observer_)); | 274 std::move(dtls_identity_store), &observer_)); |
275 ASSERT_TRUE(pc.get() != NULL); | 275 ASSERT_TRUE(pc.get() != NULL); |
276 std::vector<cricket::RelayServerConfig> turn_servers; | 276 std::vector<cricket::RelayServerConfig> turn_servers; |
277 cricket::RelayServerConfig turn1("hello.com", kDefaultStunTlsPort, "test", | 277 cricket::RelayServerConfig turn1("hello.com", kDefaultStunTlsPort, "test", |
278 kTurnPassword, cricket::PROTO_TCP, true); | 278 kTurnPassword, cricket::PROTO_TCP, true); |
279 turn_servers.push_back(turn1); | 279 turn_servers.push_back(turn1); |
280 // TURNS with transport param should be default to tcp. | 280 // TURNS with transport param should be default to tcp. |
(...skipping 14 matching lines...) Expand all Loading... |
295 config.servers.push_back(ice_server); | 295 config.servers.push_back(ice_server); |
296 ice_server.uri = kStunIceServerWithIPv4AddressWithoutPort; | 296 ice_server.uri = kStunIceServerWithIPv4AddressWithoutPort; |
297 config.servers.push_back(ice_server); | 297 config.servers.push_back(ice_server); |
298 ice_server.uri = kStunIceServerWithIPv6Address; | 298 ice_server.uri = kStunIceServerWithIPv6Address; |
299 config.servers.push_back(ice_server); | 299 config.servers.push_back(ice_server); |
300 ice_server.uri = kStunIceServerWithIPv6AddressWithoutPort; | 300 ice_server.uri = kStunIceServerWithIPv6AddressWithoutPort; |
301 config.servers.push_back(ice_server); | 301 config.servers.push_back(ice_server); |
302 ice_server.uri = kTurnIceServerWithIPv6Address; | 302 ice_server.uri = kTurnIceServerWithIPv6Address; |
303 ice_server.password = kTurnPassword; | 303 ice_server.password = kTurnPassword; |
304 config.servers.push_back(ice_server); | 304 config.servers.push_back(ice_server); |
305 rtc::scoped_ptr<DtlsIdentityStoreInterface> dtls_identity_store( | 305 std::unique_ptr<DtlsIdentityStoreInterface> dtls_identity_store( |
306 new FakeDtlsIdentityStore()); | 306 new FakeDtlsIdentityStore()); |
307 rtc::scoped_refptr<PeerConnectionInterface> pc(factory_->CreatePeerConnection( | 307 rtc::scoped_refptr<PeerConnectionInterface> pc(factory_->CreatePeerConnection( |
308 config, nullptr, std::move(port_allocator_), | 308 config, nullptr, std::move(port_allocator_), |
309 std::move(dtls_identity_store), &observer_)); | 309 std::move(dtls_identity_store), &observer_)); |
310 ASSERT_TRUE(pc.get() != NULL); | 310 ASSERT_TRUE(pc.get() != NULL); |
311 cricket::ServerAddresses stun_servers; | 311 cricket::ServerAddresses stun_servers; |
312 rtc::SocketAddress stun1("1.2.3.4", 1234); | 312 rtc::SocketAddress stun1("1.2.3.4", 1234); |
313 stun_servers.insert(stun1); | 313 stun_servers.insert(stun1); |
314 rtc::SocketAddress stun2("1.2.3.4", 3478); | 314 rtc::SocketAddress stun2("1.2.3.4", 3478); |
315 stun_servers.insert(stun2); // Default port | 315 stun_servers.insert(stun2); // Default port |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 track->set_enabled(false); | 347 track->set_enabled(false); |
348 EXPECT_TRUE(capturer->CaptureFrame()); | 348 EXPECT_TRUE(capturer->CaptureFrame()); |
349 EXPECT_EQ(2, local_renderer.num_rendered_frames()); | 349 EXPECT_EQ(2, local_renderer.num_rendered_frames()); |
350 EXPECT_TRUE(local_renderer.black_frame()); | 350 EXPECT_TRUE(local_renderer.black_frame()); |
351 | 351 |
352 track->set_enabled(true); | 352 track->set_enabled(true); |
353 EXPECT_TRUE(capturer->CaptureFrame()); | 353 EXPECT_TRUE(capturer->CaptureFrame()); |
354 EXPECT_EQ(3, local_renderer.num_rendered_frames()); | 354 EXPECT_EQ(3, local_renderer.num_rendered_frames()); |
355 EXPECT_FALSE(local_renderer.black_frame()); | 355 EXPECT_FALSE(local_renderer.black_frame()); |
356 } | 356 } |
OLD | NEW |