chromeos-dbus-bindings: Expose Register*Handler() methods in the *ProxyInterface.

The generated proxy is split in two: an abstract interface
(class *ProxyInterface) and the actual implementation that sends the
dbus calls (class *Proxy). For signals, we can register a signal
handler using the Register*Handler() method in the Proxy class, but it
is not available in the ProxyInterface.

This patch defines the Register*Handler() methods in the abstract
interface and includes the corresponding method in the ProxyMock class
so the unittests can check that the signals are handled and the code
under test can receive a ProxyInterface instance and register the
handler with it.

BUG=None
TEST=Unittests updated.

Change-Id: Ife2f91591e87e8c8c3edda76db32c6327b145a81
Reviewed-on: https://chromium-review.googlesource.com/289330
Commit-Queue: Alex Deymo <deymo@chromium.org>
Trybot-Ready: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/chromeos-dbus-bindings/proxy_generator_unittest.cc b/chromeos-dbus-bindings/proxy_generator_unittest.cc
index 8840f41..7ce1c3e 100644
--- a/chromeos-dbus-bindings/proxy_generator_unittest.cc
+++ b/chromeos-dbus-bindings/proxy_generator_unittest.cc
@@ -107,6 +107,15 @@
       const base::Callback<void(chromeos::Error*)>& error_callback,
       int timeout_ms = dbus::ObjectProxy::TIMEOUT_USE_DEFAULT) = 0;
 
+  virtual void RegisterCloserSignalHandler(
+      const base::Closure& signal_callback,
+      dbus::ObjectProxy::OnConnectedCallback on_connected_callback) = 0;
+
+  virtual void RegisterTheCurseOfKaZarSignalHandler(
+      const base::Callback<void(const std::vector<std::string>&,
+                                uint8_t)>& signal_callback,
+      dbus::ObjectProxy::OnConnectedCallback on_connected_callback) = 0;
+
  protected:
   virtual ~TestInterfaceProxyInterface() = default;
 };
@@ -134,7 +143,7 @@
 
   void RegisterCloserSignalHandler(
       const base::Closure& signal_callback,
-      dbus::ObjectProxy::OnConnectedCallback on_connected_callback) {
+      dbus::ObjectProxy::OnConnectedCallback on_connected_callback) override {
     chromeos::dbus_utils::ConnectToSignal(
         dbus_object_proxy_,
         "org.chromium.TestInterface",
@@ -146,7 +155,7 @@
   void RegisterTheCurseOfKaZarSignalHandler(
       const base::Callback<void(const std::vector<std::string>&,
                                 uint8_t)>& signal_callback,
-      dbus::ObjectProxy::OnConnectedCallback on_connected_callback) {
+      dbus::ObjectProxy::OnConnectedCallback on_connected_callback) override {
     chromeos::dbus_utils::ConnectToSignal(
         dbus_object_proxy_,
         "org.chromium.TestInterface",
@@ -422,6 +431,10 @@
 // Abstract interface proxy for org::chromium::TestInterface.
 class TestInterfaceProxyInterface {
  public:
+  virtual void RegisterCloserSignalHandler(
+      const base::Closure& signal_callback,
+      dbus::ObjectProxy::OnConnectedCallback on_connected_callback) = 0;
+
  protected:
   virtual ~TestInterfaceProxyInterface() = default;
 };
@@ -446,7 +459,7 @@
 
   void RegisterCloserSignalHandler(
       const base::Closure& signal_callback,
-      dbus::ObjectProxy::OnConnectedCallback on_connected_callback) {
+      dbus::ObjectProxy::OnConnectedCallback on_connected_callback) override {
     chromeos::dbus_utils::ConnectToSignal(
         dbus_object_proxy_,
         "org.chromium.TestInterface",
@@ -565,6 +578,10 @@
 // Abstract interface proxy for org::chromium::Itf1.
 class Itf1ProxyInterface {
  public:
+  virtual void RegisterCloserSignalHandler(
+      const base::Closure& signal_callback,
+      dbus::ObjectProxy::OnConnectedCallback on_connected_callback) = 0;
+
   static const char* DataName() { return "Data"; }
   virtual const std::string& data() const = 0;
 
@@ -613,7 +630,7 @@
 
   void RegisterCloserSignalHandler(
       const base::Closure& signal_callback,
-      dbus::ObjectProxy::OnConnectedCallback on_connected_callback) {
+      dbus::ObjectProxy::OnConnectedCallback on_connected_callback) override {
     chromeos::dbus_utils::ConnectToSignal(
         dbus_object_proxy_,
         "org.chromium.Itf1",
@@ -945,6 +962,10 @@
 // Abstract interface proxy for org::chromium::Itf1.
 class Itf1ProxyInterface {
  public:
+  virtual void RegisterCloserSignalHandler(
+      const base::Closure& signal_callback,
+      dbus::ObjectProxy::OnConnectedCallback on_connected_callback) = 0;
+
  protected:
   virtual ~Itf1ProxyInterface() = default;
 };
@@ -983,7 +1004,7 @@
 
   void RegisterCloserSignalHandler(
       const base::Closure& signal_callback,
-      dbus::ObjectProxy::OnConnectedCallback on_connected_callback) {
+      dbus::ObjectProxy::OnConnectedCallback on_connected_callback) override {
     chromeos::dbus_utils::ConnectToSignal(
         dbus_object_proxy_,
         "org.chromium.Itf1",