summaryrefslogtreecommitdiff
path: root/gcr/tests/frob-tree-selector.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcr/tests/frob-tree-selector.c')
-rw-r--r--gcr/tests/frob-tree-selector.c208
1 files changed, 0 insertions, 208 deletions
diff --git a/gcr/tests/frob-tree-selector.c b/gcr/tests/frob-tree-selector.c
deleted file mode 100644
index 313781e6..00000000
--- a/gcr/tests/frob-tree-selector.c
+++ /dev/null
@@ -1,208 +0,0 @@
-
-#include "config.h"
-
-#include "gcr/gcr.h"
-
-#include <gtk/gtk.h>
-
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-#define TEST_TYPE_COLLECTION (test_collection_get_type ())
-#define TEST_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TEST_TYPE_COLLECTION, TestCollection))
-#define TEST_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TEST_TYPE_COLLECTION))
-
-typedef struct _TestCollection TestCollection;
-typedef struct _TestCollectionClass TestCollectionClass;
-typedef struct _TestCollectionPrivate TestCollectionPrivate;
-
-struct _TestCollection {
- GcrSimpleCollection parent;
- gchar *label;
-};
-
-struct _TestCollectionClass {
- GcrSimpleCollectionClass parent_class;
-};
-
-GType test_collection_get_type (void) G_GNUC_CONST;
-
-enum {
- PROP_0,
- PROP_LABEL,
-};
-
-G_DEFINE_TYPE (TestCollection, test_collection, GCR_TYPE_SIMPLE_COLLECTION);
-
-static GHashTable *all_collections = NULL;
-
-static void
-test_collection_init (TestCollection *self)
-{
-
-}
-
-static void
-test_collection_finalize (GObject *obj)
-{
- TestCollection *self = TEST_COLLECTION (obj);
- g_free (self->label);
- g_hash_table_remove (all_collections, self);
- G_OBJECT_CLASS (test_collection_parent_class)->finalize (obj);
-}
-
-static void
-test_collection_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- TestCollection *self = TEST_COLLECTION (obj);
- switch (prop_id) {
- case PROP_LABEL:
- g_value_set_string (value, self->label);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-test_collection_class_init (TestCollectionClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- gobject_class->get_property = test_collection_get_property;
- gobject_class->finalize = test_collection_finalize;
-
- g_object_class_install_property (gobject_class, PROP_LABEL,
- g_param_spec_string ("label", "label", "label", NULL, G_PARAM_READABLE));
-}
-
-static GcrSimpleCollection *
-test_collection_instance (const gchar *label)
-{
- TestCollection *collection = NULL;
-
- g_assert (label);
-
- if (!all_collections) {
- all_collections = g_hash_table_new (g_str_hash, g_str_equal);
- } else {
- collection = g_hash_table_lookup (all_collections, label);
- if (collection != NULL)
- return g_object_ref (collection);
- }
-
- collection = g_object_new (TEST_TYPE_COLLECTION, NULL);
- collection->label = g_strdup (label);
- g_hash_table_insert (all_collections, collection->label, collection);
- return GCR_SIMPLE_COLLECTION (collection);
-}
-
-static void
-on_parser_parsed (GcrParser *parser, gpointer user_data)
-{
- GcrSimpleCollection *collection = user_data;
- GcrSimpleCollection *testcol;
- GcrRenderer *renderer;
- gchar *group;
-
- renderer = gcr_renderer_create (gcr_parser_get_parsed_label (parser),
- gcr_parser_get_parsed_attributes (parser));
- if (renderer == NULL)
- return;
-
- if (GCR_IS_CERTIFICATE (renderer))
- group = gcr_certificate_get_subject_part (GCR_CERTIFICATE (renderer), "O");
- else
- group = g_strdup (G_OBJECT_TYPE_NAME (renderer));
-
-
- testcol = test_collection_instance (group);
- if (!gcr_simple_collection_contains (collection, G_OBJECT (testcol)))
- gcr_simple_collection_add (collection, G_OBJECT (testcol));
-
- gcr_simple_collection_add (GCR_SIMPLE_COLLECTION (testcol), G_OBJECT (renderer));
- g_object_unref (renderer);
- g_object_unref (testcol);
- g_free (group);
-}
-
-static void
-add_to_selector (GcrParser *parser, const gchar *path)
-{
- GError *err = NULL;
- guchar *data;
- gsize n_data;
-
- if (!g_file_get_contents (path, (gchar**)&data, &n_data, NULL))
- g_error ("couldn't read file: %s", path);
-
- if (!gcr_parser_parse_data (parser, data, n_data, &err))
- g_error ("couldn't parse data: %s", err->message);
-
- g_free (data);
-}
-
-int
-main (int argc, char *argv[])
-{
- GcrCollection *collection;
- GcrTreeSelector *selector;
- GtkDialog *dialog;
- GcrParser *parser;
- GtkWidget *scroll;
- GList *selected, *l;
- int i;
-
- gtk_init (&argc, &argv);
-
- dialog = GTK_DIALOG (gtk_dialog_new ());
- g_object_ref_sink (dialog);
-
- collection = gcr_simple_collection_new ();
- selector = gcr_tree_selector_new (collection, GCR_CERTIFICATE_COLUMNS);
-
- scroll = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scroll), GTK_SHADOW_ETCHED_IN);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_container_add (GTK_CONTAINER (scroll), GTK_WIDGET (selector));
- gtk_widget_show_all (scroll);
-
- gtk_widget_show (GTK_WIDGET (selector));
- gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (dialog)), GTK_WIDGET (scroll), TRUE, TRUE, 0);
-
- gtk_window_set_default_size (GTK_WINDOW (dialog), 550, 400);
- gtk_container_set_border_width (GTK_CONTAINER (dialog), 20);
-
- parser = gcr_parser_new ();
- g_signal_connect (parser, "parsed", G_CALLBACK (on_parser_parsed), collection);
-
- if (argc == 1) {
- add_to_selector (parser, SRCDIR "/files/ca-certificates.crt");
- } else {
- for (i = 1; i < argc; ++i)
- add_to_selector (parser, argv[i]);
- }
-
- g_object_unref (parser);
- g_object_unref (collection);
-
- gtk_dialog_run (dialog);
-
- selected = gcr_tree_selector_get_selected (selector);
- for (l = selected; l; l = g_list_next (l)) {
- gchar *label;
- g_object_get (l->data, "label", &label, NULL);
- g_print ("selected: %s\n", label);
- g_free (label);
- }
- g_list_free (selected);
-
- gtk_widget_destroy (GTK_WIDGET (dialog));
- g_object_unref (dialog);
-
- return 0;
-}