AdgEntity: added "destroy" signal
[adg.git] / src / adg / tests / test-gtk-layout.c
blobf48dfc549d003580de77e581d97136bd52fc1bd1
1 /* ADG - Automatic Drawing Generation
2 * Copyright (C) 2010,2011 Nicola Fontana <ntd at entidi.it>
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
21 #include "test-internal.h"
24 static void
25 _adg_test_hadjustment(void)
27 AdgGtkLayout *layout;
28 GtkAdjustment *valid_adjustment, *invalid_adjustment, *hadjustment;
30 layout = ADG_GTK_LAYOUT(adg_gtk_layout_new());
31 valid_adjustment = (GtkAdjustment *) gtk_adjustment_new(0, 0, 0, 0, 0, 0);
32 invalid_adjustment = adg_test_invalid_pointer();
34 g_object_ref(valid_adjustment);
36 /* Using the public APIs */
37 g_test_message("The implementation must provide a fallback adjustment");
38 hadjustment = adg_gtk_layout_get_hadjustment(layout);
39 g_assert(GTK_IS_ADJUSTMENT(hadjustment));
41 adg_gtk_layout_set_hadjustment(layout, NULL);
42 hadjustment = adg_gtk_layout_get_hadjustment(layout);
43 g_assert(GTK_IS_ADJUSTMENT(hadjustment));
45 adg_gtk_layout_set_hadjustment(layout, valid_adjustment);
46 hadjustment = adg_gtk_layout_get_hadjustment(layout);
47 g_assert(hadjustment == valid_adjustment);
49 adg_gtk_layout_set_hadjustment(layout, invalid_adjustment);
50 hadjustment = adg_gtk_layout_get_hadjustment(layout);
51 g_assert(hadjustment == valid_adjustment);
53 adg_gtk_layout_set_hadjustment(layout, NULL);
54 hadjustment = adg_gtk_layout_get_hadjustment(layout);
55 g_assert(hadjustment != valid_adjustment && GTK_IS_ADJUSTMENT(hadjustment));
57 /* Using GObject property methods */
58 g_object_set(layout, "hadjustment", NULL, NULL);
59 g_object_get(layout, "hadjustment", &hadjustment, NULL);
60 g_assert(GTK_IS_ADJUSTMENT(hadjustment));
61 g_object_unref(hadjustment);
63 g_object_set(layout, "hadjustment", valid_adjustment, NULL);
64 g_object_get(layout, "hadjustment", &hadjustment, NULL);
65 g_assert(hadjustment == valid_adjustment);
66 g_object_unref(hadjustment);
68 g_object_set(layout, "hadjustment", invalid_adjustment, NULL);
69 g_object_get(layout, "hadjustment", &hadjustment, NULL);
70 g_assert(hadjustment == valid_adjustment);
71 g_object_unref(hadjustment);
73 g_object_set(layout, "hadjustment", NULL, NULL);
74 g_object_get(layout, "hadjustment", &hadjustment, NULL);
75 g_assert(hadjustment != valid_adjustment && GTK_IS_ADJUSTMENT(hadjustment));
76 g_object_unref(hadjustment);
78 gtk_widget_destroy(GTK_WIDGET(layout));
79 g_object_unref(valid_adjustment);
82 static void
83 _adg_test_vadjustment(void)
85 AdgGtkLayout *layout;
86 GtkAdjustment *valid_adjustment, *invalid_adjustment, *vadjustment;
88 layout = ADG_GTK_LAYOUT(adg_gtk_layout_new());
89 valid_adjustment = (GtkAdjustment *) gtk_adjustment_new(0, 0, 0, 0, 0, 0);
90 invalid_adjustment = adg_test_invalid_pointer();
92 g_object_ref(valid_adjustment);
94 /* Using the public APIs */
95 g_test_message("The implementation must provide a fallback adjustment");
96 vadjustment = adg_gtk_layout_get_vadjustment(layout);
97 g_assert(GTK_IS_ADJUSTMENT(vadjustment));
99 adg_gtk_layout_set_vadjustment(layout, NULL);
100 vadjustment = adg_gtk_layout_get_vadjustment(layout);
101 g_assert(GTK_IS_ADJUSTMENT(vadjustment));
103 adg_gtk_layout_set_vadjustment(layout, valid_adjustment);
104 vadjustment = adg_gtk_layout_get_vadjustment(layout);
105 g_assert(vadjustment == valid_adjustment);
107 adg_gtk_layout_set_vadjustment(layout, invalid_adjustment);
108 vadjustment = adg_gtk_layout_get_vadjustment(layout);
109 g_assert(vadjustment == valid_adjustment);
111 adg_gtk_layout_set_vadjustment(layout, NULL);
112 vadjustment = adg_gtk_layout_get_vadjustment(layout);
113 g_assert(vadjustment != valid_adjustment && GTK_IS_ADJUSTMENT(vadjustment));
115 /* Using GObject property methods */
116 g_object_set(layout, "vadjustment", NULL, NULL);
117 g_object_get(layout, "vadjustment", &vadjustment, NULL);
118 g_assert(GTK_IS_ADJUSTMENT(vadjustment));
119 g_object_unref(vadjustment);
121 g_object_set(layout, "vadjustment", valid_adjustment, NULL);
122 g_object_get(layout, "vadjustment", &vadjustment, NULL);
123 g_assert(vadjustment == valid_adjustment);
124 g_object_unref(vadjustment);
126 g_object_set(layout, "vadjustment", invalid_adjustment, NULL);
127 g_object_get(layout, "vadjustment", &vadjustment, NULL);
128 g_assert(vadjustment == valid_adjustment);
129 g_object_unref(vadjustment);
131 g_object_set(layout, "vadjustment", NULL, NULL);
132 g_object_get(layout, "vadjustment", &vadjustment, NULL);
133 g_assert(vadjustment != valid_adjustment && GTK_IS_ADJUSTMENT(vadjustment));
134 g_object_unref(vadjustment);
136 gtk_widget_destroy(GTK_WIDGET(layout));
137 g_object_unref(valid_adjustment);
142 main(int argc, char *argv[])
144 adg_test_init(&argc, &argv);
146 adg_test_add_func("/adg/gtk/layout/hadjustment", _adg_test_hadjustment);
147 adg_test_add_func("/adg/gtk/layout/vadjustment", _adg_test_vadjustment);
149 return g_test_run();