apmanager: add ProcessFactory for better unittesting

Use ProcessMock instead of real process when starting hostapd and
dnsmasq during unittest.

BUG=chromium:431759
TEST=USE="asan clang" FEATURES=test emerge-$BOARD apmanager
     Start AP service using apmanager and verify client can connect
     to it.

Change-Id: Ifea32a2dd08247db9ea4306ecef5947b305a3c8d
Reviewed-on: https://chromium-review.googlesource.com/239975
Trybot-Ready: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
diff --git a/service.h b/service.h
index 9caf65b..a7cecac 100644
--- a/service.h
+++ b/service.h
@@ -14,6 +14,7 @@
 #include "apmanager/dbus_adaptors/org.chromium.apmanager.Service.h"
 #include "apmanager/dhcp_server_factory.h"
 #include "apmanager/file_writer.h"
+#include "apmanager/process_factory.h"
 
 namespace apmanager {
 
@@ -42,7 +43,7 @@
 
   static const char kHostapdPath[];
   static const char kHostapdConfigPathFormat[];
-  static const char kHostapdControlInterfacePathFormat[];
+  static const char kHostapdControlInterfacePath[];
   static const int kTerminationTimeoutSeconds;
 
   // Return true if hostapd process is currently running.
@@ -69,6 +70,7 @@
   std::unique_ptr<DHCPServer> dhcp_server_;
   DHCPServerFactory* dhcp_server_factory_;
   FileWriter* file_writer_;
+  ProcessFactory* process_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(Service);
 };