Unit test for IcePwd mangling fixup

This tests both the "enabled" and "disabled" code paths of the
field trial.

Bug: b/409713509
Change-Id: I24ef2bb422201c9003e80e802d13b4c246cf8acd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/385921
Auto-Submit: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#44363}
diff --git a/pc/sdp_offer_answer_unittest.cc b/pc/sdp_offer_answer_unittest.cc
index 8038556..8315c9e 100644
--- a/pc/sdp_offer_answer_unittest.cc
+++ b/pc/sdp_offer_answer_unittest.cc
@@ -1919,8 +1919,9 @@
       ElementsAre(Pair(SdpMungingType::kIceUfrag, 1)));
 }
 
-TEST_F(SdpOfferAnswerMungingTest, IcePwd) {
-  auto pc = CreatePeerConnection();
+TEST_F(SdpOfferAnswerMungingTest, IcePwdCheckDisabledByFieldTrial) {
+  auto pc = CreatePeerConnection(
+      FieldTrials::CreateNoGlobal("WebRTC-NoSdpMangleUfrag/Disabled/"));
   pc->AddAudioTrack("audio_track", {});
 
   auto offer = pc->CreateOffer();
@@ -1933,6 +1934,23 @@
       metrics::Samples("WebRTC.PeerConnection.SdpMunging.Offer.Initial"),
       ElementsAre(Pair(SdpMungingType::kIcePwd, 1)));
 }
+
+TEST_F(SdpOfferAnswerMungingTest, IcePwd) {
+  auto pc = CreatePeerConnection(
+      FieldTrials::CreateNoGlobal("WebRTC-NoSdpMangleUfrag/Enabled/"));
+  pc->AddAudioTrack("audio_track", {});
+
+  auto offer = pc->CreateOffer();
+  auto& transport_infos = offer->description()->transport_infos();
+  ASSERT_EQ(transport_infos.size(), 1u);
+  transport_infos[0].description.ice_pwd = "amungedicepwdthisshouldberejected";
+  RTCError error;
+  EXPECT_FALSE(pc->SetLocalDescription(std::move(offer), &error));
+  EXPECT_THAT(
+      metrics::Samples("WebRTC.PeerConnection.SdpMunging.Offer.Initial"),
+      ElementsAre(Pair(SdpMungingType::kIcePwd, 1)));
+}
+
 TEST_F(SdpOfferAnswerMungingTest, IceMode) {
   auto pc = CreatePeerConnection();
   pc->AddAudioTrack("audio_track", {});