1 /* ADG - Automatic Drawing Generation
2 * Copyright (C) 2007-2015 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.
26 _adg_property_hadjustment(void)
29 GtkAdjustment
*valid_adjustment
, *invalid_adjustment
, *hadjustment
;
31 layout
= ADG_GTK_LAYOUT(adg_gtk_layout_new());
32 valid_adjustment
= (GtkAdjustment
*) gtk_adjustment_new(0, 0, 0, 0, 0, 0);
33 invalid_adjustment
= adg_test_invalid_pointer();
35 g_object_ref(valid_adjustment
);
37 /* Using the public APIs */
38 g_test_message("The implementation must provide a fallback adjustment");
39 hadjustment
= adg_gtk_layout_get_hadjustment(layout
);
40 g_assert_true(GTK_IS_ADJUSTMENT(hadjustment
));
42 adg_gtk_layout_set_hadjustment(layout
, NULL
);
43 hadjustment
= adg_gtk_layout_get_hadjustment(layout
);
44 g_assert_true(GTK_IS_ADJUSTMENT(hadjustment
));
46 adg_gtk_layout_set_hadjustment(layout
, valid_adjustment
);
47 hadjustment
= adg_gtk_layout_get_hadjustment(layout
);
48 g_assert_true(hadjustment
== valid_adjustment
);
50 adg_gtk_layout_set_hadjustment(layout
, invalid_adjustment
);
51 hadjustment
= adg_gtk_layout_get_hadjustment(layout
);
52 g_assert_true(hadjustment
== valid_adjustment
);
54 adg_gtk_layout_set_hadjustment(layout
, NULL
);
55 hadjustment
= adg_gtk_layout_get_hadjustment(layout
);
56 g_assert_true(hadjustment
!= valid_adjustment
);
57 g_assert_true(GTK_IS_ADJUSTMENT(hadjustment
));
59 /* Using GObject property methods */
60 g_object_set(layout
, "hadjustment", NULL
, NULL
);
61 g_object_get(layout
, "hadjustment", &hadjustment
, NULL
);
62 g_assert_true(GTK_IS_ADJUSTMENT(hadjustment
));
63 g_object_unref(hadjustment
);
65 g_object_set(layout
, "hadjustment", valid_adjustment
, NULL
);
66 g_object_get(layout
, "hadjustment", &hadjustment
, NULL
);
67 g_assert_true(hadjustment
== valid_adjustment
);
68 g_object_unref(hadjustment
);
70 g_object_set(layout
, "hadjustment", invalid_adjustment
, NULL
);
71 g_object_get(layout
, "hadjustment", &hadjustment
, NULL
);
72 g_assert_true(hadjustment
== valid_adjustment
);
73 g_object_unref(hadjustment
);
75 g_object_set(layout
, "hadjustment", NULL
, NULL
);
76 g_object_get(layout
, "hadjustment", &hadjustment
, NULL
);
77 g_assert_true(hadjustment
!= valid_adjustment
);
78 g_assert_true(GTK_IS_ADJUSTMENT(hadjustment
));
79 g_object_unref(hadjustment
);
81 gtk_widget_destroy(GTK_WIDGET(layout
));
82 g_object_unref(valid_adjustment
);
86 _adg_property_vadjustment(void)
89 GtkAdjustment
*valid_adjustment
, *invalid_adjustment
, *vadjustment
;
91 layout
= ADG_GTK_LAYOUT(adg_gtk_layout_new());
92 valid_adjustment
= (GtkAdjustment
*) gtk_adjustment_new(0, 0, 0, 0, 0, 0);
93 invalid_adjustment
= adg_test_invalid_pointer();
95 g_object_ref(valid_adjustment
);
97 /* Using the public APIs */
98 g_test_message("The implementation must provide a fallback adjustment");
99 vadjustment
= adg_gtk_layout_get_vadjustment(layout
);
100 g_assert_true(GTK_IS_ADJUSTMENT(vadjustment
));
102 adg_gtk_layout_set_vadjustment(layout
, NULL
);
103 vadjustment
= adg_gtk_layout_get_vadjustment(layout
);
104 g_assert_true(GTK_IS_ADJUSTMENT(vadjustment
));
106 adg_gtk_layout_set_vadjustment(layout
, valid_adjustment
);
107 vadjustment
= adg_gtk_layout_get_vadjustment(layout
);
108 g_assert_true(vadjustment
== valid_adjustment
);
110 adg_gtk_layout_set_vadjustment(layout
, invalid_adjustment
);
111 vadjustment
= adg_gtk_layout_get_vadjustment(layout
);
112 g_assert_true(vadjustment
== valid_adjustment
);
114 adg_gtk_layout_set_vadjustment(layout
, NULL
);
115 vadjustment
= adg_gtk_layout_get_vadjustment(layout
);
116 g_assert_true(vadjustment
!= valid_adjustment
);
117 g_assert_true(GTK_IS_ADJUSTMENT(vadjustment
));
119 /* Using GObject property methods */
120 g_object_set(layout
, "vadjustment", NULL
, NULL
);
121 g_object_get(layout
, "vadjustment", &vadjustment
, NULL
);
122 g_assert_true(GTK_IS_ADJUSTMENT(vadjustment
));
123 g_object_unref(vadjustment
);
125 g_object_set(layout
, "vadjustment", valid_adjustment
, NULL
);
126 g_object_get(layout
, "vadjustment", &vadjustment
, NULL
);
127 g_assert_true(vadjustment
== valid_adjustment
);
128 g_object_unref(vadjustment
);
130 g_object_set(layout
, "vadjustment", invalid_adjustment
, NULL
);
131 g_object_get(layout
, "vadjustment", &vadjustment
, NULL
);
132 g_assert_true(vadjustment
== valid_adjustment
);
133 g_object_unref(vadjustment
);
135 g_object_set(layout
, "vadjustment", NULL
, NULL
);
136 g_object_get(layout
, "vadjustment", &vadjustment
, NULL
);
137 g_assert_true(vadjustment
!= valid_adjustment
);
138 g_assert_true(GTK_IS_ADJUSTMENT(vadjustment
));
139 g_object_unref(vadjustment
);
141 gtk_widget_destroy(GTK_WIDGET(layout
));
142 g_object_unref(valid_adjustment
);
147 main(int argc
, char *argv
[])
149 adg_test_init(&argc
, &argv
);
151 adg_test_add_object_checks("/adg/gtk/layout/type/object", ADG_GTK_TYPE_LAYOUT
);
153 g_test_add_func("/adg-gtk/layout/property/hadjustment", _adg_property_hadjustment
);
154 g_test_add_func("/adg-gtk/layout/property/vadjustment", _adg_property_vadjustment
);