Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1794)

Unified Diff: content/renderer/media/rtc_peer_connection_handler_unittest.cc

Issue 2619343003: Track SDP parse errors for SLD in chrome://webrtc-internals (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/rtc_peer_connection_handler_unittest.cc
diff --git a/content/renderer/media/rtc_peer_connection_handler_unittest.cc b/content/renderer/media/rtc_peer_connection_handler_unittest.cc
index 7745960a5b00f8546734770256b27d322032f005..63b418702f2766be47af2cc81bff8c07fcdf2137 100644
--- a/content/renderer/media/rtc_peer_connection_handler_unittest.cc
+++ b/content/renderer/media/rtc_peer_connection_handler_unittest.cc
@@ -184,6 +184,11 @@ class MockPeerConnectionTracker : public PeerConnectionTracker {
TrackIceGatheringStateChange,
void(RTCPeerConnectionHandler* pc_handler,
WebRTCPeerConnectionHandlerClient::ICEGatheringState state));
+ MOCK_METHOD4(TrackSessionDescriptionCallback,
+ void(RTCPeerConnectionHandler* pc_handler,
+ Action action,
+ const std::string& type,
+ const std::string& value));
MOCK_METHOD1(TrackOnRenegotiationNeeded,
void(RTCPeerConnectionHandler* pc_handler));
MOCK_METHOD2(TrackCreateDTMFSender,
@@ -479,6 +484,36 @@ TEST_F(RTCPeerConnectionHandlerTest, setLocalDescription) {
EXPECT_EQ(kDummySdpType, mock_peer_connection_->local_description()->type());
mock_peer_connection_->local_description()->ToString(&sdp_string);
EXPECT_EQ(kDummySdp, sdp_string);
+
+ // TODO(deadbeef): Also mock the "success" callback from the PeerConnection
+ // and ensure that the sucessful result is tracked by PeerConnectionTracker.
+}
+
+// Test that setLocalDescription with invalid SDP will result in a failure, and
+// is tracked as a failure with PeerConnectionTracker.
+TEST_F(RTCPeerConnectionHandlerTest, setLocalDescriptionParseError) {
+ blink::WebRTCVoidRequest request;
+ blink::WebRTCSessionDescription description;
+ description.initialize(kDummySdpType, kDummySdp);
+ testing::InSequence sequence;
+ // Expect two "Track" calls, one for the start of the attempt and one for the
+ // failure.
+ EXPECT_CALL(
+ *mock_tracker_.get(),
+ TrackSetSessionDescription(pc_handler_.get(), kDummySdp, kDummySdpType,
+ PeerConnectionTracker::SOURCE_LOCAL));
+ EXPECT_CALL(
+ *mock_tracker_.get(),
+ TrackSessionDescriptionCallback(
+ pc_handler_.get(),
+ PeerConnectionTracker::ACTION_SET_LOCAL_DESCRIPTION, "OnFailure", _));
+
+ // Used to simulate a parse failure.
+ mock_dependency_factory_->SetFailToCreateSessionDescription(true);
+ pc_handler_->setLocalDescription(request, description);
+ base::RunLoop().RunUntilIdle();
+ // A description that failed to be applied shouldn't be stored.
+ EXPECT_TRUE(pc_handler_->localDescription().sdp().isEmpty());
}
TEST_F(RTCPeerConnectionHandlerTest, setRemoteDescription) {
@@ -505,6 +540,36 @@ TEST_F(RTCPeerConnectionHandlerTest, setRemoteDescription) {
EXPECT_EQ(kDummySdpType, mock_peer_connection_->remote_description()->type());
mock_peer_connection_->remote_description()->ToString(&sdp_string);
EXPECT_EQ(kDummySdp, sdp_string);
+
+ // TODO(deadbeef): Also mock the "success" callback from the PeerConnection
+ // and ensure that the sucessful result is tracked by PeerConnectionTracker.
+}
+
+// Test that setRemoteDescription with invalid SDP will result in a failure, and
+// is tracked as a failure with PeerConnectionTracker.
+TEST_F(RTCPeerConnectionHandlerTest, setRemoteDescriptionParseError) {
+ blink::WebRTCVoidRequest request;
+ blink::WebRTCSessionDescription description;
+ description.initialize(kDummySdpType, kDummySdp);
+ testing::InSequence sequence;
+ // Expect two "Track" calls, one for the start of the attempt and one for the
+ // failure.
+ EXPECT_CALL(
+ *mock_tracker_.get(),
+ TrackSetSessionDescription(pc_handler_.get(), kDummySdp, kDummySdpType,
+ PeerConnectionTracker::SOURCE_REMOTE));
+ EXPECT_CALL(*mock_tracker_.get(),
+ TrackSessionDescriptionCallback(
+ pc_handler_.get(),
+ PeerConnectionTracker::ACTION_SET_REMOTE_DESCRIPTION,
+ "OnFailure", _));
+
+ // Used to simulate a parse failure.
+ mock_dependency_factory_->SetFailToCreateSessionDescription(true);
+ pc_handler_->setRemoteDescription(request, description);
+ base::RunLoop().RunUntilIdle();
+ // A description that failed to be applied shouldn't be stored.
+ EXPECT_TRUE(pc_handler_->remoteDescription().sdp().isEmpty());
}
TEST_F(RTCPeerConnectionHandlerTest, setConfiguration) {

Powered by Google App Engine
This is Rietveld 408576698