InitializeProperties and GetObjectProxy support for mocks
- Add missing InitializeProperties mock method.
- Expose GetObjectProxy via the interface and mock.
BUG=None
TEST=unit tests, tested proxies on whirlwind.
Change-Id: I69f1d141e589de07cd04199d332b9b6c2b5e7fc4
Reviewed-on: https://chromium-review.googlesource.com/389855
Commit-Ready: Christopher Book <cbook@chromium.org>
Tested-by: Christopher Book <cbook@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
diff --git a/chromeos-dbus-bindings/proxy_generator.cc b/chromeos-dbus-bindings/proxy_generator.cc
index 7f41eee..1ac7139 100644
--- a/chromeos-dbus-bindings/proxy_generator.cc
+++ b/chromeos-dbus-bindings/proxy_generator.cc
@@ -214,6 +214,7 @@
AddProperties(interface, true, text);
text->AddBlankLine();
text->AddLine("virtual const dbus::ObjectPath& GetObjectPath() const = 0;");
+ text->AddLine("virtual dbus::ObjectProxy* GetObjectProxy() const = 0;");
if (!interface.properties.empty()) {
if (config.object_manager.name.empty())
AddInitializeProperties(proxy_name, true, text);
@@ -363,13 +364,24 @@
}
text->AddLine(
"MOCK_CONST_METHOD0(GetObjectPath, const dbus::ObjectPath&());");
- if (!config.object_manager.name.empty() && !interface.properties.empty()) {
- text->AddLineAndPushOffsetTo(
- "MOCK_METHOD1(SetPropertyChangedCallback,", 1, '(');
- text->AddLine(StringPrintf(
- "void(const base::Callback<void(%sInterface*, const std::string&)>&));",
- proxy_name.c_str()));
- text->PopOffset();
+ text->AddLine(
+ "MOCK_CONST_METHOD0(GetObjectProxy, dbus::ObjectProxy*());");
+ if (!interface.properties.empty()) {
+ if (config.object_manager.name.empty()) {
+ text->AddLineAndPushOffsetTo(
+ "MOCK_METHOD1(InitializeProperties,", 1, '(');
+ text->AddLine(StringPrintf(
+ "void(const base::Callback<void(%sInterface*, "
+ "const std::string&)>&));", proxy_name.c_str()));
+ text->PopOffset();
+ } else {
+ text->AddLineAndPushOffsetTo(
+ "MOCK_METHOD1(SetPropertyChangedCallback,", 1, '(');
+ text->AddLine(StringPrintf("void(const base::Callback<void(%sInterface*, "
+ "const std::string&)>&));",
+ proxy_name.c_str()));
+ text->PopOffset();
+ }
}
text->PopOffset();
@@ -456,8 +468,9 @@
// static
void ProxyGenerator::AddGetObjectProxy(IndentedText* text) {
text->AddBlankLine();
- text->AddLine("dbus::ObjectProxy* GetObjectProxy() const { "
- "return dbus_object_proxy_; }");
+ text->AddLine("dbus::ObjectProxy* GetObjectProxy() const override {");
+ text->AddLineWithOffset("return dbus_object_proxy_;", kBlockOffset);
+ text->AddLine("}");
}
// static
diff --git a/chromeos-dbus-bindings/proxy_generator_mock_unittest.cc b/chromeos-dbus-bindings/proxy_generator_mock_unittest.cc
index c71d1b0..d23710b 100644
--- a/chromeos-dbus-bindings/proxy_generator_mock_unittest.cc
+++ b/chromeos-dbus-bindings/proxy_generator_mock_unittest.cc
@@ -124,6 +124,7 @@
uint8_t)>& /*signal_callback*/,
dbus::ObjectProxy::OnConnectedCallback /*on_connected_callback*/));
MOCK_CONST_METHOD0(GetObjectPath, const dbus::ObjectPath&());
+ MOCK_CONST_METHOD0(GetObjectProxy, dbus::ObjectProxy*());
private:
DISALLOW_COPY_AND_ASSIGN(TestInterfaceProxyMock);
@@ -152,6 +153,7 @@
MOCK_CONST_METHOD0(name, const std::string&());
MOCK_METHOD2(set_name, void(const std::string&, const base::Callback<bool>&));
MOCK_CONST_METHOD0(GetObjectPath, const dbus::ObjectPath&());
+ MOCK_CONST_METHOD0(GetObjectProxy, dbus::ObjectProxy*());
MOCK_METHOD1(SetPropertyChangedCallback,
void(const base::Callback<void(TestInterface2ProxyInterface*, const std::string&)>&));
diff --git a/chromeos-dbus-bindings/proxy_generator_unittest.cc b/chromeos-dbus-bindings/proxy_generator_unittest.cc
index 8e3c0f0..1b60ba4 100644
--- a/chromeos-dbus-bindings/proxy_generator_unittest.cc
+++ b/chromeos-dbus-bindings/proxy_generator_unittest.cc
@@ -119,6 +119,7 @@
dbus::ObjectProxy::OnConnectedCallback on_connected_callback) = 0;
virtual const dbus::ObjectPath& GetObjectPath() const = 0;
+ virtual dbus::ObjectProxy* GetObjectProxy() const = 0;
};
} // namespace chromium
@@ -173,7 +174,9 @@
return object_path_;
}
- dbus::ObjectProxy* GetObjectProxy() const { return dbus_object_proxy_; }
+ dbus::ObjectProxy* GetObjectProxy() const override {
+ return dbus_object_proxy_;
+ }
bool Elements(
const std::string& in_space_walk,
@@ -329,6 +332,7 @@
int timeout_ms = dbus::ObjectProxy::TIMEOUT_USE_DEFAULT) = 0;
virtual const dbus::ObjectPath& GetObjectPath() const = 0;
+ virtual dbus::ObjectProxy* GetObjectProxy() const = 0;
};
} // namespace chromium
@@ -362,7 +366,9 @@
return object_path_;
}
- dbus::ObjectProxy* GetObjectProxy() const { return dbus_object_proxy_; }
+ dbus::ObjectProxy* GetObjectProxy() const override {
+ return dbus_object_proxy_;
+ }
bool GetPersonInfo(
std::string* out_name,
@@ -440,6 +446,7 @@
dbus::ObjectProxy::OnConnectedCallback on_connected_callback) = 0;
virtual const dbus::ObjectPath& GetObjectPath() const = 0;
+ virtual dbus::ObjectProxy* GetObjectProxy() const = 0;
};
} // namespace chromium
@@ -479,7 +486,9 @@
return object_path_;
}
- dbus::ObjectProxy* GetObjectProxy() const { return dbus_object_proxy_; }
+ dbus::ObjectProxy* GetObjectProxy() const override {
+ return dbus_object_proxy_;
+ }
private:
scoped_refptr<dbus::Bus> bus_;
@@ -502,6 +511,7 @@
virtual ~TestInterface2ProxyInterface() = default;
virtual const dbus::ObjectPath& GetObjectPath() const = 0;
+ virtual dbus::ObjectProxy* GetObjectProxy() const = 0;
};
} // namespace chromium
@@ -533,7 +543,9 @@
return object_path_;
}
- dbus::ObjectProxy* GetObjectProxy() const { return dbus_object_proxy_; }
+ dbus::ObjectProxy* GetObjectProxy() const override {
+ return dbus_object_proxy_;
+ }
private:
scoped_refptr<dbus::Bus> bus_;
@@ -596,6 +608,7 @@
const base::Callback<void(bool)>& callback) = 0;
virtual const dbus::ObjectPath& GetObjectPath() const = 0;
+ virtual dbus::ObjectProxy* GetObjectProxy() const = 0;
virtual void SetPropertyChangedCallback(
const base::Callback<void(Itf1ProxyInterface*, const std::string&)>& callback) = 0;
@@ -661,7 +674,9 @@
return object_path_;
}
- dbus::ObjectProxy* GetObjectProxy() const { return dbus_object_proxy_; }
+ dbus::ObjectProxy* GetObjectProxy() const override {
+ return dbus_object_proxy_;
+ }
void SetPropertyChangedCallback(
const base::Callback<void(Itf1ProxyInterface*, const std::string&)>& callback) override {
@@ -713,6 +728,7 @@
virtual ~Itf2ProxyInterface() = default;
virtual const dbus::ObjectPath& GetObjectPath() const = 0;
+ virtual dbus::ObjectProxy* GetObjectProxy() const = 0;
};
} // namespace chromium
@@ -760,7 +776,9 @@
return object_path_;
}
- dbus::ObjectProxy* GetObjectProxy() const { return dbus_object_proxy_; }
+ dbus::ObjectProxy* GetObjectProxy() const override {
+ return dbus_object_proxy_;
+ }
private:
scoped_refptr<dbus::Bus> bus_;
@@ -990,6 +1008,7 @@
const base::Callback<void(bool)>& callback) = 0;
virtual const dbus::ObjectPath& GetObjectPath() const = 0;
+ virtual dbus::ObjectProxy* GetObjectProxy() const = 0;
virtual void InitializeProperties(
const base::Callback<void(TestProxyInterface*, const std::string&)>& callback) = 0;
@@ -1039,7 +1058,9 @@
return object_path_;
}
- dbus::ObjectProxy* GetObjectProxy() const { return dbus_object_proxy_; }
+ dbus::ObjectProxy* GetObjectProxy() const override {
+ return dbus_object_proxy_;
+ }
void InitializeProperties(
const base::Callback<void(TestProxyInterface*, const std::string&)>& callback) override {
@@ -1120,6 +1141,7 @@
dbus::ObjectProxy::OnConnectedCallback on_connected_callback) = 0;
virtual const dbus::ObjectPath& GetObjectPath() const = 0;
+ virtual dbus::ObjectProxy* GetObjectProxy() const = 0;
};
} // namespace chromium
@@ -1173,7 +1195,9 @@
return object_path_;
}
- dbus::ObjectProxy* GetObjectProxy() const { return dbus_object_proxy_; }
+ dbus::ObjectProxy* GetObjectProxy() const override {
+ return dbus_object_proxy_;
+ }
private:
scoped_refptr<dbus::Bus> bus_;
@@ -1196,6 +1220,7 @@
virtual ~Itf2ProxyInterface() = default;
virtual const dbus::ObjectPath& GetObjectPath() const = 0;
+ virtual dbus::ObjectProxy* GetObjectProxy() const = 0;
};
} // namespace chromium
@@ -1241,7 +1266,9 @@
return object_path_;
}
- dbus::ObjectProxy* GetObjectProxy() const { return dbus_object_proxy_; }
+ dbus::ObjectProxy* GetObjectProxy() const override {
+ return dbus_object_proxy_;
+ }
private:
scoped_refptr<dbus::Bus> bus_;