Properly setup MockPeerConnectionObserver in tests (continued).
This CL prevents dereferencing potentially null pointer by
setting the pointer in client code.
We can now safely call PeerConnection::Close(), which happens
to trigger OnIceConnectionChange() on the observer.
This is a followup to: https://webrtc-review.googlesource.com/c/src/+/107706
Bug: webrtc:9855
Change-Id: Ieebf8415f0a12fe87d8cd80d1eb06797926005df
Reviewed-on: https://webrtc-review.googlesource.com/c/108785
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25462}
diff --git a/pc/peerconnection_crypto_unittest.cc b/pc/peerconnection_crypto_unittest.cc
index d61c41c..369a909 100644
--- a/pc/peerconnection_crypto_unittest.cc
+++ b/pc/peerconnection_crypto_unittest.cc
@@ -76,6 +76,7 @@
return nullptr;
}
+ observer->SetPeerConnectionInterface(pc.get());
return absl::make_unique<PeerConnectionWrapper>(pc_factory_, pc,
std::move(observer));
}
diff --git a/pc/peerconnection_datachannel_unittest.cc b/pc/peerconnection_datachannel_unittest.cc
index 033a609..d7f1fcc 100644
--- a/pc/peerconnection_datachannel_unittest.cc
+++ b/pc/peerconnection_datachannel_unittest.cc
@@ -123,6 +123,7 @@
return nullptr;
}
+ observer->SetPeerConnectionInterface(pc.get());
auto wrapper = absl::make_unique<PeerConnectionWrapperForDataChannelTest>(
pc_factory, pc, std::move(observer));
RTC_DCHECK(pc_factory->last_fake_sctp_transport_factory_);
diff --git a/pc/peerconnection_histogram_unittest.cc b/pc/peerconnection_histogram_unittest.cc
index b5c07f4..497e33a 100644
--- a/pc/peerconnection_histogram_unittest.cc
+++ b/pc/peerconnection_histogram_unittest.cc
@@ -251,6 +251,7 @@
return nullptr;
}
+ observer->SetPeerConnectionInterface(pc.get());
auto wrapper =
absl::make_unique<PeerConnectionWrapperForUsageHistogramTest>(
pc_factory, pc, std::move(observer));
diff --git a/pc/peerconnection_ice_unittest.cc b/pc/peerconnection_ice_unittest.cc
index 4e25614..8fde875 100644
--- a/pc/peerconnection_ice_unittest.cc
+++ b/pc/peerconnection_ice_unittest.cc
@@ -125,6 +125,7 @@
return nullptr;
}
+ observer->SetPeerConnectionInterface(pc.get());
auto wrapper = absl::make_unique<PeerConnectionWrapperForIceTest>(
pc_factory_, pc, std::move(observer));
wrapper->set_network(fake_network);
diff --git a/pc/peerconnection_jsep_unittest.cc b/pc/peerconnection_jsep_unittest.cc
index 7de0a3f..fe878b0 100644
--- a/pc/peerconnection_jsep_unittest.cc
+++ b/pc/peerconnection_jsep_unittest.cc
@@ -95,6 +95,7 @@
return nullptr;
}
+ observer->SetPeerConnectionInterface(pc.get());
return absl::make_unique<PeerConnectionWrapper>(pc_factory, pc,
std::move(observer));
}
diff --git a/pc/peerconnection_media_unittest.cc b/pc/peerconnection_media_unittest.cc
index bb4592d..e01ebb8 100644
--- a/pc/peerconnection_media_unittest.cc
+++ b/pc/peerconnection_media_unittest.cc
@@ -105,6 +105,7 @@
return nullptr;
}
+ observer->SetPeerConnectionInterface(pc.get());
auto wrapper = absl::make_unique<PeerConnectionWrapperForMediaTest>(
pc_factory, pc, std::move(observer));
wrapper->set_media_engine(media_engine_ptr);
diff --git a/pc/peerconnection_rtp_unittest.cc b/pc/peerconnection_rtp_unittest.cc
index 8453f17..8128584 100644
--- a/pc/peerconnection_rtp_unittest.cc
+++ b/pc/peerconnection_rtp_unittest.cc
@@ -117,6 +117,8 @@
auto observer = absl::make_unique<MockPeerConnectionObserver>();
auto pc = pc_factory_->CreatePeerConnection(config, nullptr, nullptr,
observer.get());
+ EXPECT_TRUE(pc.get());
+ observer->SetPeerConnectionInterface(pc.get());
return absl::make_unique<PeerConnectionWrapper>(pc_factory_, pc,
std::move(observer));
}
diff --git a/pc/peerconnection_signaling_unittest.cc b/pc/peerconnection_signaling_unittest.cc
index 95f464b..5fba90d 100644
--- a/pc/peerconnection_signaling_unittest.cc
+++ b/pc/peerconnection_signaling_unittest.cc
@@ -90,6 +90,7 @@
return nullptr;
}
+ observer->SetPeerConnectionInterface(pc.get());
return absl::make_unique<PeerConnectionWrapperForSignalingTest>(
pc_factory_, pc, std::move(observer));
}
diff --git a/pc/peerconnectioninterface_unittest.cc b/pc/peerconnectioninterface_unittest.cc
index c4cf081..55932b6 100644
--- a/pc/peerconnectioninterface_unittest.cc
+++ b/pc/peerconnectioninterface_unittest.cc
@@ -1397,6 +1397,8 @@
rtc::scoped_refptr<PeerConnectionInterface> pc(
pc_factory->CreatePeerConnection(config, std::move(port_allocator),
nullptr, &observer_));
+ EXPECT_TRUE(pc.get());
+ observer_.SetPeerConnectionInterface(pc.get());
// Now validate that the config fields set above were applied to the
// PortAllocator, as flags or otherwise.