2 * This file is a part of hildon tests
4 * Copyright (C) 2006, 2007 Nokia Corporation, all rights reserved.
6 * Contact: Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public License
10 * as published by the Free Software Foundation; version 2.1 of
11 * the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
27 #include <gtk/gtkmain.h>
28 #include "test_suites.h"
29 #include "check_utils.h"
31 #include <hildon/hildon-weekday-picker.h>
32 #include <hildon/hildon-window.h>
33 #include <hildon/hildon-caption.h>
35 /* -------------------- Fixtures -------------------- */
37 static HildonWeekdayPicker *weekday_picker = NULL;
38 static GtkWidget *showed_window = NULL;
41 fx_setup_default_weekday_picker ()
45 gtk_init(&argc, NULL);
47 showed_window = create_test_window ();
49 weekday_picker = HILDON_WEEKDAY_PICKER(hildon_weekday_picker_new());
50 /* Check weekday_picker object has been created properly */
51 fail_if(!HILDON_IS_WEEKDAY_PICKER(weekday_picker),
52 "hildon-weekday-picker: Creation failed.");
54 /* This packs the widget into the window (a gtk container). */
55 gtk_container_add (GTK_CONTAINER (showed_window), GTK_WIDGET (weekday_picker));
57 /* Displays the widget and the window */
58 show_all_test_window (showed_window);
64 fx_teardown_default_weekday_picker ()
66 gtk_widget_destroy (GTK_WIDGET (showed_window));
69 /* -------------------- Test cases -------------------- */
71 /* ----- Test case for set_day / isset_day -----*/
74 * Purpose: Check that regular day values are set and get properly
76 * - Set and isset the day "WEDNESDAY" on weekday picker.
77 * - Set and isset two days (WEDNESDAY and SATURDAY) on weekday picker and check that only the two selected days are set.
79 START_TEST (test_set_day_regular)
82 /* Test 1: Set WEDNESDAY on weekday picker. */
83 hildon_weekday_picker_set_day(weekday_picker,G_DATE_WEDNESDAY);
85 fail_if(!hildon_weekday_picker_isset_day(weekday_picker,G_DATE_WEDNESDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY didn't set WEDNESDAY.");
86 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_MONDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY set MONDAY wrong.");
87 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_TUESDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY set TUESDAY wrong.");
88 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_THURSDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY set THURSDAY wrong.");
89 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_FRIDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY set FRIDAY wrong.");
90 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SATURDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY set SATURDAY wrong.");
91 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SUNDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY set SUNDAY wrong.");
92 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_BAD_WEEKDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY set G_DATE_BAD_WEEKDAY wrong.");
94 hildon_weekday_picker_set_day(weekday_picker,G_DATE_WEDNESDAY);
95 hildon_weekday_picker_set_day(weekday_picker,G_DATE_SATURDAY);
97 /* Test 1: Set WEDNESDAY and SATURDAY on weekday picker. */
98 fail_if(!hildon_weekday_picker_isset_day(weekday_picker,G_DATE_WEDNESDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY and G_DATE_SATURDAY didn't set WEDNESDAY.");
99 fail_if(!hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SATURDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY and G_DATE_SATURDAY didn't set SATURDAY.");
100 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_TUESDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY and G_DATE_SATURDAY set TUESDAY wrong.");
101 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_THURSDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY and G_DATE_SATURDAY set THURSDAY wrong.");
102 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_MONDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY and G_DATE_SATURDAY set MONDAY wrong.");
103 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_FRIDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY and G_DATE_SATURDAY set FRIDAY wrong.");
104 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SUNDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY and G_DATE_SATURDAY set SUNDAY wrong.");
105 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_BAD_WEEKDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_WEDNESDAY and G_DATE_SATURDAY set G_DATE_BAD_WEEKDAY wrong.");
111 * Purpose: Check that limit day values are set and get properly
113 * - Set and isset the day "MONDAY".
114 * - Set and isset the day "SUNDAY".
115 * - Set SUNDAY and MONDAY on weekday picker and check that the two selected days are set, but the others doesn't be set.
116 * - Set all days on weekday picker and check that all days are set.
118 START_TEST (test_set_day_limits)
121 hildon_weekday_picker_unset_all(weekday_picker);
123 /* Test 1: Set MONDAY on weekday picker. */
124 hildon_weekday_picker_set_day(weekday_picker,G_DATE_MONDAY);
126 fail_if(!hildon_weekday_picker_isset_day(weekday_picker,G_DATE_MONDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY didn't set MONDAY.");
127 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SUNDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY set SUNDAY wrong.");
128 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_TUESDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY set TUESDAY wrong.");
129 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_WEDNESDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY set WEDNESDAY wrong.");
130 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_THURSDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY set THURSDAY wrong.");
131 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_FRIDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY set FRIDAY wrong.");
132 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SATURDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY set SATURDAY wrong.");
133 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_BAD_WEEKDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY set G_DATE_BAD_WEEKDAY wrong.");
135 hildon_weekday_picker_unset_all(weekday_picker);
137 /* Test 2: Set SUNDAY on weekday picker. */
138 hildon_weekday_picker_set_day(weekday_picker,G_DATE_SUNDAY);
140 fail_if(!hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SUNDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_SUNDAY didn't set SUNDAY.");
141 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_MONDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY set MONDAY wrong.");
142 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_TUESDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY set TUESDAY wrong.");
143 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_WEDNESDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY set WEDNESDAY wrong.");
144 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_THURSDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY set THURSDAY wrong.");
145 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_FRIDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY set FRIDAY wrong.");
146 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SATURDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY set SATURDAY wrong.");
147 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_BAD_WEEKDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY set G_DATE_BAD_WEEKDAY wrong.");
149 hildon_weekday_picker_unset_all(weekday_picker);
151 hildon_weekday_picker_set_day(weekday_picker,G_DATE_SUNDAY);
152 hildon_weekday_picker_set_day(weekday_picker,G_DATE_MONDAY);
154 /* Test 3: Set MONDAY and SUNDAY on weekday picker. */
155 fail_if(!hildon_weekday_picker_isset_day(weekday_picker,G_DATE_MONDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY and G_DATE_SUNDAY didn't set MONDAY.");
156 fail_if(!hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SUNDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY and G_DATE_SUNDAY didn't set SUNDAY.");
157 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_TUESDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY and G_DATE_SUNDAY set TUESDAY wrong.");
158 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_WEDNESDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY and G_DATE_SUNDAY set WEDNESDAY wrong.");
159 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_THURSDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY and G_DATE_SUNDAY set THURSDAY wrong.");
160 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_FRIDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY and G_DATE_SUNDAY set FRIDAY wrong.");
161 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SATURDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_MONDAY and G_DATE_SUNDAY set SATURDAY wrong.");
163 hildon_weekday_picker_unset_all(weekday_picker);
165 /* Test 4: Set all days on weekday picker. */
166 hildon_weekday_picker_set_day(weekday_picker,G_DATE_MONDAY);
167 hildon_weekday_picker_set_day(weekday_picker,G_DATE_TUESDAY);
168 hildon_weekday_picker_set_day(weekday_picker,G_DATE_WEDNESDAY);
169 hildon_weekday_picker_set_day(weekday_picker,G_DATE_THURSDAY);
170 hildon_weekday_picker_set_day(weekday_picker,G_DATE_FRIDAY);
171 hildon_weekday_picker_set_day(weekday_picker,G_DATE_SATURDAY);
172 hildon_weekday_picker_set_day(weekday_picker,G_DATE_SUNDAY);
174 fail_if(!hildon_weekday_picker_isset_day(weekday_picker,G_DATE_MONDAY), "hildon-weekday-picker: set_day/isset_day all days did not set MONDAY.");
175 fail_if(!hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SUNDAY), "hildon-weekday-picker: set_day/isset_day all days did not set SUNDAY.");
176 fail_if(!hildon_weekday_picker_isset_day(weekday_picker,G_DATE_TUESDAY), "hildon-weekday-picker: set_day/isset_day all days did not set TUESDAY.");
177 fail_if(!hildon_weekday_picker_isset_day(weekday_picker,G_DATE_WEDNESDAY), "hildon-weekday-picker: set_day/isset_day all days did not set WEDNESDAY.");
178 fail_if(!hildon_weekday_picker_isset_day(weekday_picker,G_DATE_THURSDAY), "hildon-weekday-picker: set_day/isset_day all days did not set THURSDAY.");
179 fail_if(!hildon_weekday_picker_isset_day(weekday_picker,G_DATE_FRIDAY), "hildon-weekday-picker: set_day/isset_day all days did not set FRIDAY.");
180 fail_if(!hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SATURDAY), "hildon-weekday-picker: set_day/isset_day all days did not set SATURDAY.");
186 * Purpose: Check that invalid day values are set and get properly
188 * - Set MONDAY on NULL weekday picker.
189 * - Set G_DATE_BAD_WEEKDAY on weekday picker.
190 * - Set 8 on weekday picker.
191 * - Set -2 on weekday picker.
192 * - isset_day from NULL weekday picker
194 START_TEST (test_set_day_invalid)
197 hildon_weekday_picker_unset_all(weekday_picker);
199 /* Test 1: Set MONDAY on NULL weekday picker. */
200 hildon_weekday_picker_set_day(NULL,G_DATE_MONDAY);
201 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_MONDAY), "hildon-weekday-picker: set_day on NULL object set MONDAY wrong");
202 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SUNDAY), "hildon-weekday-picker: set_day on NULL object set SUNDAY wrong.");
203 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_WEDNESDAY), "hildon-weekday-picker: set_day on NULL object set WEDNESDAY wrong.");
205 /* Test 2: Set G_DATE_BAD_WEEKDAY on weekday picker. */
207 hildon_weekday_picker_set_day(weekday_picker,G_DATE_BAD_WEEKDAY);
209 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_BAD_WEEKDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_BAD_WEEKDAY set G_DATE_BAD_WEEKDAY wrong.");
210 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_MONDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_BAD_WEEKDAY set MONDAY wrong.");
211 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_TUESDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_BAD_WEEKDAY set TUESDAY wrong.");
212 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_WEDNESDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_BAD_WEEKDAY set WEDNESDAY wrong.");
213 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_THURSDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_BAD_WEEKDAY set THURSDAY wrong.");
214 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_FRIDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_BAD_WEEKDAY set FRIDAY wrong.");
215 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SATURDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_BAD_WEEKDAY set SATURDAY wrong.");
216 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SUNDAY), "hildon-weekday-picker: set_day/isset_day to G_DATE_BAD_WEEKDAY set SUNDAY wrong.");
218 /* Test 3: Set 8 on weekday picker. */
219 hildon_weekday_picker_set_day(weekday_picker,8);
221 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_BAD_WEEKDAY), "hildon-weekday-picker: set_day/isset_day to 8 set G_DATE_BAD_WEEKDAY wrong.");
222 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_MONDAY), "hildon-weekday-picker: set_day/isset_day to 8 set MONDAY wrong.");
223 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_TUESDAY), "hildon-weekday-picker: set_day/isset_day to 8 set TUESDAY wrong.");
224 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_WEDNESDAY), "hildon-weekday-picker: set_day/isset_day to 8 set WEDNESDAY wrong.");
225 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_THURSDAY), "hildon-weekday-picker: set_day/isset_day to 8 set THURSDAY wrong.");
226 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_FRIDAY), "hildon-weekday-picker: set_day/isset_day to 8 set FRIDAY wrong.");
227 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SATURDAY), "hildon-weekday-picker: set_day/isset_day to 8 set SATURDAY wrong.");
228 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SUNDAY), "hildon-weekday-picker: set_day/isset_day to 8 set SUNDAY wrong.");
230 /* Test 4: Set -2 on weekday picker. */
231 hildon_weekday_picker_set_day(weekday_picker,-2);
233 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_BAD_WEEKDAY), "hildon-weekday-picker: set_day/isset_day to -2 set G_DATE_BAD_WEEKDAY wrong.");
234 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_MONDAY), "hildon-weekday-picker: set_day/isset_day to -2 set MONDAY wrong.");
235 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_TUESDAY), "hildon-weekday-picker: set_day/isset_day to -2 set TUESDAY wrong.");
236 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_WEDNESDAY), "hildon-weekday-picker: set_day/isset_day to -2 set WEDNESDAY wrong.");
237 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_THURSDAY), "hildon-weekday-picker: set_day/isset_day to -2 set THURSDAY wrong.");
238 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_FRIDAY), "hildon-weekday-picker: set_day/isset_day to -2 set FRIDAY wrong.");
239 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SATURDAY), "hildon-weekday-picker: set_day/isset_day to -2 set SATURDAY wrong.");
240 fail_if(hildon_weekday_picker_isset_day(weekday_picker,G_DATE_SUNDAY), "hildon-weekday-picker: set_day/isset_day to -2 set SUNDAY wrong.");
242 /* Test 4: isset_day from NULL weekday picker. */
243 hildon_weekday_picker_isset_day(NULL,G_DATE_BAD_WEEKDAY);
247 /* ---------- Suite creation ---------- */
249 Suite *create_hildon_weekday_picker_suite()
251 /* Create the suite */
252 Suite *s = suite_create("HildonWeekdayPicker");
254 /* Create test cases */
255 TCase *tc1 = tcase_create("set_day");
257 /* Create test case for hildon_weekday_picker_set_day and hildon_weekday_picker_isset_day and add it to the suite */
258 tcase_add_checked_fixture(tc1, fx_setup_default_weekday_picker, fx_teardown_default_weekday_picker);
259 tcase_add_test(tc1, test_set_day_regular);
260 tcase_add_test(tc1, test_set_day_limits);
261 tcase_add_test(tc1, test_set_day_invalid);
262 suite_add_tcase (s, tc1);
264 /* Return created suite */