| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| 11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
| 12 #include "base/run_loop.h" | 12 #include "base/run_loop.h" |
| 13 #include "base/single_thread_task_runner.h" | 13 #include "base/single_thread_task_runner.h" |
| 14 #include "base/strings/utf_string_conversions.h" | 14 #include "base/strings/utf_string_conversions.h" |
| 15 #include "base/thread_task_runner_handle.h" | 15 #include "base/thread_task_runner_handle.h" |
| 16 #include "base/values.h" | 16 #include "base/values.h" |
| 17 #include "content/child/child_process.h" | 17 #include "content/child/child_process.h" |
| 18 #include "content/renderer/media/media_stream.h" | 18 #include "content/renderer/media/media_stream.h" |
| 19 #include "content/renderer/media/media_stream_audio_source.h" | 19 #include "content/renderer/media/media_stream_audio_source.h" |
| 20 #include "content/renderer/media/media_stream_source.h" | 20 #include "content/renderer/media/media_stream_source.h" |
| 21 #include "content/renderer/media/media_stream_video_track.h" | 21 #include "content/renderer/media/media_stream_video_track.h" |
| 22 #include "content/renderer/media/mock_data_channel_impl.h" | 22 #include "content/renderer/media/mock_data_channel_impl.h" |
| 23 #include "content/renderer/media/mock_media_stream_video_source.h" | 23 #include "content/renderer/media/mock_media_stream_video_source.h" |
| 24 #include "content/renderer/media/mock_peer_connection_impl.h" | 24 #include "content/renderer/media/mock_peer_connection_impl.h" |
| 25 #include "content/renderer/media/mock_web_rtc_peer_connection_handler_client.h" | 25 #include "content/renderer/media/mock_web_rtc_peer_connection_handler_client.h" |
| 26 #include "content/renderer/media/peer_connection_tracker.h" | 26 #include "content/renderer/media/peer_connection_tracker.h" |
| 27 #include "content/renderer/media/rtc_media_constraints.h" | |
| 28 #include "content/renderer/media/rtc_peer_connection_handler.h" | 27 #include "content/renderer/media/rtc_peer_connection_handler.h" |
| 29 #include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory.
h" | 28 #include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory.
h" |
| 30 #include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h" | 29 #include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h" |
| 31 #include "content/renderer/media/webrtc_local_audio_track.h" | 30 #include "content/renderer/media/webrtc_local_audio_track.h" |
| 32 #include "testing/gmock/include/gmock/gmock.h" | 31 #include "testing/gmock/include/gmock/gmock.h" |
| 33 #include "testing/gtest/include/gtest/gtest.h" | 32 #include "testing/gtest/include/gtest/gtest.h" |
| 34 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" | 33 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" |
| 35 #include "third_party/WebKit/public/platform/WebMediaStream.h" | 34 #include "third_party/WebKit/public/platform/WebMediaStream.h" |
| 36 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" | 35 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" |
| 37 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" | 36 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 140 MOCK_METHOD2(TrackCreateOffer, | 139 MOCK_METHOD2(TrackCreateOffer, |
| 141 void(RTCPeerConnectionHandler* pc_handler, | 140 void(RTCPeerConnectionHandler* pc_handler, |
| 142 const blink::WebMediaConstraints& constraints)); | 141 const blink::WebMediaConstraints& constraints)); |
| 143 MOCK_METHOD2(TrackCreateAnswer, | 142 MOCK_METHOD2(TrackCreateAnswer, |
| 144 void(RTCPeerConnectionHandler* pc_handler, | 143 void(RTCPeerConnectionHandler* pc_handler, |
| 145 const blink::WebMediaConstraints& constraints)); | 144 const blink::WebMediaConstraints& constraints)); |
| 146 MOCK_METHOD4(TrackSetSessionDescription, | 145 MOCK_METHOD4(TrackSetSessionDescription, |
| 147 void(RTCPeerConnectionHandler* pc_handler, | 146 void(RTCPeerConnectionHandler* pc_handler, |
| 148 const std::string& sdp, const std::string& type, | 147 const std::string& sdp, const std::string& type, |
| 149 Source source)); | 148 Source source)); |
| 150 MOCK_METHOD3( | 149 MOCK_METHOD2( |
| 151 TrackUpdateIce, | 150 TrackUpdateIce, |
| 152 void(RTCPeerConnectionHandler* pc_handler, | 151 void(RTCPeerConnectionHandler* pc_handler, |
| 153 const webrtc::PeerConnectionInterface::RTCConfiguration& config, | 152 const webrtc::PeerConnectionInterface::RTCConfiguration& config)); |
| 154 const blink::WebMediaConstraints& options)); | |
| 155 MOCK_METHOD4(TrackAddIceCandidate, | 153 MOCK_METHOD4(TrackAddIceCandidate, |
| 156 void(RTCPeerConnectionHandler* pc_handler, | 154 void(RTCPeerConnectionHandler* pc_handler, |
| 157 const blink::WebRTCICECandidate& candidate, | 155 const blink::WebRTCICECandidate& candidate, |
| 158 Source source, | 156 Source source, |
| 159 bool succeeded)); | 157 bool succeeded)); |
| 160 MOCK_METHOD3(TrackAddStream, | 158 MOCK_METHOD3(TrackAddStream, |
| 161 void(RTCPeerConnectionHandler* pc_handler, | 159 void(RTCPeerConnectionHandler* pc_handler, |
| 162 const blink::WebMediaStream& stream, | 160 const blink::WebMediaStream& stream, |
| 163 Source source)); | 161 Source source)); |
| 164 MOCK_METHOD3(TrackRemoveStream, | 162 MOCK_METHOD3(TrackRemoveStream, |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 367 pc_handler_->observer()->OnDataChannel(remote_data_channel.get()); | 365 pc_handler_->observer()->OnDataChannel(remote_data_channel.get()); |
| 368 | 366 |
| 369 base::RunLoop().RunUntilIdle(); | 367 base::RunLoop().RunUntilIdle(); |
| 370 } | 368 } |
| 371 | 369 |
| 372 TEST_F(RTCPeerConnectionHandlerTest, DestructAllHandlers) { | 370 TEST_F(RTCPeerConnectionHandlerTest, DestructAllHandlers) { |
| 373 EXPECT_CALL(*mock_client_.get(), releasePeerConnectionHandler()) | 371 EXPECT_CALL(*mock_client_.get(), releasePeerConnectionHandler()) |
| 374 .Times(1); | 372 .Times(1); |
| 375 RTCPeerConnectionHandler::DestructAllHandlers(); | 373 RTCPeerConnectionHandler::DestructAllHandlers(); |
| 376 } | 374 } |
| 375 |
| 377 TEST_F(RTCPeerConnectionHandlerTest, CreateOffer) { | 376 TEST_F(RTCPeerConnectionHandlerTest, CreateOffer) { |
| 378 blink::WebRTCSessionDescriptionRequest request; | 377 blink::WebRTCSessionDescriptionRequest request; |
| 379 blink::WebMediaConstraints options; | 378 blink::WebMediaConstraints options; |
| 380 EXPECT_CALL(*mock_tracker_.get(), TrackCreateOffer(pc_handler_.get(), _)); | 379 EXPECT_CALL(*mock_tracker_.get(), TrackCreateOffer(pc_handler_.get(), _)); |
| 381 | 380 |
| 382 // TODO(perkj): Can blink::WebRTCSessionDescriptionRequest be changed so | 381 // TODO(perkj): Can blink::WebRTCSessionDescriptionRequest be changed so |
| 383 // the |reqest| requestSucceeded can be tested? Currently the |request| object | 382 // the |reqest| requestSucceeded can be tested? Currently the |request| object |
| 384 // can not be initialized from a unit test. | 383 // can not be initialized from a unit test. |
| 385 EXPECT_FALSE(mock_peer_connection_->created_session_description() != NULL); | 384 EXPECT_FALSE(mock_peer_connection_->created_session_description() != NULL); |
| 386 pc_handler_->createOffer(request, options); | 385 pc_handler_->createOffer(request, options); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 | 444 |
| 446 std::string sdp_string; | 445 std::string sdp_string; |
| 447 ASSERT_TRUE(mock_peer_connection_->remote_description() != NULL); | 446 ASSERT_TRUE(mock_peer_connection_->remote_description() != NULL); |
| 448 EXPECT_EQ(kDummySdpType, mock_peer_connection_->remote_description()->type()); | 447 EXPECT_EQ(kDummySdpType, mock_peer_connection_->remote_description()->type()); |
| 449 mock_peer_connection_->remote_description()->ToString(&sdp_string); | 448 mock_peer_connection_->remote_description()->ToString(&sdp_string); |
| 450 EXPECT_EQ(kDummySdp, sdp_string); | 449 EXPECT_EQ(kDummySdp, sdp_string); |
| 451 } | 450 } |
| 452 | 451 |
| 453 TEST_F(RTCPeerConnectionHandlerTest, updateICE) { | 452 TEST_F(RTCPeerConnectionHandlerTest, updateICE) { |
| 454 blink::WebRTCConfiguration config; | 453 blink::WebRTCConfiguration config; |
| 455 blink::WebMediaConstraints constraints; | |
| 456 | 454 |
| 457 EXPECT_CALL(*mock_tracker_.get(), TrackUpdateIce(pc_handler_.get(), _, _)); | 455 EXPECT_CALL(*mock_tracker_.get(), TrackUpdateIce(pc_handler_.get(), _)); |
| 458 // TODO(perkj): Test that the parameters in |config| can be translated when a | 456 // TODO(perkj): Test that the parameters in |config| can be translated when a |
| 459 // WebRTCConfiguration can be constructed. It's WebKit class and can't be | 457 // WebRTCConfiguration can be constructed. It's WebKit class and can't be |
| 460 // initialized from a test. | 458 // initialized from a test. |
| 461 EXPECT_TRUE(pc_handler_->updateICE(config, constraints)); | 459 EXPECT_TRUE(pc_handler_->updateICE(config)); |
| 462 } | 460 } |
| 463 | 461 |
| 464 TEST_F(RTCPeerConnectionHandlerTest, addICECandidate) { | 462 TEST_F(RTCPeerConnectionHandlerTest, addICECandidate) { |
| 465 blink::WebRTCICECandidate candidate; | 463 blink::WebRTCICECandidate candidate; |
| 466 candidate.initialize(kDummySdp, "sdpMid", 1); | 464 candidate.initialize(kDummySdp, "sdpMid", 1); |
| 467 | 465 |
| 468 EXPECT_CALL(*mock_tracker_.get(), | 466 EXPECT_CALL(*mock_tracker_.get(), |
| 469 TrackAddIceCandidate(pc_handler_.get(), | 467 TrackAddIceCandidate(pc_handler_.get(), |
| 470 testing::Ref(candidate), | 468 testing::Ref(candidate), |
| 471 PeerConnectionTracker::SOURCE_REMOTE, | 469 PeerConnectionTracker::SOURCE_REMOTE, |
| (...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1028 EXPECT_CALL(*mock_tracker_.get(), | 1026 EXPECT_CALL(*mock_tracker_.get(), |
| 1029 TrackCreateDTMFSender(pc_handler_.get(), | 1027 TrackCreateDTMFSender(pc_handler_.get(), |
| 1030 testing::Ref(tracks[0]))); | 1028 testing::Ref(tracks[0]))); |
| 1031 | 1029 |
| 1032 scoped_ptr<blink::WebRTCDTMFSenderHandler> sender( | 1030 scoped_ptr<blink::WebRTCDTMFSenderHandler> sender( |
| 1033 pc_handler_->createDTMFSender(tracks[0])); | 1031 pc_handler_->createDTMFSender(tracks[0])); |
| 1034 EXPECT_TRUE(sender.get()); | 1032 EXPECT_TRUE(sender.get()); |
| 1035 } | 1033 } |
| 1036 | 1034 |
| 1037 } // namespace content | 1035 } // namespace content |
| OLD | NEW |