Adding missing debian changelog. Modyfying hildon-banner to allow creation with null...
[hildon] / tests / check-hildon-defines.c
1 /*
2  * Copyright (C) 2006 Nokia Corporation.
3  *
4  * Contact: Luc Pionchon <luc.pionchon@nokia.com>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public License
8  * as published by the Free Software Foundation; either version 2.1 of
9  * the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
19  * 02110-1301 USA
20  *
21  */
22
23 #include <stdlib.h>
24 #include <check.h>
25 #include <gtk/gtkmain.h>
26 #include <gtk/gtklabel.h>
27 #include "test_suites.h"
28 #include "hildon-defines.h"
29
30 /* -------------------- Fixtures -------------------- */
31
32 static void 
33 fx_setup_default_defines ()
34 {
35   int argc = 0;
36
37   gtk_init(&argc, NULL);
38 }
39
40 static void 
41 fx_teardown_default_defines ()
42 {
43 }
44 /* -------------------- Test cases -------------------- */
45
46 /* ----- Test case for gtk_widget_set_logical_font -----*/
47
48 /**
49  * Purpose: test setting a new logical font to a GtkWidget
50  * Cases considered:
51  *    - Set the font name "TimesNewRoman"
52  */
53 START_TEST (test_gtk_widget_set_logical_font_regular)
54 {
55   GtkWidget *label = NULL;
56   gulong signum = G_MAXULONG;
57
58   label = gtk_label_new ("test label");
59
60   signum = hildon_gtk_widget_set_logical_font (label, "TimesNewRoman");
61   gtk_widget_destroy (GTK_WIDGET (label));
62
63   fail_if (signum <= 0,
64            "hildon-defines: the returned signal id is %ul and should be > 0",
65            signum);
66 }
67 END_TEST
68
69 /**
70  * Purpose: test setting a logical font with invalid parameters
71  * Cases considered:
72  *    - Set the font name "TimesNewRoman" to a NULL Widget
73  *    - Set a NULL font name to a valid Widget
74  */
75 START_TEST (test_gtk_widget_set_logical_font_invalid)
76 {
77   GtkWidget *label = NULL;
78   gulong signum = G_MAXULONG;
79
80   /* Test 1 */
81   signum = hildon_gtk_widget_set_logical_font (NULL, "TimesNewRoman");
82   fail_if (signum != 0,
83            "hildon-defines: the returned signal id is %ul and should be 0",
84            signum);
85
86   /* Test 2 */
87   label = gtk_label_new ("test label");
88
89   signum = hildon_gtk_widget_set_logical_font (label, NULL);
90   gtk_widget_destroy (GTK_WIDGET (label));
91
92   fail_if (signum != 0,
93            "hildon-defines: the returned signal id is %ul and should be 0",
94            signum);
95 }
96 END_TEST
97
98
99 /* ----- Test case for gtk_widget_set_logical_color -----*/
100
101 /**
102  * Purpose: test setting a new logical color to a GtkWidget
103  * Cases considered:
104  *    - Set the logical color "Blue"
105  */
106 START_TEST (test_gtk_widget_set_logical_color_regular)
107 {
108   GtkWidget *label = NULL;
109   gulong signum = G_MAXULONG;
110
111   label = gtk_label_new ("test label");
112
113   signum = hildon_gtk_widget_set_logical_color (label, 
114                                                 GTK_RC_BG, 
115                                                 GTK_STATE_NORMAL, 
116                                                 "Blue");
117   gtk_widget_destroy (GTK_WIDGET (label));
118
119   fail_if (signum <= 0,
120            "hildon-defines: the returned signal id is %ul and should be > 0",
121            signum);
122 }
123 END_TEST
124
125 /**
126  * Purpose: test setting a logical color with invalid parameters
127  * Cases considered:
128  *    - Set the color name "Blue" to a NULL Widget
129  *    - Set a NULL color name to a valid Widget
130  */
131 START_TEST (test_gtk_widget_set_logical_color_invalid)
132 {
133   GtkWidget *label = NULL;
134   gulong signum = G_MAXULONG;
135
136   /* Test 1 */
137   signum = hildon_gtk_widget_set_logical_color (NULL,
138                                                 GTK_RC_BG, 
139                                                 GTK_STATE_NORMAL, 
140                                                 "Blue");
141   fail_if (signum != 0,
142            "hildon-defines: the returned signal id is %ul and should be 0",
143            signum);
144
145   /* Create the widget */
146   label = gtk_label_new ("test label");
147
148   /* Test 2 */
149   signum = hildon_gtk_widget_set_logical_color (label,
150                                                 GTK_RC_BG, 
151                                                 GTK_STATE_NORMAL, 
152                                                 NULL);
153   gtk_widget_destroy (GTK_WIDGET (label));
154
155   fail_if (signum != 0,
156            "hildon-defines: the returned signal id is %ul and should be 0",
157            signum);
158 }
159 END_TEST
160
161
162
163 /* ---------- Suite creation ---------- */
164
165 Suite *create_hildon_defines_suite()
166 {
167   /* Create the suite */
168   Suite *s = suite_create("HildonDefines");
169
170   /* Create test cases */
171   TCase *tc1 = tcase_create("gtk_widget_set_logical_font");
172   TCase *tc2 = tcase_create("gtk_widget_set_logical_color");
173
174   /* Create test case for set_logical_font and add it to the suite */
175   tcase_add_checked_fixture(tc1, fx_setup_default_defines, fx_teardown_default_defines);
176   tcase_add_test(tc1, test_gtk_widget_set_logical_font_regular);
177   tcase_add_test(tc1, test_gtk_widget_set_logical_font_invalid);
178   suite_add_tcase (s, tc1);
179
180   /* Create test case for set_logical_color and add it to the suite */
181   tcase_add_checked_fixture(tc2, fx_setup_default_defines, fx_teardown_default_defines);
182   tcase_add_test(tc2, test_gtk_widget_set_logical_color_regular);
183   tcase_add_test(tc2, test_gtk_widget_set_logical_color_invalid);
184   suite_add_tcase (s, tc2);
185
186   /* Return created suite */
187   return s;             
188 }