AU: Proxy Resolver classes
A collection of classes (abstract ProxyResolver interface and two
concrete implementations). The abstraction is one that should suit us
moving forward: a string URL is provided and a collection of proxy
servers is returned. One implementation always returns [no
proxy]. Another returns [manual settings from chrome, if applicable,
..., no proxy].
A future concrete implementation will consult Chrome via DBus with the
URL in question, however this is delayed until Chrome exposes such an
API.
As a result of this API missing from Chrome, this CL only resolves
proxies for a URL with manually input proxy settings.
Future CLs will integrate this into the rest of the update system.
BUG=3167
TEST=unit tests, (with future CLs) working proxy support on device
Review URL: http://codereview.chromium.org/5151005
Change-Id: If9dc6d09da681bca6f6ae74c896ba946ab81cb4d
diff --git a/mock_dbus_interface.h b/mock_dbus_interface.h
index bf0d609..c817109 100644
--- a/mock_dbus_interface.h
+++ b/mock_dbus_interface.h
@@ -30,6 +30,34 @@
GType var_arg1,
GHashTable** var_arg2,
GType var_arg3));
+ MOCK_METHOD10(ProxyCall, gboolean(DBusGProxy* proxy,
+ const char* method,
+ GError** error,
+ GType var_arg1, const char* var_arg2,
+ GType var_arg3,
+ GType var_arg4, gchar** var_arg5,
+ GType var_arg6, GArray** var_arg7));
+
+ // Since gmock only supports mocking functions up to 10 args, we
+ // take the 11-arg function we'd like to mock, drop the last arg
+ // and call the 10-arg version. Dropping the last arg isn't ideal,
+ // but this is a lot better than nothing.
+ gboolean ProxyCall(DBusGProxy* proxy,
+ const char* method,
+ GError** error,
+ GType var_arg1, const char* var_arg2,
+ GType var_arg3,
+ GType var_arg4, gchar** var_arg5,
+ GType var_arg6, GArray** var_arg7,
+ GType var_arg8) {
+ return ProxyCall(proxy,
+ method,
+ error,
+ var_arg1, var_arg2,
+ var_arg3,
+ var_arg4, var_arg5,
+ var_arg6, var_arg7);
+ }
};
} // namespace chromeos_update_engine