[AdgCanvas] Added custom paddings
[adg.git] / src / adg / tests / test-canvas.c
blob96359f0ed30c9c690c7928b9488f18fb73913bc0
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"
24 static void
25 _adg_test_background_dress(void)
27 AdgCanvas *canvas;
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);
65 static void
66 _adg_test_top_margin(void)
68 AdgCanvas *canvas;
69 gdouble valid_value_1, valid_value_2;
70 gdouble top_margin;
72 canvas = ADG_CANVAS(adg_canvas_new());
73 valid_value_1 = 4321;
74 valid_value_2 = 1234;
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);
97 static void
98 _adg_test_right_margin(void)
100 AdgCanvas *canvas;
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);
129 static void
130 _adg_test_bottom_margin(void)
132 AdgCanvas *canvas;
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);
161 static void
162 _adg_test_left_margin(void)
164 AdgCanvas *canvas;
165 gdouble valid_value_1, valid_value_2;
166 gdouble left_margin;
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);
193 static void
194 _adg_test_has_frame(void)
196 AdgCanvas *canvas;
197 gboolean invalid_boolean;
198 gboolean has_frame;
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);
214 g_assert(has_frame);
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);
227 g_assert(has_frame);
229 g_object_unref(canvas);
232 static void
233 _adg_test_top_padding(void)
235 AdgCanvas *canvas;
236 gdouble valid_value_1, valid_value_2;
237 gdouble top_padding;
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);
264 static void
265 _adg_test_right_padding(void)
267 AdgCanvas *canvas;
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);
296 static void
297 _adg_test_bottom_padding(void)
299 AdgCanvas *canvas;
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);
328 static void
329 _adg_test_left_padding(void)
331 AdgCanvas *canvas;
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);
387 return g_test_run();