This will allow me to test that Call invokes SendSideCongestionController::SetBweBitrates as expected (for https://codereview.chromium.org/2793913008).

FakeRtpTransportController moves to a common header and its constructor is changed to take a SendSideCongestionController to enable injecting the mock.

BUG=webrtc:7395

Review-Url: https://codereview.webrtc.org/2834663003
Cr-Commit-Position: refs/heads/master@{#18055}
diff --git a/webrtc/call/call.h b/webrtc/call/call.h
index caf0ee2..f67b690 100644
--- a/webrtc/call/call.h
+++ b/webrtc/call/call.h
@@ -10,6 +10,7 @@
 #ifndef WEBRTC_CALL_CALL_H_
 #define WEBRTC_CALL_CALL_H_
 
+#include <memory>
 #include <string>
 #include <vector>
 
@@ -20,6 +21,7 @@
 #include "webrtc/call/audio_send_stream.h"
 #include "webrtc/call/audio_state.h"
 #include "webrtc/call/flexfec_receive_stream.h"
+#include "webrtc/call/rtp_transport_controller_send_interface.h"
 #include "webrtc/common_types.h"
 #include "webrtc/video_receive_stream.h"
 #include "webrtc/video_send_stream.h"
@@ -98,6 +100,11 @@
 
   static Call* Create(const Call::Config& config);
 
+  // Allows mocking |transport_send| for testing.
+  static Call* Create(
+      const Call::Config& config,
+      std::unique_ptr<RtpTransportControllerSendInterface> transport_send);
+
   virtual AudioSendStream* CreateAudioSendStream(
       const AudioSendStream::Config& config) = 0;
   virtual void DestroyAudioSendStream(AudioSendStream* send_stream) = 0;