1 /* ADG - Automatic Drawing Generation
2 * Copyright (C) 2010 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"
25 _adg_test_background_dress(void)
28 AdgDress valid_dress_1
, valid_dress_2
, incompatible_dress
;
29 AdgDress background_dress
;
31 canvas
= adg_canvas_new();
32 valid_dress_1
= ADG_DRESS_COLOR_DIMENSION
;
33 valid_dress_2
= ADG_DRESS_COLOR_FILL
;
34 incompatible_dress
= ADG_DRESS_FONT_QUOTE_ANNOTATION
;
36 /* Using the public APIs */
37 adg_canvas_set_background_dress(canvas
, valid_dress_1
);
38 background_dress
= adg_canvas_get_background_dress(canvas
);
39 g_assert_cmpint(background_dress
, ==, valid_dress_1
);
41 adg_canvas_set_background_dress(canvas
, incompatible_dress
);
42 background_dress
= adg_canvas_get_background_dress(canvas
);
43 g_assert_cmpint(background_dress
, ==, valid_dress_1
);
45 adg_canvas_set_background_dress(canvas
, valid_dress_2
);
46 background_dress
= adg_canvas_get_background_dress(canvas
);
47 g_assert_cmpint(background_dress
, ==, valid_dress_2
);
49 /* Using GObject property methods */
50 g_object_set(canvas
, "background-dress", valid_dress_1
, NULL
);
51 g_object_get(canvas
, "background-dress", &background_dress
, NULL
);
52 g_assert_cmpint(background_dress
, ==, valid_dress_1
);
54 g_object_set(canvas
, "background-dress", incompatible_dress
, NULL
);
55 g_object_get(canvas
, "background-dress", &background_dress
, NULL
);
56 g_assert_cmpint(background_dress
, ==, valid_dress_1
);
58 g_object_set(canvas
, "background-dress", valid_dress_2
, NULL
);
59 g_object_get(canvas
, "background-dress", &background_dress
, NULL
);
60 g_assert_cmpint(background_dress
, ==, valid_dress_2
);
62 g_object_unref(canvas
);
66 _adg_test_top_margin(void)
69 gdouble valid_value_1
, valid_value_2
;
72 canvas
= ADG_CANVAS(adg_canvas_new());
76 /* Using the public APIs */
77 adg_canvas_set_top_margin(canvas
, valid_value_1
);
78 top_margin
= adg_canvas_get_top_margin(canvas
);
79 g_assert_cmpfloat(top_margin
, ==, valid_value_1
);
81 adg_canvas_set_margins(canvas
, valid_value_2
, 0, 0, 0);
82 top_margin
= adg_canvas_get_top_margin(canvas
);
83 g_assert_cmpfloat(top_margin
, ==, valid_value_2
);
85 /* Using GObject property methods */
86 g_object_set(canvas
, "top-margin", valid_value_1
, NULL
);
87 g_object_get(canvas
, "top-margin", &top_margin
, NULL
);
88 g_assert_cmpfloat(top_margin
, ==, valid_value_1
);
90 g_object_set(canvas
, "top-margin", valid_value_2
, NULL
);
91 g_object_get(canvas
, "top-margin", &top_margin
, NULL
);
92 g_assert_cmpfloat(top_margin
, ==, valid_value_2
);
94 g_object_unref(canvas
);
98 _adg_test_right_margin(void)
101 gdouble valid_value_1
, valid_value_2
;
102 gdouble right_margin
;
104 canvas
= ADG_CANVAS(adg_canvas_new());
105 valid_value_1
= 4321;
106 valid_value_2
= 1234;
108 /* Using the public APIs */
109 adg_canvas_set_right_margin(canvas
, valid_value_1
);
110 right_margin
= adg_canvas_get_right_margin(canvas
);
111 g_assert_cmpfloat(right_margin
, ==, valid_value_1
);
113 adg_canvas_set_margins(canvas
, 0, valid_value_2
, 0, 0);
114 right_margin
= adg_canvas_get_right_margin(canvas
);
115 g_assert_cmpfloat(right_margin
, ==, valid_value_2
);
117 /* Using GObject property methods */
118 g_object_set(canvas
, "right-margin", valid_value_1
, NULL
);
119 g_object_get(canvas
, "right-margin", &right_margin
, NULL
);
120 g_assert_cmpfloat(right_margin
, ==, valid_value_1
);
122 g_object_set(canvas
, "right-margin", valid_value_2
, NULL
);
123 g_object_get(canvas
, "right-margin", &right_margin
, NULL
);
124 g_assert_cmpfloat(right_margin
, ==, valid_value_2
);
126 g_object_unref(canvas
);
130 _adg_test_bottom_margin(void)
133 gdouble valid_value_1
, valid_value_2
;
134 gdouble bottom_margin
;
136 canvas
= ADG_CANVAS(adg_canvas_new());
137 valid_value_1
= 4321;
138 valid_value_2
= 1234;
140 /* Using the public APIs */
141 adg_canvas_set_bottom_margin(canvas
, valid_value_1
);
142 bottom_margin
= adg_canvas_get_bottom_margin(canvas
);
143 g_assert_cmpfloat(bottom_margin
, ==, valid_value_1
);
145 adg_canvas_set_margins(canvas
, 0, 0, valid_value_2
, 0);
146 bottom_margin
= adg_canvas_get_bottom_margin(canvas
);
147 g_assert_cmpfloat(bottom_margin
, ==, valid_value_2
);
149 /* Using GObject property methods */
150 g_object_set(canvas
, "bottom-margin", valid_value_1
, NULL
);
151 g_object_get(canvas
, "bottom-margin", &bottom_margin
, NULL
);
152 g_assert_cmpfloat(bottom_margin
, ==, valid_value_1
);
154 g_object_set(canvas
, "bottom-margin", valid_value_2
, NULL
);
155 g_object_get(canvas
, "bottom-margin", &bottom_margin
, NULL
);
156 g_assert_cmpfloat(bottom_margin
, ==, valid_value_2
);
158 g_object_unref(canvas
);
162 _adg_test_left_margin(void)
165 gdouble valid_value_1
, valid_value_2
;
168 canvas
= ADG_CANVAS(adg_canvas_new());
169 valid_value_1
= 4321;
170 valid_value_2
= 1234;
172 /* Using the public APIs */
173 adg_canvas_set_left_margin(canvas
, valid_value_1
);
174 left_margin
= adg_canvas_get_left_margin(canvas
);
175 g_assert_cmpfloat(left_margin
, ==, valid_value_1
);
177 adg_canvas_set_margins(canvas
, 0, 0, 0, valid_value_2
);
178 left_margin
= adg_canvas_get_left_margin(canvas
);
179 g_assert_cmpfloat(left_margin
, ==, valid_value_2
);
181 /* Using GObject property methods */
182 g_object_set(canvas
, "left-margin", valid_value_1
, NULL
);
183 g_object_get(canvas
, "left-margin", &left_margin
, NULL
);
184 g_assert_cmpfloat(left_margin
, ==, valid_value_1
);
186 g_object_set(canvas
, "left-margin", valid_value_2
, NULL
);
187 g_object_get(canvas
, "left-margin", &left_margin
, NULL
);
188 g_assert_cmpfloat(left_margin
, ==, valid_value_2
);
190 g_object_unref(canvas
);
194 _adg_test_has_frame(void)
197 gboolean invalid_boolean
;
200 canvas
= ADG_CANVAS(adg_canvas_new());
201 invalid_boolean
= (gboolean
) 1234;
203 /* Using the public APIs */
204 adg_canvas_switch_frame(canvas
, FALSE
);
205 has_frame
= adg_canvas_has_frame(canvas
);
206 g_assert(!has_frame
);
208 adg_canvas_switch_frame(canvas
, invalid_boolean
);
209 has_frame
= adg_canvas_has_frame(canvas
);
210 g_assert(!has_frame
);
212 adg_canvas_switch_frame(canvas
, TRUE
);
213 has_frame
= adg_canvas_has_frame(canvas
);
216 /* Using GObject property methods */
217 g_object_set(canvas
, "has-frame", FALSE
, NULL
);
218 g_object_get(canvas
, "has-frame", &has_frame
, NULL
);
219 g_assert(!has_frame
);
221 g_object_set(canvas
, "has-frame", invalid_boolean
, NULL
);
222 g_object_get(canvas
, "has-frame", &has_frame
, NULL
);
223 g_assert(!has_frame
);
225 g_object_set(canvas
, "has-frame", TRUE
, NULL
);
226 g_object_get(canvas
, "has-frame", &has_frame
, NULL
);
229 g_object_unref(canvas
);
233 _adg_test_top_padding(void)
236 gdouble valid_value_1
, valid_value_2
;
239 canvas
= ADG_CANVAS(adg_canvas_new());
240 valid_value_1
= 4321;
241 valid_value_2
= 1234;
243 /* Using the public APIs */
244 adg_canvas_set_top_padding(canvas
, valid_value_1
);
245 top_padding
= adg_canvas_get_top_padding(canvas
);
246 g_assert_cmpfloat(top_padding
, ==, valid_value_1
);
248 adg_canvas_set_paddings(canvas
, valid_value_2
, 0, 0, 0);
249 top_padding
= adg_canvas_get_top_padding(canvas
);
250 g_assert_cmpfloat(top_padding
, ==, valid_value_2
);
252 /* Using GObject property methods */
253 g_object_set(canvas
, "top-padding", valid_value_1
, NULL
);
254 g_object_get(canvas
, "top-padding", &top_padding
, NULL
);
255 g_assert_cmpfloat(top_padding
, ==, valid_value_1
);
257 g_object_set(canvas
, "top-padding", valid_value_2
, NULL
);
258 g_object_get(canvas
, "top-padding", &top_padding
, NULL
);
259 g_assert_cmpfloat(top_padding
, ==, valid_value_2
);
261 g_object_unref(canvas
);
265 _adg_test_right_padding(void)
268 gdouble valid_value_1
, valid_value_2
;
269 gdouble right_padding
;
271 canvas
= ADG_CANVAS(adg_canvas_new());
272 valid_value_1
= 4321;
273 valid_value_2
= 1234;
275 /* Using the public APIs */
276 adg_canvas_set_right_padding(canvas
, valid_value_1
);
277 right_padding
= adg_canvas_get_right_padding(canvas
);
278 g_assert_cmpfloat(right_padding
, ==, valid_value_1
);
280 adg_canvas_set_paddings(canvas
, 0, valid_value_2
, 0, 0);
281 right_padding
= adg_canvas_get_right_padding(canvas
);
282 g_assert_cmpfloat(right_padding
, ==, valid_value_2
);
284 /* Using GObject property methods */
285 g_object_set(canvas
, "right-padding", valid_value_1
, NULL
);
286 g_object_get(canvas
, "right-padding", &right_padding
, NULL
);
287 g_assert_cmpfloat(right_padding
, ==, valid_value_1
);
289 g_object_set(canvas
, "right-padding", valid_value_2
, NULL
);
290 g_object_get(canvas
, "right-padding", &right_padding
, NULL
);
291 g_assert_cmpfloat(right_padding
, ==, valid_value_2
);
293 g_object_unref(canvas
);
297 _adg_test_bottom_padding(void)
300 gdouble valid_value_1
, valid_value_2
;
301 gdouble bottom_padding
;
303 canvas
= ADG_CANVAS(adg_canvas_new());
304 valid_value_1
= 4321;
305 valid_value_2
= 1234;
307 /* Using the public APIs */
308 adg_canvas_set_bottom_padding(canvas
, valid_value_1
);
309 bottom_padding
= adg_canvas_get_bottom_padding(canvas
);
310 g_assert_cmpfloat(bottom_padding
, ==, valid_value_1
);
312 adg_canvas_set_paddings(canvas
, 0, 0, valid_value_2
, 0);
313 bottom_padding
= adg_canvas_get_bottom_padding(canvas
);
314 g_assert_cmpfloat(bottom_padding
, ==, valid_value_2
);
316 /* Using GObject property methods */
317 g_object_set(canvas
, "bottom-padding", valid_value_1
, NULL
);
318 g_object_get(canvas
, "bottom-padding", &bottom_padding
, NULL
);
319 g_assert_cmpfloat(bottom_padding
, ==, valid_value_1
);
321 g_object_set(canvas
, "bottom-padding", valid_value_2
, NULL
);
322 g_object_get(canvas
, "bottom-padding", &bottom_padding
, NULL
);
323 g_assert_cmpfloat(bottom_padding
, ==, valid_value_2
);
325 g_object_unref(canvas
);
329 _adg_test_left_padding(void)
332 gdouble valid_value_1
, valid_value_2
;
333 gdouble left_padding
;
335 canvas
= ADG_CANVAS(adg_canvas_new());
336 valid_value_1
= 4321;
337 valid_value_2
= 1234;
339 /* Using the public APIs */
340 adg_canvas_set_left_padding(canvas
, valid_value_1
);
341 left_padding
= adg_canvas_get_left_padding(canvas
);
342 g_assert_cmpfloat(left_padding
, ==, valid_value_1
);
344 adg_canvas_set_paddings(canvas
, 0, 0, 0, valid_value_2
);
345 left_padding
= adg_canvas_get_left_padding(canvas
);
346 g_assert_cmpfloat(left_padding
, ==, valid_value_2
);
348 /* Using GObject property methods */
349 g_object_set(canvas
, "left-padding", valid_value_1
, NULL
);
350 g_object_get(canvas
, "left-padding", &left_padding
, NULL
);
351 g_assert_cmpfloat(left_padding
, ==, valid_value_1
);
353 g_object_set(canvas
, "left-padding", valid_value_2
, NULL
);
354 g_object_get(canvas
, "left-padding", &left_padding
, NULL
);
355 g_assert_cmpfloat(left_padding
, ==, valid_value_2
);
357 g_object_unref(canvas
);
362 main(int argc
, char *argv
[])
364 adg_test_init(&argc
, &argv
);
366 adg_test_add_func("/adg/canvas/property/background-dress",
367 _adg_test_background_dress
);
368 adg_test_add_func("/adg/canvas/property/top-margin",
369 _adg_test_top_margin
);
370 adg_test_add_func("/adg/canvas/property/right-margin",
371 _adg_test_right_margin
);
372 adg_test_add_func("/adg/canvas/property/bottom-margin",
373 _adg_test_bottom_margin
);
374 adg_test_add_func("/adg/canvas/property/left-margin",
375 _adg_test_left_margin
);
376 adg_test_add_func("/adg/canvas/property/has-frame",
377 _adg_test_has_frame
);
378 adg_test_add_func("/adg/canvas/property/top-padding",
379 _adg_test_top_padding
);
380 adg_test_add_func("/adg/canvas/property/right-padding",
381 _adg_test_right_padding
);
382 adg_test_add_func("/adg/canvas/property/bottom-padding",
383 _adg_test_bottom_padding
);
384 adg_test_add_func("/adg/canvas/property/left-padding",
385 _adg_test_left_padding
);