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