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_frame_dress(void)
69 AdgDress valid_dress_1
, valid_dress_2
, incompatible_dress
;
72 canvas
= adg_canvas_new();
73 valid_dress_1
= ADG_DRESS_LINE_DIMENSION
;
74 valid_dress_2
= ADG_DRESS_LINE_FILL
;
75 incompatible_dress
= ADG_DRESS_FONT
;
77 /* Using the public APIs */
78 adg_canvas_set_frame_dress(canvas
, valid_dress_1
);
79 frame_dress
= adg_canvas_get_frame_dress(canvas
);
80 g_assert_cmpint(frame_dress
, ==, valid_dress_1
);
82 adg_canvas_set_frame_dress(canvas
, incompatible_dress
);
83 frame_dress
= adg_canvas_get_frame_dress(canvas
);
84 g_assert_cmpint(frame_dress
, ==, valid_dress_1
);
86 adg_canvas_set_frame_dress(canvas
, valid_dress_2
);
87 frame_dress
= adg_canvas_get_frame_dress(canvas
);
88 g_assert_cmpint(frame_dress
, ==, valid_dress_2
);
90 /* Using GObject property methods */
91 g_object_set(canvas
, "frame-dress", valid_dress_1
, NULL
);
92 g_object_get(canvas
, "frame-dress", &frame_dress
, NULL
);
93 g_assert_cmpint(frame_dress
, ==, valid_dress_1
);
95 g_object_set(canvas
, "frame-dress", incompatible_dress
, NULL
);
96 g_object_get(canvas
, "frame-dress", &frame_dress
, NULL
);
97 g_assert_cmpint(frame_dress
, ==, valid_dress_1
);
99 g_object_set(canvas
, "frame-dress", valid_dress_2
, NULL
);
100 g_object_get(canvas
, "frame-dress", &frame_dress
, NULL
);
101 g_assert_cmpint(frame_dress
, ==, valid_dress_2
);
103 g_object_unref(canvas
);
107 _adg_test_title_block(void)
110 AdgTitleBlock
*valid_title_block
, *invalid_title_block
, *title_block
;
112 canvas
= adg_canvas_new();
113 valid_title_block
= ADG_TITLE_BLOCK(adg_title_block_new());
114 invalid_title_block
= adg_test_invalid_pointer();
116 g_object_ref(valid_title_block
);
118 /* Using the public APIs */
119 adg_canvas_set_title_block(canvas
, NULL
);
120 title_block
= adg_canvas_get_title_block(canvas
);
121 g_assert(title_block
== NULL
);
123 adg_canvas_set_title_block(canvas
, valid_title_block
);
124 title_block
= adg_canvas_get_title_block(canvas
);
125 g_assert(title_block
== valid_title_block
);
127 adg_canvas_set_title_block(canvas
, invalid_title_block
);
128 title_block
= adg_canvas_get_title_block(canvas
);
129 g_assert(title_block
== valid_title_block
);
131 adg_canvas_set_title_block(canvas
, NULL
);
132 title_block
= adg_canvas_get_title_block(canvas
);
133 g_assert(title_block
== NULL
);
135 /* Using GObject property methods */
136 g_object_set(canvas
, "title-block", NULL
, NULL
);
137 g_object_get(canvas
, "title-block", &title_block
, NULL
);
138 g_assert(title_block
== NULL
);
140 g_object_set(canvas
, "title-block", valid_title_block
, NULL
);
141 g_object_get(canvas
, "title-block", &title_block
, NULL
);
142 g_assert(title_block
== valid_title_block
);
143 g_object_unref(title_block
);
145 g_object_set(canvas
, "title-block", invalid_title_block
, NULL
);
146 g_object_get(canvas
, "title-block", &title_block
, NULL
);
147 g_assert(title_block
== valid_title_block
);
148 g_object_unref(title_block
);
150 g_object_set(canvas
, "title-block", NULL
, NULL
);
151 g_object_get(canvas
, "title-block", &title_block
, NULL
);
152 g_assert(title_block
== NULL
);
154 g_object_unref(canvas
);
155 g_object_unref(valid_title_block
);
162 AdgPair null_size
, sample_size
;
166 canvas
= adg_canvas_new();
172 /* Using the public APIs */
173 adg_canvas_set_size(canvas
, &sample_size
);
174 size
= adg_canvas_get_size(canvas
);
175 g_assert(adg_pair_equal(size
, &sample_size
));
177 adg_canvas_set_size(canvas
, NULL
);
178 size
= adg_canvas_get_size(canvas
);
179 g_assert(adg_pair_equal(size
, &sample_size
));
181 adg_canvas_set_size_explicit(canvas
, 0, 0);
182 size
= adg_canvas_get_size(canvas
);
183 g_assert(adg_pair_equal(size
, &null_size
));
185 /* Using GObject property methods */
186 g_object_set(canvas
, "size", &sample_size
, NULL
);
187 g_object_get(canvas
, "size", &size_dup
, NULL
);
188 g_assert(adg_pair_equal(size_dup
, &sample_size
));
191 g_object_set(canvas
, "size", NULL
, NULL
);
192 g_object_get(canvas
, "size", &size_dup
, NULL
);
193 g_assert(adg_pair_equal(size_dup
, &sample_size
));
196 g_object_set(canvas
, "size", &null_size
, NULL
);
197 g_object_get(canvas
, "size", &size_dup
, NULL
);
198 g_assert(adg_pair_equal(size_dup
, &null_size
));
201 g_object_unref(canvas
);
205 _adg_test_top_margin(void)
208 gdouble valid_value_1
, valid_value_2
;
211 canvas
= ADG_CANVAS(adg_canvas_new());
212 valid_value_1
= 4321;
213 valid_value_2
= 1234;
215 /* Using the public APIs */
216 adg_canvas_set_top_margin(canvas
, valid_value_1
);
217 top_margin
= adg_canvas_get_top_margin(canvas
);
218 g_assert_cmpfloat(top_margin
, ==, valid_value_1
);
220 adg_canvas_set_margins(canvas
, valid_value_2
, 0, 0, 0);
221 top_margin
= adg_canvas_get_top_margin(canvas
);
222 g_assert_cmpfloat(top_margin
, ==, valid_value_2
);
224 /* Using GObject property methods */
225 g_object_set(canvas
, "top-margin", valid_value_1
, NULL
);
226 g_object_get(canvas
, "top-margin", &top_margin
, NULL
);
227 g_assert_cmpfloat(top_margin
, ==, valid_value_1
);
229 g_object_set(canvas
, "top-margin", valid_value_2
, NULL
);
230 g_object_get(canvas
, "top-margin", &top_margin
, NULL
);
231 g_assert_cmpfloat(top_margin
, ==, valid_value_2
);
233 g_object_unref(canvas
);
237 _adg_test_right_margin(void)
240 gdouble valid_value_1
, valid_value_2
;
241 gdouble right_margin
;
243 canvas
= ADG_CANVAS(adg_canvas_new());
244 valid_value_1
= 4321;
245 valid_value_2
= 1234;
247 /* Using the public APIs */
248 adg_canvas_set_right_margin(canvas
, valid_value_1
);
249 right_margin
= adg_canvas_get_right_margin(canvas
);
250 g_assert_cmpfloat(right_margin
, ==, valid_value_1
);
252 adg_canvas_set_margins(canvas
, 0, valid_value_2
, 0, 0);
253 right_margin
= adg_canvas_get_right_margin(canvas
);
254 g_assert_cmpfloat(right_margin
, ==, valid_value_2
);
256 /* Using GObject property methods */
257 g_object_set(canvas
, "right-margin", valid_value_1
, NULL
);
258 g_object_get(canvas
, "right-margin", &right_margin
, NULL
);
259 g_assert_cmpfloat(right_margin
, ==, valid_value_1
);
261 g_object_set(canvas
, "right-margin", valid_value_2
, NULL
);
262 g_object_get(canvas
, "right-margin", &right_margin
, NULL
);
263 g_assert_cmpfloat(right_margin
, ==, valid_value_2
);
265 g_object_unref(canvas
);
269 _adg_test_bottom_margin(void)
272 gdouble valid_value_1
, valid_value_2
;
273 gdouble bottom_margin
;
275 canvas
= ADG_CANVAS(adg_canvas_new());
276 valid_value_1
= 4321;
277 valid_value_2
= 1234;
279 /* Using the public APIs */
280 adg_canvas_set_bottom_margin(canvas
, valid_value_1
);
281 bottom_margin
= adg_canvas_get_bottom_margin(canvas
);
282 g_assert_cmpfloat(bottom_margin
, ==, valid_value_1
);
284 adg_canvas_set_margins(canvas
, 0, 0, valid_value_2
, 0);
285 bottom_margin
= adg_canvas_get_bottom_margin(canvas
);
286 g_assert_cmpfloat(bottom_margin
, ==, valid_value_2
);
288 /* Using GObject property methods */
289 g_object_set(canvas
, "bottom-margin", valid_value_1
, NULL
);
290 g_object_get(canvas
, "bottom-margin", &bottom_margin
, NULL
);
291 g_assert_cmpfloat(bottom_margin
, ==, valid_value_1
);
293 g_object_set(canvas
, "bottom-margin", valid_value_2
, NULL
);
294 g_object_get(canvas
, "bottom-margin", &bottom_margin
, NULL
);
295 g_assert_cmpfloat(bottom_margin
, ==, valid_value_2
);
297 g_object_unref(canvas
);
301 _adg_test_left_margin(void)
304 gdouble valid_value_1
, valid_value_2
;
307 canvas
= ADG_CANVAS(adg_canvas_new());
308 valid_value_1
= 4321;
309 valid_value_2
= 1234;
311 /* Using the public APIs */
312 adg_canvas_set_left_margin(canvas
, valid_value_1
);
313 left_margin
= adg_canvas_get_left_margin(canvas
);
314 g_assert_cmpfloat(left_margin
, ==, valid_value_1
);
316 adg_canvas_set_margins(canvas
, 0, 0, 0, valid_value_2
);
317 left_margin
= adg_canvas_get_left_margin(canvas
);
318 g_assert_cmpfloat(left_margin
, ==, valid_value_2
);
320 /* Using GObject property methods */
321 g_object_set(canvas
, "left-margin", valid_value_1
, NULL
);
322 g_object_get(canvas
, "left-margin", &left_margin
, NULL
);
323 g_assert_cmpfloat(left_margin
, ==, valid_value_1
);
325 g_object_set(canvas
, "left-margin", valid_value_2
, NULL
);
326 g_object_get(canvas
, "left-margin", &left_margin
, NULL
);
327 g_assert_cmpfloat(left_margin
, ==, valid_value_2
);
329 g_object_unref(canvas
);
333 _adg_test_has_frame(void)
336 gboolean invalid_boolean
;
339 canvas
= ADG_CANVAS(adg_canvas_new());
340 invalid_boolean
= (gboolean
) 1234;
342 /* Using the public APIs */
343 adg_canvas_switch_frame(canvas
, FALSE
);
344 has_frame
= adg_canvas_has_frame(canvas
);
345 g_assert(!has_frame
);
347 adg_canvas_switch_frame(canvas
, invalid_boolean
);
348 has_frame
= adg_canvas_has_frame(canvas
);
349 g_assert(!has_frame
);
351 adg_canvas_switch_frame(canvas
, TRUE
);
352 has_frame
= adg_canvas_has_frame(canvas
);
355 /* Using GObject property methods */
356 g_object_set(canvas
, "has-frame", FALSE
, NULL
);
357 g_object_get(canvas
, "has-frame", &has_frame
, NULL
);
358 g_assert(!has_frame
);
360 g_object_set(canvas
, "has-frame", invalid_boolean
, NULL
);
361 g_object_get(canvas
, "has-frame", &has_frame
, NULL
);
362 g_assert(!has_frame
);
364 g_object_set(canvas
, "has-frame", TRUE
, NULL
);
365 g_object_get(canvas
, "has-frame", &has_frame
, NULL
);
368 g_object_unref(canvas
);
372 _adg_test_top_padding(void)
375 gdouble valid_value_1
, valid_value_2
;
378 canvas
= ADG_CANVAS(adg_canvas_new());
379 valid_value_1
= 4321;
380 valid_value_2
= 1234;
382 /* Using the public APIs */
383 adg_canvas_set_top_padding(canvas
, valid_value_1
);
384 top_padding
= adg_canvas_get_top_padding(canvas
);
385 g_assert_cmpfloat(top_padding
, ==, valid_value_1
);
387 adg_canvas_set_paddings(canvas
, valid_value_2
, 0, 0, 0);
388 top_padding
= adg_canvas_get_top_padding(canvas
);
389 g_assert_cmpfloat(top_padding
, ==, valid_value_2
);
391 /* Using GObject property methods */
392 g_object_set(canvas
, "top-padding", valid_value_1
, NULL
);
393 g_object_get(canvas
, "top-padding", &top_padding
, NULL
);
394 g_assert_cmpfloat(top_padding
, ==, valid_value_1
);
396 g_object_set(canvas
, "top-padding", valid_value_2
, NULL
);
397 g_object_get(canvas
, "top-padding", &top_padding
, NULL
);
398 g_assert_cmpfloat(top_padding
, ==, valid_value_2
);
400 g_object_unref(canvas
);
404 _adg_test_right_padding(void)
407 gdouble valid_value_1
, valid_value_2
;
408 gdouble right_padding
;
410 canvas
= ADG_CANVAS(adg_canvas_new());
411 valid_value_1
= 4321;
412 valid_value_2
= 1234;
414 /* Using the public APIs */
415 adg_canvas_set_right_padding(canvas
, valid_value_1
);
416 right_padding
= adg_canvas_get_right_padding(canvas
);
417 g_assert_cmpfloat(right_padding
, ==, valid_value_1
);
419 adg_canvas_set_paddings(canvas
, 0, valid_value_2
, 0, 0);
420 right_padding
= adg_canvas_get_right_padding(canvas
);
421 g_assert_cmpfloat(right_padding
, ==, valid_value_2
);
423 /* Using GObject property methods */
424 g_object_set(canvas
, "right-padding", valid_value_1
, NULL
);
425 g_object_get(canvas
, "right-padding", &right_padding
, NULL
);
426 g_assert_cmpfloat(right_padding
, ==, valid_value_1
);
428 g_object_set(canvas
, "right-padding", valid_value_2
, NULL
);
429 g_object_get(canvas
, "right-padding", &right_padding
, NULL
);
430 g_assert_cmpfloat(right_padding
, ==, valid_value_2
);
432 g_object_unref(canvas
);
436 _adg_test_bottom_padding(void)
439 gdouble valid_value_1
, valid_value_2
;
440 gdouble bottom_padding
;
442 canvas
= ADG_CANVAS(adg_canvas_new());
443 valid_value_1
= 4321;
444 valid_value_2
= 1234;
446 /* Using the public APIs */
447 adg_canvas_set_bottom_padding(canvas
, valid_value_1
);
448 bottom_padding
= adg_canvas_get_bottom_padding(canvas
);
449 g_assert_cmpfloat(bottom_padding
, ==, valid_value_1
);
451 adg_canvas_set_paddings(canvas
, 0, 0, valid_value_2
, 0);
452 bottom_padding
= adg_canvas_get_bottom_padding(canvas
);
453 g_assert_cmpfloat(bottom_padding
, ==, valid_value_2
);
455 /* Using GObject property methods */
456 g_object_set(canvas
, "bottom-padding", valid_value_1
, NULL
);
457 g_object_get(canvas
, "bottom-padding", &bottom_padding
, NULL
);
458 g_assert_cmpfloat(bottom_padding
, ==, valid_value_1
);
460 g_object_set(canvas
, "bottom-padding", valid_value_2
, NULL
);
461 g_object_get(canvas
, "bottom-padding", &bottom_padding
, NULL
);
462 g_assert_cmpfloat(bottom_padding
, ==, valid_value_2
);
464 g_object_unref(canvas
);
468 _adg_test_left_padding(void)
471 gdouble valid_value_1
, valid_value_2
;
472 gdouble left_padding
;
474 canvas
= ADG_CANVAS(adg_canvas_new());
475 valid_value_1
= 4321;
476 valid_value_2
= 1234;
478 /* Using the public APIs */
479 adg_canvas_set_left_padding(canvas
, valid_value_1
);
480 left_padding
= adg_canvas_get_left_padding(canvas
);
481 g_assert_cmpfloat(left_padding
, ==, valid_value_1
);
483 adg_canvas_set_paddings(canvas
, 0, 0, 0, valid_value_2
);
484 left_padding
= adg_canvas_get_left_padding(canvas
);
485 g_assert_cmpfloat(left_padding
, ==, valid_value_2
);
487 /* Using GObject property methods */
488 g_object_set(canvas
, "left-padding", valid_value_1
, NULL
);
489 g_object_get(canvas
, "left-padding", &left_padding
, NULL
);
490 g_assert_cmpfloat(left_padding
, ==, valid_value_1
);
492 g_object_set(canvas
, "left-padding", valid_value_2
, NULL
);
493 g_object_get(canvas
, "left-padding", &left_padding
, NULL
);
494 g_assert_cmpfloat(left_padding
, ==, valid_value_2
);
496 g_object_unref(canvas
);
501 main(int argc
, char *argv
[])
503 adg_test_init(&argc
, &argv
);
505 adg_test_add_func("/adg/canvas/property/background-dress",
506 _adg_test_background_dress
);
507 adg_test_add_func("/adg/canvas/property/frame-dress",
508 _adg_test_frame_dress
);
509 adg_test_add_func("/adg/canvas/property/title-block",
510 _adg_test_title_block
);
511 adg_test_add_func("/adg/canvas/property/size",
513 adg_test_add_func("/adg/canvas/property/top-margin",
514 _adg_test_top_margin
);
515 adg_test_add_func("/adg/canvas/property/right-margin",
516 _adg_test_right_margin
);
517 adg_test_add_func("/adg/canvas/property/bottom-margin",
518 _adg_test_bottom_margin
);
519 adg_test_add_func("/adg/canvas/property/left-margin",
520 _adg_test_left_margin
);
521 adg_test_add_func("/adg/canvas/property/has-frame",
522 _adg_test_has_frame
);
523 adg_test_add_func("/adg/canvas/property/top-padding",
524 _adg_test_top_padding
);
525 adg_test_add_func("/adg/canvas/property/right-padding",
526 _adg_test_right_padding
);
527 adg_test_add_func("/adg/canvas/property/bottom-padding",
528 _adg_test_bottom_padding
);
529 adg_test_add_func("/adg/canvas/property/left-padding",
530 _adg_test_left_padding
);