OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "content/renderer/media/webrtc/media_stream_track_metrics.h" | 5 #include "content/renderer/media/webrtc/media_stream_track_metrics.h" |
6 #include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory.
h" | 6 #include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory.
h" |
7 #include "testing/gmock/include/gmock/gmock.h" | 7 #include "testing/gmock/include/gmock/gmock.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" | 9 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" |
10 | 10 |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 // Remove vs. local track differs. | 128 // Remove vs. local track differs. |
129 EXPECT_NE(metrics_->MakeUniqueIdImpl( | 129 EXPECT_NE(metrics_->MakeUniqueIdImpl( |
130 42, "x", MediaStreamTrackMetrics::RECEIVED_STREAM), | 130 42, "x", MediaStreamTrackMetrics::RECEIVED_STREAM), |
131 metrics_->MakeUniqueIdImpl( | 131 metrics_->MakeUniqueIdImpl( |
132 42, "x", MediaStreamTrackMetrics::SENT_STREAM)); | 132 42, "x", MediaStreamTrackMetrics::SENT_STREAM)); |
133 } | 133 } |
134 | 134 |
135 TEST_F(MediaStreamTrackMetricsTest, BasicRemoteStreams) { | 135 TEST_F(MediaStreamTrackMetricsTest, BasicRemoteStreams) { |
136 scoped_refptr<MockAudioTrackInterface> audio(MakeAudioTrack("audio")); | 136 scoped_refptr<MockAudioTrackInterface> audio(MakeAudioTrack("audio")); |
137 scoped_refptr<MockVideoTrackInterface> video(MakeVideoTrack("video")); | 137 scoped_refptr<MockVideoTrackInterface> video(MakeVideoTrack("video")); |
138 stream_->AddTrack(audio); | 138 stream_->AddTrack(audio.get()); |
139 stream_->AddTrack(video); | 139 stream_->AddTrack(video.get()); |
140 metrics_->AddStream(MediaStreamTrackMetrics::RECEIVED_STREAM, stream_); | 140 metrics_->AddStream(MediaStreamTrackMetrics::RECEIVED_STREAM, stream_.get()); |
141 | 141 |
142 EXPECT_CALL(*metrics_, | 142 EXPECT_CALL(*metrics_, |
143 SendLifetimeMessage("audio", | 143 SendLifetimeMessage("audio", |
144 MediaStreamTrackMetrics::AUDIO_TRACK, | 144 MediaStreamTrackMetrics::AUDIO_TRACK, |
145 MediaStreamTrackMetrics::CONNECTED, | 145 MediaStreamTrackMetrics::CONNECTED, |
146 MediaStreamTrackMetrics::RECEIVED_STREAM)); | 146 MediaStreamTrackMetrics::RECEIVED_STREAM)); |
147 EXPECT_CALL(*metrics_, | 147 EXPECT_CALL(*metrics_, |
148 SendLifetimeMessage("video", | 148 SendLifetimeMessage("video", |
149 MediaStreamTrackMetrics::VIDEO_TRACK, | 149 MediaStreamTrackMetrics::VIDEO_TRACK, |
150 MediaStreamTrackMetrics::CONNECTED, | 150 MediaStreamTrackMetrics::CONNECTED, |
(...skipping 11 matching lines...) Expand all Loading... |
162 MediaStreamTrackMetrics::VIDEO_TRACK, | 162 MediaStreamTrackMetrics::VIDEO_TRACK, |
163 MediaStreamTrackMetrics::DISCONNECTED, | 163 MediaStreamTrackMetrics::DISCONNECTED, |
164 MediaStreamTrackMetrics::RECEIVED_STREAM)); | 164 MediaStreamTrackMetrics::RECEIVED_STREAM)); |
165 metrics_->IceConnectionChange( | 165 metrics_->IceConnectionChange( |
166 PeerConnectionInterface::kIceConnectionDisconnected); | 166 PeerConnectionInterface::kIceConnectionDisconnected); |
167 } | 167 } |
168 | 168 |
169 TEST_F(MediaStreamTrackMetricsTest, BasicLocalStreams) { | 169 TEST_F(MediaStreamTrackMetricsTest, BasicLocalStreams) { |
170 scoped_refptr<MockAudioTrackInterface> audio(MakeAudioTrack("audio")); | 170 scoped_refptr<MockAudioTrackInterface> audio(MakeAudioTrack("audio")); |
171 scoped_refptr<MockVideoTrackInterface> video(MakeVideoTrack("video")); | 171 scoped_refptr<MockVideoTrackInterface> video(MakeVideoTrack("video")); |
172 stream_->AddTrack(audio); | 172 stream_->AddTrack(audio.get()); |
173 stream_->AddTrack(video); | 173 stream_->AddTrack(video.get()); |
174 metrics_->AddStream(MediaStreamTrackMetrics::SENT_STREAM, stream_); | 174 metrics_->AddStream(MediaStreamTrackMetrics::SENT_STREAM, stream_.get()); |
175 | 175 |
176 EXPECT_CALL(*metrics_, | 176 EXPECT_CALL(*metrics_, |
177 SendLifetimeMessage("audio", | 177 SendLifetimeMessage("audio", |
178 MediaStreamTrackMetrics::AUDIO_TRACK, | 178 MediaStreamTrackMetrics::AUDIO_TRACK, |
179 MediaStreamTrackMetrics::CONNECTED, | 179 MediaStreamTrackMetrics::CONNECTED, |
180 MediaStreamTrackMetrics::SENT_STREAM)); | 180 MediaStreamTrackMetrics::SENT_STREAM)); |
181 EXPECT_CALL(*metrics_, | 181 EXPECT_CALL(*metrics_, |
182 SendLifetimeMessage("video", | 182 SendLifetimeMessage("video", |
183 MediaStreamTrackMetrics::VIDEO_TRACK, | 183 MediaStreamTrackMetrics::VIDEO_TRACK, |
184 MediaStreamTrackMetrics::CONNECTED, | 184 MediaStreamTrackMetrics::CONNECTED, |
(...skipping 24 matching lines...) Expand all Loading... |
209 MediaStreamTrackMetrics::CONNECTED, | 209 MediaStreamTrackMetrics::CONNECTED, |
210 MediaStreamTrackMetrics::SENT_STREAM)); | 210 MediaStreamTrackMetrics::SENT_STREAM)); |
211 EXPECT_CALL(*metrics_, | 211 EXPECT_CALL(*metrics_, |
212 SendLifetimeMessage("video", | 212 SendLifetimeMessage("video", |
213 MediaStreamTrackMetrics::VIDEO_TRACK, | 213 MediaStreamTrackMetrics::VIDEO_TRACK, |
214 MediaStreamTrackMetrics::CONNECTED, | 214 MediaStreamTrackMetrics::CONNECTED, |
215 MediaStreamTrackMetrics::SENT_STREAM)); | 215 MediaStreamTrackMetrics::SENT_STREAM)); |
216 | 216 |
217 scoped_refptr<MockAudioTrackInterface> audio(MakeAudioTrack("audio")); | 217 scoped_refptr<MockAudioTrackInterface> audio(MakeAudioTrack("audio")); |
218 scoped_refptr<MockVideoTrackInterface> video(MakeVideoTrack("video")); | 218 scoped_refptr<MockVideoTrackInterface> video(MakeVideoTrack("video")); |
219 stream_->AddTrack(audio); | 219 stream_->AddTrack(audio.get()); |
220 stream_->AddTrack(video); | 220 stream_->AddTrack(video.get()); |
221 metrics_->AddStream(MediaStreamTrackMetrics::SENT_STREAM, stream_); | 221 metrics_->AddStream(MediaStreamTrackMetrics::SENT_STREAM, stream_.get()); |
222 } | 222 } |
223 | 223 |
224 TEST_F(MediaStreamTrackMetricsTest, RemoteStreamAddedAferIceConnect) { | 224 TEST_F(MediaStreamTrackMetricsTest, RemoteStreamAddedAferIceConnect) { |
225 metrics_->IceConnectionChange( | 225 metrics_->IceConnectionChange( |
226 PeerConnectionInterface::kIceConnectionConnected); | 226 PeerConnectionInterface::kIceConnectionConnected); |
227 | 227 |
228 EXPECT_CALL(*metrics_, | 228 EXPECT_CALL(*metrics_, |
229 SendLifetimeMessage("audio", | 229 SendLifetimeMessage("audio", |
230 MediaStreamTrackMetrics::AUDIO_TRACK, | 230 MediaStreamTrackMetrics::AUDIO_TRACK, |
231 MediaStreamTrackMetrics::CONNECTED, | 231 MediaStreamTrackMetrics::CONNECTED, |
232 MediaStreamTrackMetrics::RECEIVED_STREAM)); | 232 MediaStreamTrackMetrics::RECEIVED_STREAM)); |
233 EXPECT_CALL(*metrics_, | 233 EXPECT_CALL(*metrics_, |
234 SendLifetimeMessage("video", | 234 SendLifetimeMessage("video", |
235 MediaStreamTrackMetrics::VIDEO_TRACK, | 235 MediaStreamTrackMetrics::VIDEO_TRACK, |
236 MediaStreamTrackMetrics::CONNECTED, | 236 MediaStreamTrackMetrics::CONNECTED, |
237 MediaStreamTrackMetrics::RECEIVED_STREAM)); | 237 MediaStreamTrackMetrics::RECEIVED_STREAM)); |
238 | 238 |
239 scoped_refptr<MockAudioTrackInterface> audio(MakeAudioTrack("audio")); | 239 scoped_refptr<MockAudioTrackInterface> audio(MakeAudioTrack("audio")); |
240 scoped_refptr<MockVideoTrackInterface> video(MakeVideoTrack("video")); | 240 scoped_refptr<MockVideoTrackInterface> video(MakeVideoTrack("video")); |
241 stream_->AddTrack(audio); | 241 stream_->AddTrack(audio.get()); |
242 stream_->AddTrack(video); | 242 stream_->AddTrack(video.get()); |
243 metrics_->AddStream(MediaStreamTrackMetrics::RECEIVED_STREAM, stream_); | 243 metrics_->AddStream(MediaStreamTrackMetrics::RECEIVED_STREAM, stream_.get()); |
244 } | 244 } |
245 | 245 |
246 TEST_F(MediaStreamTrackMetricsTest, RemoteStreamTrackAdded) { | 246 TEST_F(MediaStreamTrackMetricsTest, RemoteStreamTrackAdded) { |
247 scoped_refptr<MockAudioTrackInterface> initial(MakeAudioTrack("initial")); | 247 scoped_refptr<MockAudioTrackInterface> initial(MakeAudioTrack("initial")); |
248 scoped_refptr<MockAudioTrackInterface> added(MakeAudioTrack("added")); | 248 scoped_refptr<MockAudioTrackInterface> added(MakeAudioTrack("added")); |
249 stream_->AddTrack(initial); | 249 stream_->AddTrack(initial.get()); |
250 metrics_->AddStream(MediaStreamTrackMetrics::RECEIVED_STREAM, stream_); | 250 metrics_->AddStream(MediaStreamTrackMetrics::RECEIVED_STREAM, stream_.get()); |
251 | 251 |
252 EXPECT_CALL(*metrics_, | 252 EXPECT_CALL(*metrics_, |
253 SendLifetimeMessage("initial", | 253 SendLifetimeMessage("initial", |
254 MediaStreamTrackMetrics::AUDIO_TRACK, | 254 MediaStreamTrackMetrics::AUDIO_TRACK, |
255 MediaStreamTrackMetrics::CONNECTED, | 255 MediaStreamTrackMetrics::CONNECTED, |
256 MediaStreamTrackMetrics::RECEIVED_STREAM)); | 256 MediaStreamTrackMetrics::RECEIVED_STREAM)); |
257 metrics_->IceConnectionChange( | 257 metrics_->IceConnectionChange( |
258 PeerConnectionInterface::kIceConnectionConnected); | 258 PeerConnectionInterface::kIceConnectionConnected); |
259 | 259 |
260 EXPECT_CALL(*metrics_, | 260 EXPECT_CALL(*metrics_, |
261 SendLifetimeMessage("added", | 261 SendLifetimeMessage("added", |
262 MediaStreamTrackMetrics::AUDIO_TRACK, | 262 MediaStreamTrackMetrics::AUDIO_TRACK, |
263 MediaStreamTrackMetrics::CONNECTED, | 263 MediaStreamTrackMetrics::CONNECTED, |
264 MediaStreamTrackMetrics::RECEIVED_STREAM)); | 264 MediaStreamTrackMetrics::RECEIVED_STREAM)); |
265 stream_->AddTrack(added); | 265 stream_->AddTrack(added.get()); |
266 | 266 |
267 EXPECT_CALL(*metrics_, | 267 EXPECT_CALL(*metrics_, |
268 SendLifetimeMessage("initial", | 268 SendLifetimeMessage("initial", |
269 MediaStreamTrackMetrics::AUDIO_TRACK, | 269 MediaStreamTrackMetrics::AUDIO_TRACK, |
270 MediaStreamTrackMetrics::DISCONNECTED, | 270 MediaStreamTrackMetrics::DISCONNECTED, |
271 MediaStreamTrackMetrics::RECEIVED_STREAM)); | 271 MediaStreamTrackMetrics::RECEIVED_STREAM)); |
272 EXPECT_CALL(*metrics_, | 272 EXPECT_CALL(*metrics_, |
273 SendLifetimeMessage("added", | 273 SendLifetimeMessage("added", |
274 MediaStreamTrackMetrics::AUDIO_TRACK, | 274 MediaStreamTrackMetrics::AUDIO_TRACK, |
275 MediaStreamTrackMetrics::DISCONNECTED, | 275 MediaStreamTrackMetrics::DISCONNECTED, |
276 MediaStreamTrackMetrics::RECEIVED_STREAM)); | 276 MediaStreamTrackMetrics::RECEIVED_STREAM)); |
277 metrics_->IceConnectionChange(PeerConnectionInterface::kIceConnectionFailed); | 277 metrics_->IceConnectionChange(PeerConnectionInterface::kIceConnectionFailed); |
278 } | 278 } |
279 | 279 |
280 TEST_F(MediaStreamTrackMetricsTest, LocalStreamTrackRemoved) { | 280 TEST_F(MediaStreamTrackMetricsTest, LocalStreamTrackRemoved) { |
281 scoped_refptr<MockAudioTrackInterface> first(MakeAudioTrack("first")); | 281 scoped_refptr<MockAudioTrackInterface> first(MakeAudioTrack("first")); |
282 scoped_refptr<MockAudioTrackInterface> second(MakeAudioTrack("second")); | 282 scoped_refptr<MockAudioTrackInterface> second(MakeAudioTrack("second")); |
283 stream_->AddTrack(first); | 283 stream_->AddTrack(first.get()); |
284 stream_->AddTrack(second); | 284 stream_->AddTrack(second.get()); |
285 metrics_->AddStream(MediaStreamTrackMetrics::SENT_STREAM, stream_); | 285 metrics_->AddStream(MediaStreamTrackMetrics::SENT_STREAM, stream_.get()); |
286 | 286 |
287 EXPECT_CALL(*metrics_, | 287 EXPECT_CALL(*metrics_, |
288 SendLifetimeMessage("first", | 288 SendLifetimeMessage("first", |
289 MediaStreamTrackMetrics::AUDIO_TRACK, | 289 MediaStreamTrackMetrics::AUDIO_TRACK, |
290 MediaStreamTrackMetrics::CONNECTED, | 290 MediaStreamTrackMetrics::CONNECTED, |
291 MediaStreamTrackMetrics::SENT_STREAM)); | 291 MediaStreamTrackMetrics::SENT_STREAM)); |
292 EXPECT_CALL(*metrics_, | 292 EXPECT_CALL(*metrics_, |
293 SendLifetimeMessage("second", | 293 SendLifetimeMessage("second", |
294 MediaStreamTrackMetrics::AUDIO_TRACK, | 294 MediaStreamTrackMetrics::AUDIO_TRACK, |
295 MediaStreamTrackMetrics::CONNECTED, | 295 MediaStreamTrackMetrics::CONNECTED, |
296 MediaStreamTrackMetrics::SENT_STREAM)); | 296 MediaStreamTrackMetrics::SENT_STREAM)); |
297 metrics_->IceConnectionChange( | 297 metrics_->IceConnectionChange( |
298 PeerConnectionInterface::kIceConnectionConnected); | 298 PeerConnectionInterface::kIceConnectionConnected); |
299 | 299 |
300 EXPECT_CALL(*metrics_, | 300 EXPECT_CALL(*metrics_, |
301 SendLifetimeMessage("first", | 301 SendLifetimeMessage("first", |
302 MediaStreamTrackMetrics::AUDIO_TRACK, | 302 MediaStreamTrackMetrics::AUDIO_TRACK, |
303 MediaStreamTrackMetrics::DISCONNECTED, | 303 MediaStreamTrackMetrics::DISCONNECTED, |
304 MediaStreamTrackMetrics::SENT_STREAM)); | 304 MediaStreamTrackMetrics::SENT_STREAM)); |
305 stream_->RemoveTrack(first); | 305 stream_->RemoveTrack(first.get()); |
306 | 306 |
307 EXPECT_CALL(*metrics_, | 307 EXPECT_CALL(*metrics_, |
308 SendLifetimeMessage("second", | 308 SendLifetimeMessage("second", |
309 MediaStreamTrackMetrics::AUDIO_TRACK, | 309 MediaStreamTrackMetrics::AUDIO_TRACK, |
310 MediaStreamTrackMetrics::DISCONNECTED, | 310 MediaStreamTrackMetrics::DISCONNECTED, |
311 MediaStreamTrackMetrics::SENT_STREAM)); | 311 MediaStreamTrackMetrics::SENT_STREAM)); |
312 metrics_->IceConnectionChange(PeerConnectionInterface::kIceConnectionFailed); | 312 metrics_->IceConnectionChange(PeerConnectionInterface::kIceConnectionFailed); |
313 } | 313 } |
314 | 314 |
315 TEST_F(MediaStreamTrackMetricsTest, LocalStreamModificationsBeforeAndAfter) { | 315 TEST_F(MediaStreamTrackMetricsTest, LocalStreamModificationsBeforeAndAfter) { |
316 scoped_refptr<MockAudioTrackInterface> first(MakeAudioTrack("first")); | 316 scoped_refptr<MockAudioTrackInterface> first(MakeAudioTrack("first")); |
317 scoped_refptr<MockAudioTrackInterface> second(MakeAudioTrack("second")); | 317 scoped_refptr<MockAudioTrackInterface> second(MakeAudioTrack("second")); |
318 stream_->AddTrack(first); | 318 stream_->AddTrack(first.get()); |
319 metrics_->AddStream(MediaStreamTrackMetrics::SENT_STREAM, stream_); | 319 metrics_->AddStream(MediaStreamTrackMetrics::SENT_STREAM, stream_.get()); |
320 | 320 |
321 // This gets added after we start observing, but no lifetime message | 321 // This gets added after we start observing, but no lifetime message |
322 // should be sent at this point since the call is not connected. It | 322 // should be sent at this point since the call is not connected. It |
323 // should get sent only once it gets connected. | 323 // should get sent only once it gets connected. |
324 stream_->AddTrack(second); | 324 stream_->AddTrack(second.get()); |
325 | 325 |
326 EXPECT_CALL(*metrics_, | 326 EXPECT_CALL(*metrics_, |
327 SendLifetimeMessage("first", | 327 SendLifetimeMessage("first", |
328 MediaStreamTrackMetrics::AUDIO_TRACK, | 328 MediaStreamTrackMetrics::AUDIO_TRACK, |
329 MediaStreamTrackMetrics::CONNECTED, | 329 MediaStreamTrackMetrics::CONNECTED, |
330 MediaStreamTrackMetrics::SENT_STREAM)); | 330 MediaStreamTrackMetrics::SENT_STREAM)); |
331 EXPECT_CALL(*metrics_, | 331 EXPECT_CALL(*metrics_, |
332 SendLifetimeMessage("second", | 332 SendLifetimeMessage("second", |
333 MediaStreamTrackMetrics::AUDIO_TRACK, | 333 MediaStreamTrackMetrics::AUDIO_TRACK, |
334 MediaStreamTrackMetrics::CONNECTED, | 334 MediaStreamTrackMetrics::CONNECTED, |
335 MediaStreamTrackMetrics::SENT_STREAM)); | 335 MediaStreamTrackMetrics::SENT_STREAM)); |
336 metrics_->IceConnectionChange( | 336 metrics_->IceConnectionChange( |
337 PeerConnectionInterface::kIceConnectionConnected); | 337 PeerConnectionInterface::kIceConnectionConnected); |
338 | 338 |
339 EXPECT_CALL(*metrics_, | 339 EXPECT_CALL(*metrics_, |
340 SendLifetimeMessage("first", | 340 SendLifetimeMessage("first", |
341 MediaStreamTrackMetrics::AUDIO_TRACK, | 341 MediaStreamTrackMetrics::AUDIO_TRACK, |
342 MediaStreamTrackMetrics::DISCONNECTED, | 342 MediaStreamTrackMetrics::DISCONNECTED, |
343 MediaStreamTrackMetrics::SENT_STREAM)); | 343 MediaStreamTrackMetrics::SENT_STREAM)); |
344 EXPECT_CALL(*metrics_, | 344 EXPECT_CALL(*metrics_, |
345 SendLifetimeMessage("second", | 345 SendLifetimeMessage("second", |
346 MediaStreamTrackMetrics::AUDIO_TRACK, | 346 MediaStreamTrackMetrics::AUDIO_TRACK, |
347 MediaStreamTrackMetrics::DISCONNECTED, | 347 MediaStreamTrackMetrics::DISCONNECTED, |
348 MediaStreamTrackMetrics::SENT_STREAM)); | 348 MediaStreamTrackMetrics::SENT_STREAM)); |
349 metrics_->IceConnectionChange(PeerConnectionInterface::kIceConnectionFailed); | 349 metrics_->IceConnectionChange(PeerConnectionInterface::kIceConnectionFailed); |
350 | 350 |
351 // This happens after the call is disconnected so no lifetime | 351 // This happens after the call is disconnected so no lifetime |
352 // message should be sent. | 352 // message should be sent. |
353 stream_->RemoveTrack(first); | 353 stream_->RemoveTrack(first.get()); |
354 } | 354 } |
355 | 355 |
356 TEST_F(MediaStreamTrackMetricsTest, RemoteStreamMultipleDisconnects) { | 356 TEST_F(MediaStreamTrackMetricsTest, RemoteStreamMultipleDisconnects) { |
357 scoped_refptr<MockAudioTrackInterface> audio(MakeAudioTrack("audio")); | 357 scoped_refptr<MockAudioTrackInterface> audio(MakeAudioTrack("audio")); |
358 stream_->AddTrack(audio); | 358 stream_->AddTrack(audio.get()); |
359 metrics_->AddStream(MediaStreamTrackMetrics::RECEIVED_STREAM, stream_); | 359 metrics_->AddStream(MediaStreamTrackMetrics::RECEIVED_STREAM, stream_.get()); |
360 | 360 |
361 EXPECT_CALL(*metrics_, | 361 EXPECT_CALL(*metrics_, |
362 SendLifetimeMessage("audio", | 362 SendLifetimeMessage("audio", |
363 MediaStreamTrackMetrics::AUDIO_TRACK, | 363 MediaStreamTrackMetrics::AUDIO_TRACK, |
364 MediaStreamTrackMetrics::CONNECTED, | 364 MediaStreamTrackMetrics::CONNECTED, |
365 MediaStreamTrackMetrics::RECEIVED_STREAM)); | 365 MediaStreamTrackMetrics::RECEIVED_STREAM)); |
366 metrics_->IceConnectionChange( | 366 metrics_->IceConnectionChange( |
367 PeerConnectionInterface::kIceConnectionConnected); | 367 PeerConnectionInterface::kIceConnectionConnected); |
368 | 368 |
369 EXPECT_CALL(*metrics_, | 369 EXPECT_CALL(*metrics_, |
370 SendLifetimeMessage("audio", | 370 SendLifetimeMessage("audio", |
371 MediaStreamTrackMetrics::AUDIO_TRACK, | 371 MediaStreamTrackMetrics::AUDIO_TRACK, |
372 MediaStreamTrackMetrics::DISCONNECTED, | 372 MediaStreamTrackMetrics::DISCONNECTED, |
373 MediaStreamTrackMetrics::RECEIVED_STREAM)); | 373 MediaStreamTrackMetrics::RECEIVED_STREAM)); |
374 metrics_->IceConnectionChange( | 374 metrics_->IceConnectionChange( |
375 PeerConnectionInterface::kIceConnectionDisconnected); | 375 PeerConnectionInterface::kIceConnectionDisconnected); |
376 metrics_->IceConnectionChange(PeerConnectionInterface::kIceConnectionFailed); | 376 metrics_->IceConnectionChange(PeerConnectionInterface::kIceConnectionFailed); |
377 stream_->RemoveTrack(audio); | 377 stream_->RemoveTrack(audio.get()); |
378 } | 378 } |
379 | 379 |
380 TEST_F(MediaStreamTrackMetricsTest, RemoteStreamConnectDisconnectTwice) { | 380 TEST_F(MediaStreamTrackMetricsTest, RemoteStreamConnectDisconnectTwice) { |
381 scoped_refptr<MockAudioTrackInterface> audio(MakeAudioTrack("audio")); | 381 scoped_refptr<MockAudioTrackInterface> audio(MakeAudioTrack("audio")); |
382 stream_->AddTrack(audio); | 382 stream_->AddTrack(audio.get()); |
383 metrics_->AddStream(MediaStreamTrackMetrics::RECEIVED_STREAM, stream_); | 383 metrics_->AddStream(MediaStreamTrackMetrics::RECEIVED_STREAM, stream_.get()); |
384 | 384 |
385 for (size_t i = 0; i < 2; ++i) { | 385 for (size_t i = 0; i < 2; ++i) { |
386 EXPECT_CALL(*metrics_, | 386 EXPECT_CALL(*metrics_, |
387 SendLifetimeMessage("audio", | 387 SendLifetimeMessage("audio", |
388 MediaStreamTrackMetrics::AUDIO_TRACK, | 388 MediaStreamTrackMetrics::AUDIO_TRACK, |
389 MediaStreamTrackMetrics::CONNECTED, | 389 MediaStreamTrackMetrics::CONNECTED, |
390 MediaStreamTrackMetrics::RECEIVED_STREAM)); | 390 MediaStreamTrackMetrics::RECEIVED_STREAM)); |
391 metrics_->IceConnectionChange( | 391 metrics_->IceConnectionChange( |
392 PeerConnectionInterface::kIceConnectionConnected); | 392 PeerConnectionInterface::kIceConnectionConnected); |
393 | 393 |
394 EXPECT_CALL(*metrics_, | 394 EXPECT_CALL(*metrics_, |
395 SendLifetimeMessage("audio", | 395 SendLifetimeMessage("audio", |
396 MediaStreamTrackMetrics::AUDIO_TRACK, | 396 MediaStreamTrackMetrics::AUDIO_TRACK, |
397 MediaStreamTrackMetrics::DISCONNECTED, | 397 MediaStreamTrackMetrics::DISCONNECTED, |
398 MediaStreamTrackMetrics::RECEIVED_STREAM)); | 398 MediaStreamTrackMetrics::RECEIVED_STREAM)); |
399 metrics_->IceConnectionChange( | 399 metrics_->IceConnectionChange( |
400 PeerConnectionInterface::kIceConnectionDisconnected); | 400 PeerConnectionInterface::kIceConnectionDisconnected); |
401 } | 401 } |
402 | 402 |
403 stream_->RemoveTrack(audio); | 403 stream_->RemoveTrack(audio.get()); |
404 } | 404 } |
405 | 405 |
406 TEST_F(MediaStreamTrackMetricsTest, LocalStreamRemovedNoDisconnect) { | 406 TEST_F(MediaStreamTrackMetricsTest, LocalStreamRemovedNoDisconnect) { |
407 scoped_refptr<MockAudioTrackInterface> audio(MakeAudioTrack("audio")); | 407 scoped_refptr<MockAudioTrackInterface> audio(MakeAudioTrack("audio")); |
408 scoped_refptr<MockVideoTrackInterface> video(MakeVideoTrack("video")); | 408 scoped_refptr<MockVideoTrackInterface> video(MakeVideoTrack("video")); |
409 stream_->AddTrack(audio); | 409 stream_->AddTrack(audio.get()); |
410 stream_->AddTrack(video); | 410 stream_->AddTrack(video.get()); |
411 metrics_->AddStream(MediaStreamTrackMetrics::SENT_STREAM, stream_); | 411 metrics_->AddStream(MediaStreamTrackMetrics::SENT_STREAM, stream_.get()); |
412 | 412 |
413 EXPECT_CALL(*metrics_, | 413 EXPECT_CALL(*metrics_, |
414 SendLifetimeMessage("audio", | 414 SendLifetimeMessage("audio", |
415 MediaStreamTrackMetrics::AUDIO_TRACK, | 415 MediaStreamTrackMetrics::AUDIO_TRACK, |
416 MediaStreamTrackMetrics::CONNECTED, | 416 MediaStreamTrackMetrics::CONNECTED, |
417 MediaStreamTrackMetrics::SENT_STREAM)); | 417 MediaStreamTrackMetrics::SENT_STREAM)); |
418 EXPECT_CALL(*metrics_, | 418 EXPECT_CALL(*metrics_, |
419 SendLifetimeMessage("video", | 419 SendLifetimeMessage("video", |
420 MediaStreamTrackMetrics::VIDEO_TRACK, | 420 MediaStreamTrackMetrics::VIDEO_TRACK, |
421 MediaStreamTrackMetrics::CONNECTED, | 421 MediaStreamTrackMetrics::CONNECTED, |
422 MediaStreamTrackMetrics::SENT_STREAM)); | 422 MediaStreamTrackMetrics::SENT_STREAM)); |
423 metrics_->IceConnectionChange( | 423 metrics_->IceConnectionChange( |
424 PeerConnectionInterface::kIceConnectionConnected); | 424 PeerConnectionInterface::kIceConnectionConnected); |
425 | 425 |
426 EXPECT_CALL(*metrics_, | 426 EXPECT_CALL(*metrics_, |
427 SendLifetimeMessage("audio", | 427 SendLifetimeMessage("audio", |
428 MediaStreamTrackMetrics::AUDIO_TRACK, | 428 MediaStreamTrackMetrics::AUDIO_TRACK, |
429 MediaStreamTrackMetrics::DISCONNECTED, | 429 MediaStreamTrackMetrics::DISCONNECTED, |
430 MediaStreamTrackMetrics::SENT_STREAM)); | 430 MediaStreamTrackMetrics::SENT_STREAM)); |
431 EXPECT_CALL(*metrics_, | 431 EXPECT_CALL(*metrics_, |
432 SendLifetimeMessage("video", | 432 SendLifetimeMessage("video", |
433 MediaStreamTrackMetrics::VIDEO_TRACK, | 433 MediaStreamTrackMetrics::VIDEO_TRACK, |
434 MediaStreamTrackMetrics::DISCONNECTED, | 434 MediaStreamTrackMetrics::DISCONNECTED, |
435 MediaStreamTrackMetrics::SENT_STREAM)); | 435 MediaStreamTrackMetrics::SENT_STREAM)); |
436 metrics_->RemoveStream(MediaStreamTrackMetrics::SENT_STREAM, stream_); | 436 metrics_->RemoveStream(MediaStreamTrackMetrics::SENT_STREAM, stream_.get()); |
437 } | 437 } |
438 | 438 |
439 TEST_F(MediaStreamTrackMetricsTest, LocalStreamLargerTest) { | 439 TEST_F(MediaStreamTrackMetricsTest, LocalStreamLargerTest) { |
440 scoped_refptr<MockAudioTrackInterface> audio1(MakeAudioTrack("audio1")); | 440 scoped_refptr<MockAudioTrackInterface> audio1(MakeAudioTrack("audio1")); |
441 scoped_refptr<MockAudioTrackInterface> audio2(MakeAudioTrack("audio2")); | 441 scoped_refptr<MockAudioTrackInterface> audio2(MakeAudioTrack("audio2")); |
442 scoped_refptr<MockAudioTrackInterface> audio3(MakeAudioTrack("audio3")); | 442 scoped_refptr<MockAudioTrackInterface> audio3(MakeAudioTrack("audio3")); |
443 scoped_refptr<MockVideoTrackInterface> video1(MakeVideoTrack("video1")); | 443 scoped_refptr<MockVideoTrackInterface> video1(MakeVideoTrack("video1")); |
444 scoped_refptr<MockVideoTrackInterface> video2(MakeVideoTrack("video2")); | 444 scoped_refptr<MockVideoTrackInterface> video2(MakeVideoTrack("video2")); |
445 scoped_refptr<MockVideoTrackInterface> video3(MakeVideoTrack("video3")); | 445 scoped_refptr<MockVideoTrackInterface> video3(MakeVideoTrack("video3")); |
446 stream_->AddTrack(audio1); | 446 stream_->AddTrack(audio1.get()); |
447 stream_->AddTrack(video1); | 447 stream_->AddTrack(video1.get()); |
448 metrics_->AddStream(MediaStreamTrackMetrics::SENT_STREAM, stream_); | 448 metrics_->AddStream(MediaStreamTrackMetrics::SENT_STREAM, stream_.get()); |
449 | 449 |
450 EXPECT_CALL(*metrics_, | 450 EXPECT_CALL(*metrics_, |
451 SendLifetimeMessage("audio1", | 451 SendLifetimeMessage("audio1", |
452 MediaStreamTrackMetrics::AUDIO_TRACK, | 452 MediaStreamTrackMetrics::AUDIO_TRACK, |
453 MediaStreamTrackMetrics::CONNECTED, | 453 MediaStreamTrackMetrics::CONNECTED, |
454 MediaStreamTrackMetrics::SENT_STREAM)); | 454 MediaStreamTrackMetrics::SENT_STREAM)); |
455 EXPECT_CALL(*metrics_, | 455 EXPECT_CALL(*metrics_, |
456 SendLifetimeMessage("video1", | 456 SendLifetimeMessage("video1", |
457 MediaStreamTrackMetrics::VIDEO_TRACK, | 457 MediaStreamTrackMetrics::VIDEO_TRACK, |
458 MediaStreamTrackMetrics::CONNECTED, | 458 MediaStreamTrackMetrics::CONNECTED, |
459 MediaStreamTrackMetrics::SENT_STREAM)); | 459 MediaStreamTrackMetrics::SENT_STREAM)); |
460 metrics_->IceConnectionChange( | 460 metrics_->IceConnectionChange( |
461 PeerConnectionInterface::kIceConnectionConnected); | 461 PeerConnectionInterface::kIceConnectionConnected); |
462 | 462 |
463 EXPECT_CALL(*metrics_, | 463 EXPECT_CALL(*metrics_, |
464 SendLifetimeMessage("audio2", | 464 SendLifetimeMessage("audio2", |
465 MediaStreamTrackMetrics::AUDIO_TRACK, | 465 MediaStreamTrackMetrics::AUDIO_TRACK, |
466 MediaStreamTrackMetrics::CONNECTED, | 466 MediaStreamTrackMetrics::CONNECTED, |
467 MediaStreamTrackMetrics::SENT_STREAM)); | 467 MediaStreamTrackMetrics::SENT_STREAM)); |
468 stream_->AddTrack(audio2); | 468 stream_->AddTrack(audio2.get()); |
469 EXPECT_CALL(*metrics_, | 469 EXPECT_CALL(*metrics_, |
470 SendLifetimeMessage("video2", | 470 SendLifetimeMessage("video2", |
471 MediaStreamTrackMetrics::VIDEO_TRACK, | 471 MediaStreamTrackMetrics::VIDEO_TRACK, |
472 MediaStreamTrackMetrics::CONNECTED, | 472 MediaStreamTrackMetrics::CONNECTED, |
473 MediaStreamTrackMetrics::SENT_STREAM)); | 473 MediaStreamTrackMetrics::SENT_STREAM)); |
474 stream_->AddTrack(video2); | 474 stream_->AddTrack(video2.get()); |
475 | 475 |
476 EXPECT_CALL(*metrics_, | 476 EXPECT_CALL(*metrics_, |
477 SendLifetimeMessage("audio1", | 477 SendLifetimeMessage("audio1", |
478 MediaStreamTrackMetrics::AUDIO_TRACK, | 478 MediaStreamTrackMetrics::AUDIO_TRACK, |
479 MediaStreamTrackMetrics::DISCONNECTED, | 479 MediaStreamTrackMetrics::DISCONNECTED, |
480 MediaStreamTrackMetrics::SENT_STREAM)); | 480 MediaStreamTrackMetrics::SENT_STREAM)); |
481 stream_->RemoveTrack(audio1); | 481 stream_->RemoveTrack(audio1.get()); |
482 | 482 |
483 EXPECT_CALL(*metrics_, | 483 EXPECT_CALL(*metrics_, |
484 SendLifetimeMessage("audio3", | 484 SendLifetimeMessage("audio3", |
485 MediaStreamTrackMetrics::AUDIO_TRACK, | 485 MediaStreamTrackMetrics::AUDIO_TRACK, |
486 MediaStreamTrackMetrics::CONNECTED, | 486 MediaStreamTrackMetrics::CONNECTED, |
487 MediaStreamTrackMetrics::SENT_STREAM)); | 487 MediaStreamTrackMetrics::SENT_STREAM)); |
488 stream_->AddTrack(audio3); | 488 stream_->AddTrack(audio3.get()); |
489 EXPECT_CALL(*metrics_, | 489 EXPECT_CALL(*metrics_, |
490 SendLifetimeMessage("video3", | 490 SendLifetimeMessage("video3", |
491 MediaStreamTrackMetrics::VIDEO_TRACK, | 491 MediaStreamTrackMetrics::VIDEO_TRACK, |
492 MediaStreamTrackMetrics::CONNECTED, | 492 MediaStreamTrackMetrics::CONNECTED, |
493 MediaStreamTrackMetrics::SENT_STREAM)); | 493 MediaStreamTrackMetrics::SENT_STREAM)); |
494 stream_->AddTrack(video3); | 494 stream_->AddTrack(video3.get()); |
495 | 495 |
496 // Add back audio1 | 496 // Add back audio1 |
497 EXPECT_CALL(*metrics_, | 497 EXPECT_CALL(*metrics_, |
498 SendLifetimeMessage("audio1", | 498 SendLifetimeMessage("audio1", |
499 MediaStreamTrackMetrics::AUDIO_TRACK, | 499 MediaStreamTrackMetrics::AUDIO_TRACK, |
500 MediaStreamTrackMetrics::CONNECTED, | 500 MediaStreamTrackMetrics::CONNECTED, |
501 MediaStreamTrackMetrics::SENT_STREAM)); | 501 MediaStreamTrackMetrics::SENT_STREAM)); |
502 stream_->AddTrack(audio1); | 502 stream_->AddTrack(audio1.get()); |
503 | 503 |
504 EXPECT_CALL(*metrics_, | 504 EXPECT_CALL(*metrics_, |
505 SendLifetimeMessage("audio2", | 505 SendLifetimeMessage("audio2", |
506 MediaStreamTrackMetrics::AUDIO_TRACK, | 506 MediaStreamTrackMetrics::AUDIO_TRACK, |
507 MediaStreamTrackMetrics::DISCONNECTED, | 507 MediaStreamTrackMetrics::DISCONNECTED, |
508 MediaStreamTrackMetrics::SENT_STREAM)); | 508 MediaStreamTrackMetrics::SENT_STREAM)); |
509 stream_->RemoveTrack(audio2); | 509 stream_->RemoveTrack(audio2.get()); |
510 EXPECT_CALL(*metrics_, | 510 EXPECT_CALL(*metrics_, |
511 SendLifetimeMessage("video2", | 511 SendLifetimeMessage("video2", |
512 MediaStreamTrackMetrics::VIDEO_TRACK, | 512 MediaStreamTrackMetrics::VIDEO_TRACK, |
513 MediaStreamTrackMetrics::DISCONNECTED, | 513 MediaStreamTrackMetrics::DISCONNECTED, |
514 MediaStreamTrackMetrics::SENT_STREAM)); | 514 MediaStreamTrackMetrics::SENT_STREAM)); |
515 stream_->RemoveTrack(video2); | 515 stream_->RemoveTrack(video2.get()); |
516 | 516 |
517 EXPECT_CALL(*metrics_, | 517 EXPECT_CALL(*metrics_, |
518 SendLifetimeMessage("audio1", | 518 SendLifetimeMessage("audio1", |
519 MediaStreamTrackMetrics::AUDIO_TRACK, | 519 MediaStreamTrackMetrics::AUDIO_TRACK, |
520 MediaStreamTrackMetrics::DISCONNECTED, | 520 MediaStreamTrackMetrics::DISCONNECTED, |
521 MediaStreamTrackMetrics::SENT_STREAM)); | 521 MediaStreamTrackMetrics::SENT_STREAM)); |
522 stream_->RemoveTrack(audio1); | 522 stream_->RemoveTrack(audio1.get()); |
523 EXPECT_CALL(*metrics_, | 523 EXPECT_CALL(*metrics_, |
524 SendLifetimeMessage("video1", | 524 SendLifetimeMessage("video1", |
525 MediaStreamTrackMetrics::VIDEO_TRACK, | 525 MediaStreamTrackMetrics::VIDEO_TRACK, |
526 MediaStreamTrackMetrics::DISCONNECTED, | 526 MediaStreamTrackMetrics::DISCONNECTED, |
527 MediaStreamTrackMetrics::SENT_STREAM)); | 527 MediaStreamTrackMetrics::SENT_STREAM)); |
528 stream_->RemoveTrack(video1); | 528 stream_->RemoveTrack(video1.get()); |
529 | 529 |
530 EXPECT_CALL(*metrics_, | 530 EXPECT_CALL(*metrics_, |
531 SendLifetimeMessage("audio3", | 531 SendLifetimeMessage("audio3", |
532 MediaStreamTrackMetrics::AUDIO_TRACK, | 532 MediaStreamTrackMetrics::AUDIO_TRACK, |
533 MediaStreamTrackMetrics::DISCONNECTED, | 533 MediaStreamTrackMetrics::DISCONNECTED, |
534 MediaStreamTrackMetrics::SENT_STREAM)); | 534 MediaStreamTrackMetrics::SENT_STREAM)); |
535 EXPECT_CALL(*metrics_, | 535 EXPECT_CALL(*metrics_, |
536 SendLifetimeMessage("video3", | 536 SendLifetimeMessage("video3", |
537 MediaStreamTrackMetrics::VIDEO_TRACK, | 537 MediaStreamTrackMetrics::VIDEO_TRACK, |
538 MediaStreamTrackMetrics::DISCONNECTED, | 538 MediaStreamTrackMetrics::DISCONNECTED, |
539 MediaStreamTrackMetrics::SENT_STREAM)); | 539 MediaStreamTrackMetrics::SENT_STREAM)); |
540 metrics_->RemoveStream(MediaStreamTrackMetrics::SENT_STREAM, stream_); | 540 metrics_->RemoveStream(MediaStreamTrackMetrics::SENT_STREAM, stream_.get()); |
541 } | 541 } |
542 | 542 |
543 } // namespace content | 543 } // namespace content |
OLD | NEW |