diff options
Diffstat (limited to 'tests/wocky-test-sasl-auth-server.c')
-rw-r--r-- | tests/wocky-test-sasl-auth-server.c | 69 |
1 files changed, 30 insertions, 39 deletions
diff --git a/tests/wocky-test-sasl-auth-server.c b/tests/wocky-test-sasl-auth-server.c index c76a658..b0f2308 100644 --- a/tests/wocky-test-sasl-auth-server.c +++ b/tests/wocky-test-sasl-auth-server.c @@ -67,8 +67,6 @@ G_STMT_START { \ #endif -G_DEFINE_TYPE(TestSaslAuthServer, test_sasl_auth_server, G_TYPE_OBJECT) - #if 0 /* signal enum */ enum @@ -101,10 +99,13 @@ struct _TestSaslAuthServerPrivate gchar *selected_mech; AuthState state; ServerProblem problem; - GSimpleAsyncResult *result; + GTask *task; GCancellable *cancellable; }; +G_DEFINE_TYPE_WITH_CODE (TestSaslAuthServer, test_sasl_auth_server, G_TYPE_OBJECT, + G_ADD_PRIVATE (TestSaslAuthServer)) + static void received_stanza (GObject *source, GAsyncResult *result, gpointer user_data); @@ -113,8 +114,7 @@ test_sasl_auth_server_init (TestSaslAuthServer *self) { TestSaslAuthServerPrivate *priv; - self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, TEST_TYPE_SASL_AUTH_SERVER, - TestSaslAuthServerPrivate); + self->priv = test_sasl_auth_server_get_instance_private (self); priv = self->priv; priv->username = NULL; @@ -132,9 +132,6 @@ test_sasl_auth_server_class_init ( { GObjectClass *object_class = G_OBJECT_CLASS (test_sasl_auth_server_class); - g_type_class_add_private (test_sasl_auth_server_class, - sizeof (TestSaslAuthServerPrivate)); - object_class->dispose = test_sasl_auth_server_dispose; object_class->finalize = test_sasl_auth_server_finalize; @@ -166,7 +163,7 @@ test_sasl_auth_server_dispose (GObject *object) priv->sasl_conn = NULL; #endif - g_warn_if_fail (priv->result == NULL); + g_warn_if_fail (priv->task == NULL); g_warn_if_fail (priv->cancellable == NULL); if (G_OBJECT_CLASS (test_sasl_auth_server_parent_class)->dispose) @@ -293,20 +290,18 @@ post_auth_recv_stanza (GObject *source, } else if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { - GSimpleAsyncResult *r = priv->result; + GTask *t = priv->task; - priv->result = NULL; + priv->task = NULL; if (priv->cancellable != NULL) g_object_unref (priv->cancellable); priv->cancellable = NULL; - g_simple_async_result_set_from_error (r, error); + g_task_return_error (t, error); - g_simple_async_result_complete (r); - g_object_unref (r); - g_error_free (error); + g_object_unref (t); } else { @@ -353,19 +348,19 @@ post_auth_open_sent (GObject *source, g_assert (ok); /* if our caller wanted control back, hand it back here: */ - if (priv->result != NULL) + if (priv->task != NULL) { - GSimpleAsyncResult *r = priv->result; + GTask *t = priv->task; - priv->result = NULL; + priv->task = NULL; if (priv->cancellable != NULL) g_object_unref (priv->cancellable); priv->cancellable = NULL; - g_simple_async_result_complete (r); - g_object_unref (r); + g_task_return_boolean (t, TRUE); + g_object_unref (t); } else { @@ -440,25 +435,27 @@ failure_sent (GObject *source, { TestSaslAuthServer *tsas = TEST_SASL_AUTH_SERVER (user_data); TestSaslAuthServerPrivate *priv = tsas->priv; - GSimpleAsyncResult *r = priv->result; + GTask *t = priv->task; GError *error = NULL; gboolean ok; - priv->result = NULL; + priv->task = NULL; ok = wocky_xmpp_connection_send_stanza_finish ( WOCKY_XMPP_CONNECTION (source), result, &error); g_assert_no_error (error); g_assert (ok); - if (r != NULL) + if (t != NULL) { if (priv->cancellable != NULL) g_object_unref (priv->cancellable); priv->cancellable = NULL; - g_simple_async_result_complete (r); - g_object_unref (r); + g_task_return_boolean (t, TRUE); + g_object_unref (t); } + /* release the grip, we're done */ + g_object_unref (tsas); } static void @@ -474,7 +471,9 @@ not_authorized (TestSaslAuthServer *self) WOCKY_STANZA_SUB_TYPE_NONE, NULL, NULL, '(', "not-authorized", ')', NULL); - wocky_xmpp_connection_send_stanza_async (priv->conn, s, NULL, + /* Ensure we have something to handle the callback at the end of the test */ + g_object_ref (self); + wocky_xmpp_connection_send_stanza_async (priv->conn, s, priv->cancellable, failure_sent, self); g_object_unref (s); @@ -957,6 +956,7 @@ test_sasl_server_auth_getopt (void *context, const char *plugin_name, { "scram_secret_generate", "1"}, { NULL, NULL }, }; + *result = NULL; for (i = 0; options[i].name != NULL; i++) { @@ -1053,19 +1053,11 @@ test_sasl_auth_server_auth_finish (TestSaslAuthServer *self, GAsyncResult *res, GError **error) { - gboolean ok = FALSE; - TestSaslAuthServerPrivate *priv = self->priv; - - if (g_simple_async_result_propagate_error ( - G_SIMPLE_ASYNC_RESULT (res), error)) - return FALSE; + g_return_val_if_fail (g_task_is_valid (res, self), FALSE); - ok = g_simple_async_result_is_valid (G_ASYNC_RESULT (res), - G_OBJECT (self), - test_sasl_auth_server_auth_async); - g_return_val_if_fail (ok, FALSE); + g_return_val_if_fail (g_task_propagate_boolean (G_TASK (res), error), FALSE); - return (priv->state == AUTH_STATE_AUTHENTICATED); + return (self->priv->state == AUTH_STATE_AUTHENTICATED); } void @@ -1091,8 +1083,7 @@ test_sasl_auth_server_auth_async (GObject *obj, if (cancellable != NULL) priv->cancellable = g_object_ref (cancellable); - priv->result = g_simple_async_result_new (obj, cb, data, - test_sasl_auth_server_auth_async); + priv->task = g_task_new (obj, cancellable, cb, data); } handle_auth (self, auth); |