diff options
Diffstat (limited to 'tests/contact-run-until-ready-2.c')
-rw-r--r-- | tests/contact-run-until-ready-2.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/contact-run-until-ready-2.c b/tests/contact-run-until-ready-2.c new file mode 100644 index 000000000..03c7e8a64 --- /dev/null +++ b/tests/contact-run-until-ready-2.c @@ -0,0 +1,63 @@ +#include <stdlib.h> + +#include <glib.h> +#include <gtk/gtk.h> +#include <libempathy/empathy-contact-factory.h> +#include <libempathy/empathy-contact-manager.h> +#include <libmissioncontrol/mc-account.h> + +static void +pending_cb (EmpathyContactManager *manager, + EmpathyContact *contact, + EmpathyContact *actor, + guint reason, + gchar *message, + gboolean is_pending, + gpointer data) +{ + if (!is_pending) { + return; + } + + g_print ("Contact handle=%d alias=%s\n", + empathy_contact_get_handle (contact), + empathy_contact_get_name (contact)); + + empathy_contact_run_until_ready (contact, + EMPATHY_CONTACT_READY_NAME, + NULL); + + g_print ("Contact ready: handle=%d alias=%s ready=%d\n", + empathy_contact_get_handle (contact), + empathy_contact_get_name (contact), + empathy_contact_get_ready (contact)); + + g_object_unref (manager); + gtk_main_quit (); +} + +static gboolean +callback (gpointer data) +{ + EmpathyContactManager *manager; + + manager = empathy_contact_manager_new (); + g_signal_connect (manager, "pendings-changed", + G_CALLBACK (pending_cb), + NULL); + + return FALSE; +} + +int +main (int argc, char **argv) +{ + gtk_init (&argc, &argv); + + g_idle_add (callback, NULL); + + gtk_main (); + + return EXIT_SUCCESS; +} + |