mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-26 15:36:14 +01:00
Improve gdbus test coverage
This commit is contained in:
parent
116b945c94
commit
8246bf4bde
@ -865,6 +865,56 @@ test_connection_flush (void)
|
|||||||
session_bus_down ();
|
session_bus_down ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_connection_basic (void)
|
||||||
|
{
|
||||||
|
GDBusConnection *connection;
|
||||||
|
GError *error;
|
||||||
|
GDBusCapabilityFlags flags;
|
||||||
|
const gchar *guid;
|
||||||
|
const gchar *name;
|
||||||
|
gboolean closed;
|
||||||
|
gboolean exit_on_close;
|
||||||
|
GIOStream *stream;
|
||||||
|
GCredentials *credentials;
|
||||||
|
|
||||||
|
session_bus_up ();
|
||||||
|
|
||||||
|
error = NULL;
|
||||||
|
connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
|
||||||
|
g_assert_no_error (error);
|
||||||
|
g_assert (connection != NULL);
|
||||||
|
|
||||||
|
flags = g_dbus_connection_get_capabilities (connection);
|
||||||
|
g_assert (flags == G_DBUS_CAPABILITY_FLAGS_NONE ||
|
||||||
|
flags == G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING);
|
||||||
|
|
||||||
|
credentials = g_dbus_connection_get_peer_credentials (connection);
|
||||||
|
g_assert (credentials == NULL);
|
||||||
|
|
||||||
|
g_object_get (connection,
|
||||||
|
"stream", &stream,
|
||||||
|
"guid", &guid,
|
||||||
|
"unique-name", &name,
|
||||||
|
"closed", &closed,
|
||||||
|
"exit-on-close", &exit_on_close,
|
||||||
|
"capabilities", &flags,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
g_assert (G_IS_IO_STREAM (stream));
|
||||||
|
g_assert (g_dbus_is_guid (guid));
|
||||||
|
g_assert (g_dbus_is_unique_name (name));
|
||||||
|
g_assert (!closed);
|
||||||
|
g_assert (exit_on_close);
|
||||||
|
g_assert (flags == G_DBUS_CAPABILITY_FLAGS_NONE ||
|
||||||
|
flags == G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING);
|
||||||
|
|
||||||
|
g_object_unref (stream);
|
||||||
|
g_object_unref (connection);
|
||||||
|
|
||||||
|
session_bus_down ();
|
||||||
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------------------------------------- */
|
||||||
|
|
||||||
int
|
int
|
||||||
@ -883,10 +933,11 @@ main (int argc,
|
|||||||
g_unsetenv ("DISPLAY");
|
g_unsetenv ("DISPLAY");
|
||||||
g_setenv ("DBUS_SESSION_BUS_ADDRESS", session_bus_get_temporary_address (), TRUE);
|
g_setenv ("DBUS_SESSION_BUS_ADDRESS", session_bus_get_temporary_address (), TRUE);
|
||||||
|
|
||||||
g_test_add_func ("/gdbus/connection-life-cycle", test_connection_life_cycle);
|
g_test_add_func ("/gdbus/connection/basic", test_connection_basic);
|
||||||
g_test_add_func ("/gdbus/connection-send", test_connection_send);
|
g_test_add_func ("/gdbus/connection/life-cycle", test_connection_life_cycle);
|
||||||
g_test_add_func ("/gdbus/connection-signals", test_connection_signals);
|
g_test_add_func ("/gdbus/connection/send", test_connection_send);
|
||||||
g_test_add_func ("/gdbus/connection-filter", test_connection_filter);
|
g_test_add_func ("/gdbus/connection/signals", test_connection_signals);
|
||||||
g_test_add_func ("/gdbus/connection-flush", test_connection_flush);
|
g_test_add_func ("/gdbus/connection/filter", test_connection_filter);
|
||||||
|
g_test_add_func ("/gdbus/connection/flush", test_connection_flush);
|
||||||
return g_test_run();
|
return g_test_run();
|
||||||
}
|
}
|
||||||
|
@ -126,7 +126,7 @@ test_methods (GDBusProxy *proxy)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
strv_equal (const gchar **strv, ...)
|
strv_equal (gchar **strv, ...)
|
||||||
{
|
{
|
||||||
gint count;
|
gint count;
|
||||||
va_list list;
|
va_list list;
|
||||||
@ -151,7 +151,7 @@ strv_equal (const gchar **strv, ...)
|
|||||||
va_end (list);
|
va_end (list);
|
||||||
|
|
||||||
if (res)
|
if (res)
|
||||||
res = g_strv_length ((gchar**)strv) == count;
|
res = g_strv_length (strv) == count;
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
@ -171,6 +171,12 @@ test_properties (GDBusProxy *proxy)
|
|||||||
|
|
||||||
error = NULL;
|
error = NULL;
|
||||||
|
|
||||||
|
if (g_dbus_proxy_get_flags (proxy) & G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES)
|
||||||
|
{
|
||||||
|
g_assert (g_dbus_proxy_get_cached_property_names (proxy) == NULL);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check that we can list all cached properties.
|
* Check that we can list all cached properties.
|
||||||
*/
|
*/
|
||||||
@ -200,7 +206,8 @@ test_properties (GDBusProxy *proxy)
|
|||||||
"t",
|
"t",
|
||||||
"u",
|
"u",
|
||||||
"x",
|
"x",
|
||||||
"y"));
|
"y",
|
||||||
|
NULL));
|
||||||
|
|
||||||
g_strfreev (names);
|
g_strfreev (names);
|
||||||
|
|
||||||
@ -490,6 +497,51 @@ test_expected_interface (GDBusProxy *proxy)
|
|||||||
g_dbus_proxy_set_cached_property (proxy, "y", g_variant_new_byte (42));
|
g_dbus_proxy_set_cached_property (proxy, "y", g_variant_new_byte (42));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_basic (GDBusProxy *proxy)
|
||||||
|
{
|
||||||
|
GDBusConnection *connection;
|
||||||
|
GDBusConnection *conn;
|
||||||
|
GDBusProxyFlags flags;
|
||||||
|
GDBusInterfaceInfo *info;
|
||||||
|
const gchar *name;
|
||||||
|
const gchar *path;
|
||||||
|
const gchar *interface;
|
||||||
|
gint timeout;
|
||||||
|
|
||||||
|
connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
|
||||||
|
|
||||||
|
g_assert (g_dbus_proxy_get_connection (proxy) == connection);
|
||||||
|
g_assert (g_dbus_proxy_get_flags (proxy) == G_DBUS_PROXY_FLAGS_NONE);
|
||||||
|
g_assert (g_dbus_proxy_get_interface_info (proxy) == NULL);
|
||||||
|
g_assert_cmpstr (g_dbus_proxy_get_name (proxy), ==, "com.example.TestService");
|
||||||
|
g_assert_cmpstr (g_dbus_proxy_get_object_path (proxy), ==, "/com/example/TestObject");
|
||||||
|
g_assert_cmpstr (g_dbus_proxy_get_interface_name (proxy), ==, "com.example.Frob");
|
||||||
|
g_assert_cmpint (g_dbus_proxy_get_default_timeout (proxy), ==, -1);
|
||||||
|
|
||||||
|
g_object_get (proxy,
|
||||||
|
"g-connection", &conn,
|
||||||
|
"g-interface-info", &info,
|
||||||
|
"g-flags", &flags,
|
||||||
|
"g-name", &name,
|
||||||
|
"g-object-path", &path,
|
||||||
|
"g-interface-name", &interface,
|
||||||
|
"g-default-timeout", &timeout,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
g_assert (conn == connection);
|
||||||
|
g_assert (info == NULL);
|
||||||
|
g_assert_cmpint (flags, ==, G_DBUS_PROXY_FLAGS_NONE);
|
||||||
|
g_assert_cmpstr (name, ==, "com.example.TestService");
|
||||||
|
g_assert_cmpstr (path, ==, "/com/example/TestObject");
|
||||||
|
g_assert_cmpstr (interface, ==, "com.example.Frob");
|
||||||
|
g_assert_cmpint (timeout, ==, -1);
|
||||||
|
|
||||||
|
g_object_unref (conn);
|
||||||
|
|
||||||
|
g_object_unref (connection);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
test_proxy (void)
|
test_proxy (void)
|
||||||
{
|
{
|
||||||
@ -525,6 +577,7 @@ test_proxy (void)
|
|||||||
|
|
||||||
_g_assert_property_notify (proxy, "g-name-owner");
|
_g_assert_property_notify (proxy, "g-name-owner");
|
||||||
|
|
||||||
|
test_basic (proxy);
|
||||||
test_methods (proxy);
|
test_methods (proxy);
|
||||||
test_properties (proxy);
|
test_properties (proxy);
|
||||||
test_signals (proxy);
|
test_signals (proxy);
|
||||||
@ -536,6 +589,63 @@ test_proxy (void)
|
|||||||
|
|
||||||
/* ---------------------------------------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
static void
|
||||||
|
proxy_ready (GObject *source,
|
||||||
|
GAsyncResult *result,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
GDBusProxy *proxy;
|
||||||
|
GError *error;
|
||||||
|
|
||||||
|
error = NULL;
|
||||||
|
proxy = g_dbus_proxy_new_for_bus_finish (result, &error);
|
||||||
|
g_assert_no_error (error);
|
||||||
|
|
||||||
|
test_basic (proxy);
|
||||||
|
test_methods (proxy);
|
||||||
|
test_properties (proxy);
|
||||||
|
test_signals (proxy);
|
||||||
|
test_expected_interface (proxy);
|
||||||
|
|
||||||
|
g_object_unref (proxy);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_async (void)
|
||||||
|
{
|
||||||
|
g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION,
|
||||||
|
G_DBUS_PROXY_FLAGS_NONE,
|
||||||
|
NULL, /* GDBusInterfaceInfo */
|
||||||
|
"com.example.TestService", /* name */
|
||||||
|
"/com/example/TestObject", /* object path */
|
||||||
|
"com.example.Frob", /* interface */
|
||||||
|
NULL, /* GCancellable */
|
||||||
|
proxy_ready,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_no_properties (void)
|
||||||
|
{
|
||||||
|
GDBusProxy *proxy;
|
||||||
|
GError *error;
|
||||||
|
|
||||||
|
error = NULL;
|
||||||
|
proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
|
||||||
|
G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
|
||||||
|
NULL, /* GDBusInterfaceInfo */
|
||||||
|
"com.example.TestService", /* name */
|
||||||
|
"/com/example/TestObject", /* object path */
|
||||||
|
"com.example.Frob", /* interface */
|
||||||
|
NULL, /* GCancellable */
|
||||||
|
&error);
|
||||||
|
g_assert_no_error (error);
|
||||||
|
|
||||||
|
test_properties (proxy);
|
||||||
|
|
||||||
|
g_object_unref (proxy);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc,
|
main (int argc,
|
||||||
char *argv[])
|
char *argv[])
|
||||||
@ -560,6 +670,8 @@ main (int argc,
|
|||||||
g_setenv ("DBUS_SESSION_BUS_ADDRESS", session_bus_get_temporary_address (), TRUE);
|
g_setenv ("DBUS_SESSION_BUS_ADDRESS", session_bus_get_temporary_address (), TRUE);
|
||||||
|
|
||||||
g_test_add_func ("/gdbus/proxy", test_proxy);
|
g_test_add_func ("/gdbus/proxy", test_proxy);
|
||||||
|
g_test_add_func ("/gdbus/proxy/async", test_async);
|
||||||
|
g_test_add_func ("/gdbus/proxy/no-properties", test_no_properties);
|
||||||
|
|
||||||
ret = g_test_run();
|
ret = g_test_run();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user