| Index: talk/app/webrtc/peerconnectionendtoend_unittest.cc | 
| diff --git a/talk/app/webrtc/peerconnectionendtoend_unittest.cc b/talk/app/webrtc/peerconnectionendtoend_unittest.cc | 
| index ceabf04cf08378330cf2b481e6bfb9c5fad8a52f..7800a6724a14dcc08ca26771594b8c5113d73cf6 100644 | 
| --- a/talk/app/webrtc/peerconnectionendtoend_unittest.cc | 
| +++ b/talk/app/webrtc/peerconnectionendtoend_unittest.cc | 
| @@ -48,6 +48,8 @@ using webrtc::PeerConnectionInterface; | 
|  | 
| namespace { | 
|  | 
| +const char kExternalGiceUfrag[] = "1234567890123456"; | 
| +const char kExternalGicePwd[] = "123456789012345678901234"; | 
| const size_t kMaxWait = 10000; | 
|  | 
| void RemoveLinesFromSdp(const std::string& line_start, | 
| @@ -96,6 +98,24 @@ void UseExternalSdes(std::string* sdp) { | 
| InjectAfter("a=mid:data\r\n", kDataSdes, sdp); | 
| } | 
|  | 
| +void UseGice(std::string* sdp) { | 
| +  InjectAfter("t=0 0\r\n", "a=ice-options:google-ice\r\n", sdp); | 
| + | 
| +  std::string ufragline = "a=ice-ufrag:"; | 
| +  std::string pwdline = "a=ice-pwd:"; | 
| +  RemoveLinesFromSdp(ufragline, sdp); | 
| +  RemoveLinesFromSdp(pwdline, sdp); | 
| +  ufragline.append(kExternalGiceUfrag); | 
| +  ufragline.append("\r\n"); | 
| +  pwdline.append(kExternalGicePwd); | 
| +  pwdline.append("\r\n"); | 
| +  const std::string ufrag_pwd = ufragline + pwdline; | 
| + | 
| +  InjectAfter("a=mid:audio\r\n", ufrag_pwd, sdp); | 
| +  InjectAfter("a=mid:video\r\n", ufrag_pwd, sdp); | 
| +  InjectAfter("a=mid:data\r\n", ufrag_pwd, sdp); | 
| +} | 
| + | 
| void RemoveBundle(std::string* sdp) { | 
| RemoveLinesFromSdp("a=group:BUNDLE", sdp); | 
| } | 
| @@ -159,6 +179,37 @@ class PeerConnectionEndToEndTest | 
| callee_->WaitForConnection(); | 
| } | 
|  | 
| +  void SetupLegacySdpConverter() { | 
| +    caller_->SignalOnSdpCreated.connect( | 
| +      this, &PeerConnectionEndToEndTest::ConvertToLegacySdp); | 
| +    callee_->SignalOnSdpCreated.connect( | 
| +      this, &PeerConnectionEndToEndTest::ConvertToLegacySdp); | 
| +  } | 
| + | 
| +  void ConvertToLegacySdp(std::string* sdp) { | 
| +    UseExternalSdes(sdp); | 
| +    UseGice(sdp); | 
| +    RemoveBundle(sdp); | 
| +    LOG(LS_INFO) << "ConvertToLegacySdp: " << *sdp; | 
| +  } | 
| + | 
| +  void SetupGiceConverter() { | 
| +    caller_->SignalOnIceCandidateCreated.connect( | 
| +      this, &PeerConnectionEndToEndTest::AddGiceCredsToCandidate); | 
| +    callee_->SignalOnIceCandidateCreated.connect( | 
| +      this, &PeerConnectionEndToEndTest::AddGiceCredsToCandidate); | 
| +  } | 
| + | 
| +  void AddGiceCredsToCandidate(std::string* sdp) { | 
| +    std::string gice_creds = " username "; | 
| +    gice_creds.append(kExternalGiceUfrag); | 
| +    gice_creds.append(" password "); | 
| +    gice_creds.append(kExternalGicePwd); | 
| +    gice_creds.append("\r\n"); | 
| +    Replace("\r\n", gice_creds, sdp); | 
| +    LOG(LS_INFO) << "AddGiceCredsToCandidate: " << *sdp; | 
| +  } | 
| + | 
| void OnCallerAddedDataChanel(DataChannelInterface* dc) { | 
| caller_signaled_data_channels_.push_back(dc); | 
| } | 
| @@ -230,6 +281,8 @@ TEST_F(PeerConnectionEndToEndTest, DISABLED_CallWithLegacySdp) { | 
| pc_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, | 
| false); | 
| CreatePcs(&pc_constraints); | 
| +  SetupLegacySdpConverter(); | 
| +  SetupGiceConverter(); | 
| GetAndAddUserMedia(); | 
| Negotiate(); | 
| WaitForCallEstablished(); | 
|  |