Serialize "a=x-google-flag:conference".

There was a test for deserialization but not serialization. This was
probably always broken and no one noticed. I only noticed while
debugging something else.

BUG=None
TBR=pthatcher@webrtc.org

Review-Url: https://codereview.webrtc.org/3012383002
Cr-Commit-Position: refs/heads/master@{#19875}
diff --git a/pc/webrtcsdp.cc b/pc/webrtcsdp.cc
index dba2ba8..648d78c 100644
--- a/pc/webrtcsdp.cc
+++ b/pc/webrtcsdp.cc
@@ -1508,6 +1508,12 @@
     AddLine(os.str(), message);
   }
 
+  if (media_desc->conference_mode()) {
+    InitAttrLine(kAttributeXGoogleFlag, &os);
+    os << kSdpDelimiterColon << kValueConference;
+    AddLine(os.str(), message);
+  }
+
   // RFC 4568
   // a=crypto:<tag> <crypto-suite> <key-params> [<session-params>]
   for (std::vector<CryptoParams>::const_iterator it =
diff --git a/pc/webrtcsdp_unittest.cc b/pc/webrtcsdp_unittest.cc
index eea8e01..75dac25 100644
--- a/pc/webrtcsdp_unittest.cc
+++ b/pc/webrtcsdp_unittest.cc
@@ -2777,6 +2777,27 @@
   EXPECT_TRUE(video->conference_mode());
 }
 
+TEST_F(WebRtcSdpTest, SerializeSdpWithConferenceFlag) {
+  JsepSessionDescription jdesc(kDummyString);
+
+  // We tested deserialization already above, so just test that if we serialize
+  // and deserialize the flag doesn't disappear.
+  EXPECT_TRUE(SdpDeserialize(kSdpConferenceString, &jdesc));
+  std::string reserialized = webrtc::SdpSerialize(jdesc, false);
+  EXPECT_TRUE(SdpDeserialize(reserialized, &jdesc));
+
+  // Verify.
+  cricket::AudioContentDescription* audio =
+      static_cast<AudioContentDescription*>(
+          jdesc.description()->GetContentDescriptionByName(cricket::CN_AUDIO));
+  EXPECT_TRUE(audio->conference_mode());
+
+  cricket::VideoContentDescription* video =
+      static_cast<VideoContentDescription*>(
+          jdesc.description()->GetContentDescriptionByName(cricket::CN_VIDEO));
+  EXPECT_TRUE(video->conference_mode());
+}
+
 TEST_F(WebRtcSdpTest, DeserializeBrokenSdp) {
   const char kSdpDestroyer[] = "!@#$%^&";
   const char kSdpEmptyType[] = " =candidate";