Blame gtk/tests/builder.c

Packit Service fb6fa5
/* buildertest.c
Packit Service fb6fa5
 * Copyright (C) 2006-2007 Async Open Source
Packit Service fb6fa5
 * Authors: Johan Dahlin
Packit Service fb6fa5
 *          Henrique Romano
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * This library is free software; you can redistribute it and/or
Packit Service fb6fa5
 * modify it under the terms of the GNU Library General Public
Packit Service fb6fa5
 * License as published by the Free Software Foundation; either
Packit Service fb6fa5
 * version 2 of the License, or (at your option) any later version.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * This library is distributed in the hope that it will be useful,
Packit Service fb6fa5
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service fb6fa5
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service fb6fa5
 * Library General Public License for more details.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * You should have received a copy of the GNU Library General Public
Packit Service fb6fa5
 * License along with this library; if not, write to the
Packit Service fb6fa5
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Packit Service fb6fa5
 * Boston, MA 02111-1307, USA.
Packit Service fb6fa5
 */
Packit Service fb6fa5
Packit Service fb6fa5
#include <string.h>
Packit Service fb6fa5
#include <libintl.h>
Packit Service fb6fa5
#include <locale.h>
Packit Service fb6fa5
#include <math.h>
Packit Service fb6fa5
Packit Service fb6fa5
#include <gtk/gtk.h>
Packit Service fb6fa5
#include <gdk/gdkkeysyms.h>
Packit Service fb6fa5
Packit Service fb6fa5
/* Copied from gtkiconfactory.c; keep in sync! */
Packit Service fb6fa5
struct _GtkIconSet
Packit Service fb6fa5
{
Packit Service fb6fa5
  guint ref_count;
Packit Service fb6fa5
  GSList *sources;
Packit Service fb6fa5
  GSList *cache;
Packit Service fb6fa5
  guint cache_size;
Packit Service fb6fa5
  guint cache_serial;
Packit Service fb6fa5
};
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
static GtkBuilder *
Packit Service fb6fa5
builder_new_from_string (const gchar *buffer,
Packit Service fb6fa5
                         gsize length,
Packit Service fb6fa5
                         const gchar *domain)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  GError *error = NULL;
Packit Service fb6fa5
Packit Service fb6fa5
  builder = gtk_builder_new ();
Packit Service fb6fa5
  if (domain)
Packit Service fb6fa5
    gtk_builder_set_translation_domain (builder, domain);
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, buffer, length, &error);
Packit Service fb6fa5
  if (error)
Packit Service fb6fa5
    {
Packit Service fb6fa5
      g_print ("ERROR: %s", error->message);
Packit Service fb6fa5
      g_error_free (error);
Packit Service fb6fa5
    }
Packit Service fb6fa5
Packit Service fb6fa5
  return builder;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_parser (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  GError *error;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = gtk_builder_new ();
Packit Service fb6fa5
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, "<xxx/>", -1, &error);
Packit Service fb6fa5
  g_assert (g_error_matches (error, 
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_UNHANDLED_TAG));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
  
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, "<interface invalid=\"X\"/>", -1, &error);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_ATTRIBUTE));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, "<interface><child/></interface>", -1, &error);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR, 
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_TAG));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, "<interface><object class=\"GtkVBox\" id=\"a\"><object class=\"GtkHBox\" id=\"b\"/></object></interface>", -1, &error);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_TAG));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, "<interface><object class=\"Unknown\" id=\"a\"></object></interface>", -1, &error);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_VALUE));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, "<interface><object class=\"GtkWidget\" id=\"a\" constructor=\"none\"></object></interface>", -1, &error);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_VALUE));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, "<interface><object class=\"GtkButton\" id=\"a\"><child internal-child=\"foobar\"><object class=\"GtkButton\" id=\"int\"/></child></object></interface>", -1, &error);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_VALUE));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, "<interface><object class=\"GtkButton\" id=\"a\"></object><object class=\"GtkButton\" id=\"a\"/></object></interface>", -1, &error);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_DUPLICATE_ID));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static int normal = 0;
Packit Service fb6fa5
static int after = 0;
Packit Service fb6fa5
static int object = 0;
Packit Service fb6fa5
static int object_after = 0;
Packit Service fb6fa5
Packit Service fb6fa5
void /* exported for GtkBuilder */
Packit Service fb6fa5
signal_normal (GtkWindow *window, GParamSpec spec)
Packit Service fb6fa5
{
Packit Service fb6fa5
  g_assert (GTK_IS_WINDOW (window));
Packit Service fb6fa5
  g_assert (normal == 0);
Packit Service fb6fa5
  g_assert (after == 0);
Packit Service fb6fa5
Packit Service fb6fa5
  normal++;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
void /* exported for GtkBuilder */
Packit Service fb6fa5
signal_after (GtkWindow *window, GParamSpec spec)
Packit Service fb6fa5
{
Packit Service fb6fa5
  g_assert (GTK_IS_WINDOW (window));
Packit Service fb6fa5
  g_assert (normal == 1);
Packit Service fb6fa5
  g_assert (after == 0);
Packit Service fb6fa5
  
Packit Service fb6fa5
  after++;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
void /* exported for GtkBuilder */
Packit Service fb6fa5
signal_object (GtkButton *button, GParamSpec spec)
Packit Service fb6fa5
{
Packit Service fb6fa5
  g_assert (GTK_IS_BUTTON (button));
Packit Service fb6fa5
  g_assert (object == 0);
Packit Service fb6fa5
  g_assert (object_after == 0);
Packit Service fb6fa5
Packit Service fb6fa5
  object++;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
void /* exported for GtkBuilder */
Packit Service fb6fa5
signal_object_after (GtkButton *button, GParamSpec spec)
Packit Service fb6fa5
{
Packit Service fb6fa5
  g_assert (GTK_IS_BUTTON (button));
Packit Service fb6fa5
  g_assert (object == 1);
Packit Service fb6fa5
  g_assert (object_after == 0);
Packit Service fb6fa5
Packit Service fb6fa5
  object_after++;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
void /* exported for GtkBuilder */
Packit Service fb6fa5
signal_first (GtkButton *button, GParamSpec spec)
Packit Service fb6fa5
{
Packit Service fb6fa5
  g_assert (normal == 0);
Packit Service fb6fa5
  normal = 10;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
void /* exported for GtkBuilder */
Packit Service fb6fa5
signal_second (GtkButton *button, GParamSpec spec)
Packit Service fb6fa5
{
Packit Service fb6fa5
  g_assert (normal == 10);
Packit Service fb6fa5
  normal = 20;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
void /* exported for GtkBuilder */
Packit Service fb6fa5
signal_extra (GtkButton *button, GParamSpec spec)
Packit Service fb6fa5
{
Packit Service fb6fa5
  g_assert (normal == 20);
Packit Service fb6fa5
  normal = 30;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
void /* exported for GtkBuilder */
Packit Service fb6fa5
signal_extra2 (GtkButton *button, GParamSpec spec)
Packit Service fb6fa5
{
Packit Service fb6fa5
  g_assert (normal == 30);
Packit Service fb6fa5
  normal = 40;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_connect_signals (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  GObject *window;
Packit Service fb6fa5
  const gchar buffer[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkButton\" id=\"button\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <signal name=\"notify::title\" handler=\"signal_normal\"/>"
Packit Service fb6fa5
    "    <signal name=\"notify::title\" handler=\"signal_after\" after=\"yes\"/>"
Packit Service fb6fa5
    "    
Packit Service fb6fa5
    "            object=\"button\"/>"
Packit Service fb6fa5
    "    
Packit Service fb6fa5
    "            object=\"button\" after=\"yes\"/>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar buffer_order[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <signal name=\"notify::title\" handler=\"signal_first\"/>"
Packit Service fb6fa5
    "    <signal name=\"notify::title\" handler=\"signal_second\"/>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar buffer_extra[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window2\">"
Packit Service fb6fa5
    "    <signal name=\"notify::title\" handler=\"signal_extra\"/>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar buffer_extra2[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window3\">"
Packit Service fb6fa5
    "    <signal name=\"notify::title\" handler=\"signal_extra2\"/>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar buffer_after_child[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkButton\" id=\"button1\"/>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "    <signal name=\"notify::title\" handler=\"signal_normal\"/>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  gtk_builder_connect_signals (builder, NULL);
Packit Service fb6fa5
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  gtk_window_set_title (GTK_WINDOW (window), "test");
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert_cmpint (normal, ==, 1);
Packit Service fb6fa5
  g_assert_cmpint (after, ==, 1);
Packit Service fb6fa5
  g_assert_cmpint (object, ==, 1);
Packit Service fb6fa5
  g_assert_cmpint (object_after, ==, 1);
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer_order, -1, NULL);
Packit Service fb6fa5
  gtk_builder_connect_signals (builder, NULL);
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  normal = 0;
Packit Service fb6fa5
  gtk_window_set_title (GTK_WINDOW (window), "test");
Packit Service fb6fa5
  g_assert (normal == 20);
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, buffer_extra,
Packit Service fb6fa5
			       strlen (buffer_extra), NULL);
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, buffer_extra2,
Packit Service fb6fa5
			       strlen (buffer_extra2), NULL);
Packit Service fb6fa5
  gtk_builder_connect_signals (builder, NULL);
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window2");
Packit Service fb6fa5
  gtk_window_set_title (GTK_WINDOW (window), "test");
Packit Service fb6fa5
  g_assert (normal == 30);
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window3");
Packit Service fb6fa5
  gtk_window_set_title (GTK_WINDOW (window), "test");
Packit Service fb6fa5
  g_assert (normal == 40);
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
  /* new test, reset globals */
Packit Service fb6fa5
  after = 0;
Packit Service fb6fa5
  normal = 0;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer_after_child, -1, NULL);
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  gtk_builder_connect_signals (builder, NULL);
Packit Service fb6fa5
  gtk_window_set_title (GTK_WINDOW (window), "test");
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (normal == 1);
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_uimanager_simple (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  GObject *window, *uimgr, *menubar;
Packit Service fb6fa5
  GObject *menu, *label;
Packit Service fb6fa5
  GList *children;
Packit Service fb6fa5
  const gchar buffer[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkUIManager\" id=\"uimgr1\"/>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
    
Packit Service fb6fa5
  const gchar buffer2[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkUIManager\" id=\"uimgr1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkActionGroup\" id=\"ag1\">"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkAction\" id=\"file\">"
Packit Service fb6fa5
    "            <property name=\"label\">_File</property>"
Packit Service fb6fa5
    "          </object>"
Packit Service fb6fa5
    "          <accelerator key=\"n\" modifiers=\"GDK_CONTROL_MASK\"/>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "    <ui>"
Packit Service fb6fa5
    "      <menubar name=\"menubar1\">"
Packit Service fb6fa5
    "        <menu action=\"file\">"
Packit Service fb6fa5
    "        </menu>"
Packit Service fb6fa5
    "      </menubar>"
Packit Service fb6fa5
    "    </ui>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkMenuBar\" id=\"menubar1\" constructor=\"uimgr1\"/>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
Packit Service fb6fa5
  uimgr = gtk_builder_get_object (builder, "uimgr1");
Packit Service fb6fa5
  g_assert (GTK_IS_UI_MANAGER (uimgr));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer2, -1, NULL);
Packit Service fb6fa5
Packit Service fb6fa5
  menubar = gtk_builder_get_object (builder, "menubar1");
Packit Service fb6fa5
  g_assert (GTK_IS_MENU_BAR (menubar));
Packit Service fb6fa5
Packit Service fb6fa5
  children = gtk_container_get_children (GTK_CONTAINER (menubar));
Packit Service fb6fa5
  menu = children->data;
Packit Service fb6fa5
  g_assert (GTK_IS_MENU_ITEM (menu));
Packit Service fb6fa5
  g_assert (strcmp (GTK_WIDGET (menu)->name, "file") == 0);
Packit Service fb6fa5
  g_list_free (children);
Packit Service fb6fa5
  
Packit Service fb6fa5
  label = G_OBJECT (GTK_BIN (menu)->child);
Packit Service fb6fa5
  g_assert (GTK_IS_LABEL (label));
Packit Service fb6fa5
  g_assert (strcmp (gtk_label_get_text (GTK_LABEL (label)), "File") == 0);
Packit Service fb6fa5
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_domain (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  const gchar buffer1[] = "<interface/>";
Packit Service fb6fa5
  const gchar buffer2[] = "<interface domain=\"domain\"/>";
Packit Service fb6fa5
  const gchar *domain;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer1, -1, NULL);
Packit Service fb6fa5
  domain = gtk_builder_get_translation_domain (builder);
Packit Service fb6fa5
  g_assert (domain == NULL);
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer1, -1, "domain-1");
Packit Service fb6fa5
  domain = gtk_builder_get_translation_domain (builder);
Packit Service fb6fa5
  g_assert (domain);
Packit Service fb6fa5
  g_assert (strcmp (domain, "domain-1") == 0);
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer2, -1, NULL);
Packit Service fb6fa5
  domain = gtk_builder_get_translation_domain (builder);
Packit Service fb6fa5
  g_assert (domain == NULL);
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
#if 0
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_translation (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  const gchar buffer[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkLabel\" id=\"label\">"
Packit Service fb6fa5
    "        <property name=\"label\" translatable=\"yes\">File</property>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GtkLabel *window, *label;
Packit Service fb6fa5
Packit Service fb6fa5
  setlocale (LC_ALL, "sv_SE");
Packit Service fb6fa5
  textdomain ("builder");
Packit Service fb6fa5
  bindtextdomain ("builder", "tests");
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  label = GTK_LABEL (gtk_builder_get_object (builder, "label"));
Packit Service fb6fa5
  g_assert (strcmp (gtk_label_get_text (label), "Arkiv") == 0);
Packit Service fb6fa5
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
#endif
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_sizegroup (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder * builder;
Packit Service fb6fa5
  const gchar buffer1[] =
Packit Service fb6fa5
    "<interface domain=\"test\">"
Packit Service fb6fa5
    "  <object class=\"GtkSizeGroup\" id=\"sizegroup1\">"
Packit Service fb6fa5
    "    <property name=\"mode\">GTK_SIZE_GROUP_HORIZONTAL</property>"
Packit Service fb6fa5
    "    <widgets>"
Packit Service fb6fa5
    "      <widget name=\"radio1\"/>"
Packit Service fb6fa5
    "      <widget name=\"radio2\"/>"
Packit Service fb6fa5
    "    </widgets>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkVBox\" id=\"vbox1\">"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkRadioButton\" id=\"radio1\"/>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkRadioButton\" id=\"radio2\"/>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar buffer2[] =
Packit Service fb6fa5
    "<interface domain=\"test\">"
Packit Service fb6fa5
    "  <object class=\"GtkSizeGroup\" id=\"sizegroup1\">"
Packit Service fb6fa5
    "    <property name=\"mode\">GTK_SIZE_GROUP_HORIZONTAL</property>"
Packit Service fb6fa5
    "    <widgets>"
Packit Service fb6fa5
    "    </widgets>"
Packit Service fb6fa5
    "   </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar buffer3[] =
Packit Service fb6fa5
    "<interface domain=\"test\">"
Packit Service fb6fa5
    "  <object class=\"GtkSizeGroup\" id=\"sizegroup1\">"
Packit Service fb6fa5
    "    <property name=\"mode\">GTK_SIZE_GROUP_HORIZONTAL</property>"
Packit Service fb6fa5
    "    <widgets>"
Packit Service fb6fa5
    "      <widget name=\"radio1\"/>"
Packit Service fb6fa5
    "      <widget name=\"radio2\"/>"
Packit Service fb6fa5
    "    </widgets>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "  <object class=\"GtkSizeGroup\" id=\"sizegroup2\">"
Packit Service fb6fa5
    "    <property name=\"mode\">GTK_SIZE_GROUP_HORIZONTAL</property>"
Packit Service fb6fa5
    "    <widgets>"
Packit Service fb6fa5
    "      <widget name=\"radio1\"/>"
Packit Service fb6fa5
    "      <widget name=\"radio2\"/>"
Packit Service fb6fa5
    "    </widgets>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkVBox\" id=\"vbox1\">"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkRadioButton\" id=\"radio1\"/>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkRadioButton\" id=\"radio2\"/>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GObject *sizegroup;
Packit Service fb6fa5
  GSList *widgets;
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer1, -1, NULL);
Packit Service fb6fa5
  sizegroup = gtk_builder_get_object (builder, "sizegroup1");
Packit Service fb6fa5
  widgets = gtk_size_group_get_widgets (GTK_SIZE_GROUP (sizegroup));
Packit Service fb6fa5
  g_assert (g_slist_length (widgets) == 2);
Packit Service fb6fa5
  g_slist_free (widgets);
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer2, -1, NULL);
Packit Service fb6fa5
  sizegroup = gtk_builder_get_object (builder, "sizegroup1");
Packit Service fb6fa5
  widgets = gtk_size_group_get_widgets (GTK_SIZE_GROUP (sizegroup));
Packit Service fb6fa5
  g_assert (g_slist_length (widgets) == 0);
Packit Service fb6fa5
  g_slist_free (widgets);
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer3, -1, NULL);
Packit Service fb6fa5
  sizegroup = gtk_builder_get_object (builder, "sizegroup1");
Packit Service fb6fa5
  widgets = gtk_size_group_get_widgets (GTK_SIZE_GROUP (sizegroup));
Packit Service fb6fa5
  g_assert (g_slist_length (widgets) == 2);
Packit Service fb6fa5
  g_slist_free (widgets);
Packit Service fb6fa5
  sizegroup = gtk_builder_get_object (builder, "sizegroup2");
Packit Service fb6fa5
  widgets = gtk_size_group_get_widgets (GTK_SIZE_GROUP (sizegroup));
Packit Service fb6fa5
  g_assert (g_slist_length (widgets) == 2);
Packit Service fb6fa5
  g_slist_free (widgets);
Packit Service fb6fa5
Packit Service fb6fa5
#if 0
Packit Service fb6fa5
  {
Packit Service fb6fa5
    GObject *window;
Packit Service fb6fa5
    window = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
    gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
  }
Packit Service fb6fa5
#endif  
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_list_store (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  const gchar buffer1[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkListStore\" id=\"liststore1\">"
Packit Service fb6fa5
    "    <columns>"
Packit Service fb6fa5
    "      <column type=\"gchararray\"/>"
Packit Service fb6fa5
    "      <column type=\"guint\"/>"
Packit Service fb6fa5
    "    </columns>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const char buffer2[] = 
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkListStore\" id=\"liststore1\">"
Packit Service fb6fa5
    "    <columns>"
Packit Service fb6fa5
    "      <column type=\"gchararray\"/>"
Packit Service fb6fa5
    "      <column type=\"gchararray\"/>"
Packit Service fb6fa5
    "      <column type=\"gint\"/>"
Packit Service fb6fa5
    "    </columns>"
Packit Service fb6fa5
    "    <data>"
Packit Service fb6fa5
    "      <row>"
Packit Service fb6fa5
    "        John"
Packit Service fb6fa5
    "        Doe"
Packit Service fb6fa5
    "        25"
Packit Service fb6fa5
    "      </row>"
Packit Service fb6fa5
    "      <row>"
Packit Service fb6fa5
    "        Johan"
Packit Service fb6fa5
    "        Dole"
Packit Service fb6fa5
    "        50"
Packit Service fb6fa5
    "      </row>"
Packit Service fb6fa5
    "    </data>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const char buffer3[] = 
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkListStore\" id=\"liststore1\">"
Packit Service fb6fa5
    "    <columns>"
Packit Service fb6fa5
    "      <column type=\"gchararray\"/>"
Packit Service fb6fa5
    "      <column type=\"gchararray\"/>"
Packit Service fb6fa5
    "      <column type=\"gint\"/>"
Packit Service fb6fa5
    "    </columns>"
Packit Service fb6fa5
    "    <data>"
Packit Service fb6fa5
    "      <row>"
Packit Service fb6fa5
    "        Doe"
Packit Service fb6fa5
    "        John"
Packit Service fb6fa5
    "        25"
Packit Service fb6fa5
    "      </row>"
Packit Service fb6fa5
    "      <row>"
Packit Service fb6fa5
    "        50"
Packit Service fb6fa5
    "        Dole"
Packit Service fb6fa5
    "        Johan"
Packit Service fb6fa5
    "      </row>"
Packit Service fb6fa5
    "      <row>"
Packit Service fb6fa5
    "        19"
Packit Service fb6fa5
    "      </row>"
Packit Service fb6fa5
    "    </data>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  GObject *store;
Packit Service fb6fa5
  GtkTreeIter iter;
Packit Service fb6fa5
  gchar *surname, *lastname;
Packit Service fb6fa5
  int age;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer1, -1, NULL);
Packit Service fb6fa5
  store = gtk_builder_get_object (builder, "liststore1");
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_n_columns (GTK_TREE_MODEL (store)) == 2);
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 0) == G_TYPE_STRING);
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 1) == G_TYPE_UINT);
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer2, -1, NULL);
Packit Service fb6fa5
  store = gtk_builder_get_object (builder, "liststore1");
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_n_columns (GTK_TREE_MODEL (store)) == 3);
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 0) == G_TYPE_STRING);
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 1) == G_TYPE_STRING);
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 2) == G_TYPE_INT);
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter) == TRUE);
Packit Service fb6fa5
  gtk_tree_model_get (GTK_TREE_MODEL (store), &iter,
Packit Service fb6fa5
                      0, &surname,
Packit Service fb6fa5
                      1, &lastname,
Packit Service fb6fa5
                      2, &age,
Packit Service fb6fa5
                      -1);
Packit Service fb6fa5
  g_assert (surname != NULL);
Packit Service fb6fa5
  g_assert (strcmp (surname, "John") == 0);
Packit Service fb6fa5
  g_free (surname);
Packit Service fb6fa5
  g_assert (lastname != NULL);
Packit Service fb6fa5
  g_assert (strcmp (lastname, "Doe") == 0);
Packit Service fb6fa5
  g_free (lastname);
Packit Service fb6fa5
  g_assert (age == 25);
Packit Service fb6fa5
  g_assert (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter) == TRUE);
Packit Service fb6fa5
  
Packit Service fb6fa5
  gtk_tree_model_get (GTK_TREE_MODEL (store), &iter,
Packit Service fb6fa5
                      0, &surname,
Packit Service fb6fa5
                      1, &lastname,
Packit Service fb6fa5
                      2, &age,
Packit Service fb6fa5
                      -1);
Packit Service fb6fa5
  g_assert (surname != NULL);
Packit Service fb6fa5
  g_assert (strcmp (surname, "Johan") == 0);
Packit Service fb6fa5
  g_free (surname);
Packit Service fb6fa5
  g_assert (lastname != NULL);
Packit Service fb6fa5
  g_assert (strcmp (lastname, "Dole") == 0);
Packit Service fb6fa5
  g_free (lastname);
Packit Service fb6fa5
  g_assert (age == 50);
Packit Service fb6fa5
  g_assert (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter) == FALSE);
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_unref (builder);  
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer3, -1, NULL);
Packit Service fb6fa5
  store = gtk_builder_get_object (builder, "liststore1");
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_n_columns (GTK_TREE_MODEL (store)) == 3);
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 0) == G_TYPE_STRING);
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 1) == G_TYPE_STRING);
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 2) == G_TYPE_INT);
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter) == TRUE);
Packit Service fb6fa5
  gtk_tree_model_get (GTK_TREE_MODEL (store), &iter,
Packit Service fb6fa5
                      0, &surname,
Packit Service fb6fa5
                      1, &lastname,
Packit Service fb6fa5
                      2, &age,
Packit Service fb6fa5
                      -1);
Packit Service fb6fa5
  g_assert (surname != NULL);
Packit Service fb6fa5
  g_assert (strcmp (surname, "John") == 0);
Packit Service fb6fa5
  g_free (surname);
Packit Service fb6fa5
  g_assert (lastname != NULL);
Packit Service fb6fa5
  g_assert (strcmp (lastname, "Doe") == 0);
Packit Service fb6fa5
  g_free (lastname);
Packit Service fb6fa5
  g_assert (age == 25);
Packit Service fb6fa5
  g_assert (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter) == TRUE);
Packit Service fb6fa5
  
Packit Service fb6fa5
  gtk_tree_model_get (GTK_TREE_MODEL (store), &iter,
Packit Service fb6fa5
                      0, &surname,
Packit Service fb6fa5
                      1, &lastname,
Packit Service fb6fa5
                      2, &age,
Packit Service fb6fa5
                      -1);
Packit Service fb6fa5
  g_assert (surname != NULL);
Packit Service fb6fa5
  g_assert (strcmp (surname, "Johan") == 0);
Packit Service fb6fa5
  g_free (surname);
Packit Service fb6fa5
  g_assert (lastname != NULL);
Packit Service fb6fa5
  g_assert (strcmp (lastname, "Dole") == 0);
Packit Service fb6fa5
  g_free (lastname);
Packit Service fb6fa5
  g_assert (age == 50);
Packit Service fb6fa5
  g_assert (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter) == TRUE);
Packit Service fb6fa5
  
Packit Service fb6fa5
  gtk_tree_model_get (GTK_TREE_MODEL (store), &iter,
Packit Service fb6fa5
                      0, &surname,
Packit Service fb6fa5
                      1, &lastname,
Packit Service fb6fa5
                      2, &age,
Packit Service fb6fa5
                      -1);
Packit Service fb6fa5
  g_assert (surname == NULL);
Packit Service fb6fa5
  g_assert (lastname == NULL);
Packit Service fb6fa5
  g_assert (age == 19);
Packit Service fb6fa5
  g_assert (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter) == FALSE);
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_tree_store (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  const gchar buffer[] =
Packit Service fb6fa5
    "<interface domain=\"test\">"
Packit Service fb6fa5
    "  <object class=\"GtkTreeStore\" id=\"treestore1\">"
Packit Service fb6fa5
    "    <columns>"
Packit Service fb6fa5
    "      <column type=\"gchararray\"/>"
Packit Service fb6fa5
    "      <column type=\"guint\"/>"
Packit Service fb6fa5
    "    </columns>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  GObject *store;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  store = gtk_builder_get_object (builder, "treestore1");
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_n_columns (GTK_TREE_MODEL (store)) == 2);
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 0) == G_TYPE_STRING);
Packit Service fb6fa5
  g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 1) == G_TYPE_UINT);
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_types (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  const gchar buffer[] = 
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkAction\" id=\"action\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkActionGroup\" id=\"actiongroup\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkAlignment\" id=\"alignment\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkArrow\" id=\"arrow\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkButton\" id=\"button\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkCheckButton\" id=\"checkbutton\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkDialog\" id=\"dialog\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkDrawingArea\" id=\"drawingarea\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkEventBox\" id=\"eventbox\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkEntry\" id=\"entry\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkFontButton\" id=\"fontbutton\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkHButtonBox\" id=\"hbuttonbox\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkHBox\" id=\"hbox\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkHPaned\" id=\"hpaned\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkHRuler\" id=\"hruler\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkHScale\" id=\"hscale\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkHScrollbar\" id=\"hscrollbar\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkHSeparator\" id=\"hseparator\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkImage\" id=\"image\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkLabel\" id=\"label\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkListStore\" id=\"liststore\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkMenuBar\" id=\"menubar\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkNotebook\" id=\"notebook\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkProgressBar\" id=\"progressbar\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkRadioButton\" id=\"radiobutton\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkSizeGroup\" id=\"sizegroup\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkScrolledWindow\" id=\"scrolledwindow\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkSpinButton\" id=\"spinbutton\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkStatusbar\" id=\"statusbar\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkTextView\" id=\"textview\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkToggleAction\" id=\"toggleaction\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkToggleButton\" id=\"togglebutton\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkToolbar\" id=\"toolbar\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkTreeStore\" id=\"treestore\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkTreeView\" id=\"treeview\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkTable\" id=\"table\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkVBox\" id=\"vbox\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkVButtonBox\" id=\"vbuttonbox\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkVScrollbar\" id=\"vscrollbar\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkVSeparator\" id=\"vseparator\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkViewport\" id=\"viewport\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkVRuler\" id=\"vruler\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkVPaned\" id=\"vpaned\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkVScale\" id=\"vscale\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkUIManager\" id=\"uimanager\"/>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar buffer2[] = 
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object type-func=\"gtk_window_get_type\" id=\"window\"/>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar buffer3[] = 
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object type-func=\"xxx_invalid_get_type_function\" id=\"window\"/>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  GObject *window;
Packit Service fb6fa5
  GError *error;
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "dialog")));
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "window")));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer2, -1, NULL);
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window");
Packit Service fb6fa5
  g_assert (GTK_IS_WINDOW (window));
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
  
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  builder = gtk_builder_new ();
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, buffer3, -1, &error);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_TYPE_FUNCTION));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_spin_button (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  const gchar buffer[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "<object class=\"GtkAdjustment\" id=\"adjustment1\">"
Packit Service fb6fa5
    "<property name=\"lower\">0</property>"
Packit Service fb6fa5
    "<property name=\"upper\">10</property>"
Packit Service fb6fa5
    "<property name=\"step-increment\">2</property>"
Packit Service fb6fa5
    "<property name=\"page-increment\">3</property>"
Packit Service fb6fa5
    "<property name=\"page-size\">0</property>"
Packit Service fb6fa5
    "<property name=\"value\">1</property>"
Packit Service fb6fa5
    "</object>"
Packit Service fb6fa5
    "<object class=\"GtkSpinButton\" id=\"spinbutton1\">"
Packit Service fb6fa5
    "<property name=\"visible\">True</property>"
Packit Service fb6fa5
    "<property name=\"adjustment\">adjustment1</property>"
Packit Service fb6fa5
    "</object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GObject *obj;
Packit Service fb6fa5
  GtkAdjustment *adjustment;
Packit Service fb6fa5
  gdouble value;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  obj = gtk_builder_get_object (builder, "spinbutton1");
Packit Service fb6fa5
  g_assert (GTK_IS_SPIN_BUTTON (obj));
Packit Service fb6fa5
  adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (obj));
Packit Service fb6fa5
  g_assert (GTK_IS_ADJUSTMENT (adjustment));
Packit Service fb6fa5
  g_object_get (adjustment, "value", &value, NULL);
Packit Service fb6fa5
  g_assert (value == 1);
Packit Service fb6fa5
  g_object_get (adjustment, "lower", &value, NULL);
Packit Service fb6fa5
  g_assert (value == 0);
Packit Service fb6fa5
  g_object_get (adjustment, "upper", &value, NULL);
Packit Service fb6fa5
  g_assert (value == 10);
Packit Service fb6fa5
  g_object_get (adjustment, "step-increment", &value, NULL);
Packit Service fb6fa5
  g_assert (value == 2);
Packit Service fb6fa5
  g_object_get (adjustment, "page-increment", &value, NULL);
Packit Service fb6fa5
  g_assert (value == 3);
Packit Service fb6fa5
  g_object_get (adjustment, "page-size", &value, NULL);
Packit Service fb6fa5
  g_assert (value == 0);
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_notebook (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  const gchar buffer[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkNotebook\" id=\"notebook1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkLabel\" id=\"label1\">"
Packit Service fb6fa5
    "        <property name=\"label\">label1</property>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "    <child type=\"tab\">"
Packit Service fb6fa5
    "      <object class=\"GtkLabel\" id=\"tablabel1\">"
Packit Service fb6fa5
    "        <property name=\"label\">tab_label1</property>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkLabel\" id=\"label2\">"
Packit Service fb6fa5
    "        <property name=\"label\">label2</property>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "    <child type=\"tab\">"
Packit Service fb6fa5
    "      <object class=\"GtkLabel\" id=\"tablabel2\">"
Packit Service fb6fa5
    "        <property name=\"label\">tab_label2</property>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GObject *notebook;
Packit Service fb6fa5
  GtkWidget *label;
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  notebook = gtk_builder_get_object (builder, "notebook1");
Packit Service fb6fa5
  g_assert (notebook != NULL);
Packit Service fb6fa5
  g_assert (gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook)) == 2);
Packit Service fb6fa5
Packit Service fb6fa5
  label = gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 0);
Packit Service fb6fa5
  g_assert (GTK_IS_LABEL (label));
Packit Service fb6fa5
  g_assert (strcmp (gtk_label_get_label (GTK_LABEL (label)), "label1") == 0);
Packit Service fb6fa5
  label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (notebook), label);
Packit Service fb6fa5
  g_assert (GTK_IS_LABEL (label));
Packit Service fb6fa5
  g_assert (strcmp (gtk_label_get_label (GTK_LABEL (label)), "tab_label1") == 0);
Packit Service fb6fa5
Packit Service fb6fa5
  label = gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 1);
Packit Service fb6fa5
  g_assert (GTK_IS_LABEL (label));
Packit Service fb6fa5
  g_assert (strcmp (gtk_label_get_label (GTK_LABEL (label)), "label2") == 0);
Packit Service fb6fa5
  label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (notebook), label);
Packit Service fb6fa5
  g_assert (GTK_IS_LABEL (label));
Packit Service fb6fa5
  g_assert (strcmp (gtk_label_get_label (GTK_LABEL (label)), "tab_label2") == 0);
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_construct_only_property (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  const gchar buffer[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <property name=\"type\">GTK_WINDOW_POPUP</property>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar buffer2[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkTextTagTable\" id=\"tagtable1\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkTextBuffer\" id=\"textbuffer1\">"
Packit Service fb6fa5
    "    <property name=\"tag-table\">tagtable1</property>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GObject *widget, *tagtable, *textbuffer;
Packit Service fb6fa5
  GtkWindowType type;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  widget = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  g_object_get (widget, "type", &type, NULL);
Packit Service fb6fa5
  g_assert (type == GTK_WINDOW_POPUP);
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (widget));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer2, -1, NULL);
Packit Service fb6fa5
  textbuffer = gtk_builder_get_object (builder, "textbuffer1");
Packit Service fb6fa5
  g_assert (textbuffer != NULL);
Packit Service fb6fa5
  g_object_get (textbuffer, "tag-table", &tagtable, NULL);
Packit Service fb6fa5
  g_assert (tagtable == gtk_builder_get_object (builder, "tagtable1"));
Packit Service fb6fa5
  g_object_unref (tagtable);
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_object_properties (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  const gchar buffer[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkVBox\" id=\"vbox\">"
Packit Service fb6fa5
    "        <property name=\"border-width\">10</property>"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkLabel\" id=\"label1\">"
Packit Service fb6fa5
    "            <property name=\"mnemonic-widget\">spinbutton1</property>"
Packit Service fb6fa5
    "          </object>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkSpinButton\" id=\"spinbutton1\"/>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar buffer2[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window2\"/>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GObject *label, *spinbutton, *window;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  label = gtk_builder_get_object (builder, "label1");
Packit Service fb6fa5
  g_assert (label != NULL);
Packit Service fb6fa5
  spinbutton = gtk_builder_get_object (builder, "spinbutton1");
Packit Service fb6fa5
  g_assert (spinbutton != NULL);
Packit Service fb6fa5
  g_assert (spinbutton == (GObject*)gtk_label_get_mnemonic_widget (GTK_LABEL (label)));
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, buffer2, -1, NULL);
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window2");
Packit Service fb6fa5
  g_assert (window != NULL);
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_children (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder * builder;
Packit Service fb6fa5
  GList *children;
Packit Service fb6fa5
  const gchar buffer1[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkButton\" id=\"button1\">"
Packit Service fb6fa5
    "        <property name=\"label\">Hello</property>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar buffer2[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkDialog\" id=\"dialog1\">"
Packit Service fb6fa5
    "    <child internal-child=\"vbox\">"
Packit Service fb6fa5
    "      <object class=\"GtkVBox\" id=\"dialog1-vbox\">"
Packit Service fb6fa5
    "        <property name=\"border-width\">10</property>"
Packit Service fb6fa5
    "          <child internal-child=\"action_area\">"
Packit Service fb6fa5
    "            <object class=\"GtkHButtonBox\" id=\"dialog1-action_area\">"
Packit Service fb6fa5
    "              <property name=\"border-width\">20</property>"
Packit Service fb6fa5
    "            </object>"
Packit Service fb6fa5
    "          </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
Packit Service fb6fa5
  GObject *window, *button;
Packit Service fb6fa5
  GObject *dialog, *vbox, *action_area;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer1, -1, NULL);
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  g_assert (window != NULL);
Packit Service fb6fa5
  g_assert (GTK_IS_WINDOW (window));
Packit Service fb6fa5
Packit Service fb6fa5
  button = gtk_builder_get_object (builder, "button1");
Packit Service fb6fa5
  g_assert (button != NULL);
Packit Service fb6fa5
  g_assert (GTK_IS_BUTTON (button));
Packit Service fb6fa5
  g_assert (GTK_WIDGET(button)->parent != NULL);
Packit Service fb6fa5
  g_assert (strcmp (gtk_buildable_get_name (GTK_BUILDABLE (GTK_WIDGET (button)->parent)), "window1") == 0);
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer2, -1, NULL);
Packit Service fb6fa5
  dialog = gtk_builder_get_object (builder, "dialog1");
Packit Service fb6fa5
  g_assert (dialog != NULL);
Packit Service fb6fa5
  g_assert (GTK_IS_DIALOG (dialog));
Packit Service fb6fa5
  children = gtk_container_get_children (GTK_CONTAINER (dialog));
Packit Service fb6fa5
  g_assert (g_list_length (children) == 1);
Packit Service fb6fa5
  g_list_free (children);
Packit Service fb6fa5
  
Packit Service fb6fa5
  vbox = gtk_builder_get_object (builder, "dialog1-vbox");
Packit Service fb6fa5
  g_assert (vbox != NULL);
Packit Service fb6fa5
  g_assert (GTK_IS_VBOX (vbox));
Packit Service fb6fa5
  g_assert (strcmp (gtk_buildable_get_name (GTK_BUILDABLE (GTK_WIDGET (vbox)->parent)), "dialog1") == 0);
Packit Service fb6fa5
  g_assert (GTK_CONTAINER (vbox)->border_width == 10);
Packit Service fb6fa5
  g_assert (strcmp (gtk_buildable_get_name (GTK_BUILDABLE (GTK_DIALOG (dialog)->vbox)), "dialog1-vbox") == 0);
Packit Service fb6fa5
Packit Service fb6fa5
  action_area = gtk_builder_get_object (builder, "dialog1-action_area");
Packit Service fb6fa5
  g_assert (action_area != NULL);
Packit Service fb6fa5
  g_assert (GTK_IS_HBUTTON_BOX (action_area));
Packit Service fb6fa5
  g_assert (GTK_WIDGET (action_area)->parent != NULL);
Packit Service fb6fa5
  g_assert (GTK_CONTAINER (action_area)->border_width == 20);
Packit Service fb6fa5
  g_assert (GTK_DIALOG (dialog)->action_area != NULL);
Packit Service fb6fa5
  g_assert (gtk_buildable_get_name (GTK_BUILDABLE (GTK_DIALOG (dialog)->action_area)) != NULL);
Packit Service fb6fa5
  g_assert (strcmp (gtk_buildable_get_name (GTK_BUILDABLE (GTK_DIALOG (dialog)->action_area)), "dialog1-action_area") == 0);
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (dialog));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_child_properties (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder * builder;
Packit Service fb6fa5
  const gchar buffer1[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkVBox\" id=\"vbox1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkLabel\" id=\"label1\"/>"
Packit Service fb6fa5
    "      <packing>"
Packit Service fb6fa5
    "        <property name=\"pack-type\">start</property>"
Packit Service fb6fa5
    "      </packing>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkLabel\" id=\"label2\"/>"
Packit Service fb6fa5
    "      <packing>"
Packit Service fb6fa5
    "        <property name=\"pack-type\">end</property>"
Packit Service fb6fa5
    "      </packing>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
Packit Service fb6fa5
  GObject *label, *vbox;
Packit Service fb6fa5
  GtkPackType pack_type;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer1, -1, NULL);
Packit Service fb6fa5
  vbox = gtk_builder_get_object (builder, "vbox1");
Packit Service fb6fa5
  g_assert (GTK_IS_VBOX (vbox));
Packit Service fb6fa5
Packit Service fb6fa5
  label = gtk_builder_get_object (builder, "label1");
Packit Service fb6fa5
  g_assert (GTK_IS_LABEL (label));
Packit Service fb6fa5
  gtk_container_child_get (GTK_CONTAINER (vbox),
Packit Service fb6fa5
                           GTK_WIDGET (label),
Packit Service fb6fa5
                           "pack-type",
Packit Service fb6fa5
                           &pack_type,
Packit Service fb6fa5
                           NULL);
Packit Service fb6fa5
  g_assert (pack_type == GTK_PACK_START);
Packit Service fb6fa5
  
Packit Service fb6fa5
  label = gtk_builder_get_object (builder, "label2");
Packit Service fb6fa5
  g_assert (GTK_IS_LABEL (label));
Packit Service fb6fa5
  gtk_container_child_get (GTK_CONTAINER (vbox),
Packit Service fb6fa5
                           GTK_WIDGET (label),
Packit Service fb6fa5
                           "pack-type",
Packit Service fb6fa5
                           &pack_type,
Packit Service fb6fa5
                           NULL);
Packit Service fb6fa5
  g_assert (pack_type == GTK_PACK_END);
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_treeview_column (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  const gchar buffer[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "<object class=\"GtkListStore\" id=\"liststore1\">"
Packit Service fb6fa5
    "  <columns>"
Packit Service fb6fa5
    "    <column type=\"gchararray\"/>"
Packit Service fb6fa5
    "    <column type=\"guint\"/>"
Packit Service fb6fa5
    "  </columns>"
Packit Service fb6fa5
    "  <data>"
Packit Service fb6fa5
    "    <row>"
Packit Service fb6fa5
    "      John"
Packit Service fb6fa5
    "      25"
Packit Service fb6fa5
    "    </row>"
Packit Service fb6fa5
    "  </data>"
Packit Service fb6fa5
    "</object>"
Packit Service fb6fa5
    "<object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "  <child>"
Packit Service fb6fa5
    "    <object class=\"GtkTreeView\" id=\"treeview1\">"
Packit Service fb6fa5
    "      <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "      <property name=\"model\">liststore1</property>"
Packit Service fb6fa5
    "      <child>"
Packit Service fb6fa5
    "        <object class=\"GtkTreeViewColumn\" id=\"column1\">"
Packit Service fb6fa5
    "          <property name=\"title\">Test</property>"
Packit Service fb6fa5
    "          <child>"
Packit Service fb6fa5
    "            <object class=\"GtkCellRendererText\" id=\"renderer1\"/>"
Packit Service fb6fa5
    "            <attributes>"
Packit Service fb6fa5
    "              <attribute name=\"text\">1</attribute>"
Packit Service fb6fa5
    "            </attributes>"
Packit Service fb6fa5
    "          </child>"
Packit Service fb6fa5
    "        </object>"
Packit Service fb6fa5
    "      </child>"
Packit Service fb6fa5
    "      <child>"
Packit Service fb6fa5
    "        <object class=\"GtkTreeViewColumn\" id=\"column2\">"
Packit Service fb6fa5
    "          <property name=\"title\">Number</property>"
Packit Service fb6fa5
    "          <child>"
Packit Service fb6fa5
    "            <object class=\"GtkCellRendererText\" id=\"renderer2\"/>"
Packit Service fb6fa5
    "            <attributes>"
Packit Service fb6fa5
    "              <attribute name=\"text\">0</attribute>"
Packit Service fb6fa5
    "            </attributes>"
Packit Service fb6fa5
    "          </child>"
Packit Service fb6fa5
    "        </object>"
Packit Service fb6fa5
    "      </child>"
Packit Service fb6fa5
    "    </object>"
Packit Service fb6fa5
    "  </child>"
Packit Service fb6fa5
    "</object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GObject *window, *treeview;
Packit Service fb6fa5
  GtkTreeViewColumn *column;
Packit Service fb6fa5
  GList *renderers;
Packit Service fb6fa5
  GObject *renderer;
Packit Service fb6fa5
  gchar *text;
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  treeview = gtk_builder_get_object (builder, "treeview1");
Packit Service fb6fa5
  g_assert (treeview);
Packit Service fb6fa5
  g_assert (GTK_IS_TREE_VIEW (treeview));
Packit Service fb6fa5
  column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), 0);
Packit Service fb6fa5
  g_assert (GTK_IS_TREE_VIEW_COLUMN (column));
Packit Service fb6fa5
  g_assert (strcmp (gtk_tree_view_column_get_title (column), "Test") == 0);
Packit Service fb6fa5
Packit Service fb6fa5
  renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (column));
Packit Service fb6fa5
  g_assert (g_list_length (renderers) == 1);
Packit Service fb6fa5
  renderer = g_list_nth_data (renderers, 0);
Packit Service fb6fa5
  g_assert (renderer);
Packit Service fb6fa5
  g_assert (GTK_IS_CELL_RENDERER_TEXT (renderer));
Packit Service fb6fa5
  g_list_free (renderers);
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_widget_realize (GTK_WIDGET (treeview));
Packit Service fb6fa5
Packit Service fb6fa5
  renderer = gtk_builder_get_object (builder, "renderer1");
Packit Service fb6fa5
  g_object_get (renderer, "text", &text, NULL);
Packit Service fb6fa5
  g_assert (text);
Packit Service fb6fa5
  g_assert (strcmp (text, "25") == 0);
Packit Service fb6fa5
  g_free (text);
Packit Service fb6fa5
  
Packit Service fb6fa5
  renderer = gtk_builder_get_object (builder, "renderer2");
Packit Service fb6fa5
  g_object_get (renderer, "text", &text, NULL);
Packit Service fb6fa5
  g_assert (text);
Packit Service fb6fa5
  g_assert (strcmp (text, "John") == 0);
Packit Service fb6fa5
  g_free (text);
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_widget_unrealize (GTK_WIDGET (treeview));
Packit Service fb6fa5
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_icon_view (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  const gchar buffer[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkListStore\" id=\"liststore1\">"
Packit Service fb6fa5
    "    <columns>"
Packit Service fb6fa5
    "      <column type=\"gchararray\"/>"
Packit Service fb6fa5
    "      <column type=\"GdkPixbuf\"/>"
Packit Service fb6fa5
    "    </columns>"
Packit Service fb6fa5
    "    <data>"
Packit Service fb6fa5
    "      <row>"
Packit Service fb6fa5
    "        test"
Packit Service fb6fa5
    "      </row>"
Packit Service fb6fa5
    "    </data>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkIconView\" id=\"iconview1\">"
Packit Service fb6fa5
    "        <property name=\"model\">liststore1</property>"
Packit Service fb6fa5
    "        <property name=\"text-column\">0</property>"
Packit Service fb6fa5
    "        <property name=\"pixbuf-column\">1</property>"
Packit Service fb6fa5
    "        <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkCellRendererText\" id=\"renderer1\"/>"
Packit Service fb6fa5
    "          <attributes>"
Packit Service fb6fa5
    "            <attribute name=\"text\">0</attribute>"
Packit Service fb6fa5
    "          </attributes>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GObject *window, *iconview, *renderer;
Packit Service fb6fa5
  gchar *text;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  iconview = gtk_builder_get_object (builder, "iconview1");
Packit Service fb6fa5
  g_assert (iconview);
Packit Service fb6fa5
  g_assert (GTK_IS_ICON_VIEW (iconview));
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_widget_realize (GTK_WIDGET (iconview));
Packit Service fb6fa5
Packit Service fb6fa5
  renderer = gtk_builder_get_object (builder, "renderer1");
Packit Service fb6fa5
  g_object_get (renderer, "text", &text, NULL);
Packit Service fb6fa5
  g_assert (text);
Packit Service fb6fa5
  g_assert (strcmp (text, "test") == 0);
Packit Service fb6fa5
  g_free (text);
Packit Service fb6fa5
    
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_combo_box (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  const gchar buffer[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkListStore\" id=\"liststore1\">"
Packit Service fb6fa5
    "    <columns>"
Packit Service fb6fa5
    "      <column type=\"guint\"/>"
Packit Service fb6fa5
    "      <column type=\"gchararray\"/>"
Packit Service fb6fa5
    "    </columns>"
Packit Service fb6fa5
    "    <data>"
Packit Service fb6fa5
    "      <row>"
Packit Service fb6fa5
    "        1"
Packit Service fb6fa5
    "        Foo"
Packit Service fb6fa5
    "      </row>"
Packit Service fb6fa5
    "      <row>"
Packit Service fb6fa5
    "        2"
Packit Service fb6fa5
    "        Bar"
Packit Service fb6fa5
    "      </row>"
Packit Service fb6fa5
    "    </data>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkComboBox\" id=\"combobox1\">"
Packit Service fb6fa5
    "        <property name=\"model\">liststore1</property>"
Packit Service fb6fa5
    "        <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkCellRendererText\" id=\"renderer1\"/>"
Packit Service fb6fa5
    "          <attributes>"
Packit Service fb6fa5
    "            <attribute name=\"text\">0</attribute>"
Packit Service fb6fa5
    "          </attributes>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkCellRendererText\" id=\"renderer2\"/>"
Packit Service fb6fa5
    "          <attributes>"
Packit Service fb6fa5
    "            <attribute name=\"text\">1</attribute>"
Packit Service fb6fa5
    "          </attributes>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GObject *window, *combobox, *renderer;
Packit Service fb6fa5
  gchar *text;
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  combobox = gtk_builder_get_object (builder, "combobox1");
Packit Service fb6fa5
  g_assert (combobox);
Packit Service fb6fa5
  gtk_widget_realize (GTK_WIDGET (combobox));
Packit Service fb6fa5
Packit Service fb6fa5
  renderer = gtk_builder_get_object (builder, "renderer2");
Packit Service fb6fa5
  g_assert (renderer);
Packit Service fb6fa5
  g_object_get (renderer, "text", &text, NULL);
Packit Service fb6fa5
  g_assert (text);
Packit Service fb6fa5
  g_assert (strcmp (text, "Bar") == 0);
Packit Service fb6fa5
  g_free (text);
Packit Service fb6fa5
Packit Service fb6fa5
  renderer = gtk_builder_get_object (builder, "renderer1");
Packit Service fb6fa5
  g_assert (renderer);
Packit Service fb6fa5
  g_object_get (renderer, "text", &text, NULL);
Packit Service fb6fa5
  g_assert (text);
Packit Service fb6fa5
  g_assert (strcmp (text, "2") == 0);
Packit Service fb6fa5
  g_free (text);
Packit Service fb6fa5
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
#if 0
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_combo_box_entry (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  const gchar buffer[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkListStore\" id=\"liststore1\">"
Packit Service fb6fa5
    "    <columns>"
Packit Service fb6fa5
    "      <column type=\"guint\"/>"
Packit Service fb6fa5
    "      <column type=\"gchararray\"/>"
Packit Service fb6fa5
    "    </columns>"
Packit Service fb6fa5
    "    <data>"
Packit Service fb6fa5
    "      <row>"
Packit Service fb6fa5
    "        1"
Packit Service fb6fa5
    "        Foo"
Packit Service fb6fa5
    "      </row>"
Packit Service fb6fa5
    "      <row>"
Packit Service fb6fa5
    "        2"
Packit Service fb6fa5
    "        Bar"
Packit Service fb6fa5
    "      </row>"
Packit Service fb6fa5
    "    </data>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkComboBox\" id=\"comboboxentry1\">"
Packit Service fb6fa5
    "        <property name=\"model\">liststore1</property>"
Packit Service fb6fa5
    "        <property name=\"has-entry\">True</property>"
Packit Service fb6fa5
    "        <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkCellRendererText\" id=\"renderer1\"/>"
Packit Service fb6fa5
    "            <attributes>"
Packit Service fb6fa5
    "              <attribute name=\"text\">0</attribute>"
Packit Service fb6fa5
    "            </attributes>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkCellRendererText\" id=\"renderer2\"/>"
Packit Service fb6fa5
    "            <attributes>"
Packit Service fb6fa5
    "              <attribute name=\"text\">1</attribute>"
Packit Service fb6fa5
    "            </attributes>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GObject *window, *combobox, *renderer;
Packit Service fb6fa5
  gchar *text;
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  combobox = gtk_builder_get_object (builder, "comboboxentry1");
Packit Service fb6fa5
  g_assert (combobox);
Packit Service fb6fa5
Packit Service fb6fa5
  renderer = gtk_builder_get_object (builder, "renderer2");
Packit Service fb6fa5
  g_assert (renderer);
Packit Service fb6fa5
  g_object_get (renderer, "text", &text, NULL);
Packit Service fb6fa5
  g_assert (text);
Packit Service fb6fa5
  g_assert (strcmp (text, "Bar") == 0);
Packit Service fb6fa5
  g_free (text);
Packit Service fb6fa5
Packit Service fb6fa5
  renderer = gtk_builder_get_object (builder, "renderer1");
Packit Service fb6fa5
  g_assert (renderer);
Packit Service fb6fa5
  g_object_get (renderer, "text", &text, NULL);
Packit Service fb6fa5
  g_assert (text);
Packit Service fb6fa5
  g_assert (strcmp (text, "2") == 0);
Packit Service fb6fa5
  g_free (text);
Packit Service fb6fa5
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
#endif
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_cell_view (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  const gchar *buffer =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkListStore\" id=\"liststore1\">"
Packit Service fb6fa5
    "    <columns>"
Packit Service fb6fa5
    "      <column type=\"gchararray\"/>"
Packit Service fb6fa5
    "    </columns>"
Packit Service fb6fa5
    "    <data>"
Packit Service fb6fa5
    "      <row>"
Packit Service fb6fa5
    "        test"
Packit Service fb6fa5
    "      </row>"
Packit Service fb6fa5
    "    </data>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkCellView\" id=\"cellview1\">"
Packit Service fb6fa5
    "        <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "        <property name=\"model\">liststore1</property>"
Packit Service fb6fa5
    "        <accelerator key=\"f\" modifiers=\"GDK_CONTROL_MASK\" signal=\"grab_focus\"/>"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkCellRendererText\" id=\"renderer1\"/>"
Packit Service fb6fa5
    "          <attributes>"
Packit Service fb6fa5
    "            <attribute name=\"text\">0</attribute>"
Packit Service fb6fa5
    "          </attributes>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GObject *cellview;
Packit Service fb6fa5
  GObject *model, *window;
Packit Service fb6fa5
  GtkTreePath *path;
Packit Service fb6fa5
  GList *renderers;
Packit Service fb6fa5
  GObject *renderer;
Packit Service fb6fa5
  gchar *text;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  cellview = gtk_builder_get_object (builder, "cellview1");
Packit Service fb6fa5
  g_assert (builder);
Packit Service fb6fa5
  g_assert (cellview);
Packit Service fb6fa5
  g_assert (GTK_IS_CELL_VIEW (cellview));
Packit Service fb6fa5
  g_object_get (cellview, "model", &model, NULL);
Packit Service fb6fa5
  g_assert (model);
Packit Service fb6fa5
  g_assert (GTK_IS_TREE_MODEL (model));
Packit Service fb6fa5
  g_object_unref (model);
Packit Service fb6fa5
  path = gtk_tree_path_new_first ();
Packit Service fb6fa5
  gtk_cell_view_set_displayed_row (GTK_CELL_VIEW (cellview), path);
Packit Service fb6fa5
  
Packit Service fb6fa5
  renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (cellview));
Packit Service fb6fa5
  g_assert (renderers);
Packit Service fb6fa5
  g_assert (g_list_length (renderers) == 1);
Packit Service fb6fa5
  
Packit Service fb6fa5
  gtk_widget_realize (GTK_WIDGET (cellview));
Packit Service fb6fa5
Packit Service fb6fa5
  renderer = g_list_nth_data (renderers, 0);
Packit Service fb6fa5
  g_list_free (renderers);
Packit Service fb6fa5
  g_assert (renderer);
Packit Service fb6fa5
  g_object_get (renderer, "text", &text, NULL);
Packit Service fb6fa5
  g_assert (strcmp (text, "test") == 0);
Packit Service fb6fa5
  g_free (text);
Packit Service fb6fa5
  gtk_tree_path_free (path);
Packit Service fb6fa5
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_dialog (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder * builder;
Packit Service fb6fa5
  const gchar buffer1[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkDialog\" id=\"dialog1\">"
Packit Service fb6fa5
    "    <child internal-child=\"vbox\">"
Packit Service fb6fa5
    "      <object class=\"GtkVBox\" id=\"dialog1-vbox\">"
Packit Service fb6fa5
    "          <child internal-child=\"action_area\">"
Packit Service fb6fa5
    "            <object class=\"GtkHButtonBox\" id=\"dialog1-action_area\">"
Packit Service fb6fa5
    "              <child>"
Packit Service fb6fa5
    "                <object class=\"GtkButton\" id=\"button_cancel\"/>"
Packit Service fb6fa5
    "              </child>"
Packit Service fb6fa5
    "              <child>"
Packit Service fb6fa5
    "                <object class=\"GtkButton\" id=\"button_ok\"/>"
Packit Service fb6fa5
    "              </child>"
Packit Service fb6fa5
    "            </object>"
Packit Service fb6fa5
    "          </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "    <action-widgets>"
Packit Service fb6fa5
    "      <action-widget response=\"3\">button_ok</action-widget>"
Packit Service fb6fa5
    "      <action-widget response=\"-5\">button_cancel</action-widget>"
Packit Service fb6fa5
    "    </action-widgets>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
Packit Service fb6fa5
  GObject *dialog1;
Packit Service fb6fa5
  GObject *button_ok;
Packit Service fb6fa5
  GObject *button_cancel;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer1, -1, NULL);
Packit Service fb6fa5
  dialog1 = gtk_builder_get_object (builder, "dialog1");
Packit Service fb6fa5
  button_ok = gtk_builder_get_object (builder, "button_ok");
Packit Service fb6fa5
  g_assert (gtk_dialog_get_response_for_widget (GTK_DIALOG (dialog1), GTK_WIDGET (button_ok)) == 3);
Packit Service fb6fa5
  button_cancel = gtk_builder_get_object (builder, "button_cancel");
Packit Service fb6fa5
  g_assert (gtk_dialog_get_response_for_widget (GTK_DIALOG (dialog1), GTK_WIDGET (button_cancel)) == -5);
Packit Service fb6fa5
  
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (dialog1));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_message_dialog (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder * builder;
Packit Service fb6fa5
  const gchar buffer1[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkMessageDialog\" id=\"dialog1\">"
Packit Service fb6fa5
    "    <child internal-child=\"message_area\">"
Packit Service fb6fa5
    "      <object class=\"GtkVBox\" id=\"dialog-message-area\">"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkExpander\" id=\"expander\"/>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
Packit Service fb6fa5
  GObject *dialog1;
Packit Service fb6fa5
  GObject *expander;
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer1, -1, NULL);
Packit Service fb6fa5
  dialog1 = gtk_builder_get_object (builder, "dialog1");
Packit Service fb6fa5
  expander = gtk_builder_get_object (builder, "expander");
Packit Service fb6fa5
  g_assert (GTK_IS_EXPANDER (expander));
Packit Service fb6fa5
  g_assert (gtk_widget_get_parent (GTK_WIDGET (expander)) == gtk_message_dialog_get_message_area (GTK_MESSAGE_DIALOG (dialog1)));
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (dialog1));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_accelerators (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  const gchar *buffer =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkButton\" id=\"button1\">"
Packit Service fb6fa5
    "        <accelerator key=\"q\" modifiers=\"GDK_CONTROL_MASK\" signal=\"clicked\"/>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar *buffer2 =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkTreeView\" id=\"treeview1\">"
Packit Service fb6fa5
    "        <signal name=\"cursor-changed\" handler=\"gtk_main_quit\"/>"
Packit Service fb6fa5
    "        <accelerator key=\"f\" modifiers=\"GDK_CONTROL_MASK\" signal=\"grab_focus\"/>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GObject *window1;
Packit Service fb6fa5
  GSList *accel_groups;
Packit Service fb6fa5
  GObject *accel_group;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  window1 = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  g_assert (window1);
Packit Service fb6fa5
  g_assert (GTK_IS_WINDOW (window1));
Packit Service fb6fa5
Packit Service fb6fa5
  accel_groups = gtk_accel_groups_from_object (window1);
Packit Service fb6fa5
  g_assert (g_slist_length (accel_groups) == 1);
Packit Service fb6fa5
  accel_group = g_slist_nth_data (accel_groups, 0);
Packit Service fb6fa5
  g_assert (accel_group);
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window1));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer2, -1, NULL);
Packit Service fb6fa5
  window1 = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  g_assert (window1);
Packit Service fb6fa5
  g_assert (GTK_IS_WINDOW (window1));
Packit Service fb6fa5
Packit Service fb6fa5
  accel_groups = gtk_accel_groups_from_object (window1);
Packit Service fb6fa5
  g_assert (g_slist_length (accel_groups) == 1);
Packit Service fb6fa5
  accel_group = g_slist_nth_data (accel_groups, 0);
Packit Service fb6fa5
  g_assert (accel_group);
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window1));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_widget (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  const gchar *buffer =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkButton\" id=\"button1\">"
Packit Service fb6fa5
    "         <property name=\"can-focus\">True</property>"
Packit Service fb6fa5
    "         <property name=\"has-focus\">True</property>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
   "</interface>";
Packit Service fb6fa5
  const gchar *buffer2 =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkButton\" id=\"button1\">"
Packit Service fb6fa5
    "         <property name=\"can-default\">True</property>"
Packit Service fb6fa5
    "         <property name=\"has-default\">True</property>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
   "</interface>";
Packit Service fb6fa5
  const gchar *buffer3 =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkVBox\" id=\"vbox1\">"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkLabel\" id=\"label1\">"
Packit Service fb6fa5
    "            <child internal-child=\"accessible\">"
Packit Service fb6fa5
    "              <object class=\"AtkObject\" id=\"a11y-label1\">"
Packit Service fb6fa5
    "                <property name=\"AtkObject::accessible-name\">A Label</property>"
Packit Service fb6fa5
    "              </object>"
Packit Service fb6fa5
    "            </child>"
Packit Service fb6fa5
    "            <accessibility>"
Packit Service fb6fa5
    "              <relation target=\"button1\" type=\"label-for\"/>"
Packit Service fb6fa5
    "            </accessibility>"
Packit Service fb6fa5
    "          </object>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkButton\" id=\"button1\">"
Packit Service fb6fa5
    "            <accessibility>"
Packit Service fb6fa5
    "              <action action_name=\"click\" description=\"Sliff\"/>"
Packit Service fb6fa5
    "              <action action_name=\"clack\" translatable=\"yes\">Sniff</action>"
Packit Service fb6fa5
    "            </accessibility>"
Packit Service fb6fa5
    "          </object>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  GObject *window1, *button1, *label1;
Packit Service fb6fa5
  AtkObject *accessible;
Packit Service fb6fa5
  AtkRelationSet *relation_set;
Packit Service fb6fa5
  AtkRelation *relation;
Packit Service fb6fa5
  char *name;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  button1 = gtk_builder_get_object (builder, "button1");
Packit Service fb6fa5
Packit Service fb6fa5
#if 0
Packit Service fb6fa5
  g_assert (gtk_widget_has_focus (GTK_WIDGET (button1)));
Packit Service fb6fa5
#endif
Packit Service fb6fa5
  window1 = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window1));
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer2, -1, NULL);
Packit Service fb6fa5
  button1 = gtk_builder_get_object (builder, "button1");
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_widget_get_receives_default (GTK_WIDGET (button1)));
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer3, -1, NULL);
Packit Service fb6fa5
Packit Service fb6fa5
  window1 = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  label1 = gtk_builder_get_object (builder, "label1");
Packit Service fb6fa5
Packit Service fb6fa5
  accessible = gtk_widget_get_accessible (GTK_WIDGET (label1));
Packit Service fb6fa5
  relation_set = atk_object_ref_relation_set (accessible);
Packit Service fb6fa5
  g_return_if_fail (atk_relation_set_get_n_relations (relation_set) == 1);
Packit Service fb6fa5
  relation = atk_relation_set_get_relation (relation_set, 0);
Packit Service fb6fa5
  g_return_if_fail (relation != NULL);
Packit Service fb6fa5
  g_return_if_fail (ATK_IS_RELATION (relation));
Packit Service fb6fa5
  g_return_if_fail (atk_relation_get_relation_type (relation) != ATK_RELATION_LABELLED_BY);
Packit Service fb6fa5
  g_object_unref (relation_set);
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_get (G_OBJECT (accessible), "accessible-name", &name, NULL);
Packit Service fb6fa5
  g_return_if_fail (strcmp (name, "A Label") == 0);
Packit Service fb6fa5
  g_free (name);
Packit Service fb6fa5
  
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window1));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_window (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  const gchar *buffer1 =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "     <property name=\"title\"></property>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
   "</interface>";
Packit Service fb6fa5
  const gchar *buffer2 =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
   "</interface>";
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  GObject *window1;
Packit Service fb6fa5
  gchar *title;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer1, -1, NULL);
Packit Service fb6fa5
  window1 = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  g_object_get (window1, "title", &title, NULL);
Packit Service fb6fa5
  g_assert (strcmp (title, "") == 0);
Packit Service fb6fa5
  g_free (title);
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window1));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer2, -1, NULL);
Packit Service fb6fa5
  window1 = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window1));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_value_from_string (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GValue value = { 0 };
Packit Service fb6fa5
  GError *error = NULL;
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
Packit Service fb6fa5
  builder = gtk_builder_new ();
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_STRING, "test", &value, &error));
Packit Service fb6fa5
  g_assert (G_VALUE_HOLDS_STRING (&value));
Packit Service fb6fa5
  g_assert (strcmp (g_value_get_string (&value), "test") == 0);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_BOOLEAN, "true", &value, &error));
Packit Service fb6fa5
  g_assert (G_VALUE_HOLDS_BOOLEAN (&value));
Packit Service fb6fa5
  g_assert (g_value_get_boolean (&value) == TRUE);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_BOOLEAN, "false", &value, &error));
Packit Service fb6fa5
  g_assert (G_VALUE_HOLDS_BOOLEAN (&value));
Packit Service fb6fa5
  g_assert (g_value_get_boolean (&value) == FALSE);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_BOOLEAN, "yes", &value, &error));
Packit Service fb6fa5
  g_assert (G_VALUE_HOLDS_BOOLEAN (&value));
Packit Service fb6fa5
  g_assert (g_value_get_boolean (&value) == TRUE);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_BOOLEAN, "no", &value, &error));
Packit Service fb6fa5
  g_assert (G_VALUE_HOLDS_BOOLEAN (&value));
Packit Service fb6fa5
  g_assert (g_value_get_boolean (&value) == FALSE);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_BOOLEAN, "0", &value, &error));
Packit Service fb6fa5
  g_assert (G_VALUE_HOLDS_BOOLEAN (&value));
Packit Service fb6fa5
  g_assert (g_value_get_boolean (&value) == FALSE);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_BOOLEAN, "1", &value, &error));
Packit Service fb6fa5
  g_assert (G_VALUE_HOLDS_BOOLEAN (&value));
Packit Service fb6fa5
  g_assert (g_value_get_boolean (&value) == TRUE);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_BOOLEAN, "tRuE", &value, &error));
Packit Service fb6fa5
  g_assert (G_VALUE_HOLDS_BOOLEAN (&value));
Packit Service fb6fa5
  g_assert (g_value_get_boolean (&value) == TRUE);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_BOOLEAN, "blaurgh", &value, &error) == FALSE);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_VALUE));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_BOOLEAN, "yess", &value, &error) == FALSE);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_VALUE));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_BOOLEAN, "trueee", &value, &error) == FALSE);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_VALUE));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_BOOLEAN, "", &value, &error) == FALSE);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_VALUE));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_INT, "12345", &value, &error));
Packit Service fb6fa5
  g_assert (G_VALUE_HOLDS_INT (&value));
Packit Service fb6fa5
  g_assert (g_value_get_int (&value) == 12345);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_LONG, "9912345", &value, &error));
Packit Service fb6fa5
  g_assert (G_VALUE_HOLDS_LONG (&value));
Packit Service fb6fa5
  g_assert (g_value_get_long (&value) == 9912345);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_UINT, "2345", &value, &error));
Packit Service fb6fa5
  g_assert (G_VALUE_HOLDS_UINT (&value));
Packit Service fb6fa5
  g_assert (g_value_get_uint (&value) == 2345);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_FLOAT, "1.454", &value, &error));
Packit Service fb6fa5
  g_assert (G_VALUE_HOLDS_FLOAT (&value));
Packit Service fb6fa5
  g_assert (fabs (g_value_get_float (&value) - 1.454) < 0.00001);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_FLOAT, "abc", &value, &error) == FALSE);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_VALUE));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_INT, "/-+,abc", &value, &error) == FALSE);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_VALUE));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, GTK_TYPE_WINDOW_TYPE, "toplevel", &value, &error) == TRUE);
Packit Service fb6fa5
  g_assert (G_VALUE_HOLDS_ENUM (&value));
Packit Service fb6fa5
  g_assert (g_value_get_enum (&value) == GTK_WINDOW_TOPLEVEL);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, GTK_TYPE_WINDOW_TYPE, "sliff", &value, &error) == FALSE);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_VALUE));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, GTK_TYPE_WIDGET_FLAGS, "mapped", &value, &error) == TRUE);
Packit Service fb6fa5
  g_assert (G_VALUE_HOLDS_FLAGS (&value));
Packit Service fb6fa5
  g_assert (g_value_get_flags (&value) == GTK_MAPPED);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, GTK_TYPE_WIDGET_FLAGS, "GTK_VISIBLE | GTK_REALIZED", &value, &error) == TRUE);
Packit Service fb6fa5
  g_assert (G_VALUE_HOLDS_FLAGS (&value));
Packit Service fb6fa5
  g_assert (g_value_get_flags (&value) == (GTK_VISIBLE | GTK_REALIZED));
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_assert (gtk_builder_value_from_string_type (builder, GTK_TYPE_WINDOW_TYPE, "foobar", &value, &error) == FALSE);
Packit Service fb6fa5
  g_value_unset (&value);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_VALUE));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static gboolean model_freed = FALSE;
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
model_weakref (gpointer data,
Packit Service fb6fa5
               GObject *model)
Packit Service fb6fa5
{
Packit Service fb6fa5
  model_freed = TRUE;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_reference_counting (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  const gchar buffer1[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkListStore\" id=\"liststore1\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkListStore\" id=\"liststore2\"/>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkTreeView\" id=\"treeview1\">"
Packit Service fb6fa5
    "        <property name=\"model\">liststore1</property>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar buffer2[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkVBox\" id=\"vbox1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkLabel\" id=\"label1\"/>"
Packit Service fb6fa5
    "      <packing>"
Packit Service fb6fa5
    "        <property name=\"pack-type\">start</property>"
Packit Service fb6fa5
    "      </packing>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GObject *window, *treeview, *model;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer1, -1, NULL);
Packit Service fb6fa5
  window = gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  treeview = gtk_builder_get_object (builder, "treeview1");
Packit Service fb6fa5
  model = gtk_builder_get_object (builder, "liststore1");
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_weak_ref (model, (GWeakNotify)model_weakref, NULL);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (model_freed == FALSE);
Packit Service fb6fa5
  gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), NULL);
Packit Service fb6fa5
  g_assert (model_freed == TRUE);
Packit Service fb6fa5
  
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer2, -1, NULL);
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_icon_factory (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  const gchar buffer1[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkIconFactory\" id=\"iconfactory1\">"
Packit Service fb6fa5
    "    <sources>"
Packit Service fb6fa5
    "      <source stock-id=\"apple-red\" filename=\"apple-red.png\"/>"
Packit Service fb6fa5
    "    </sources>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar buffer2[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkIconFactory\" id=\"iconfactory1\">"
Packit Service fb6fa5
    "    <sources>"
Packit Service fb6fa5
    "      
Packit Service fb6fa5
    "              size=\"menu\" filename=\"sloff.png\"/>"
Packit Service fb6fa5
    "      
Packit Service fb6fa5
    "              size=\"dnd\" filename=\"slurf.png\"/>"
Packit Service fb6fa5
    "    </sources>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
#if 0
Packit Service fb6fa5
  const gchar buffer3[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkIconFactory\" id=\"iconfactory1\">"
Packit Service fb6fa5
    "    <invalid/>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar buffer4[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkIconFactory\" id=\"iconfactory1\">"
Packit Service fb6fa5
    "    <sources>"
Packit Service fb6fa5
    "      <invalid/>"
Packit Service fb6fa5
    "    </sources>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar buffer5[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkIconFactory\" id=\"iconfactory1\">"
Packit Service fb6fa5
    "    <sources>"
Packit Service fb6fa5
    "      <source/>"
Packit Service fb6fa5
    "    </sources>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GError *error = NULL;
Packit Service fb6fa5
#endif  
Packit Service fb6fa5
  GObject *factory;
Packit Service fb6fa5
  GtkIconSet *icon_set;
Packit Service fb6fa5
  GtkIconSource *icon_source;
Packit Service fb6fa5
  GtkWidget *image;
Packit Service fb6fa5
  
Packit Service fb6fa5
  builder = builder_new_from_string (buffer1, -1, NULL);
Packit Service fb6fa5
  factory = gtk_builder_get_object (builder, "iconfactory1");
Packit Service fb6fa5
  g_assert (factory != NULL);
Packit Service fb6fa5
Packit Service fb6fa5
  icon_set = gtk_icon_factory_lookup (GTK_ICON_FACTORY (factory), "apple-red");
Packit Service fb6fa5
  g_assert (icon_set != NULL);
Packit Service fb6fa5
  gtk_icon_factory_add_default (GTK_ICON_FACTORY (factory));
Packit Service fb6fa5
  image = gtk_image_new_from_stock ("apple-red", GTK_ICON_SIZE_BUTTON);
Packit Service fb6fa5
  g_assert (image != NULL);
Packit Service fb6fa5
  g_object_ref_sink (image);
Packit Service fb6fa5
  g_object_unref (image);
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
  builder = builder_new_from_string (buffer2, -1, NULL);
Packit Service fb6fa5
  factory = gtk_builder_get_object (builder, "iconfactory1");
Packit Service fb6fa5
  g_assert (factory != NULL);
Packit Service fb6fa5
Packit Service fb6fa5
  icon_set = gtk_icon_factory_lookup (GTK_ICON_FACTORY (factory), "sliff");
Packit Service fb6fa5
  g_assert (icon_set != NULL);
Packit Service fb6fa5
  g_assert (g_slist_length (icon_set->sources) == 2);
Packit Service fb6fa5
Packit Service fb6fa5
  icon_source = icon_set->sources->data;
Packit Service fb6fa5
  g_assert (gtk_icon_source_get_direction (icon_source) == GTK_TEXT_DIR_RTL);
Packit Service fb6fa5
  g_assert (gtk_icon_source_get_state (icon_source) == GTK_STATE_ACTIVE);
Packit Service fb6fa5
  g_assert (gtk_icon_source_get_size (icon_source) == GTK_ICON_SIZE_MENU);
Packit Service fb6fa5
  g_assert (g_str_has_suffix (gtk_icon_source_get_filename (icon_source), "sloff.png"));
Packit Service fb6fa5
  
Packit Service fb6fa5
  icon_source = icon_set->sources->next->data;
Packit Service fb6fa5
  g_assert (gtk_icon_source_get_direction (icon_source) == GTK_TEXT_DIR_LTR);
Packit Service fb6fa5
  g_assert (gtk_icon_source_get_state (icon_source) == GTK_STATE_SELECTED);
Packit Service fb6fa5
  g_assert (gtk_icon_source_get_size (icon_source) == GTK_ICON_SIZE_DND);
Packit Service fb6fa5
  g_assert (g_str_has_suffix (gtk_icon_source_get_filename (icon_source), "slurf.png"));
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
#if 0
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, buffer3, -1, &error);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_TAG));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, buffer4, -1, &error);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_TAG));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, buffer5, -1, &error);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_ATTRIBUTE));
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
#endif
Packit Service fb6fa5
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
typedef struct {
Packit Service fb6fa5
  gboolean weight;
Packit Service fb6fa5
  gboolean foreground;
Packit Service fb6fa5
  gboolean underline;
Packit Service fb6fa5
  gboolean size;
Packit Service fb6fa5
  gboolean font_desc;
Packit Service fb6fa5
  gboolean language;
Packit Service fb6fa5
} FoundAttrs;
Packit Service fb6fa5
Packit Service fb6fa5
static gboolean 
Packit Service fb6fa5
filter_pango_attrs (PangoAttribute *attr, 
Packit Service fb6fa5
		    gpointer        data)
Packit Service fb6fa5
{
Packit Service fb6fa5
  FoundAttrs *found = (FoundAttrs *)data;
Packit Service fb6fa5
Packit Service fb6fa5
  if (attr->klass->type == PANGO_ATTR_WEIGHT)
Packit Service fb6fa5
    found->weight = TRUE;
Packit Service fb6fa5
  else if (attr->klass->type == PANGO_ATTR_FOREGROUND)
Packit Service fb6fa5
    found->foreground = TRUE;
Packit Service fb6fa5
  else if (attr->klass->type == PANGO_ATTR_UNDERLINE)
Packit Service fb6fa5
    found->underline = TRUE;
Packit Service fb6fa5
  /* Make sure optional start/end properties are working */
Packit Service fb6fa5
  else if (attr->klass->type == PANGO_ATTR_SIZE && 
Packit Service fb6fa5
	   attr->start_index == 5 &&
Packit Service fb6fa5
	   attr->end_index   == 10)
Packit Service fb6fa5
    found->size = TRUE;
Packit Service fb6fa5
  else if (attr->klass->type == PANGO_ATTR_FONT_DESC)
Packit Service fb6fa5
    found->font_desc = TRUE;
Packit Service fb6fa5
  else if (attr->klass->type == PANGO_ATTR_LANGUAGE)
Packit Service fb6fa5
    found->language = TRUE;
Packit Service fb6fa5
Packit Service fb6fa5
  return TRUE;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_pango_attributes (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  FoundAttrs found = { 0, };
Packit Service fb6fa5
  const gchar buffer[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkLabel\" id=\"label1\">"
Packit Service fb6fa5
    "    <attributes>"
Packit Service fb6fa5
    "      <attribute name=\"weight\" value=\"PANGO_WEIGHT_BOLD\"/>"
Packit Service fb6fa5
    "      <attribute name=\"foreground\" value=\"DarkSlateGray\"/>"
Packit Service fb6fa5
    "      <attribute name=\"underline\" value=\"True\"/>"
Packit Service fb6fa5
    "      <attribute name=\"size\" value=\"4\" start=\"5\" end=\"10\"/>"
Packit Service fb6fa5
    "      <attribute name=\"font-desc\" value=\"Sans Italic 22\"/>"
Packit Service fb6fa5
    "      <attribute name=\"language\" value=\"pt_BR\"/>"
Packit Service fb6fa5
    "    </attributes>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar err_buffer1[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkLabel\" id=\"label1\">"
Packit Service fb6fa5
    "    <attributes>"
Packit Service fb6fa5
    "      <attribute name=\"weight\"/>"
Packit Service fb6fa5
    "    </attributes>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  const gchar err_buffer2[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkLabel\" id=\"label1\">"
Packit Service fb6fa5
    "    <attributes>"
Packit Service fb6fa5
    "      <attribute name=\"weight\" value=\"PANGO_WEIGHT_BOLD\" unrecognized=\"True\"/>"
Packit Service fb6fa5
    "    </attributes>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
Packit Service fb6fa5
  GObject *label;
Packit Service fb6fa5
  GError  *error = NULL;
Packit Service fb6fa5
  PangoAttrList *attrs, *filtered;
Packit Service fb6fa5
  
Packit Service fb6fa5
  /* Test attributes are set */
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  label = gtk_builder_get_object (builder, "label1");
Packit Service fb6fa5
  g_assert (label != NULL);
Packit Service fb6fa5
Packit Service fb6fa5
  attrs = gtk_label_get_attributes (GTK_LABEL (label));
Packit Service fb6fa5
  g_assert (attrs != NULL);
Packit Service fb6fa5
Packit Service fb6fa5
  filtered = pango_attr_list_filter (attrs, filter_pango_attrs, &found);
Packit Service fb6fa5
  g_assert (filtered);
Packit Service fb6fa5
  pango_attr_list_unref (filtered);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (found.weight);
Packit Service fb6fa5
  g_assert (found.foreground);
Packit Service fb6fa5
  g_assert (found.underline);
Packit Service fb6fa5
  g_assert (found.size);
Packit Service fb6fa5
  g_assert (found.language);
Packit Service fb6fa5
  g_assert (found.font_desc);
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
  /* Test errors are set */
Packit Service fb6fa5
  builder = gtk_builder_new ();
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, err_buffer1, -1, &error);
Packit Service fb6fa5
  label = gtk_builder_get_object (builder, "label1");
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_MISSING_ATTRIBUTE));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
Packit Service fb6fa5
  builder = gtk_builder_new ();
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, err_buffer2, -1, &error);
Packit Service fb6fa5
  label = gtk_builder_get_object (builder, "label1");
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_INVALID_ATTRIBUTE));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_requires (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  GError     *error = NULL;
Packit Service fb6fa5
  gchar      *buffer;
Packit Service fb6fa5
  const gchar buffer_fmt[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <requires lib=\"gtk+\" version=\"%d.%d\"/>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
Packit Service fb6fa5
  buffer = g_strdup_printf (buffer_fmt, GTK_MAJOR_VERSION, GTK_MINOR_VERSION + 1);
Packit Service fb6fa5
  builder = gtk_builder_new ();
Packit Service fb6fa5
  gtk_builder_add_from_string (builder, buffer, -1, &error);
Packit Service fb6fa5
  g_assert (g_error_matches (error,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR,
Packit Service fb6fa5
                             GTK_BUILDER_ERROR_VERSION_MISMATCH));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
  g_error_free (error);
Packit Service fb6fa5
  g_free (buffer);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_add_objects (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  GError *error;
Packit Service fb6fa5
  gint ret;
Packit Service fb6fa5
  GObject *obj;
Packit Service fb6fa5
  GtkUIManager *manager;
Packit Service fb6fa5
  GtkWidget *menubar;
Packit Service fb6fa5
  GObject *menu, *label;
Packit Service fb6fa5
  GList *children;
Packit Service fb6fa5
  gchar *objects[2] = {"mainbox", NULL};
Packit Service fb6fa5
  gchar *objects2[3] = {"mainbox", "window2", NULL};
Packit Service fb6fa5
  gchar *objects3[3] = {"uimgr1", "menubar1"};
Packit Service fb6fa5
  gchar *objects4[2] = {"uimgr1", NULL};
Packit Service fb6fa5
  const gchar buffer[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkVBox\" id=\"mainbox\">"
Packit Service fb6fa5
    "        <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkLabel\" id=\"label1\">"
Packit Service fb6fa5
    "            <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "            <property name=\"label\" translatable=\"no\">first label</property>"
Packit Service fb6fa5
    "          </object>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkLabel\" id=\"label2\">"
Packit Service fb6fa5
    "            <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "            <property name=\"label\" translatable=\"no\">second label</property>"
Packit Service fb6fa5
    "          </object>"
Packit Service fb6fa5
    "          <packing>"
Packit Service fb6fa5
    "            <property name=\"position\">1</property>"
Packit Service fb6fa5
    "          </packing>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window2\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkLabel\" id=\"label3\">"
Packit Service fb6fa5
    "        <property name=\"label\" translatable=\"no\">second label</property>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "<interface/>";
Packit Service fb6fa5
  const gchar buffer2[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkUIManager\" id=\"uimgr1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkActionGroup\" id=\"ag1\">"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkAction\" id=\"file\">"
Packit Service fb6fa5
    "            <property name=\"label\">_File</property>"
Packit Service fb6fa5
    "          </object>"
Packit Service fb6fa5
    "          <accelerator key=\"n\" modifiers=\"GDK_CONTROL_MASK\"/>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "    <ui>"
Packit Service fb6fa5
    "      <menubar name=\"menubar1\">"
Packit Service fb6fa5
    "        <menu action=\"file\">"
Packit Service fb6fa5
    "        </menu>"
Packit Service fb6fa5
    "      </menubar>"
Packit Service fb6fa5
    "    </ui>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkMenuBar\" id=\"menubar1\" constructor=\"uimgr1\"/>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  builder = gtk_builder_new ();
Packit Service fb6fa5
  ret = gtk_builder_add_objects_from_string (builder, buffer, -1, objects, &error);
Packit Service fb6fa5
  g_assert (ret);
Packit Service fb6fa5
  g_assert (error == NULL);
Packit Service fb6fa5
  obj = gtk_builder_get_object (builder, "window");
Packit Service fb6fa5
  g_assert (obj == NULL);
Packit Service fb6fa5
  obj = gtk_builder_get_object (builder, "window2");
Packit Service fb6fa5
  g_assert (obj == NULL);
Packit Service fb6fa5
  obj = gtk_builder_get_object (builder, "mainbox");  
Packit Service fb6fa5
  g_assert (GTK_IS_WIDGET (obj));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  builder = gtk_builder_new ();
Packit Service fb6fa5
  ret = gtk_builder_add_objects_from_string (builder, buffer, -1, objects2, &error);
Packit Service fb6fa5
  g_assert (ret);
Packit Service fb6fa5
  g_assert (error == NULL);
Packit Service fb6fa5
  obj = gtk_builder_get_object (builder, "window");
Packit Service fb6fa5
  g_assert (obj == NULL);
Packit Service fb6fa5
  obj = gtk_builder_get_object (builder, "window2");
Packit Service fb6fa5
  g_assert (GTK_IS_WINDOW (obj));
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (obj));
Packit Service fb6fa5
  obj = gtk_builder_get_object (builder, "mainbox");  
Packit Service fb6fa5
  g_assert (GTK_IS_WIDGET (obj));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
  /* test cherry picking a ui manager and menubar that depends on it */
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  builder = gtk_builder_new ();
Packit Service fb6fa5
  ret = gtk_builder_add_objects_from_string (builder, buffer2, -1, objects3, &error);
Packit Service fb6fa5
  g_assert (ret);
Packit Service fb6fa5
  obj = gtk_builder_get_object (builder, "uimgr1");
Packit Service fb6fa5
  g_assert (GTK_IS_UI_MANAGER (obj));
Packit Service fb6fa5
  obj = gtk_builder_get_object (builder, "file");
Packit Service fb6fa5
  g_assert (GTK_IS_ACTION (obj));
Packit Service fb6fa5
  obj = gtk_builder_get_object (builder, "menubar1");
Packit Service fb6fa5
  g_assert (GTK_IS_MENU_BAR (obj));
Packit Service fb6fa5
  menubar = GTK_WIDGET (obj);
Packit Service fb6fa5
Packit Service fb6fa5
  children = gtk_container_get_children (GTK_CONTAINER (menubar));
Packit Service fb6fa5
  menu = children->data;
Packit Service fb6fa5
  g_assert (menu != NULL);
Packit Service fb6fa5
  g_assert (GTK_IS_MENU_ITEM (menu));
Packit Service fb6fa5
  g_assert (strcmp (GTK_WIDGET (menu)->name, "file") == 0);
Packit Service fb6fa5
  g_list_free (children);
Packit Service fb6fa5
 
Packit Service fb6fa5
  label = G_OBJECT (GTK_BIN (menu)->child);
Packit Service fb6fa5
  g_assert (label != NULL);
Packit Service fb6fa5
  g_assert (GTK_IS_LABEL (label));
Packit Service fb6fa5
  g_assert (strcmp (gtk_label_get_text (GTK_LABEL (label)), "File") == 0);
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
  /* test cherry picking just the ui manager */
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  builder = gtk_builder_new ();
Packit Service fb6fa5
  ret = gtk_builder_add_objects_from_string (builder, buffer2, -1, objects4, &error);
Packit Service fb6fa5
  g_assert (ret);
Packit Service fb6fa5
  obj = gtk_builder_get_object (builder, "uimgr1");
Packit Service fb6fa5
  g_assert (GTK_IS_UI_MANAGER (obj));
Packit Service fb6fa5
  manager = GTK_UI_MANAGER (obj);
Packit Service fb6fa5
  obj = gtk_builder_get_object (builder, "file");
Packit Service fb6fa5
  g_assert (GTK_IS_ACTION (obj));
Packit Service fb6fa5
  menubar = gtk_ui_manager_get_widget (manager, "/menubar1");
Packit Service fb6fa5
  g_assert (GTK_IS_MENU_BAR (menubar));
Packit Service fb6fa5
Packit Service fb6fa5
  children = gtk_container_get_children (GTK_CONTAINER (menubar));
Packit Service fb6fa5
  menu = children->data;
Packit Service fb6fa5
  g_assert (menu != NULL);
Packit Service fb6fa5
  g_assert (GTK_IS_MENU_ITEM (menu));
Packit Service fb6fa5
  g_assert (strcmp (GTK_WIDGET (menu)->name, "file") == 0);
Packit Service fb6fa5
  g_list_free (children);
Packit Service fb6fa5
 
Packit Service fb6fa5
  label = G_OBJECT (GTK_BIN (menu)->child);
Packit Service fb6fa5
  g_assert (label != NULL);
Packit Service fb6fa5
  g_assert (GTK_IS_LABEL (label));
Packit Service fb6fa5
  g_assert (strcmp (gtk_label_get_text (GTK_LABEL (label)), "File") == 0);
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static GtkWidget *
Packit Service fb6fa5
get_parent_menubar (GtkWidget *menuitem)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkMenuShell *menu_shell = (GtkMenuShell *)menuitem->parent;
Packit Service fb6fa5
  GtkWidget *attach = NULL;
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (GTK_IS_MENU_SHELL (menu_shell));
Packit Service fb6fa5
Packit Service fb6fa5
  while (menu_shell && !GTK_IS_MENU_BAR (menu_shell))
Packit Service fb6fa5
    {
Packit Service fb6fa5
      if (GTK_IS_MENU (menu_shell) && 
Packit Service fb6fa5
	  (attach = gtk_menu_get_attach_widget (GTK_MENU (menu_shell))) != NULL)
Packit Service fb6fa5
	menu_shell = (GtkMenuShell *)attach->parent;
Packit Service fb6fa5
      else
Packit Service fb6fa5
	menu_shell = NULL;
Packit Service fb6fa5
    }
Packit Service fb6fa5
Packit Service fb6fa5
  return menu_shell ? GTK_WIDGET (menu_shell) : NULL;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_menus (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  const gchar *buffer =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <accel-groups>"
Packit Service fb6fa5
    "      <group name=\"accelgroup1\"/>"
Packit Service fb6fa5
    "    </accel-groups>"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkVBox\" id=\"vbox1\">"
Packit Service fb6fa5
    "        <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "        <property name=\"orientation\">vertical</property>"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkMenuBar\" id=\"menubar1\">"
Packit Service fb6fa5
    "            <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "            <child>"
Packit Service fb6fa5
    "              <object class=\"GtkMenuItem\" id=\"menuitem1\">"
Packit Service fb6fa5
    "                <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "                <property name=\"label\" translatable=\"yes\">_File</property>"
Packit Service fb6fa5
    "                <property name=\"use_underline\">True</property>"
Packit Service fb6fa5
    "                <child type=\"submenu\">"
Packit Service fb6fa5
    "                  <object class=\"GtkMenu\" id=\"menu1\">"
Packit Service fb6fa5
    "                    <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "                    <child>"
Packit Service fb6fa5
    "                      <object class=\"GtkImageMenuItem\" id=\"imagemenuitem1\">"
Packit Service fb6fa5
    "                        <property name=\"label\">gtk-new</property>"
Packit Service fb6fa5
    "                        <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "                        <property name=\"use_stock\">True</property>"
Packit Service fb6fa5
    "                        <property name=\"accel_group\">accelgroup1</property>"
Packit Service fb6fa5
    "                      </object>"
Packit Service fb6fa5
    "                    </child>"
Packit Service fb6fa5
    "                  </object>"
Packit Service fb6fa5
    "                </child>"
Packit Service fb6fa5
    "              </object>"
Packit Service fb6fa5
    "            </child>"
Packit Service fb6fa5
    "          </object>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "<object class=\"GtkAccelGroup\" id=\"accelgroup1\"/>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
Packit Service fb6fa5
  const gchar *buffer1 =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkWindow\" id=\"window1\">"
Packit Service fb6fa5
    "    <accel-groups>"
Packit Service fb6fa5
    "      <group name=\"accelgroup1\"/>"
Packit Service fb6fa5
    "    </accel-groups>"
Packit Service fb6fa5
    "    <child>"
Packit Service fb6fa5
    "      <object class=\"GtkVBox\" id=\"vbox1\">"
Packit Service fb6fa5
    "        <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "        <property name=\"orientation\">vertical</property>"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkMenuBar\" id=\"menubar1\">"
Packit Service fb6fa5
    "            <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "            <child>"
Packit Service fb6fa5
    "              <object class=\"GtkImageMenuItem\" id=\"imagemenuitem1\">"
Packit Service fb6fa5
    "                <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "                <child>"
Packit Service fb6fa5
    "                  <object class=\"GtkLabel\" id=\"custom1\">"
Packit Service fb6fa5
    "                    <property name=\"visible\">True</property>"
Packit Service fb6fa5
    "                    <property name=\"label\">a label</property>"
Packit Service fb6fa5
    "                  </object>"
Packit Service fb6fa5
    "                </child>"
Packit Service fb6fa5
    "              </object>"
Packit Service fb6fa5
    "            </child>"
Packit Service fb6fa5
    "          </object>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "<object class=\"GtkAccelGroup\" id=\"accelgroup1\"/>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  GtkWidget *window, *item;
Packit Service fb6fa5
  GtkAccelGroup *accel_group;
Packit Service fb6fa5
  GtkWidget *item_accel_label, *sample_accel_label, *sample_menu_item, *custom;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Check that the item has the correct accel label string set
Packit Service fb6fa5
   */
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  window = (GtkWidget *)gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  item = (GtkWidget *)gtk_builder_get_object (builder, "imagemenuitem1");
Packit Service fb6fa5
  accel_group = (GtkAccelGroup *)gtk_builder_get_object (builder, "accelgroup1");
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_widget_show_all (window);
Packit Service fb6fa5
Packit Service fb6fa5
  sample_menu_item = gtk_image_menu_item_new_from_stock (GTK_STOCK_NEW, accel_group);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (GTK_BIN (sample_menu_item)->child);
Packit Service fb6fa5
  g_assert (GTK_IS_ACCEL_LABEL (GTK_BIN (sample_menu_item)->child));
Packit Service fb6fa5
  sample_accel_label = GTK_WIDGET (GTK_BIN (sample_menu_item)->child);
Packit Service fb6fa5
  gtk_widget_show (sample_accel_label);
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (GTK_BIN (item)->child);
Packit Service fb6fa5
  g_assert (GTK_IS_ACCEL_LABEL (GTK_BIN (item)->child));
Packit Service fb6fa5
  item_accel_label = GTK_WIDGET (GTK_BIN (item)->child);
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_accel_label_refetch (GTK_ACCEL_LABEL (sample_accel_label));
Packit Service fb6fa5
  gtk_accel_label_refetch (GTK_ACCEL_LABEL (item_accel_label));
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (GTK_ACCEL_LABEL (sample_accel_label)->accel_string != NULL);
Packit Service fb6fa5
  g_assert (GTK_ACCEL_LABEL (item_accel_label)->accel_string != NULL);
Packit Service fb6fa5
  g_assert (strcmp (GTK_ACCEL_LABEL (item_accel_label)->accel_string, 
Packit Service fb6fa5
		    GTK_ACCEL_LABEL (sample_accel_label)->accel_string) == 0);
Packit Service fb6fa5
Packit Service fb6fa5
  /* Check the menu hierarchy worked here  */
Packit Service fb6fa5
  g_assert (get_parent_menubar (item));
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
  gtk_widget_destroy (sample_menu_item);
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
  /* Check that we can add alien children to menu items via normal
Packit Service fb6fa5
   * GtkContainer apis.
Packit Service fb6fa5
   */
Packit Service fb6fa5
  builder = builder_new_from_string (buffer1, -1, NULL);
Packit Service fb6fa5
  window = (GtkWidget *)gtk_builder_get_object (builder, "window1");
Packit Service fb6fa5
  item = (GtkWidget *)gtk_builder_get_object (builder, "imagemenuitem1");
Packit Service fb6fa5
  custom = (GtkWidget *)gtk_builder_get_object (builder, "custom1");
Packit Service fb6fa5
Packit Service fb6fa5
  g_assert (custom->parent == item);
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_widget_destroy (GTK_WIDGET (window));
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
static void 
Packit Service fb6fa5
test_file (const gchar *filename)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  GError *error = NULL;
Packit Service fb6fa5
  GSList *l, *objects;
Packit Service fb6fa5
Packit Service fb6fa5
  builder = gtk_builder_new ();
Packit Service fb6fa5
Packit Service fb6fa5
  if (!gtk_builder_add_from_file (builder, filename, &error))
Packit Service fb6fa5
    {
Packit Service fb6fa5
      g_error ("%s", error->message);
Packit Service fb6fa5
      g_error_free (error);
Packit Service fb6fa5
      return;
Packit Service fb6fa5
    }
Packit Service fb6fa5
Packit Service fb6fa5
  objects = gtk_builder_get_objects (builder);
Packit Service fb6fa5
  for (l = objects; l; l = l->next)
Packit Service fb6fa5
    {
Packit Service fb6fa5
      GObject *obj = (GObject*)l->data;
Packit Service fb6fa5
Packit Service fb6fa5
      if (GTK_IS_DIALOG (obj))
Packit Service fb6fa5
	{
Packit Service fb6fa5
	  int response;
Packit Service fb6fa5
Packit Service fb6fa5
	  g_print ("Running dialog %s.\n",
Packit Service fb6fa5
		   gtk_widget_get_name (GTK_WIDGET (obj)));
Packit Service fb6fa5
	  response = gtk_dialog_run (GTK_DIALOG (obj));
Packit Service fb6fa5
	}
Packit Service fb6fa5
      else if (GTK_IS_WINDOW (obj))
Packit Service fb6fa5
	{
Packit Service fb6fa5
	  g_signal_connect (obj, "destroy", G_CALLBACK (gtk_main_quit), NULL);
Packit Service fb6fa5
	  g_print ("Showing %s.\n",
Packit Service fb6fa5
		   gtk_widget_get_name (GTK_WIDGET (obj)));
Packit Service fb6fa5
	  gtk_widget_show_all (GTK_WIDGET (obj));
Packit Service fb6fa5
	}
Packit Service fb6fa5
    }
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_main ();
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
  builder = NULL;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
test_message_area (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkBuilder *builder;
Packit Service fb6fa5
  GError *error;
Packit Service fb6fa5
  GObject *obj, *obj1;
Packit Service fb6fa5
  const gchar buffer[] =
Packit Service fb6fa5
    "<interface>"
Packit Service fb6fa5
    "  <object class=\"GtkInfoBar\" id=\"infobar1\">"
Packit Service fb6fa5
    "    <child internal-child=\"content_area\">"
Packit Service fb6fa5
    "      <object class=\"GtkHBox\" id=\"contentarea1\">"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkLabel\" id=\"content\">"
Packit Service fb6fa5
    "            <property name=\"label\" translatable=\"yes\">Message</property>"
Packit Service fb6fa5
    "          </object>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "    <child internal-child=\"action_area\">"
Packit Service fb6fa5
    "      <object class=\"GtkVButtonBox\" id=\"actionarea1\">"
Packit Service fb6fa5
    "        <child>"
Packit Service fb6fa5
    "          <object class=\"GtkButton\" id=\"button_ok\">"
Packit Service fb6fa5
    "            <property name=\"label\">gtk-ok</property>"
Packit Service fb6fa5
    "            <property name=\"use-stock\">yes</property>"
Packit Service fb6fa5
    "          </object>"
Packit Service fb6fa5
    "        </child>"
Packit Service fb6fa5
    "      </object>"
Packit Service fb6fa5
    "    </child>"
Packit Service fb6fa5
    "    <action-widgets>"
Packit Service fb6fa5
    "      <action-widget response=\"1\">button_ok</action-widget>"
Packit Service fb6fa5
    "    </action-widgets>"
Packit Service fb6fa5
    "  </object>"
Packit Service fb6fa5
    "</interface>";
Packit Service fb6fa5
Packit Service fb6fa5
  error = NULL;
Packit Service fb6fa5
  builder = builder_new_from_string (buffer, -1, NULL);
Packit Service fb6fa5
  g_assert (error == NULL);
Packit Service fb6fa5
  obj = gtk_builder_get_object (builder, "infobar1");
Packit Service fb6fa5
  g_assert (GTK_IS_INFO_BAR (obj));
Packit Service fb6fa5
  obj1 = gtk_builder_get_object (builder, "content");
Packit Service fb6fa5
  g_assert (GTK_IS_LABEL (obj1));
Packit Service fb6fa5
  g_assert (gtk_widget_get_parent (gtk_widget_get_parent (GTK_WIDGET (obj1))) == GTK_WIDGET (obj));
Packit Service fb6fa5
Packit Service fb6fa5
  obj1 = gtk_builder_get_object (builder, "button_ok");
Packit Service fb6fa5
  g_assert (GTK_IS_BUTTON (obj1));
Packit Service fb6fa5
  g_assert (gtk_widget_get_parent (gtk_widget_get_parent (GTK_WIDGET (obj1))) == GTK_WIDGET (obj));
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_unref (builder);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
int
Packit Service fb6fa5
main (int argc, char **argv)
Packit Service fb6fa5
{
Packit Service fb6fa5
  /* initialize test program */
Packit Service fb6fa5
  gtk_test_init (&argc, &argv);
Packit Service fb6fa5
Packit Service fb6fa5
  if (argc > 1)
Packit Service fb6fa5
    {
Packit Service fb6fa5
      test_file (argv[1]);
Packit Service fb6fa5
      return 0;
Packit Service fb6fa5
    }
Packit Service fb6fa5
Packit Service fb6fa5
  g_test_add_func ("/Builder/Parser", test_parser);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Types", test_types);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Construct-Only Properties", test_construct_only_property);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Children", test_children);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Child Properties", test_child_properties);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Object Properties", test_object_properties);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Notebook", test_notebook);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Domain", test_domain);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Signal Autoconnect", test_connect_signals);
Packit Service fb6fa5
  g_test_add_func ("/Builder/UIManager Simple", test_uimanager_simple);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Spin Button", test_spin_button);
Packit Service fb6fa5
  g_test_add_func ("/Builder/SizeGroup", test_sizegroup);
Packit Service fb6fa5
  g_test_add_func ("/Builder/ListStore", test_list_store);
Packit Service fb6fa5
  g_test_add_func ("/Builder/TreeStore", test_tree_store);
Packit Service fb6fa5
  g_test_add_func ("/Builder/TreeView Column", test_treeview_column);
Packit Service fb6fa5
  g_test_add_func ("/Builder/IconView", test_icon_view);
Packit Service fb6fa5
  g_test_add_func ("/Builder/ComboBox", test_combo_box);
Packit Service fb6fa5
#if 0
Packit Service fb6fa5
  g_test_add_func ("/Builder/ComboBox Entry", test_combo_box_entry);
Packit Service fb6fa5
#endif
Packit Service fb6fa5
  g_test_add_func ("/Builder/CellView", test_cell_view);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Dialog", test_dialog);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Accelerators", test_accelerators);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Widget", test_widget);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Value From String", test_value_from_string);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Reference Counting", test_reference_counting);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Window", test_window);
Packit Service fb6fa5
  g_test_add_func ("/Builder/IconFactory", test_icon_factory);
Packit Service fb6fa5
  g_test_add_func ("/Builder/PangoAttributes", test_pango_attributes);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Requires", test_requires);
Packit Service fb6fa5
  g_test_add_func ("/Builder/AddObjects", test_add_objects);
Packit Service fb6fa5
  g_test_add_func ("/Builder/Menus", test_menus);
Packit Service fb6fa5
  g_test_add_func ("/Builder/MessageArea", test_message_area);
Packit Service fb6fa5
  g_test_add_func ("/Builder/MessageDialog", test_message_dialog);
Packit Service fb6fa5
Packit Service fb6fa5
  return g_test_run();
Packit Service fb6fa5
}