Add "ice-option:trickle" to generated offers/answers.

BUG=webrtc:7443

Review-Url: https://codereview.webrtc.org/2808913003
Cr-Commit-Position: refs/heads/master@{#17809}
diff --git a/webrtc/pc/mediasession_unittest.cc b/webrtc/pc/mediasession_unittest.cc
index 7fe4b51..a1d6a6d 100644
--- a/webrtc/pc/mediasession_unittest.cc
+++ b/webrtc/pc/mediasession_unittest.cc
@@ -262,8 +262,8 @@
   bool GetIceRenomination(const TransportInfo* transport_info) {
     const std::vector<std::string>& ice_options =
         transport_info->description.transport_options;
-    auto iter = std::find(ice_options.begin(), ice_options.end(),
-                          cricket::ICE_RENOMINATION_STR);
+    auto iter =
+        std::find(ice_options.begin(), ice_options.end(), "renomination");
     return iter != ice_options.end();
   }
 
diff --git a/webrtc/pc/peerconnection_integrationtest.cc b/webrtc/pc/peerconnection_integrationtest.cc
index 3823f8b..f812650 100644
--- a/webrtc/pc/peerconnection_integrationtest.cc
+++ b/webrtc/pc/peerconnection_integrationtest.cc
@@ -2508,17 +2508,17 @@
   const cricket::SessionDescription* desc =
       caller()->pc()->local_description()->description();
   for (const cricket::TransportInfo& info : desc->transport_infos()) {
-    ASSERT_NE(info.description.transport_options.end(),
-              std::find(info.description.transport_options.begin(),
-                        info.description.transport_options.end(),
-                        cricket::ICE_RENOMINATION_STR));
+    ASSERT_NE(
+        info.description.transport_options.end(),
+        std::find(info.description.transport_options.begin(),
+                  info.description.transport_options.end(), "renomination"));
   }
   desc = callee()->pc()->local_description()->description();
   for (const cricket::TransportInfo& info : desc->transport_infos()) {
-    ASSERT_NE(info.description.transport_options.end(),
-              std::find(info.description.transport_options.begin(),
-                        info.description.transport_options.end(),
-                        cricket::ICE_RENOMINATION_STR));
+    ASSERT_NE(
+        info.description.transport_options.end(),
+        std::find(info.description.transport_options.begin(),
+                  info.description.transport_options.end(), "renomination"));
   }
   ExpectNewFramesReceivedWithWait(
       kDefaultExpectedAudioFrameCount, kDefaultExpectedVideoFrameCount,
diff --git a/webrtc/pc/peerconnectioninterface_unittest.cc b/webrtc/pc/peerconnectioninterface_unittest.cc
index e7636e0..91c79eb 100644
--- a/webrtc/pc/peerconnectioninterface_unittest.cc
+++ b/webrtc/pc/peerconnectioninterface_unittest.cc
@@ -3165,6 +3165,31 @@
   pc_->StopRtcEventLog();
 }
 
+// Test that generated offers/answers include "ice-option:trickle".
+TEST_F(PeerConnectionInterfaceTest, OffersAndAnswersHaveTrickleIceOption) {
+  CreatePeerConnection();
+
+  // First, create an offer with audio/video.
+  FakeConstraints constraints;
+  constraints.SetMandatoryReceiveAudio(true);
+  constraints.SetMandatoryReceiveVideo(true);
+  std::unique_ptr<SessionDescriptionInterface> offer;
+  ASSERT_TRUE(DoCreateOffer(&offer, &constraints));
+  cricket::SessionDescription* desc = offer->description();
+  ASSERT_EQ(2u, desc->transport_infos().size());
+  EXPECT_TRUE(desc->transport_infos()[0].description.HasOption("trickle"));
+  EXPECT_TRUE(desc->transport_infos()[1].description.HasOption("trickle"));
+
+  // Apply the offer as a remote description, then create an answer.
+  EXPECT_TRUE(DoSetRemoteDescription(offer.release()));
+  std::unique_ptr<SessionDescriptionInterface> answer;
+  ASSERT_TRUE(DoCreateAnswer(&answer, &constraints));
+  desc = answer->description();
+  ASSERT_EQ(2u, desc->transport_infos().size());
+  EXPECT_TRUE(desc->transport_infos()[0].description.HasOption("trickle"));
+  EXPECT_TRUE(desc->transport_infos()[1].description.HasOption("trickle"));
+}
+
 // Test that ICE renomination isn't offered if it's not enabled in the PC's
 // RTCConfiguration.
 TEST_F(PeerConnectionInterfaceTest, IceRenominationNotOffered) {