diff options
-rw-r--r-- | tests/Makefile.am | 4 | ||||
-rw-r--r-- | tests/contact-run-until-ready-2.c | 63 |
2 files changed, 66 insertions, 1 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 7d32dab61..5f8cbb6e4 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -18,10 +18,12 @@ LDADD = \ noinst_PROGRAMS = \ contact-manager \ - contact-run-until-ready + contact-run-until-ready \ + contact-run-until-ready-2 contact_manager_SOURCES = contact-manager.c contact_run_until_ready_SOURCES = contact-run-until-ready.c +contact_run_until_ready_2_SOURCES = contact-run-until-ready-2.c check_PROGRAMS = check-main TESTS = check-main 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; +} + |