[gtk+] Add some tests for GtkWindow



commit 1f17efb81c55f9b24cc002dd9a1d76a6e4613fe4
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Apr 27 13:34:18 2013 -0400

    Add some tests for GtkWindow
    
    These tests may have some assumptions on reasonable window manager
    behaviour.  For now, we just test that the default size of the
    window ends up as the allocated size of the content. This test
    currently fails with client-side decorations, because we are
    not properly discriminating between overall window size and
    content size.

 gtk/tests/Makefile.am |    4 +++
 gtk/tests/window.c    |   50 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 54 insertions(+), 0 deletions(-)
---
diff --git a/gtk/tests/Makefile.am b/gtk/tests/Makefile.am
index 0bbd4f5..7bcd7c3 100644
--- a/gtk/tests/Makefile.am
+++ b/gtk/tests/Makefile.am
@@ -176,6 +176,10 @@ TEST_PROGS                 += objects-finalize
 objects_finalize_SOURCES         = objects-finalize.c
 objects_finalize_LDADD          = $(progs_ldadd)
 
+TEST_PROGS                     += window
+window_SOURCES                  = window.c
+window_LDADD                    = $(progs_ldadd)
+
 EXTRA_DIST +=                          \
        file-chooser-test-dir/empty     \
        file-chooser-test-dir/text.txt
diff --git a/gtk/tests/window.c b/gtk/tests/window.c
new file mode 100644
index 0000000..1aecdfc
--- /dev/null
+++ b/gtk/tests/window.c
@@ -0,0 +1,50 @@
+#include <gtk/gtk.h>
+
+static gboolean
+stop_main (gpointer data)
+{
+  gtk_main_quit ();
+
+  return G_SOURCE_REMOVE;
+}
+
+static void
+test_default_size (void)
+{
+  GtkWidget *window;
+  GtkWidget *box;
+  gint w, h;
+
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+  gtk_container_add (GTK_CONTAINER (window), box);
+
+  gtk_window_get_default_size (GTK_WINDOW (window), &w, &h);
+  g_assert (w == -1 && h == -1);
+
+  gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);
+
+  gtk_window_get_default_size (GTK_WINDOW (window), &w, &h);
+  g_assert (w == 300 && h == 300);
+
+  gtk_widget_show_all (window);
+
+  g_timeout_add (1000, stop_main, NULL);
+  gtk_main ();
+
+  g_assert (gtk_widget_get_allocated_width (window) == 300);
+  g_assert (gtk_widget_get_allocated_height (window) == 300);
+
+  g_assert (gtk_widget_get_allocated_width (box) == 300);
+  g_assert (gtk_widget_get_allocated_height (box) == 300);
+}
+
+int
+main (int argc, char *argv[])
+{
+  gtk_test_init (&argc, &argv);
+
+  g_test_add_func ("/window/default-size", test_default_size);
+
+  return g_test_run ();
+}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]