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.
This commit is contained in:
Matthias Clasen 2013-04-27 13:34:18 -04:00
parent d35596fe92
commit 1f17efb81c
2 changed files with 54 additions and 0 deletions

View File

@ -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

50
gtk/tests/window.c Normal file
View File

@ -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 ();
}