Changing to using factory methods for some classes in NetEq

In this CL, the Expand, Accelerate and PreemptiveExpand objects are
created using factory methods. The factory methods are injected into
NetEqImpl on creation. This is a step towards implementing a no-decode
operation.

BUG=2776
R=turaj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/6999005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5382 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/audio_coding/neteq4/expand_unittest.cc b/webrtc/modules/audio_coding/neteq4/expand_unittest.cc
index a63ed14..353af2c 100644
--- a/webrtc/modules/audio_coding/neteq4/expand_unittest.cc
+++ b/webrtc/modules/audio_coding/neteq4/expand_unittest.cc
@@ -28,6 +28,19 @@
   Expand expand(&bgn, &sync_buffer, &random_vector, fs, channels);
 }
 
+TEST(Expand, CreateUsingFactory) {
+  int fs = 8000;
+  size_t channels = 1;
+  BackgroundNoise bgn(channels);
+  SyncBuffer sync_buffer(1, 1000);
+  RandomVector random_vector;
+  ExpandFactory expand_factory;
+  Expand* expand =
+      expand_factory.Create(&bgn, &sync_buffer, &random_vector, fs, channels);
+  EXPECT_TRUE(expand != NULL);
+  delete expand;
+}
+
 // TODO(hlundin): Write more tests.
 
 }  // namespace webrtc