Switching some interfaces to use std::unique_ptr<>.

This helps show where ownership is transfered between objects.

Specifically, this CL wraps cricket::VideoCapturer, MediaEngineInterface
and DataEngineInterface in unique_ptr.

BUG=None
TBR=magjed@webrtc.org

Review-Url: https://codereview.webrtc.org/2685093002
Cr-Commit-Position: refs/heads/master@{#16548}
diff --git a/webrtc/pc/channelmanager_unittest.cc b/webrtc/pc/channelmanager_unittest.cc
index 74c3590..deba6a1 100644
--- a/webrtc/pc/channelmanager_unittest.cc
+++ b/webrtc/pc/channelmanager_unittest.cc
@@ -8,6 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <memory>
+
 #include "webrtc/base/gunit.h"
 #include "webrtc/base/logging.h"
 #include "webrtc/base/thread.h"
@@ -40,34 +42,28 @@
   ChannelManagerTest()
       : fme_(new cricket::FakeMediaEngine()),
         fdme_(new cricket::FakeDataEngine()),
-        cm_(new cricket::ChannelManager(fme_, fdme_, rtc::Thread::Current())),
+        cm_(new cricket::ChannelManager(
+            std::unique_ptr<MediaEngineInterface>(fme_),
+            std::unique_ptr<DataEngineInterface>(fdme_),
+            rtc::Thread::Current())),
         fake_call_(webrtc::Call::Config(&event_log_)),
-        fake_mc_(cm_, &fake_call_),
+        fake_mc_(cm_.get(), &fake_call_),
         transport_controller_(
-            new cricket::FakeTransportController(ICEROLE_CONTROLLING)) {}
-
-  virtual void SetUp() {
+            new cricket::FakeTransportController(ICEROLE_CONTROLLING)) {
     fme_->SetAudioCodecs(MAKE_VECTOR(kAudioCodecs));
     fme_->SetVideoCodecs(MAKE_VECTOR(kVideoCodecs));
   }
 
-  virtual void TearDown() {
-    delete transport_controller_;
-    delete cm_;
-    cm_ = NULL;
-    fdme_ = NULL;
-    fme_ = NULL;
-  }
-
   webrtc::RtcEventLogNullImpl event_log_;
   rtc::Thread network_;
   rtc::Thread worker_;
+  // |fme_| and |fdme_| are actually owned by |cm_|.
   cricket::FakeMediaEngine* fme_;
   cricket::FakeDataEngine* fdme_;
-  cricket::ChannelManager* cm_;
+  std::unique_ptr<cricket::ChannelManager> cm_;
   cricket::FakeCall fake_call_;
   cricket::FakeMediaController fake_mc_;
-  cricket::FakeTransportController* transport_controller_;
+  std::unique_ptr<cricket::FakeTransportController> transport_controller_;
 };
 
 // Test that we startup/shutdown properly.
@@ -133,9 +129,8 @@
   EXPECT_TRUE(cm_->set_worker_thread(&worker_));
   EXPECT_TRUE(cm_->set_network_thread(&network_));
   EXPECT_TRUE(cm_->Init());
-  delete transport_controller_;
-  transport_controller_ =
-      new cricket::FakeTransportController(&network_, ICEROLE_CONTROLLING);
+  transport_controller_.reset(
+      new cricket::FakeTransportController(&network_, ICEROLE_CONTROLLING));
   cricket::DtlsTransportInternal* rtp_transport =
       transport_controller_->CreateDtlsTransport(
           cricket::CN_AUDIO, cricket::ICE_CANDIDATE_COMPONENT_RTP);