diff options
-rw-r--r-- | telepathy-glib/connection-manager.c | 45 | ||||
-rw-r--r-- | telepathy-glib/protocol-internal.h | 9 | ||||
-rw-r--r-- | telepathy-glib/protocol.c | 111 | ||||
-rw-r--r-- | telepathy-glib/protocol.h | 13 | ||||
-rw-r--r-- | tests/dbus/cm.c | 585 | ||||
-rw-r--r-- | tests/dbus/protocol-objects.c | 16 |
6 files changed, 398 insertions, 381 deletions
diff --git a/telepathy-glib/connection-manager.c b/telepathy-glib/connection-manager.c index 0474afcff..110a4ab5b 100644 --- a/telepathy-glib/connection-manager.c +++ b/telepathy-glib/connection-manager.c @@ -153,17 +153,6 @@ enum * * Structure representing a connection manager parameter. * - * Since 0.19.1, accessing the fields of this struct is deprecated, - * and they are no longer documented here. - * Use the accessors tp_connection_manager_param_get_name(), - * tp_connection_manager_param_get_dbus_signature(), - * tp_connection_manager_param_is_required(), - * tp_connection_manager_param_is_required_for_registration(), - * tp_connection_manager_param_is_secret(), - * tp_connection_manager_param_is_dbus_property(), - * tp_connection_manager_param_get_default(), - * tp_connection_manager_param_dup_default_variant() instead. - * * Since: 0.7.1 */ @@ -224,23 +213,6 @@ G_DEFINE_TYPE (TpConnectionManager, TP_TYPE_PROXY) -static void -_tp_connection_manager_param_copy_contents ( - const TpConnectionManagerParam *in, - TpConnectionManagerParam *out) -{ - out->name = g_strdup (in->name); - out->dbus_signature = g_strdup (in->dbus_signature); - out->flags = in->flags; - - if (G_IS_VALUE (&in->default_value)) - { - g_value_init (&out->default_value, G_VALUE_TYPE (&in->default_value)); - g_value_copy (&in->default_value, &out->default_value); - } -} - - /** * tp_connection_manager_param_copy: * @in: the #TpConnectionManagerParam to copy @@ -257,12 +229,19 @@ tp_connection_manager_param_copy (const TpConnectionManagerParam *in) { TpConnectionManagerParam *out = g_slice_new0 (TpConnectionManagerParam); - _tp_connection_manager_param_copy_contents (in, out); + out->name = g_strdup (in->name); + out->dbus_signature = g_strdup (in->dbus_signature); + out->flags = in->flags; + + if (G_IS_VALUE (&in->default_value)) + { + g_value_init (&out->default_value, G_VALUE_TYPE (&in->default_value)); + g_value_copy (&in->default_value, &out->default_value); + } return out; } - /** * tp_connection_manager_param_free: * @param: the #TpConnectionManagerParam to free @@ -274,7 +253,11 @@ tp_connection_manager_param_copy (const TpConnectionManagerParam *in) void tp_connection_manager_param_free (TpConnectionManagerParam *param) { - _tp_connection_manager_param_free_contents (param); + g_free (param->name); + g_free (param->dbus_signature); + + if (G_IS_VALUE (¶m->default_value)) + g_value_unset (¶m->default_value); g_slice_free (TpConnectionManagerParam, param); } diff --git a/telepathy-glib/protocol-internal.h b/telepathy-glib/protocol-internal.h index bcebdc678..3653158b6 100644 --- a/telepathy-glib/protocol-internal.h +++ b/telepathy-glib/protocol-internal.h @@ -26,8 +26,13 @@ G_BEGIN_DECLS -void _tp_connection_manager_param_free_contents ( - TpConnectionManagerParam *param); +struct _TpConnectionManagerParam +{ + gchar *name; + gchar *dbus_signature; + GValue default_value; + guint flags; +}; GHashTable *_tp_protocol_parse_manager_file (GKeyFile *file, const gchar *cm_name, diff --git a/telepathy-glib/protocol.c b/telepathy-glib/protocol.c index adadc8855..97589d6d0 100644 --- a/telepathy-glib/protocol.c +++ b/telepathy-glib/protocol.c @@ -137,7 +137,7 @@ tp_protocol_get_feature_quark_core (void) struct _TpProtocolPrivate { gchar *name; - TpConnectionManagerParam *params; + GPtrArray *params; GHashTable *protocol_properties; gchar *vcard_field; gchar *english_name; @@ -164,58 +164,45 @@ enum }; /* this is NULL-safe for @parameters, and callers rely on this */ -static TpConnectionManagerParam * +static GPtrArray * tp_protocol_params_from_param_specs (const GPtrArray *parameters, const gchar *cm_debug_name, const gchar *protocol) { - GArray *output; + GPtrArray *output; guint i; DEBUG ("Protocol name: %s", protocol); if (parameters == NULL) { - return g_new0 (TpConnectionManagerParam, 1); + return g_ptr_array_new (); } - output = g_array_sized_new (TRUE, TRUE, - sizeof (TpConnectionManagerParam), parameters->len); + output = g_ptr_array_new_full (parameters->len, + (GDestroyNotify) tp_connection_manager_param_free); for (i = 0; i < parameters->len; i++) { - GValue structure = { 0 }; - GValue *tmp; - /* Points to the zeroed entry just after the end of the array - * - but we're about to extend the array to make it valid */ - TpConnectionManagerParam *param = &g_array_index (output, - TpConnectionManagerParam, output->len); - - g_value_init (&structure, TP_STRUCT_TYPE_PARAM_SPEC); - g_value_set_static_boxed (&structure, g_ptr_array_index (parameters, i)); - - g_array_set_size (output, output->len + 1); - - if (!dbus_g_type_struct_get (&structure, - 0, ¶m->name, - 1, ¶m->flags, - 2, ¶m->dbus_signature, - 3, &tmp, - G_MAXUINT)) - { - DEBUG ("Unparseable parameter #%d for %s, ignoring", i, protocol); - /* *shrug* that one didn't work, let's skip it */ - g_array_set_size (output, output->len - 1); - continue; - } + GValueArray *va = g_ptr_array_index (parameters, i); + TpConnectionManagerParam *param; + const gchar *name; + const gchar *dbus_signature; + GValue *default_value; - g_value_init (¶m->default_value, - G_VALUE_TYPE (tmp)); - g_value_copy (tmp, ¶m->default_value); - g_value_unset (tmp); - g_free (tmp); + param = g_slice_new0 (TpConnectionManagerParam); + tp_value_array_unpack (va, 4, + &name, + ¶m->flags, + &dbus_signature, + &default_value); - param->priv = NULL; + param->name = g_strdup (name); + param->dbus_signature = g_strdup (dbus_signature); + g_value_init (¶m->default_value, G_VALUE_TYPE (default_value)); + g_value_copy (default_value, ¶m->default_value); + + g_ptr_array_add (output, param); DEBUG ("\tParam name: %s", param->name); DEBUG ("\tParam flags: 0x%x", param->flags); @@ -241,7 +228,7 @@ tp_protocol_params_from_param_specs (const GPtrArray *parameters, #endif } - return (TpConnectionManagerParam *) g_array_free (output, FALSE); + return output; } static void @@ -331,16 +318,6 @@ tp_protocol_set_property (GObject *object, } } -void -_tp_connection_manager_param_free_contents (TpConnectionManagerParam *param) -{ - g_free (param->name); - g_free (param->dbus_signature); - - if (G_IS_VALUE (¶m->default_value)) - g_value_unset (¶m->default_value); -} - static void tp_protocol_dispose (GObject *object) { @@ -373,15 +350,7 @@ tp_protocol_finalize (GObject *object) GObjectFinalizeFunc finalize = ((GObjectClass *) tp_protocol_parent_class)->finalize; - if (self->priv->params != NULL) - { - TpConnectionManagerParam *param; - - for (param = self->priv->params; param->name != NULL; param++) - _tp_connection_manager_param_free_contents (param); - } - g_free (self->priv->params); - + g_ptr_array_unref (self->priv->params); g_free (self->priv->name); g_free (self->priv->vcard_field); g_free (self->priv->english_name); @@ -910,21 +879,21 @@ const TpConnectionManagerParam * tp_protocol_get_param (TpProtocol *self, const gchar *param) { - const TpConnectionManagerParam *ret = NULL; guint i; g_return_val_if_fail (TP_IS_PROTOCOL (self), FALSE); - for (i = 0; self->priv->params[i].name != NULL; i++) + for (i = 0; i < self->priv->params->len; i++) { - if (!tp_strdiff (param, self->priv->params[i].name)) + TpConnectionManagerParam *p = g_ptr_array_index (self->priv->params, i); + + if (!tp_strdiff (param, p->name)) { - ret = &self->priv->params[i]; - break; + return p; } } - return ret; + return NULL; } /* FIXME: in Telepathy 1.0, rename to tp_protocol_get_param */ @@ -990,8 +959,11 @@ tp_protocol_dup_param_names (TpProtocol *self) ret = g_ptr_array_new (); - for (i = 0; self->priv->params[i].name != NULL; i++) - g_ptr_array_add (ret, g_strdup (self->priv->params[i].name)); + for (i = 0; i < self->priv->params->len; i++) + { + TpConnectionManagerParam *p = g_ptr_array_index (self->priv->params, i); + g_ptr_array_add (ret, g_strdup (p->name)); + } g_ptr_array_add (ret, NULL); return (gchar **) g_ptr_array_free (ret, FALSE); @@ -1005,12 +977,11 @@ tp_protocol_dup_param_names (TpProtocol *self) * without additional memory allocations. The returned array is owned by * @self, and must not be used after @self has been freed. * - * Returns: (transfer none): an array of #TpConnectionManagerParam structures, - * terminated by one whose @name is %NULL + * Returns: a #GPtrArray of #TpConnectionManagerParam. * * Since: 0.17.6 */ -const TpConnectionManagerParam * +GPtrArray * tp_protocol_borrow_params (TpProtocol *self) { g_return_val_if_fail (TP_IS_PROTOCOL (self), NULL); @@ -1041,10 +1012,10 @@ tp_protocol_dup_params (TpProtocol *self) g_return_val_if_fail (TP_IS_PROTOCOL (self), NULL); - for (i = 0; self->priv->params[i].name != NULL; i++) + for (i = 0; i < self->priv->params->len; i++) { - ret = g_list_prepend (ret, - tp_connection_manager_param_copy (&(self->priv->params[i]))); + TpConnectionManagerParam *p = g_ptr_array_index (self->priv->params, i); + ret = g_list_prepend (ret, tp_connection_manager_param_copy (p)); } return g_list_reverse (ret); diff --git a/telepathy-glib/protocol.h b/telepathy-glib/protocol.h index f151702ab..2b04288e9 100644 --- a/telepathy-glib/protocol.h +++ b/telepathy-glib/protocol.h @@ -35,16 +35,6 @@ G_BEGIN_DECLS typedef struct _TpConnectionManagerParam TpConnectionManagerParam; -struct _TpConnectionManagerParam -{ - /*<private>*/ - gchar *_TP_SEAL (name); - gchar *_TP_SEAL (dbus_signature); - GValue _TP_SEAL (default_value); - guint _TP_SEAL (flags); - gpointer _TP_SEAL (priv); -}; - typedef struct _TpProtocol TpProtocol; typedef struct _TpProtocolClass TpProtocolClass; typedef struct _TpProtocolPrivate TpProtocolPrivate; @@ -102,8 +92,7 @@ GStrv tp_protocol_dup_param_names (TpProtocol *self) G_GNUC_WARN_UNUSED_RESULT; _TP_AVAILABLE_IN_0_18 GList *tp_protocol_dup_params (TpProtocol *self) G_GNUC_WARN_UNUSED_RESULT; _TP_AVAILABLE_IN_0_18 -const TpConnectionManagerParam *tp_protocol_borrow_params (TpProtocol *self) - G_GNUC_WARN_UNUSED_RESULT; +GPtrArray *tp_protocol_borrow_params (TpProtocol *self); const gchar * const * /* gtk-doc sucks */ diff --git a/tests/dbus/cm.c b/tests/dbus/cm.c index ba1ba71d2..ddf0a7008 100644 --- a/tests/dbus/cm.c +++ b/tests/dbus/cm.c @@ -71,6 +71,27 @@ teardown (Test *test, } static void +assert_param_flags (const TpConnectionManagerParam *param, + TpConnMgrParamFlags flags) +{ + GValue value = {0, }; + + g_assert (tp_connection_manager_param_is_required (param) == + ((flags & TP_CONN_MGR_PARAM_FLAG_REQUIRED) != 0)); + g_assert (tp_connection_manager_param_is_required_for_registration (param) == + ((flags & TP_CONN_MGR_PARAM_FLAG_REGISTER) != 0)); + g_assert (tp_connection_manager_param_get_default (param, &value) == + ((flags & TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT) != 0)); + g_assert (tp_connection_manager_param_is_secret (param) == + ((flags & TP_CONN_MGR_PARAM_FLAG_SECRET) != 0)); + g_assert (tp_connection_manager_param_is_dbus_property (param) == + ((flags & TP_CONN_MGR_PARAM_FLAG_DBUS_PROPERTY) != 0)); + + if (G_IS_VALUE (&value)) + g_value_unset (&value); +} + +static void test_valid_name (void) { GError *error = NULL; @@ -195,10 +216,10 @@ test_file_got_info (Test *test, /* FIXME: it's not technically an API guarantee that params * come out in this order... */ - param = &tp_protocol_borrow_params (protocol)[0]; - g_assert_cmpstr (param->name, ==, "account"); - g_assert_cmpstr (param->dbus_signature, ==, "s"); - g_assert_cmpuint (param->flags, ==, + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 0); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "account"); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "s"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_REQUIRED | TP_CONN_MGR_PARAM_FLAG_REGISTER); g_assert (param == tp_protocol_get_param (protocol, "account")); g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, @@ -215,18 +236,18 @@ test_file_got_info (Test *test, g_assert (!G_IS_VALUE (&value)); g_assert (tp_connection_manager_param_dup_default_variant (param) == NULL); - param = &tp_protocol_borrow_params (protocol)[1]; - g_assert_cmpstr (param->name, ==, "password"); - g_assert_cmpstr (param->dbus_signature, ==, "s"); - g_assert_cmpuint (param->flags, ==, + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 1); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "password"); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "s"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_REQUIRED | TP_CONN_MGR_PARAM_FLAG_REGISTER | TP_CONN_MGR_PARAM_FLAG_SECRET); g_assert (param == tp_protocol_get_param (protocol, "password")); - param = &tp_protocol_borrow_params (protocol)[2]; - g_assert_cmpstr (param->name, ==, "register"); - g_assert_cmpstr (param->dbus_signature, ==, "b"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 2); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "register"); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "b"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); g_assert (param == tp_protocol_get_param (protocol, "register")); ok = tp_connection_manager_param_get_default (param, &value); g_assert (ok); @@ -237,8 +258,7 @@ test_file_got_info (Test *test, g_assert_cmpstr (g_variant_get_type_string (variant), ==, "b"); g_assert_cmpint (g_variant_get_boolean (variant), ==, TRUE); - param = &tp_protocol_borrow_params (protocol)[3]; - g_assert (param->name == NULL); + g_assert_cmpuint (tp_protocol_borrow_params (protocol)->len, ==, 3); strv = tp_protocol_dup_param_names (protocol); g_assert_cmpstr (strv[0], ==, "account"); @@ -254,15 +274,14 @@ test_file_got_info (Test *test, "weird")); g_assert (!tp_protocol_can_register (protocol)); - param = &tp_protocol_borrow_params (protocol)[0]; - g_assert_cmpstr (param->name, ==, "com.example.Bork.Bork.Bork"); - g_assert_cmpuint (param->flags, ==, + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 0); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "com.example.Bork.Bork.Bork"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_DBUS_PROPERTY | TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "u"); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "u"); - param = &tp_protocol_borrow_params (protocol)[1]; - g_assert (param->name == NULL); + g_assert_cmpuint (tp_protocol_borrow_params (protocol)->len, ==, 1); } static void @@ -276,6 +295,7 @@ test_complex_file_got_info (Test *test, gchar **strv; GPtrArray *arr; GList *protocols; + GValue value = {0, }; test->cm = tp_connection_manager_new (test->dbus, "test_manager_file", NULL, &error); @@ -305,310 +325,357 @@ test_complex_file_got_info (Test *test, g_assert_cmpstr (tp_protocol_get_name (protocol), ==, "foo"); - param = &tp_protocol_borrow_params (protocol)[0]; - g_assert_cmpstr (param->name, ==, "account"); - g_assert_cmpstr (param->dbus_signature, ==, "s"); - g_assert_cmpuint (param->flags, ==, + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 0); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "account"); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "s"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_REQUIRED | TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert (G_VALUE_HOLDS_STRING (¶m->default_value)); - g_assert_cmpstr (g_value_get_string (¶m->default_value), ==, - "foo@default"); - - param = &tp_protocol_borrow_params (protocol)[1]; - g_assert_cmpstr (param->name, ==, "password"); - g_assert_cmpstr (param->dbus_signature, ==, "s"); - g_assert_cmpuint (param->flags, ==, + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_STRING (&value)); + g_assert_cmpstr (g_value_get_string (&value), ==, "foo@default"); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 1); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "password"); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "s"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_REQUIRED | TP_CONN_MGR_PARAM_FLAG_SECRET); - g_assert (G_VALUE_HOLDS_STRING (¶m->default_value)); - - param = &tp_protocol_borrow_params (protocol)[2]; - g_assert_cmpstr (param->name, ==, "encryption-key"); - g_assert_cmpstr (param->dbus_signature, ==, "s"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_SECRET); - g_assert (G_VALUE_HOLDS_STRING (¶m->default_value)); - - param = &tp_protocol_borrow_params (protocol)[3]; - g_assert_cmpstr (param->name, ==, "port"); - g_assert_cmpstr (param->dbus_signature, ==, "q"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert (G_VALUE_HOLDS_UINT (¶m->default_value)); - g_assert_cmpuint (g_value_get_uint (¶m->default_value), ==, 1234); - - param = &tp_protocol_borrow_params (protocol)[4]; - g_assert_cmpstr (param->name, ==, "register"); - g_assert_cmpstr (param->dbus_signature, ==, "b"); - g_assert_cmpuint (param->flags, ==, 0); - g_assert (G_VALUE_HOLDS_BOOLEAN (¶m->default_value)); - - param = &tp_protocol_borrow_params (protocol)[5]; - g_assert_cmpstr (param->name, ==, "server-list"); - g_assert_cmpstr (param->dbus_signature, ==, "as"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert (G_VALUE_HOLDS (¶m->default_value, G_TYPE_STRV)); - strv = g_value_get_boxed (¶m->default_value); + g_assert (!tp_connection_manager_param_get_default (param, &value)); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 2); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "encryption-key"); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "s"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_SECRET); + g_assert (!tp_connection_manager_param_get_default (param, &value)); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 3); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "port"); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "q"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_UINT (&value)); + g_assert_cmpuint (g_value_get_uint (&value), ==, 1234); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 4); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "register"); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "b"); + assert_param_flags (param, 0); + g_assert (!tp_connection_manager_param_get_default (param, &value)); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 5); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "server-list"); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "as"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS (&value, G_TYPE_STRV)); + strv = g_value_get_boxed (&value); g_assert_cmpstr (strv[0], ==, "foo"); g_assert_cmpstr (strv[1], ==, "bar"); g_assert (strv[2] == NULL); + g_value_unset (&value); - param = &tp_protocol_borrow_params (protocol)[6]; - g_assert (param->name == NULL); + g_assert_cmpuint (tp_protocol_borrow_params (protocol)->len, ==, 6); protocol = tp_connection_manager_get_protocol (test->cm, "bar"); g_assert_cmpstr (tp_protocol_get_name (protocol), ==, "bar"); - param = &tp_protocol_borrow_params (protocol)[0]; - g_assert_cmpstr (param->name, ==, "account"); - g_assert_cmpuint (param->flags, ==, + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 0); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "account"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_REQUIRED | TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "s"); - g_assert (G_VALUE_HOLDS_STRING (¶m->default_value)); - g_assert_cmpstr (g_value_get_string (¶m->default_value), ==, - "bar@default"); - - param = &tp_protocol_borrow_params (protocol)[1]; - g_assert_cmpstr (param->name, ==, "encryption-key"); - g_assert_cmpuint (param->flags, ==, + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "s"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_STRING (&value)); + g_assert_cmpstr (g_value_get_string (&value), ==, "bar@default"); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 1); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "encryption-key"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_REQUIRED | TP_CONN_MGR_PARAM_FLAG_SECRET); - g_assert_cmpstr (param->dbus_signature, ==, "s"); - g_assert (G_VALUE_HOLDS_STRING (¶m->default_value)); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "s"); + g_assert (!tp_connection_manager_param_get_default (param, &value)); - param = &tp_protocol_borrow_params (protocol)[2]; - g_assert_cmpstr (param->name, ==, "password"); - g_assert_cmpuint (param->flags, ==, + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 2); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "password"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_REQUIRED | TP_CONN_MGR_PARAM_FLAG_SECRET); - g_assert_cmpstr (param->dbus_signature, ==, "s"); - g_assert (G_VALUE_HOLDS_STRING (¶m->default_value)); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "s"); + g_assert (!tp_connection_manager_param_get_default (param, &value)); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 3); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "port"); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "q"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_UINT (&value)); + g_assert_cmpuint (g_value_get_uint (&value), ==, 4321); + g_value_unset (&value); - param = &tp_protocol_borrow_params (protocol)[3]; - g_assert_cmpstr (param->name, ==, "port"); - g_assert_cmpstr (param->dbus_signature, ==, "q"); - g_assert_cmpuint (param->flags, ==, - TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert (G_VALUE_HOLDS_UINT (¶m->default_value)); - g_assert_cmpuint (g_value_get_uint (¶m->default_value), ==, 4321); - - param = &tp_protocol_borrow_params (protocol)[4]; - g_assert_cmpstr (param->name, ==, "register"); - g_assert_cmpstr (param->dbus_signature, ==, "b"); - g_assert_cmpuint (param->flags, ==, 0); - g_assert (G_VALUE_HOLDS_BOOLEAN (¶m->default_value)); - - param = &tp_protocol_borrow_params (protocol)[5]; - g_assert_cmpstr (param->name, ==, "server-list"); - g_assert_cmpstr (param->dbus_signature, ==, "as"); - g_assert_cmpuint (param->flags, ==, - TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert (G_VALUE_HOLDS (¶m->default_value, G_TYPE_STRV)); - strv = g_value_get_boxed (¶m->default_value); + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 4); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "register"); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "b"); + assert_param_flags (param, 0); + g_assert (!tp_connection_manager_param_get_default (param, &value)); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 5); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "server-list"); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "as"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS (&value, G_TYPE_STRV)); + strv = g_value_get_boxed (&value); g_assert_cmpstr (strv[0], ==, "bar"); g_assert_cmpstr (strv[1], ==, "foo"); g_assert (strv[2] == NULL); + g_value_unset (&value); - param = &tp_protocol_borrow_params (protocol)[6]; - g_assert (param->name == NULL); + g_assert_cmpuint (tp_protocol_borrow_params (protocol)->len, ==, 6); protocol = tp_connection_manager_get_protocol (test->cm, "somewhat-pathological"); g_assert_cmpstr (tp_protocol_get_name (protocol), ==, "somewhat-pathological"); - param = &tp_protocol_borrow_params (protocol)[0]; - g_assert_cmpstr (param->name, ==, "foo"); - g_assert_cmpuint (param->flags, ==, + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 0); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "foo"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_REQUIRED | TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "s"); - g_assert (G_VALUE_HOLDS_STRING (¶m->default_value)); - g_assert_cmpstr (g_value_get_string (¶m->default_value), ==, - "hello world"); - - param = &tp_protocol_borrow_params (protocol)[1]; - g_assert_cmpstr (param->name, ==, "semicolons"); - g_assert_cmpuint (param->flags, ==, + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "s"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_STRING (&value)); + g_assert_cmpstr (g_value_get_string (&value), ==, "hello world"); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 1); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "semicolons"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT | TP_CONN_MGR_PARAM_FLAG_SECRET); - g_assert_cmpstr (param->dbus_signature, ==, "s"); - g_assert (G_VALUE_HOLDS_STRING (¶m->default_value)); - g_assert_cmpstr (g_value_get_string (¶m->default_value), ==, - "list;of;misc;"); - - param = &tp_protocol_borrow_params (protocol)[2]; - g_assert_cmpstr (param->name, ==, "list"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "as"); - g_assert (G_VALUE_HOLDS (¶m->default_value, G_TYPE_STRV)); - strv = g_value_get_boxed (¶m->default_value); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "s"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_STRING (&value)); + g_assert_cmpstr (g_value_get_string (&value), ==, "list;of;misc;"); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 2); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "list"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "as"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS (&value, G_TYPE_STRV)); + strv = g_value_get_boxed (&value); g_assert_cmpstr (strv[0], ==, "list"); g_assert_cmpstr (strv[1], ==, "of"); g_assert_cmpstr (strv[2], ==, "misc"); g_assert (strv[3] == NULL); + g_value_unset (&value); - param = &tp_protocol_borrow_params (protocol)[3]; - g_assert_cmpstr (param->name, ==, "unterminated-list"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "as"); - g_assert (G_VALUE_HOLDS (¶m->default_value, G_TYPE_STRV)); - strv = g_value_get_boxed (¶m->default_value); + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 3); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "unterminated-list"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "as"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS (&value, G_TYPE_STRV)); + strv = g_value_get_boxed (&value); g_assert_cmpstr (strv[0], ==, "list"); g_assert_cmpstr (strv[1], ==, "of"); g_assert_cmpstr (strv[2], ==, "misc"); g_assert (strv[3] == NULL); + g_value_unset (&value); - param = &tp_protocol_borrow_params (protocol)[4]; - g_assert_cmpstr (param->name, ==, "spaces-in-list"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "as"); - g_assert (G_VALUE_HOLDS (¶m->default_value, G_TYPE_STRV)); - strv = g_value_get_boxed (¶m->default_value); + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 4); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "spaces-in-list"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "as"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS (&value, G_TYPE_STRV)); + strv = g_value_get_boxed (&value); g_assert_cmpstr (strv[0], ==, "list"); g_assert_cmpstr (strv[1], ==, " of"); g_assert_cmpstr (strv[2], ==, " misc "); g_assert (strv[3] == NULL); + g_value_unset (&value); - param = &tp_protocol_borrow_params (protocol)[5]; - g_assert_cmpstr (param->name, ==, "escaped-semicolon-in-list"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "as"); - g_assert (G_VALUE_HOLDS (¶m->default_value, G_TYPE_STRV)); - strv = g_value_get_boxed (¶m->default_value); + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 5); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "escaped-semicolon-in-list"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "as"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS (&value, G_TYPE_STRV)); + strv = g_value_get_boxed (&value); g_assert_cmpstr (strv[0], ==, "list;of"); g_assert_cmpstr (strv[1], ==, "misc"); g_assert (strv[2] == NULL); + g_value_unset (&value); - param = &tp_protocol_borrow_params (protocol)[6]; - g_assert_cmpstr (param->name, ==, "doubly-escaped-semicolon-in-list"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "as"); - g_assert (G_VALUE_HOLDS (¶m->default_value, G_TYPE_STRV)); - strv = g_value_get_boxed (¶m->default_value); + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 6); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "doubly-escaped-semicolon-in-list"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "as"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS (&value, G_TYPE_STRV)); + strv = g_value_get_boxed (&value); g_assert_cmpstr (strv[0], ==, "list\\"); g_assert_cmpstr (strv[1], ==, "of"); g_assert_cmpstr (strv[2], ==, "misc"); g_assert (strv[3] == NULL); + g_value_unset (&value); - param = &tp_protocol_borrow_params (protocol)[7]; - g_assert_cmpstr (param->name, ==, "triply-escaped-semicolon-in-list"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "as"); - g_assert (G_VALUE_HOLDS (¶m->default_value, G_TYPE_STRV)); - strv = g_value_get_boxed (¶m->default_value); + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 7); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "triply-escaped-semicolon-in-list"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "as"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS (&value, G_TYPE_STRV)); + strv = g_value_get_boxed (&value); g_assert_cmpstr (strv[0], ==, "list\\;of"); g_assert_cmpstr (strv[1], ==, "misc"); g_assert (strv[2] == NULL); + g_value_unset (&value); - param = &tp_protocol_borrow_params (protocol)[8]; - g_assert_cmpstr (param->name, ==, "empty-list"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "as"); - g_assert (G_VALUE_HOLDS (¶m->default_value, G_TYPE_STRV)); - strv = g_value_get_boxed (¶m->default_value); + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 8); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "empty-list"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "as"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS (&value, G_TYPE_STRV)); + strv = g_value_get_boxed (&value); g_assert (strv == NULL || strv[0] == NULL); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 9); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "escaped-semicolon"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "s"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_STRING (&value)); + g_assert_cmpstr (g_value_get_string (&value), ==, "foo\\;bar"); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 10); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "object"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "o"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS (&value, DBUS_TYPE_G_OBJECT_PATH)); + g_assert_cmpstr (g_value_get_boxed (&value), ==, "/misc"); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 11); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "q"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "q"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_UINT (&value)); + g_assert_cmpint (g_value_get_uint (&value), ==, 42); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 12); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "u"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "u"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_UINT (&value)); + g_assert_cmpint (g_value_get_uint (&value), ==, 42); + g_value_unset (&value); - param = &tp_protocol_borrow_params (protocol)[9]; - g_assert_cmpstr (param->name, ==, "escaped-semicolon"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "s"); - g_assert (G_VALUE_HOLDS_STRING (¶m->default_value)); - g_assert_cmpstr (g_value_get_string (¶m->default_value), ==, - "foo\\;bar"); - - param = &tp_protocol_borrow_params (protocol)[10]; - g_assert_cmpstr (param->name, ==, "object"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "o"); - g_assert (G_VALUE_HOLDS (¶m->default_value, DBUS_TYPE_G_OBJECT_PATH)); - g_assert_cmpstr (g_value_get_boxed (¶m->default_value), ==, "/misc"); - - param = &tp_protocol_borrow_params (protocol)[11]; - g_assert_cmpstr (param->name, ==, "q"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "q"); - g_assert (G_VALUE_HOLDS_UINT (¶m->default_value)); - g_assert_cmpint (g_value_get_uint (¶m->default_value), ==, 42); - - param = &tp_protocol_borrow_params (protocol)[12]; - g_assert_cmpstr (param->name, ==, "u"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "u"); - g_assert (G_VALUE_HOLDS_UINT (¶m->default_value)); - g_assert_cmpint (g_value_get_uint (¶m->default_value), ==, 42); - - param = &tp_protocol_borrow_params (protocol)[13]; - g_assert_cmpstr (param->name, ==, "t"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "t"); - g_assert (G_VALUE_HOLDS_UINT64 (¶m->default_value)); - g_assert_cmpuint ((guint) g_value_get_uint64 (¶m->default_value), ==, - 42); - - param = &tp_protocol_borrow_params (protocol)[14]; - g_assert_cmpstr (param->name, ==, "n"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "n"); - g_assert (G_VALUE_HOLDS_INT (¶m->default_value)); - g_assert_cmpint (g_value_get_int (¶m->default_value), ==, -42); - - param = &tp_protocol_borrow_params (protocol)[15]; - g_assert_cmpstr (param->name, ==, "i"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "i"); - g_assert (G_VALUE_HOLDS_INT (¶m->default_value)); - g_assert_cmpint (g_value_get_int (¶m->default_value), ==, -42); - - param = &tp_protocol_borrow_params (protocol)[16]; - g_assert_cmpstr (param->name, ==, "x"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "x"); - g_assert (G_VALUE_HOLDS_INT64 (¶m->default_value)); - g_assert_cmpint ((int) g_value_get_int64 (¶m->default_value), ==, -42); - - param = &tp_protocol_borrow_params (protocol)[17]; - g_assert_cmpstr (param->name, ==, "d"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "d"); - g_assert (G_VALUE_HOLDS_DOUBLE (¶m->default_value)); - - param = &tp_protocol_borrow_params (protocol)[18]; - g_assert_cmpstr (param->name, ==, "empty-string-in-list"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "as"); - g_assert (G_VALUE_HOLDS (¶m->default_value, G_TYPE_STRV)); - strv = g_value_get_boxed (¶m->default_value); + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 13); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "t"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "t"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_UINT64 (&value)); + g_assert_cmpuint ((guint) g_value_get_uint64 (&value), ==, 42); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 14); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "n"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "n"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_INT (&value)); + g_assert_cmpint (g_value_get_int (&value), ==, -42); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 15); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "i"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "i"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_INT (&value)); + g_assert_cmpint (g_value_get_int (&value), ==, -42); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 16); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "x"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "x"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_INT64 (&value)); + g_assert_cmpint ((int) g_value_get_int64 (&value), ==, -42); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 17); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "d"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "d"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_DOUBLE (&value)); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 18); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "empty-string-in-list"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "as"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS (&value, G_TYPE_STRV)); + strv = g_value_get_boxed (&value); g_assert_cmpstr (strv[0], ==, ""); g_assert (strv[1] == NULL); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 19); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "true"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "b"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_BOOLEAN (&value)); + g_assert_cmpint (g_value_get_boolean (&value), ==, TRUE); + g_value_unset (&value); - param = &tp_protocol_borrow_params (protocol)[19]; - g_assert_cmpstr (param->name, ==, "true"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "b"); - g_assert (G_VALUE_HOLDS_BOOLEAN (¶m->default_value)); - g_assert_cmpint (g_value_get_boolean (¶m->default_value), ==, TRUE); - - param = &tp_protocol_borrow_params (protocol)[20]; - g_assert_cmpstr (param->name, ==, "false"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "b"); - g_assert (G_VALUE_HOLDS_BOOLEAN (¶m->default_value)); - g_assert_cmpint (g_value_get_boolean (¶m->default_value), ==, FALSE); - - param = &tp_protocol_borrow_params (protocol)[21]; - g_assert_cmpstr (param->name, ==, "y"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "y"); - g_assert (G_VALUE_HOLDS_UCHAR (¶m->default_value)); - g_assert_cmpint (g_value_get_uchar (¶m->default_value), ==, 42); - - param = &tp_protocol_borrow_params (protocol)[22]; - g_assert_cmpstr (param->name, ==, "ao"); - g_assert_cmpuint (param->flags, ==, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); - g_assert_cmpstr (param->dbus_signature, ==, "ao"); - g_assert (G_VALUE_HOLDS (¶m->default_value, + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 20); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "false"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "b"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_BOOLEAN (&value)); + g_assert_cmpint (g_value_get_boolean (&value), ==, FALSE); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 21); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "y"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "y"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS_UCHAR (&value)); + g_assert_cmpint (g_value_get_uchar (&value), ==, 42); + g_value_unset (&value); + + param = g_ptr_array_index (tp_protocol_borrow_params (protocol), 22); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "ao"); + assert_param_flags (param, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT); + g_assert_cmpstr (tp_connection_manager_param_get_dbus_signature (param), ==, "ao"); + tp_connection_manager_param_get_default (param, &value); + g_assert (G_VALUE_HOLDS (&value, TP_ARRAY_TYPE_OBJECT_PATH_LIST)); - arr = g_value_get_boxed (¶m->default_value); + arr = g_value_get_boxed (&value); g_assert_cmpuint (arr->len, ==, 2); g_assert_cmpstr ((gchar *) g_ptr_array_index (arr, 0), ==, "/misc"); g_assert_cmpstr ((gchar *) g_ptr_array_index (arr, 1), ==, "/other"); + g_value_unset (&value); - param = &tp_protocol_borrow_params (protocol)[23]; - g_assert (param->name == NULL); + g_assert_cmpuint (tp_protocol_borrow_params (protocol)->len, ==, 23); } static void diff --git a/tests/dbus/protocol-objects.c b/tests/dbus/protocol-objects.c index 8a4264a35..3aa472736 100644 --- a/tests/dbus/protocol-objects.c +++ b/tests/dbus/protocol-objects.c @@ -329,6 +329,7 @@ test_protocol_object (Test *test, TpAvatarRequirements *req; GList *l; TpConnectionManagerParam *param; + GList *params; g_assert_cmpstr (tp_connection_manager_get_name (test->cm), ==, "example_echo_2"); @@ -372,22 +373,23 @@ test_protocol_object (Test *test, l = tp_protocol_dup_params (test->protocol); g_assert_cmpuint (g_list_length (l), ==, 1); param = l->data; - g_assert_cmpstr (param->name, ==, "account"); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "account"); g_list_free_full (l, (GDestroyNotify) tp_connection_manager_param_free); - g_assert_cmpstr (tp_protocol_get_param (test->protocol, "account")->name, ==, - "account"); + g_assert_cmpstr (tp_connection_manager_param_get_name ( + tp_protocol_get_param (test->protocol, "account")), ==, "account"); param = tp_protocol_dup_param (test->protocol, "account"); /* it's a copy */ g_assert (param != tp_protocol_get_param (test->protocol, "account")); - g_assert_cmpstr (param->name, ==, "account"); + g_assert_cmpstr (tp_connection_manager_param_get_name (param), ==, "account"); tp_connection_manager_param_free (param); - g_assert_cmpstr (tp_protocol_borrow_params (test->protocol)[0].name, ==, + params = tp_protocol_dup_params (test->protocol); + g_assert_cmpuint (g_list_length (params), ==, 1); + g_assert_cmpstr (tp_connection_manager_param_get_name (params->data), ==, "account"); - g_assert_cmpstr (tp_protocol_borrow_params (test->protocol)[1].name, ==, - NULL); + g_list_free_full (params, (GDestroyNotify) tp_connection_manager_param_free); } static void |