aboutsummaryrefslogtreecommitdiffstats
path: root/tests/interactive/empetit.c
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2009-10-27 23:22:55 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2009-10-29 17:38:31 +0800
commit4c2eb652ef61dd0f5ccac27e47f261417793aa73 (patch)
tree1883254e26335fdd02a70f3e18c120db4ea7fc5b /tests/interactive/empetit.c
parentfb12577193262ad17ef2fc49d2324a7b23458610 (diff)
downloadgsoc2013-empathy-4c2eb652ef61dd0f5ccac27e47f261417793aa73.tar
gsoc2013-empathy-4c2eb652ef61dd0f5ccac27e47f261417793aa73.tar.gz
gsoc2013-empathy-4c2eb652ef61dd0f5ccac27e47f261417793aa73.tar.bz2
gsoc2013-empathy-4c2eb652ef61dd0f5ccac27e47f261417793aa73.tar.lz
gsoc2013-empathy-4c2eb652ef61dd0f5ccac27e47f261417793aa73.tar.xz
gsoc2013-empathy-4c2eb652ef61dd0f5ccac27e47f261417793aa73.tar.zst
gsoc2013-empathy-4c2eb652ef61dd0f5ccac27e47f261417793aa73.zip
move test app needing user interaction to interactive/
tests/ should be used only for automatic unit tests.
Diffstat (limited to 'tests/interactive/empetit.c')
-rw-r--r--tests/interactive/empetit.c88
1 files changed, 88 insertions, 0 deletions
diff --git a/tests/interactive/empetit.c b/tests/interactive/empetit.c
new file mode 100644
index 000000000..e2eb61f66
--- /dev/null
+++ b/tests/interactive/empetit.c
@@ -0,0 +1,88 @@
+#include "config.h"
+
+#include <gtk/gtk.h>
+
+#include <libempathy/empathy-contact-manager.h>
+#include <libempathy/empathy-dispatcher.h>
+
+#include <libempathy-gtk/empathy-ui-utils.h>
+#include <libempathy-gtk/empathy-contact-list-store.h>
+#include <libempathy-gtk/empathy-contact-selector.h>
+
+static GtkWidget *window = NULL;
+
+static void
+chat_cb (EmpathyDispatchOperation *dispatch,
+ const GError *error,
+ gpointer user_data)
+{
+ GtkWidget *dialog;
+
+ if (error != NULL)
+ {
+ dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_MODAL,
+ GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s",
+ error->message ? error->message : "No error message");
+
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ }
+
+ gtk_widget_destroy (window);
+}
+
+static void
+clicked_cb (GtkButton *button,
+ gpointer data)
+{
+ EmpathyContactSelector *selector = EMPATHY_CONTACT_SELECTOR (data);
+ EmpathyContact *contact;
+
+ contact = empathy_contact_selector_dup_selected (selector);
+
+ if (!contact)
+ return;
+
+ empathy_dispatcher_chat_with_contact (contact, chat_cb, NULL);
+
+ g_object_unref (contact);
+}
+
+int main (int argc,
+ char *argv[])
+{
+ EmpathyContactManager *manager;
+ GtkWidget *vbox, *button, *selector;
+
+ gtk_init (&argc, &argv);
+
+ empathy_gtk_init ();
+
+ manager = empathy_contact_manager_dup_singleton ();
+ selector = empathy_contact_selector_new (EMPATHY_CONTACT_LIST (manager));
+
+ empathy_contact_selector_set_visible (EMPATHY_CONTACT_SELECTOR (selector),
+ (EmpathyContactSelectorFilterFunc) empathy_contact_can_send_files, NULL);
+
+ vbox = gtk_vbox_new (FALSE, 2);
+
+ gtk_box_pack_start (GTK_BOX (vbox), selector, FALSE, FALSE, 5);
+
+ button = gtk_button_new_with_label ("Chat");
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (clicked_cb), (gpointer) selector);
+ gtk_box_pack_start(GTK_BOX (vbox), button, FALSE, FALSE, 5);
+
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ g_signal_connect (G_OBJECT (window), "destroy",
+ gtk_main_quit, NULL);
+ gtk_window_set_title (GTK_WINDOW (window),"Empetit");
+ gtk_container_set_border_width (GTK_CONTAINER (window), 5);
+ gtk_container_add (GTK_CONTAINER (window), vbox);
+ gtk_widget_show_all (window);
+
+ gtk_main ();
+
+ g_object_unref (manager);
+
+ return 0;
+}