| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <string> | 5 #include <string> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 #include "third_party/WebKit/public/platform/WebRTCSessionDescription.h" | 31 #include "third_party/WebKit/public/platform/WebRTCSessionDescription.h" |
| 32 #include "third_party/WebKit/public/platform/WebRTCSessionDescriptionRequest.h" | 32 #include "third_party/WebKit/public/platform/WebRTCSessionDescriptionRequest.h" |
| 33 #include "third_party/WebKit/public/platform/WebRTCStatsRequest.h" | 33 #include "third_party/WebKit/public/platform/WebRTCStatsRequest.h" |
| 34 #include "third_party/WebKit/public/platform/WebRTCVoidRequest.h" | 34 #include "third_party/WebKit/public/platform/WebRTCVoidRequest.h" |
| 35 #include "third_party/WebKit/public/platform/WebURL.h" | 35 #include "third_party/WebKit/public/platform/WebURL.h" |
| 36 #include "third_party/libjingle/source/talk/app/webrtc/peerconnectioninterface.h
" | 36 #include "third_party/libjingle/source/talk/app/webrtc/peerconnectioninterface.h
" |
| 37 | 37 |
| 38 static const char kDummySdp[] = "dummy sdp"; | 38 static const char kDummySdp[] = "dummy sdp"; |
| 39 static const char kDummySdpType[] = "dummy type"; | 39 static const char kDummySdpType[] = "dummy type"; |
| 40 | 40 |
| 41 using WebKit::WebRTCPeerConnectionHandlerClient; | 41 using blink::WebRTCPeerConnectionHandlerClient; |
| 42 using testing::NiceMock; | 42 using testing::NiceMock; |
| 43 using testing::_; | 43 using testing::_; |
| 44 using testing::Ref; | 44 using testing::Ref; |
| 45 | 45 |
| 46 namespace content { | 46 namespace content { |
| 47 | 47 |
| 48 class MockRTCStatsResponse : public LocalRTCStatsResponse { | 48 class MockRTCStatsResponse : public LocalRTCStatsResponse { |
| 49 public: | 49 public: |
| 50 MockRTCStatsResponse() | 50 MockRTCStatsResponse() |
| 51 : report_count_(0), | 51 : report_count_(0), |
| 52 statistic_count_(0) { | 52 statistic_count_(0) { |
| 53 } | 53 } |
| 54 | 54 |
| 55 virtual size_t addReport(WebKit::WebString type, | 55 virtual size_t addReport(blink::WebString type, |
| 56 WebKit::WebString id, | 56 blink::WebString id, |
| 57 double timestamp) OVERRIDE { | 57 double timestamp) OVERRIDE { |
| 58 ++report_count_; | 58 ++report_count_; |
| 59 return report_count_; | 59 return report_count_; |
| 60 } | 60 } |
| 61 | 61 |
| 62 virtual void addStatistic(size_t report, | 62 virtual void addStatistic(size_t report, |
| 63 WebKit::WebString name, WebKit::WebString value) | 63 blink::WebString name, blink::WebString value) |
| 64 OVERRIDE { | 64 OVERRIDE { |
| 65 ++statistic_count_; | 65 ++statistic_count_; |
| 66 } | 66 } |
| 67 int report_count() const { return report_count_; } | 67 int report_count() const { return report_count_; } |
| 68 | 68 |
| 69 private: | 69 private: |
| 70 int report_count_; | 70 int report_count_; |
| 71 int statistic_count_; | 71 int statistic_count_; |
| 72 }; | 72 }; |
| 73 | 73 |
| 74 // Mocked wrapper for WebKit::WebRTCStatsRequest | 74 // Mocked wrapper for blink::WebRTCStatsRequest |
| 75 class MockRTCStatsRequest : public LocalRTCStatsRequest { | 75 class MockRTCStatsRequest : public LocalRTCStatsRequest { |
| 76 public: | 76 public: |
| 77 MockRTCStatsRequest() | 77 MockRTCStatsRequest() |
| 78 : has_selector_(false), | 78 : has_selector_(false), |
| 79 request_succeeded_called_(false) {} | 79 request_succeeded_called_(false) {} |
| 80 | 80 |
| 81 virtual bool hasSelector() const OVERRIDE { | 81 virtual bool hasSelector() const OVERRIDE { |
| 82 return has_selector_; | 82 return has_selector_; |
| 83 } | 83 } |
| 84 virtual WebKit::WebMediaStreamTrack component() const OVERRIDE { | 84 virtual blink::WebMediaStreamTrack component() const OVERRIDE { |
| 85 return component_; | 85 return component_; |
| 86 } | 86 } |
| 87 virtual scoped_refptr<LocalRTCStatsResponse> createResponse() OVERRIDE { | 87 virtual scoped_refptr<LocalRTCStatsResponse> createResponse() OVERRIDE { |
| 88 DCHECK(!response_.get()); | 88 DCHECK(!response_.get()); |
| 89 response_ = new talk_base::RefCountedObject<MockRTCStatsResponse>(); | 89 response_ = new talk_base::RefCountedObject<MockRTCStatsResponse>(); |
| 90 return response_; | 90 return response_; |
| 91 } | 91 } |
| 92 | 92 |
| 93 virtual void requestSucceeded(const LocalRTCStatsResponse* response) | 93 virtual void requestSucceeded(const LocalRTCStatsResponse* response) |
| 94 OVERRIDE { | 94 OVERRIDE { |
| 95 EXPECT_EQ(response, response_.get()); | 95 EXPECT_EQ(response, response_.get()); |
| 96 request_succeeded_called_ = true; | 96 request_succeeded_called_ = true; |
| 97 } | 97 } |
| 98 | 98 |
| 99 // Function for setting whether or not a selector is available. | 99 // Function for setting whether or not a selector is available. |
| 100 void setSelector(const WebKit::WebMediaStreamTrack& component) { | 100 void setSelector(const blink::WebMediaStreamTrack& component) { |
| 101 has_selector_ = true; | 101 has_selector_ = true; |
| 102 component_ = component; | 102 component_ = component; |
| 103 } | 103 } |
| 104 | 104 |
| 105 // Function for inspecting the result of a stats request. | 105 // Function for inspecting the result of a stats request. |
| 106 MockRTCStatsResponse* result() { | 106 MockRTCStatsResponse* result() { |
| 107 if (request_succeeded_called_) { | 107 if (request_succeeded_called_) { |
| 108 return response_.get(); | 108 return response_.get(); |
| 109 } else { | 109 } else { |
| 110 return NULL; | 110 return NULL; |
| 111 } | 111 } |
| 112 } | 112 } |
| 113 | 113 |
| 114 private: | 114 private: |
| 115 bool has_selector_; | 115 bool has_selector_; |
| 116 WebKit::WebMediaStreamTrack component_; | 116 blink::WebMediaStreamTrack component_; |
| 117 scoped_refptr<MockRTCStatsResponse> response_; | 117 scoped_refptr<MockRTCStatsResponse> response_; |
| 118 bool request_succeeded_called_; | 118 bool request_succeeded_called_; |
| 119 }; | 119 }; |
| 120 | 120 |
| 121 class MockPeerConnectionTracker : public PeerConnectionTracker { | 121 class MockPeerConnectionTracker : public PeerConnectionTracker { |
| 122 public: | 122 public: |
| 123 MOCK_METHOD1(UnregisterPeerConnection, | 123 MOCK_METHOD1(UnregisterPeerConnection, |
| 124 void(RTCPeerConnectionHandler* pc_handler)); | 124 void(RTCPeerConnectionHandler* pc_handler)); |
| 125 // TODO(jiayl): add coverage for the following methods | 125 // TODO(jiayl): add coverage for the following methods |
| 126 MOCK_METHOD2(TrackCreateOffer, | 126 MOCK_METHOD2(TrackCreateOffer, |
| 127 void(RTCPeerConnectionHandler* pc_handler, | 127 void(RTCPeerConnectionHandler* pc_handler, |
| 128 const RTCMediaConstraints& constraints)); | 128 const RTCMediaConstraints& constraints)); |
| 129 MOCK_METHOD2(TrackCreateAnswer, | 129 MOCK_METHOD2(TrackCreateAnswer, |
| 130 void(RTCPeerConnectionHandler* pc_handler, | 130 void(RTCPeerConnectionHandler* pc_handler, |
| 131 const RTCMediaConstraints& constraints)); | 131 const RTCMediaConstraints& constraints)); |
| 132 MOCK_METHOD3(TrackSetSessionDescription, | 132 MOCK_METHOD3(TrackSetSessionDescription, |
| 133 void(RTCPeerConnectionHandler* pc_handler, | 133 void(RTCPeerConnectionHandler* pc_handler, |
| 134 const WebKit::WebRTCSessionDescription& desc, | 134 const blink::WebRTCSessionDescription& desc, |
| 135 Source source)); | 135 Source source)); |
| 136 MOCK_METHOD3( | 136 MOCK_METHOD3( |
| 137 TrackUpdateIce, | 137 TrackUpdateIce, |
| 138 void(RTCPeerConnectionHandler* pc_handler, | 138 void(RTCPeerConnectionHandler* pc_handler, |
| 139 const std::vector< | 139 const std::vector< |
| 140 webrtc::PeerConnectionInterface::IceServer>& servers, | 140 webrtc::PeerConnectionInterface::IceServer>& servers, |
| 141 const RTCMediaConstraints& options)); | 141 const RTCMediaConstraints& options)); |
| 142 MOCK_METHOD3(TrackAddIceCandidate, | 142 MOCK_METHOD3(TrackAddIceCandidate, |
| 143 void(RTCPeerConnectionHandler* pc_handler, | 143 void(RTCPeerConnectionHandler* pc_handler, |
| 144 const WebKit::WebRTCICECandidate& candidate, | 144 const blink::WebRTCICECandidate& candidate, |
| 145 Source source)); | 145 Source source)); |
| 146 MOCK_METHOD3(TrackAddStream, | 146 MOCK_METHOD3(TrackAddStream, |
| 147 void(RTCPeerConnectionHandler* pc_handler, | 147 void(RTCPeerConnectionHandler* pc_handler, |
| 148 const WebKit::WebMediaStream& stream, | 148 const blink::WebMediaStream& stream, |
| 149 Source source)); | 149 Source source)); |
| 150 MOCK_METHOD3(TrackRemoveStream, | 150 MOCK_METHOD3(TrackRemoveStream, |
| 151 void(RTCPeerConnectionHandler* pc_handler, | 151 void(RTCPeerConnectionHandler* pc_handler, |
| 152 const WebKit::WebMediaStream& stream, | 152 const blink::WebMediaStream& stream, |
| 153 Source source)); | 153 Source source)); |
| 154 MOCK_METHOD1(TrackOnIceComplete, | 154 MOCK_METHOD1(TrackOnIceComplete, |
| 155 void(RTCPeerConnectionHandler* pc_handler)); | 155 void(RTCPeerConnectionHandler* pc_handler)); |
| 156 MOCK_METHOD3(TrackCreateDataChannel, | 156 MOCK_METHOD3(TrackCreateDataChannel, |
| 157 void(RTCPeerConnectionHandler* pc_handler, | 157 void(RTCPeerConnectionHandler* pc_handler, |
| 158 const webrtc::DataChannelInterface* data_channel, | 158 const webrtc::DataChannelInterface* data_channel, |
| 159 Source source)); | 159 Source source)); |
| 160 MOCK_METHOD1(TrackStop, void(RTCPeerConnectionHandler* pc_handler)); | 160 MOCK_METHOD1(TrackStop, void(RTCPeerConnectionHandler* pc_handler)); |
| 161 MOCK_METHOD2(TrackSignalingStateChange, | 161 MOCK_METHOD2(TrackSignalingStateChange, |
| 162 void(RTCPeerConnectionHandler* pc_handler, | 162 void(RTCPeerConnectionHandler* pc_handler, |
| 163 WebRTCPeerConnectionHandlerClient::SignalingState state)); | 163 WebRTCPeerConnectionHandlerClient::SignalingState state)); |
| 164 MOCK_METHOD2( | 164 MOCK_METHOD2( |
| 165 TrackIceConnectionStateChange, | 165 TrackIceConnectionStateChange, |
| 166 void(RTCPeerConnectionHandler* pc_handler, | 166 void(RTCPeerConnectionHandler* pc_handler, |
| 167 WebRTCPeerConnectionHandlerClient::ICEConnectionState state)); | 167 WebRTCPeerConnectionHandlerClient::ICEConnectionState state)); |
| 168 MOCK_METHOD2( | 168 MOCK_METHOD2( |
| 169 TrackIceGatheringStateChange, | 169 TrackIceGatheringStateChange, |
| 170 void(RTCPeerConnectionHandler* pc_handler, | 170 void(RTCPeerConnectionHandler* pc_handler, |
| 171 WebRTCPeerConnectionHandlerClient::ICEGatheringState state)); | 171 WebRTCPeerConnectionHandlerClient::ICEGatheringState state)); |
| 172 MOCK_METHOD1(TrackOnRenegotiationNeeded, | 172 MOCK_METHOD1(TrackOnRenegotiationNeeded, |
| 173 void(RTCPeerConnectionHandler* pc_handler)); | 173 void(RTCPeerConnectionHandler* pc_handler)); |
| 174 MOCK_METHOD2(TrackCreateDTMFSender, | 174 MOCK_METHOD2(TrackCreateDTMFSender, |
| 175 void(RTCPeerConnectionHandler* pc_handler, | 175 void(RTCPeerConnectionHandler* pc_handler, |
| 176 const WebKit::WebMediaStreamTrack& track)); | 176 const blink::WebMediaStreamTrack& track)); |
| 177 }; | 177 }; |
| 178 | 178 |
| 179 class RTCPeerConnectionHandlerUnderTest : public RTCPeerConnectionHandler { | 179 class RTCPeerConnectionHandlerUnderTest : public RTCPeerConnectionHandler { |
| 180 public: | 180 public: |
| 181 RTCPeerConnectionHandlerUnderTest( | 181 RTCPeerConnectionHandlerUnderTest( |
| 182 WebRTCPeerConnectionHandlerClient* client, | 182 WebRTCPeerConnectionHandlerClient* client, |
| 183 MediaStreamDependencyFactory* dependency_factory) | 183 MediaStreamDependencyFactory* dependency_factory) |
| 184 : RTCPeerConnectionHandler(client, dependency_factory) { | 184 : RTCPeerConnectionHandler(client, dependency_factory) { |
| 185 } | 185 } |
| 186 | 186 |
| 187 MockPeerConnectionImpl* native_peer_connection() { | 187 MockPeerConnectionImpl* native_peer_connection() { |
| 188 return static_cast<MockPeerConnectionImpl*>(native_peer_connection_.get()); | 188 return static_cast<MockPeerConnectionImpl*>(native_peer_connection_.get()); |
| 189 } | 189 } |
| 190 }; | 190 }; |
| 191 | 191 |
| 192 class RTCPeerConnectionHandlerTest : public ::testing::Test { | 192 class RTCPeerConnectionHandlerTest : public ::testing::Test { |
| 193 public: | 193 public: |
| 194 RTCPeerConnectionHandlerTest() : mock_peer_connection_(NULL) { | 194 RTCPeerConnectionHandlerTest() : mock_peer_connection_(NULL) { |
| 195 } | 195 } |
| 196 | 196 |
| 197 virtual void SetUp() { | 197 virtual void SetUp() { |
| 198 mock_client_.reset(new NiceMock<MockWebRTCPeerConnectionHandlerClient>()); | 198 mock_client_.reset(new NiceMock<MockWebRTCPeerConnectionHandlerClient>()); |
| 199 mock_dependency_factory_.reset(new MockMediaStreamDependencyFactory()); | 199 mock_dependency_factory_.reset(new MockMediaStreamDependencyFactory()); |
| 200 mock_dependency_factory_->EnsurePeerConnectionFactory(); | 200 mock_dependency_factory_->EnsurePeerConnectionFactory(); |
| 201 pc_handler_.reset( | 201 pc_handler_.reset( |
| 202 new RTCPeerConnectionHandlerUnderTest(mock_client_.get(), | 202 new RTCPeerConnectionHandlerUnderTest(mock_client_.get(), |
| 203 mock_dependency_factory_.get())); | 203 mock_dependency_factory_.get())); |
| 204 mock_tracker_.reset(new NiceMock<MockPeerConnectionTracker>()); | 204 mock_tracker_.reset(new NiceMock<MockPeerConnectionTracker>()); |
| 205 WebKit::WebRTCConfiguration config; | 205 blink::WebRTCConfiguration config; |
| 206 WebKit::WebMediaConstraints constraints; | 206 blink::WebMediaConstraints constraints; |
| 207 EXPECT_TRUE(pc_handler_->InitializeForTest(config, constraints, | 207 EXPECT_TRUE(pc_handler_->InitializeForTest(config, constraints, |
| 208 mock_tracker_.get())); | 208 mock_tracker_.get())); |
| 209 | 209 |
| 210 mock_peer_connection_ = pc_handler_->native_peer_connection(); | 210 mock_peer_connection_ = pc_handler_->native_peer_connection(); |
| 211 ASSERT_TRUE(mock_peer_connection_); | 211 ASSERT_TRUE(mock_peer_connection_); |
| 212 } | 212 } |
| 213 | 213 |
| 214 // Creates a WebKit local MediaStream. | 214 // Creates a WebKit local MediaStream. |
| 215 WebKit::WebMediaStream CreateLocalMediaStream( | 215 blink::WebMediaStream CreateLocalMediaStream( |
| 216 const std::string& stream_label) { | 216 const std::string& stream_label) { |
| 217 std::string video_track_label("video-label"); | 217 std::string video_track_label("video-label"); |
| 218 std::string audio_track_label("audio-label"); | 218 std::string audio_track_label("audio-label"); |
| 219 | 219 |
| 220 WebKit::WebMediaStreamSource audio_source; | 220 blink::WebMediaStreamSource audio_source; |
| 221 audio_source.initialize(WebKit::WebString::fromUTF8(audio_track_label), | 221 audio_source.initialize(blink::WebString::fromUTF8(audio_track_label), |
| 222 WebKit::WebMediaStreamSource::TypeAudio, | 222 blink::WebMediaStreamSource::TypeAudio, |
| 223 WebKit::WebString::fromUTF8("audio_track")); | 223 blink::WebString::fromUTF8("audio_track")); |
| 224 WebKit::WebMediaStreamSource video_source; | 224 blink::WebMediaStreamSource video_source; |
| 225 video_source.initialize(WebKit::WebString::fromUTF8(video_track_label), | 225 video_source.initialize(blink::WebString::fromUTF8(video_track_label), |
| 226 WebKit::WebMediaStreamSource::TypeVideo, | 226 blink::WebMediaStreamSource::TypeVideo, |
| 227 WebKit::WebString::fromUTF8("video_track")); | 227 blink::WebString::fromUTF8("video_track")); |
| 228 | 228 |
| 229 WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks( | 229 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks( |
| 230 static_cast<size_t>(1)); | 230 static_cast<size_t>(1)); |
| 231 audio_tracks[0].initialize(audio_source.id(), audio_source); | 231 audio_tracks[0].initialize(audio_source.id(), audio_source); |
| 232 WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks( | 232 blink::WebVector<blink::WebMediaStreamTrack> video_tracks( |
| 233 static_cast<size_t>(1)); | 233 static_cast<size_t>(1)); |
| 234 video_tracks[0].initialize(video_source.id(), video_source); | 234 video_tracks[0].initialize(video_source.id(), video_source); |
| 235 | 235 |
| 236 WebKit::WebMediaStream local_stream; | 236 blink::WebMediaStream local_stream; |
| 237 local_stream.initialize(UTF8ToUTF16(stream_label), audio_tracks, | 237 local_stream.initialize(UTF8ToUTF16(stream_label), audio_tracks, |
| 238 video_tracks); | 238 video_tracks); |
| 239 | 239 |
| 240 scoped_refptr<webrtc::MediaStreamInterface> native_stream( | 240 scoped_refptr<webrtc::MediaStreamInterface> native_stream( |
| 241 mock_dependency_factory_->CreateLocalMediaStream(stream_label)); | 241 mock_dependency_factory_->CreateLocalMediaStream(stream_label)); |
| 242 | 242 |
| 243 local_stream.audioTracks(audio_tracks); | 243 local_stream.audioTracks(audio_tracks); |
| 244 const std::string audio_track_id = UTF16ToUTF8(audio_tracks[0].id()); | 244 const std::string audio_track_id = UTF16ToUTF8(audio_tracks[0].id()); |
| 245 scoped_refptr<WebRtcAudioCapturer> capturer; | 245 scoped_refptr<WebRtcAudioCapturer> capturer; |
| 246 RTCMediaConstraints audio_constraints(audio_source.constraints()); | 246 RTCMediaConstraints audio_constraints(audio_source.constraints()); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 MockPeerConnectionImpl* mock_peer_connection_; | 305 MockPeerConnectionImpl* mock_peer_connection_; |
| 306 }; | 306 }; |
| 307 | 307 |
| 308 TEST_F(RTCPeerConnectionHandlerTest, Destruct) { | 308 TEST_F(RTCPeerConnectionHandlerTest, Destruct) { |
| 309 EXPECT_CALL(*mock_tracker_.get(), UnregisterPeerConnection(pc_handler_.get())) | 309 EXPECT_CALL(*mock_tracker_.get(), UnregisterPeerConnection(pc_handler_.get())) |
| 310 .Times(1); | 310 .Times(1); |
| 311 pc_handler_.reset(NULL); | 311 pc_handler_.reset(NULL); |
| 312 } | 312 } |
| 313 | 313 |
| 314 TEST_F(RTCPeerConnectionHandlerTest, CreateOffer) { | 314 TEST_F(RTCPeerConnectionHandlerTest, CreateOffer) { |
| 315 WebKit::WebRTCSessionDescriptionRequest request; | 315 blink::WebRTCSessionDescriptionRequest request; |
| 316 WebKit::WebMediaConstraints options; | 316 blink::WebMediaConstraints options; |
| 317 EXPECT_CALL(*mock_tracker_.get(), TrackCreateOffer(pc_handler_.get(), _)); | 317 EXPECT_CALL(*mock_tracker_.get(), TrackCreateOffer(pc_handler_.get(), _)); |
| 318 | 318 |
| 319 // TODO(perkj): Can WebKit::WebRTCSessionDescriptionRequest be changed so | 319 // TODO(perkj): Can blink::WebRTCSessionDescriptionRequest be changed so |
| 320 // the |reqest| requestSucceeded can be tested? Currently the |request| object | 320 // the |reqest| requestSucceeded can be tested? Currently the |request| object |
| 321 // can not be initialized from a unit test. | 321 // can not be initialized from a unit test. |
| 322 EXPECT_FALSE(mock_peer_connection_->created_session_description() != NULL); | 322 EXPECT_FALSE(mock_peer_connection_->created_session_description() != NULL); |
| 323 pc_handler_->createOffer(request, options); | 323 pc_handler_->createOffer(request, options); |
| 324 EXPECT_TRUE(mock_peer_connection_->created_session_description() != NULL); | 324 EXPECT_TRUE(mock_peer_connection_->created_session_description() != NULL); |
| 325 } | 325 } |
| 326 | 326 |
| 327 TEST_F(RTCPeerConnectionHandlerTest, CreateAnswer) { | 327 TEST_F(RTCPeerConnectionHandlerTest, CreateAnswer) { |
| 328 WebKit::WebRTCSessionDescriptionRequest request; | 328 blink::WebRTCSessionDescriptionRequest request; |
| 329 WebKit::WebMediaConstraints options; | 329 blink::WebMediaConstraints options; |
| 330 EXPECT_CALL(*mock_tracker_.get(), TrackCreateAnswer(pc_handler_.get(), _)); | 330 EXPECT_CALL(*mock_tracker_.get(), TrackCreateAnswer(pc_handler_.get(), _)); |
| 331 // TODO(perkj): Can WebKit::WebRTCSessionDescriptionRequest be changed so | 331 // TODO(perkj): Can blink::WebRTCSessionDescriptionRequest be changed so |
| 332 // the |reqest| requestSucceeded can be tested? Currently the |request| object | 332 // the |reqest| requestSucceeded can be tested? Currently the |request| object |
| 333 // can not be initialized from a unit test. | 333 // can not be initialized from a unit test. |
| 334 EXPECT_FALSE(mock_peer_connection_->created_session_description() != NULL); | 334 EXPECT_FALSE(mock_peer_connection_->created_session_description() != NULL); |
| 335 pc_handler_->createAnswer(request, options); | 335 pc_handler_->createAnswer(request, options); |
| 336 EXPECT_TRUE(mock_peer_connection_->created_session_description() != NULL); | 336 EXPECT_TRUE(mock_peer_connection_->created_session_description() != NULL); |
| 337 } | 337 } |
| 338 | 338 |
| 339 TEST_F(RTCPeerConnectionHandlerTest, setLocalDescription) { | 339 TEST_F(RTCPeerConnectionHandlerTest, setLocalDescription) { |
| 340 WebKit::WebRTCVoidRequest request; | 340 blink::WebRTCVoidRequest request; |
| 341 WebKit::WebRTCSessionDescription description; | 341 blink::WebRTCSessionDescription description; |
| 342 description.initialize(kDummySdpType, kDummySdp); | 342 description.initialize(kDummySdpType, kDummySdp); |
| 343 // PeerConnectionTracker::TrackSetSessionDescription is expected to be called | 343 // PeerConnectionTracker::TrackSetSessionDescription is expected to be called |
| 344 // before |mock_peer_connection| is called. | 344 // before |mock_peer_connection| is called. |
| 345 testing::InSequence sequence; | 345 testing::InSequence sequence; |
| 346 EXPECT_CALL(*mock_tracker_.get(), | 346 EXPECT_CALL(*mock_tracker_.get(), |
| 347 TrackSetSessionDescription(pc_handler_.get(), Ref(description), | 347 TrackSetSessionDescription(pc_handler_.get(), Ref(description), |
| 348 PeerConnectionTracker::SOURCE_LOCAL)); | 348 PeerConnectionTracker::SOURCE_LOCAL)); |
| 349 EXPECT_CALL(*mock_peer_connection_, SetLocalDescription(_, _)); | 349 EXPECT_CALL(*mock_peer_connection_, SetLocalDescription(_, _)); |
| 350 | 350 |
| 351 pc_handler_->setLocalDescription(request, description); | 351 pc_handler_->setLocalDescription(request, description); |
| 352 EXPECT_EQ(description.type(), pc_handler_->localDescription().type()); | 352 EXPECT_EQ(description.type(), pc_handler_->localDescription().type()); |
| 353 EXPECT_EQ(description.sdp(), pc_handler_->localDescription().sdp()); | 353 EXPECT_EQ(description.sdp(), pc_handler_->localDescription().sdp()); |
| 354 | 354 |
| 355 std::string sdp_string; | 355 std::string sdp_string; |
| 356 ASSERT_TRUE(mock_peer_connection_->local_description() != NULL); | 356 ASSERT_TRUE(mock_peer_connection_->local_description() != NULL); |
| 357 EXPECT_EQ(kDummySdpType, mock_peer_connection_->local_description()->type()); | 357 EXPECT_EQ(kDummySdpType, mock_peer_connection_->local_description()->type()); |
| 358 mock_peer_connection_->local_description()->ToString(&sdp_string); | 358 mock_peer_connection_->local_description()->ToString(&sdp_string); |
| 359 EXPECT_EQ(kDummySdp, sdp_string); | 359 EXPECT_EQ(kDummySdp, sdp_string); |
| 360 } | 360 } |
| 361 | 361 |
| 362 TEST_F(RTCPeerConnectionHandlerTest, setRemoteDescription) { | 362 TEST_F(RTCPeerConnectionHandlerTest, setRemoteDescription) { |
| 363 WebKit::WebRTCVoidRequest request; | 363 blink::WebRTCVoidRequest request; |
| 364 WebKit::WebRTCSessionDescription description; | 364 blink::WebRTCSessionDescription description; |
| 365 description.initialize(kDummySdpType, kDummySdp); | 365 description.initialize(kDummySdpType, kDummySdp); |
| 366 | 366 |
| 367 // PeerConnectionTracker::TrackSetSessionDescription is expected to be called | 367 // PeerConnectionTracker::TrackSetSessionDescription is expected to be called |
| 368 // before |mock_peer_connection| is called. | 368 // before |mock_peer_connection| is called. |
| 369 testing::InSequence sequence; | 369 testing::InSequence sequence; |
| 370 EXPECT_CALL(*mock_tracker_.get(), | 370 EXPECT_CALL(*mock_tracker_.get(), |
| 371 TrackSetSessionDescription(pc_handler_.get(), Ref(description), | 371 TrackSetSessionDescription(pc_handler_.get(), Ref(description), |
| 372 PeerConnectionTracker::SOURCE_REMOTE)); | 372 PeerConnectionTracker::SOURCE_REMOTE)); |
| 373 EXPECT_CALL(*mock_peer_connection_, SetRemoteDescription(_, _)); | 373 EXPECT_CALL(*mock_peer_connection_, SetRemoteDescription(_, _)); |
| 374 | 374 |
| 375 pc_handler_->setRemoteDescription(request, description); | 375 pc_handler_->setRemoteDescription(request, description); |
| 376 EXPECT_EQ(description.type(), pc_handler_->remoteDescription().type()); | 376 EXPECT_EQ(description.type(), pc_handler_->remoteDescription().type()); |
| 377 EXPECT_EQ(description.sdp(), pc_handler_->remoteDescription().sdp()); | 377 EXPECT_EQ(description.sdp(), pc_handler_->remoteDescription().sdp()); |
| 378 | 378 |
| 379 std::string sdp_string; | 379 std::string sdp_string; |
| 380 ASSERT_TRUE(mock_peer_connection_->remote_description() != NULL); | 380 ASSERT_TRUE(mock_peer_connection_->remote_description() != NULL); |
| 381 EXPECT_EQ(kDummySdpType, mock_peer_connection_->remote_description()->type()); | 381 EXPECT_EQ(kDummySdpType, mock_peer_connection_->remote_description()->type()); |
| 382 mock_peer_connection_->remote_description()->ToString(&sdp_string); | 382 mock_peer_connection_->remote_description()->ToString(&sdp_string); |
| 383 EXPECT_EQ(kDummySdp, sdp_string); | 383 EXPECT_EQ(kDummySdp, sdp_string); |
| 384 } | 384 } |
| 385 | 385 |
| 386 TEST_F(RTCPeerConnectionHandlerTest, updateICE) { | 386 TEST_F(RTCPeerConnectionHandlerTest, updateICE) { |
| 387 WebKit::WebRTCConfiguration config; | 387 blink::WebRTCConfiguration config; |
| 388 WebKit::WebMediaConstraints constraints; | 388 blink::WebMediaConstraints constraints; |
| 389 | 389 |
| 390 EXPECT_CALL(*mock_tracker_.get(), TrackUpdateIce(pc_handler_.get(), _, _)); | 390 EXPECT_CALL(*mock_tracker_.get(), TrackUpdateIce(pc_handler_.get(), _, _)); |
| 391 // TODO(perkj): Test that the parameters in |config| can be translated when a | 391 // TODO(perkj): Test that the parameters in |config| can be translated when a |
| 392 // WebRTCConfiguration can be constructed. It's WebKit class and can't be | 392 // WebRTCConfiguration can be constructed. It's WebKit class and can't be |
| 393 // initialized from a test. | 393 // initialized from a test. |
| 394 EXPECT_TRUE(pc_handler_->updateICE(config, constraints)); | 394 EXPECT_TRUE(pc_handler_->updateICE(config, constraints)); |
| 395 } | 395 } |
| 396 | 396 |
| 397 TEST_F(RTCPeerConnectionHandlerTest, addICECandidate) { | 397 TEST_F(RTCPeerConnectionHandlerTest, addICECandidate) { |
| 398 WebKit::WebRTCICECandidate candidate; | 398 blink::WebRTCICECandidate candidate; |
| 399 candidate.initialize(kDummySdp, "mid", 1); | 399 candidate.initialize(kDummySdp, "mid", 1); |
| 400 | 400 |
| 401 EXPECT_CALL(*mock_tracker_.get(), | 401 EXPECT_CALL(*mock_tracker_.get(), |
| 402 TrackAddIceCandidate(pc_handler_.get(), | 402 TrackAddIceCandidate(pc_handler_.get(), |
| 403 testing::Ref(candidate), | 403 testing::Ref(candidate), |
| 404 PeerConnectionTracker::SOURCE_REMOTE)); | 404 PeerConnectionTracker::SOURCE_REMOTE)); |
| 405 EXPECT_TRUE(pc_handler_->addICECandidate(candidate)); | 405 EXPECT_TRUE(pc_handler_->addICECandidate(candidate)); |
| 406 EXPECT_EQ(kDummySdp, mock_peer_connection_->ice_sdp()); | 406 EXPECT_EQ(kDummySdp, mock_peer_connection_->ice_sdp()); |
| 407 EXPECT_EQ(1, mock_peer_connection_->sdp_mline_index()); | 407 EXPECT_EQ(1, mock_peer_connection_->sdp_mline_index()); |
| 408 EXPECT_EQ("mid", mock_peer_connection_->sdp_mid()); | 408 EXPECT_EQ("mid", mock_peer_connection_->sdp_mid()); |
| 409 } | 409 } |
| 410 | 410 |
| 411 TEST_F(RTCPeerConnectionHandlerTest, addAndRemoveStream) { | 411 TEST_F(RTCPeerConnectionHandlerTest, addAndRemoveStream) { |
| 412 std::string stream_label = "local_stream"; | 412 std::string stream_label = "local_stream"; |
| 413 WebKit::WebMediaStream local_stream( | 413 blink::WebMediaStream local_stream( |
| 414 CreateLocalMediaStream(stream_label)); | 414 CreateLocalMediaStream(stream_label)); |
| 415 WebKit::WebMediaConstraints constraints; | 415 blink::WebMediaConstraints constraints; |
| 416 | 416 |
| 417 EXPECT_CALL(*mock_tracker_.get(), | 417 EXPECT_CALL(*mock_tracker_.get(), |
| 418 TrackAddStream(pc_handler_.get(), | 418 TrackAddStream(pc_handler_.get(), |
| 419 testing::Ref(local_stream), | 419 testing::Ref(local_stream), |
| 420 PeerConnectionTracker::SOURCE_LOCAL)); | 420 PeerConnectionTracker::SOURCE_LOCAL)); |
| 421 EXPECT_CALL(*mock_tracker_.get(), | 421 EXPECT_CALL(*mock_tracker_.get(), |
| 422 TrackRemoveStream(pc_handler_.get(), | 422 TrackRemoveStream(pc_handler_.get(), |
| 423 testing::Ref(local_stream), | 423 testing::Ref(local_stream), |
| 424 PeerConnectionTracker::SOURCE_LOCAL)); | 424 PeerConnectionTracker::SOURCE_LOCAL)); |
| 425 EXPECT_TRUE(pc_handler_->addStream(local_stream, constraints)); | 425 EXPECT_TRUE(pc_handler_->addStream(local_stream, constraints)); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 446 scoped_refptr<MockRTCStatsRequest> request( | 446 scoped_refptr<MockRTCStatsRequest> request( |
| 447 new talk_base::RefCountedObject<MockRTCStatsRequest>()); | 447 new talk_base::RefCountedObject<MockRTCStatsRequest>()); |
| 448 pc_handler_->stop(); | 448 pc_handler_->stop(); |
| 449 pc_handler_->getStats(request.get()); | 449 pc_handler_->getStats(request.get()); |
| 450 // Note that callback gets executed synchronously by mock. | 450 // Note that callback gets executed synchronously by mock. |
| 451 ASSERT_TRUE(request->result()); | 451 ASSERT_TRUE(request->result()); |
| 452 EXPECT_LT(1, request->result()->report_count()); | 452 EXPECT_LT(1, request->result()->report_count()); |
| 453 } | 453 } |
| 454 | 454 |
| 455 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithLocalSelector) { | 455 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithLocalSelector) { |
| 456 WebKit::WebMediaStream local_stream( | 456 blink::WebMediaStream local_stream( |
| 457 CreateLocalMediaStream("local_stream")); | 457 CreateLocalMediaStream("local_stream")); |
| 458 WebKit::WebMediaConstraints constraints; | 458 blink::WebMediaConstraints constraints; |
| 459 pc_handler_->addStream(local_stream, constraints); | 459 pc_handler_->addStream(local_stream, constraints); |
| 460 WebKit::WebVector<WebKit::WebMediaStreamTrack> tracks; | 460 blink::WebVector<blink::WebMediaStreamTrack> tracks; |
| 461 local_stream.audioTracks(tracks); | 461 local_stream.audioTracks(tracks); |
| 462 ASSERT_LE(1ul, tracks.size()); | 462 ASSERT_LE(1ul, tracks.size()); |
| 463 | 463 |
| 464 scoped_refptr<MockRTCStatsRequest> request( | 464 scoped_refptr<MockRTCStatsRequest> request( |
| 465 new talk_base::RefCountedObject<MockRTCStatsRequest>()); | 465 new talk_base::RefCountedObject<MockRTCStatsRequest>()); |
| 466 request->setSelector(tracks[0]); | 466 request->setSelector(tracks[0]); |
| 467 pc_handler_->getStats(request.get()); | 467 pc_handler_->getStats(request.get()); |
| 468 EXPECT_EQ(1, request->result()->report_count()); | 468 EXPECT_EQ(1, request->result()->report_count()); |
| 469 } | 469 } |
| 470 | 470 |
| 471 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithRemoteSelector) { | 471 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithRemoteSelector) { |
| 472 scoped_refptr<webrtc::MediaStreamInterface> stream( | 472 scoped_refptr<webrtc::MediaStreamInterface> stream( |
| 473 AddRemoteMockMediaStream("remote_stream", "video", "audio")); | 473 AddRemoteMockMediaStream("remote_stream", "video", "audio")); |
| 474 pc_handler_->OnAddStream(stream.get()); | 474 pc_handler_->OnAddStream(stream.get()); |
| 475 const WebKit::WebMediaStream& remote_stream = mock_client_->remote_stream(); | 475 const blink::WebMediaStream& remote_stream = mock_client_->remote_stream(); |
| 476 | 476 |
| 477 WebKit::WebVector<WebKit::WebMediaStreamTrack> tracks; | 477 blink::WebVector<blink::WebMediaStreamTrack> tracks; |
| 478 remote_stream.audioTracks(tracks); | 478 remote_stream.audioTracks(tracks); |
| 479 ASSERT_LE(1ul, tracks.size()); | 479 ASSERT_LE(1ul, tracks.size()); |
| 480 | 480 |
| 481 scoped_refptr<MockRTCStatsRequest> request( | 481 scoped_refptr<MockRTCStatsRequest> request( |
| 482 new talk_base::RefCountedObject<MockRTCStatsRequest>()); | 482 new talk_base::RefCountedObject<MockRTCStatsRequest>()); |
| 483 request->setSelector(tracks[0]); | 483 request->setSelector(tracks[0]); |
| 484 pc_handler_->getStats(request.get()); | 484 pc_handler_->getStats(request.get()); |
| 485 EXPECT_EQ(1, request->result()->report_count()); | 485 EXPECT_EQ(1, request->result()->report_count()); |
| 486 } | 486 } |
| 487 | 487 |
| 488 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithBadSelector) { | 488 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithBadSelector) { |
| 489 // The setup is the same as GetStatsWithLocalSelector, but the stream is not | 489 // The setup is the same as GetStatsWithLocalSelector, but the stream is not |
| 490 // added to the PeerConnection. | 490 // added to the PeerConnection. |
| 491 WebKit::WebMediaStream local_stream( | 491 blink::WebMediaStream local_stream( |
| 492 CreateLocalMediaStream("local_stream_2")); | 492 CreateLocalMediaStream("local_stream_2")); |
| 493 WebKit::WebMediaConstraints constraints; | 493 blink::WebMediaConstraints constraints; |
| 494 WebKit::WebVector<WebKit::WebMediaStreamTrack> tracks; | 494 blink::WebVector<blink::WebMediaStreamTrack> tracks; |
| 495 | 495 |
| 496 local_stream.audioTracks(tracks); | 496 local_stream.audioTracks(tracks); |
| 497 WebKit::WebMediaStreamTrack component = tracks[0]; | 497 blink::WebMediaStreamTrack component = tracks[0]; |
| 498 mock_peer_connection_->SetGetStatsResult(false); | 498 mock_peer_connection_->SetGetStatsResult(false); |
| 499 | 499 |
| 500 scoped_refptr<MockRTCStatsRequest> request( | 500 scoped_refptr<MockRTCStatsRequest> request( |
| 501 new talk_base::RefCountedObject<MockRTCStatsRequest>()); | 501 new talk_base::RefCountedObject<MockRTCStatsRequest>()); |
| 502 request->setSelector(component); | 502 request->setSelector(component); |
| 503 pc_handler_->getStats(request.get()); | 503 pc_handler_->getStats(request.get()); |
| 504 EXPECT_EQ(0, request->result()->report_count()); | 504 EXPECT_EQ(0, request->result()->report_count()); |
| 505 } | 505 } |
| 506 | 506 |
| 507 TEST_F(RTCPeerConnectionHandlerTest, OnSignalingChange) { | 507 TEST_F(RTCPeerConnectionHandlerTest, OnSignalingChange) { |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 645 } | 645 } |
| 646 | 646 |
| 647 TEST_F(RTCPeerConnectionHandlerTest, OnAddAndOnRemoveStream) { | 647 TEST_F(RTCPeerConnectionHandlerTest, OnAddAndOnRemoveStream) { |
| 648 std::string remote_stream_label("remote_stream"); | 648 std::string remote_stream_label("remote_stream"); |
| 649 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 649 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
| 650 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); | 650 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); |
| 651 | 651 |
| 652 testing::InSequence sequence; | 652 testing::InSequence sequence; |
| 653 EXPECT_CALL(*mock_tracker_.get(), TrackAddStream( | 653 EXPECT_CALL(*mock_tracker_.get(), TrackAddStream( |
| 654 pc_handler_.get(), | 654 pc_handler_.get(), |
| 655 testing::Property(&WebKit::WebMediaStream::id, | 655 testing::Property(&blink::WebMediaStream::id, |
| 656 UTF8ToUTF16(remote_stream_label)), | 656 UTF8ToUTF16(remote_stream_label)), |
| 657 PeerConnectionTracker::SOURCE_REMOTE)); | 657 PeerConnectionTracker::SOURCE_REMOTE)); |
| 658 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 658 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
| 659 testing::Property(&WebKit::WebMediaStream::id, | 659 testing::Property(&blink::WebMediaStream::id, |
| 660 UTF8ToUTF16(remote_stream_label)))); | 660 UTF8ToUTF16(remote_stream_label)))); |
| 661 | 661 |
| 662 EXPECT_CALL(*mock_tracker_.get(), TrackRemoveStream( | 662 EXPECT_CALL(*mock_tracker_.get(), TrackRemoveStream( |
| 663 pc_handler_.get(), | 663 pc_handler_.get(), |
| 664 testing::Property(&WebKit::WebMediaStream::id, | 664 testing::Property(&blink::WebMediaStream::id, |
| 665 UTF8ToUTF16(remote_stream_label)), | 665 UTF8ToUTF16(remote_stream_label)), |
| 666 PeerConnectionTracker::SOURCE_REMOTE)); | 666 PeerConnectionTracker::SOURCE_REMOTE)); |
| 667 EXPECT_CALL(*mock_client_.get(), didRemoveRemoteStream( | 667 EXPECT_CALL(*mock_client_.get(), didRemoveRemoteStream( |
| 668 testing::Property(&WebKit::WebMediaStream::id, | 668 testing::Property(&blink::WebMediaStream::id, |
| 669 UTF8ToUTF16(remote_stream_label)))); | 669 UTF8ToUTF16(remote_stream_label)))); |
| 670 | 670 |
| 671 pc_handler_->OnAddStream(remote_stream.get()); | 671 pc_handler_->OnAddStream(remote_stream.get()); |
| 672 pc_handler_->OnRemoveStream(remote_stream.get()); | 672 pc_handler_->OnRemoveStream(remote_stream.get()); |
| 673 } | 673 } |
| 674 | 674 |
| 675 // This test that WebKit is notified about remote track state changes. | 675 // This test that WebKit is notified about remote track state changes. |
| 676 TEST_F(RTCPeerConnectionHandlerTest, RemoteTrackState) { | 676 TEST_F(RTCPeerConnectionHandlerTest, RemoteTrackState) { |
| 677 std::string remote_stream_label("remote_stream"); | 677 std::string remote_stream_label("remote_stream"); |
| 678 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 678 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
| 679 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); | 679 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); |
| 680 | 680 |
| 681 testing::InSequence sequence; | 681 testing::InSequence sequence; |
| 682 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 682 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
| 683 testing::Property(&WebKit::WebMediaStream::id, | 683 testing::Property(&blink::WebMediaStream::id, |
| 684 UTF8ToUTF16(remote_stream_label)))); | 684 UTF8ToUTF16(remote_stream_label)))); |
| 685 pc_handler_->OnAddStream(remote_stream.get()); | 685 pc_handler_->OnAddStream(remote_stream.get()); |
| 686 const WebKit::WebMediaStream& webkit_stream = mock_client_->remote_stream(); | 686 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); |
| 687 | 687 |
| 688 WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks; | 688 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; |
| 689 webkit_stream.audioTracks(audio_tracks); | 689 webkit_stream.audioTracks(audio_tracks); |
| 690 EXPECT_EQ(WebKit::WebMediaStreamSource::ReadyStateLive, | 690 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, |
| 691 audio_tracks[0].source().readyState()); | 691 audio_tracks[0].source().readyState()); |
| 692 | 692 |
| 693 WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks; | 693 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; |
| 694 webkit_stream.videoTracks(video_tracks); | 694 webkit_stream.videoTracks(video_tracks); |
| 695 EXPECT_EQ(WebKit::WebMediaStreamSource::ReadyStateLive, | 695 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, |
| 696 video_tracks[0].source().readyState()); | 696 video_tracks[0].source().readyState()); |
| 697 | 697 |
| 698 remote_stream->GetAudioTracks()[0]->set_state( | 698 remote_stream->GetAudioTracks()[0]->set_state( |
| 699 webrtc::MediaStreamTrackInterface::kEnded); | 699 webrtc::MediaStreamTrackInterface::kEnded); |
| 700 EXPECT_EQ(WebKit::WebMediaStreamSource::ReadyStateEnded, | 700 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, |
| 701 audio_tracks[0].source().readyState()); | 701 audio_tracks[0].source().readyState()); |
| 702 | 702 |
| 703 remote_stream->GetVideoTracks()[0]->set_state( | 703 remote_stream->GetVideoTracks()[0]->set_state( |
| 704 webrtc::MediaStreamTrackInterface::kEnded); | 704 webrtc::MediaStreamTrackInterface::kEnded); |
| 705 EXPECT_EQ(WebKit::WebMediaStreamSource::ReadyStateEnded, | 705 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, |
| 706 video_tracks[0].source().readyState()); | 706 video_tracks[0].source().readyState()); |
| 707 } | 707 } |
| 708 | 708 |
| 709 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddAudioTrackFromRemoteStream) { | 709 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddAudioTrackFromRemoteStream) { |
| 710 std::string remote_stream_label("remote_stream"); | 710 std::string remote_stream_label("remote_stream"); |
| 711 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 711 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
| 712 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); | 712 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); |
| 713 | 713 |
| 714 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 714 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
| 715 testing::Property(&WebKit::WebMediaStream::id, | 715 testing::Property(&blink::WebMediaStream::id, |
| 716 UTF8ToUTF16(remote_stream_label)))); | 716 UTF8ToUTF16(remote_stream_label)))); |
| 717 pc_handler_->OnAddStream(remote_stream.get()); | 717 pc_handler_->OnAddStream(remote_stream.get()); |
| 718 const WebKit::WebMediaStream& webkit_stream = mock_client_->remote_stream(); | 718 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); |
| 719 | 719 |
| 720 WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks; | 720 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; |
| 721 webkit_stream.audioTracks(audio_tracks); | 721 webkit_stream.audioTracks(audio_tracks); |
| 722 EXPECT_EQ(1u, audio_tracks.size()); | 722 EXPECT_EQ(1u, audio_tracks.size()); |
| 723 | 723 |
| 724 // Remove the Webrtc audio track from the Webrtc MediaStream. | 724 // Remove the Webrtc audio track from the Webrtc MediaStream. |
| 725 scoped_refptr<webrtc::AudioTrackInterface> webrtc_track = | 725 scoped_refptr<webrtc::AudioTrackInterface> webrtc_track = |
| 726 remote_stream->GetAudioTracks()[0].get(); | 726 remote_stream->GetAudioTracks()[0].get(); |
| 727 remote_stream->RemoveTrack(webrtc_track.get()); | 727 remote_stream->RemoveTrack(webrtc_track.get()); |
| 728 WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_audio_tracks1; | 728 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks1; |
| 729 webkit_stream.audioTracks(modified_audio_tracks1); | 729 webkit_stream.audioTracks(modified_audio_tracks1); |
| 730 EXPECT_EQ(0u, modified_audio_tracks1.size()); | 730 EXPECT_EQ(0u, modified_audio_tracks1.size()); |
| 731 | 731 |
| 732 // Add the WebRtc audio track again. | 732 // Add the WebRtc audio track again. |
| 733 remote_stream->AddTrack(webrtc_track.get()); | 733 remote_stream->AddTrack(webrtc_track.get()); |
| 734 WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_audio_tracks2; | 734 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks2; |
| 735 webkit_stream.audioTracks(modified_audio_tracks2); | 735 webkit_stream.audioTracks(modified_audio_tracks2); |
| 736 EXPECT_EQ(1u, modified_audio_tracks2.size()); | 736 EXPECT_EQ(1u, modified_audio_tracks2.size()); |
| 737 } | 737 } |
| 738 | 738 |
| 739 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddVideoTrackFromRemoteStream) { | 739 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddVideoTrackFromRemoteStream) { |
| 740 std::string remote_stream_label("remote_stream"); | 740 std::string remote_stream_label("remote_stream"); |
| 741 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 741 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
| 742 AddRemoteMockMediaStream(remote_stream_label, "video", "video")); | 742 AddRemoteMockMediaStream(remote_stream_label, "video", "video")); |
| 743 | 743 |
| 744 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 744 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
| 745 testing::Property(&WebKit::WebMediaStream::id, | 745 testing::Property(&blink::WebMediaStream::id, |
| 746 UTF8ToUTF16(remote_stream_label)))); | 746 UTF8ToUTF16(remote_stream_label)))); |
| 747 pc_handler_->OnAddStream(remote_stream.get()); | 747 pc_handler_->OnAddStream(remote_stream.get()); |
| 748 const WebKit::WebMediaStream& webkit_stream = mock_client_->remote_stream(); | 748 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); |
| 749 | 749 |
| 750 WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks; | 750 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; |
| 751 webkit_stream.videoTracks(video_tracks); | 751 webkit_stream.videoTracks(video_tracks); |
| 752 EXPECT_EQ(1u, video_tracks.size()); | 752 EXPECT_EQ(1u, video_tracks.size()); |
| 753 | 753 |
| 754 // Remove the Webrtc video track from the Webrtc MediaStream. | 754 // Remove the Webrtc video track from the Webrtc MediaStream. |
| 755 scoped_refptr<webrtc::VideoTrackInterface> webrtc_track = | 755 scoped_refptr<webrtc::VideoTrackInterface> webrtc_track = |
| 756 remote_stream->GetVideoTracks()[0].get(); | 756 remote_stream->GetVideoTracks()[0].get(); |
| 757 remote_stream->RemoveTrack(webrtc_track.get()); | 757 remote_stream->RemoveTrack(webrtc_track.get()); |
| 758 WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_video_tracks1; | 758 blink::WebVector<blink::WebMediaStreamTrack> modified_video_tracks1; |
| 759 webkit_stream.videoTracks(modified_video_tracks1); | 759 webkit_stream.videoTracks(modified_video_tracks1); |
| 760 EXPECT_EQ(0u, modified_video_tracks1.size()); | 760 EXPECT_EQ(0u, modified_video_tracks1.size()); |
| 761 | 761 |
| 762 // Add the WebRtc video track again. | 762 // Add the WebRtc video track again. |
| 763 remote_stream->AddTrack(webrtc_track.get()); | 763 remote_stream->AddTrack(webrtc_track.get()); |
| 764 WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_video_tracks2; | 764 blink::WebVector<blink::WebMediaStreamTrack> modified_video_tracks2; |
| 765 webkit_stream.videoTracks(modified_video_tracks2); | 765 webkit_stream.videoTracks(modified_video_tracks2); |
| 766 EXPECT_EQ(1u, modified_video_tracks2.size()); | 766 EXPECT_EQ(1u, modified_video_tracks2.size()); |
| 767 } | 767 } |
| 768 | 768 |
| 769 TEST_F(RTCPeerConnectionHandlerTest, OnIceCandidate) { | 769 TEST_F(RTCPeerConnectionHandlerTest, OnIceCandidate) { |
| 770 testing::InSequence sequence; | 770 testing::InSequence sequence; |
| 771 EXPECT_CALL(*mock_tracker_.get(), | 771 EXPECT_CALL(*mock_tracker_.get(), |
| 772 TrackAddIceCandidate(pc_handler_.get(), _, | 772 TrackAddIceCandidate(pc_handler_.get(), _, |
| 773 PeerConnectionTracker::SOURCE_LOCAL)); | 773 PeerConnectionTracker::SOURCE_LOCAL)); |
| 774 EXPECT_CALL(*mock_client_.get(), didGenerateICECandidate(_)); | 774 EXPECT_CALL(*mock_client_.get(), didGenerateICECandidate(_)); |
| 775 | 775 |
| 776 scoped_ptr<webrtc::IceCandidateInterface> native_candidate( | 776 scoped_ptr<webrtc::IceCandidateInterface> native_candidate( |
| 777 mock_dependency_factory_->CreateIceCandidate("mid", 1, kDummySdp)); | 777 mock_dependency_factory_->CreateIceCandidate("mid", 1, kDummySdp)); |
| 778 pc_handler_->OnIceCandidate(native_candidate.get()); | 778 pc_handler_->OnIceCandidate(native_candidate.get()); |
| 779 EXPECT_EQ("mid", mock_client_->candidate_mid()); | 779 EXPECT_EQ("mid", mock_client_->candidate_mid()); |
| 780 EXPECT_EQ(1, mock_client_->candidate_mlineindex()); | 780 EXPECT_EQ(1, mock_client_->candidate_mlineindex()); |
| 781 EXPECT_EQ(kDummySdp, mock_client_->candidate_sdp()); | 781 EXPECT_EQ(kDummySdp, mock_client_->candidate_sdp()); |
| 782 } | 782 } |
| 783 | 783 |
| 784 TEST_F(RTCPeerConnectionHandlerTest, OnRenegotiationNeeded) { | 784 TEST_F(RTCPeerConnectionHandlerTest, OnRenegotiationNeeded) { |
| 785 testing::InSequence sequence; | 785 testing::InSequence sequence; |
| 786 EXPECT_CALL(*mock_tracker_.get(), | 786 EXPECT_CALL(*mock_tracker_.get(), |
| 787 TrackOnRenegotiationNeeded(pc_handler_.get())); | 787 TrackOnRenegotiationNeeded(pc_handler_.get())); |
| 788 EXPECT_CALL(*mock_client_.get(), negotiationNeeded()); | 788 EXPECT_CALL(*mock_client_.get(), negotiationNeeded()); |
| 789 pc_handler_->OnRenegotiationNeeded(); | 789 pc_handler_->OnRenegotiationNeeded(); |
| 790 } | 790 } |
| 791 | 791 |
| 792 TEST_F(RTCPeerConnectionHandlerTest, CreateDataChannel) { | 792 TEST_F(RTCPeerConnectionHandlerTest, CreateDataChannel) { |
| 793 WebKit::WebString label = "d1"; | 793 blink::WebString label = "d1"; |
| 794 EXPECT_CALL(*mock_tracker_.get(), | 794 EXPECT_CALL(*mock_tracker_.get(), |
| 795 TrackCreateDataChannel(pc_handler_.get(), | 795 TrackCreateDataChannel(pc_handler_.get(), |
| 796 testing::NotNull(), | 796 testing::NotNull(), |
| 797 PeerConnectionTracker::SOURCE_LOCAL)); | 797 PeerConnectionTracker::SOURCE_LOCAL)); |
| 798 scoped_ptr<WebKit::WebRTCDataChannelHandler> channel( | 798 scoped_ptr<blink::WebRTCDataChannelHandler> channel( |
| 799 pc_handler_->createDataChannel("d1", WebKit::WebRTCDataChannelInit())); | 799 pc_handler_->createDataChannel("d1", blink::WebRTCDataChannelInit())); |
| 800 EXPECT_TRUE(channel.get() != NULL); | 800 EXPECT_TRUE(channel.get() != NULL); |
| 801 EXPECT_EQ(label, channel->label()); | 801 EXPECT_EQ(label, channel->label()); |
| 802 } | 802 } |
| 803 | 803 |
| 804 TEST_F(RTCPeerConnectionHandlerTest, CreateDtmfSender) { | 804 TEST_F(RTCPeerConnectionHandlerTest, CreateDtmfSender) { |
| 805 std::string stream_label = "local_stream"; | 805 std::string stream_label = "local_stream"; |
| 806 WebKit::WebMediaStream local_stream(CreateLocalMediaStream(stream_label)); | 806 blink::WebMediaStream local_stream(CreateLocalMediaStream(stream_label)); |
| 807 WebKit::WebMediaConstraints constraints; | 807 blink::WebMediaConstraints constraints; |
| 808 pc_handler_->addStream(local_stream, constraints); | 808 pc_handler_->addStream(local_stream, constraints); |
| 809 | 809 |
| 810 WebKit::WebVector<WebKit::WebMediaStreamTrack> tracks; | 810 blink::WebVector<blink::WebMediaStreamTrack> tracks; |
| 811 local_stream.videoTracks(tracks); | 811 local_stream.videoTracks(tracks); |
| 812 | 812 |
| 813 ASSERT_LE(1ul, tracks.size()); | 813 ASSERT_LE(1ul, tracks.size()); |
| 814 EXPECT_FALSE(pc_handler_->createDTMFSender(tracks[0])); | 814 EXPECT_FALSE(pc_handler_->createDTMFSender(tracks[0])); |
| 815 | 815 |
| 816 local_stream.audioTracks(tracks); | 816 local_stream.audioTracks(tracks); |
| 817 ASSERT_LE(1ul, tracks.size()); | 817 ASSERT_LE(1ul, tracks.size()); |
| 818 | 818 |
| 819 EXPECT_CALL(*mock_tracker_.get(), | 819 EXPECT_CALL(*mock_tracker_.get(), |
| 820 TrackCreateDTMFSender(pc_handler_.get(), | 820 TrackCreateDTMFSender(pc_handler_.get(), |
| 821 testing::Ref(tracks[0]))); | 821 testing::Ref(tracks[0]))); |
| 822 | 822 |
| 823 scoped_ptr<WebKit::WebRTCDTMFSenderHandler> sender( | 823 scoped_ptr<blink::WebRTCDTMFSenderHandler> sender( |
| 824 pc_handler_->createDTMFSender(tracks[0])); | 824 pc_handler_->createDTMFSender(tracks[0])); |
| 825 EXPECT_TRUE(sender.get()); | 825 EXPECT_TRUE(sender.get()); |
| 826 } | 826 } |
| 827 | 827 |
| 828 } // namespace content | 828 } // namespace content |
| OLD | NEW |