2 * Copyright (C) 2006 Nokia Corporation.
4 * Contact: Luc Pionchon <luc.pionchon@nokia.com>
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.
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.
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
26 #include <gtk/gtkmain.h>
27 #include "test_suites.h"
28 #include "check_utils.h"
29 #include "hildon-name-password-dialog.h"
30 #include "hildon-window.h"
32 /* -------------------- Fixtures -------------------- */
34 static HildonNamePasswordDialog *name_password_dialog = NULL;
35 static GtkWindow * npd_window = NULL;
38 fx_setup_default_name_password_dialog ()
42 gtk_init(&argc, NULL);
44 npd_window = GTK_WINDOW(create_test_window());
46 /* Check window object has been created properly */
47 fail_if(!HILDON_IS_WINDOW(npd_window),
48 "hildon-name-password-dialog: Window creation failed.");
50 name_password_dialog = HILDON_NAME_PASSWORD_DIALOG(hildon_name_password_dialog_new(npd_window));
51 /* Check that the name password dialog object has been created properly */
52 fail_if (!HILDON_IS_NAME_PASSWORD_DIALOG (name_password_dialog),
53 "hildon-name-password-dialog: Creation failed.");
55 show_test_window(GTK_WIDGET(npd_window));
57 show_test_window(GTK_WIDGET(name_password_dialog));
62 fx_teardown_default_name_password_dialog ()
64 gtk_widget_destroy (GTK_WIDGET(name_password_dialog));
66 gtk_widget_destroy (GTK_WIDGET(npd_window));
69 /* -------------------- Test cases -------------------- */
71 /* ----- Test case for new_with_default -----*/
74 * Purpose: Check that regular name and password values are correctly added by default on creation.
76 * - Create new name and password dialog with "test_name" and "test_password" by default.
77 * - Create new name and password dialog with "0123456789" and "123412341234" by default.
78 * - Create new name and password dialog with TEST_STRING and TEST_STRING by default.
79 * - Create new name and password dialog with "" and "" by default.
81 START_TEST (test_new_with_default_regular)
83 const gchar * default_name="test_name";
84 const gchar * default_password="test_password";
85 const gchar * ret_name;
86 const gchar * ret_password;
87 HildonNamePasswordDialog * default_name_password_dialog=NULL;
89 /* Check that the name password dialog object has been created properly */
90 fail_if (!HILDON_IS_NAME_PASSWORD_DIALOG (name_password_dialog),
91 "hildon-name-password-dialog: Creation failed.");
92 fail_if (!GTK_IS_WINDOW (npd_window),
93 "hildon-name-password-dialog: Window creation failed.");
95 /* Test 1: Create new dialog with username and password by default */
96 default_name_password_dialog =
97 HILDON_NAME_PASSWORD_DIALOG(hildon_name_password_dialog_new_with_default(npd_window, default_name, default_password));
98 fail_if(!HILDON_IS_NAME_PASSWORD_DIALOG(default_name_password_dialog),
99 "hildon-name-password-dialog: Creation failed with hildon_name_password_dialog_new_with_default");
101 ret_name = hildon_name_password_dialog_get_name(default_name_password_dialog);
102 fail_if (strcmp (default_name,ret_name) != 0,
103 "hildon-name-password-dialog: Default name and returned name are diferent (%s,%s)",default_name,ret_name);
105 ret_password = hildon_name_password_dialog_get_password(default_name_password_dialog);
106 fail_if (strcmp (default_password,ret_password) != 0,
107 "hildon-name-password-dialog: Default password and returned password are diferent (%s,%s)",default_password,ret_password);
109 gtk_widget_destroy (GTK_WIDGET(default_name_password_dialog));
110 default_name_password_dialog=NULL;
112 /* Test 2: Create new dialog with username and password by default */
113 default_name = "0123456789";
114 default_password = "123412341234";
116 default_name_password_dialog =
117 HILDON_NAME_PASSWORD_DIALOG(hildon_name_password_dialog_new_with_default(npd_window, default_name, default_password));
118 fail_if(!HILDON_IS_NAME_PASSWORD_DIALOG(default_name_password_dialog),
119 "hildon-name-password-dialog: Creation failed with hildon_name_password_dialog_new_with_default");
121 ret_name = hildon_name_password_dialog_get_name(default_name_password_dialog);
122 fail_if (strcmp (default_name,ret_name) != 0,
123 "hildon-name-password-dialog: Default name and returned name are diferent (%s,%s)", default_name, ret_name);
125 ret_password = hildon_name_password_dialog_get_password(default_name_password_dialog);
126 fail_if (strcmp (default_password,ret_password) != 0,
127 "hildon-name-password-dialog: Default password and returned password are diferent (%s,%s)", default_password, ret_password);
129 gtk_widget_destroy (GTK_WIDGET(default_name_password_dialog));
131 /* Test 3: Create new dialog with invalid username and password by default. */
132 default_name = TEST_STRING;
133 default_password = TEST_STRING;
135 default_name_password_dialog =
136 HILDON_NAME_PASSWORD_DIALOG(hildon_name_password_dialog_new_with_default(npd_window,default_name,default_password));
138 fail_if(!HILDON_IS_NAME_PASSWORD_DIALOG(default_name_password_dialog),
139 "hildon-name-password-dialog: Creation failed with hildon_name_password_dialog_new_with_default");
141 ret_name = hildon_name_password_dialog_get_name(default_name_password_dialog);
142 fail_if (strcmp (default_name,ret_name) != 0,
143 "hildon-name-password-dialog: Default name and returned name are diferent (%s,%s)",default_name,ret_name);
145 ret_password = hildon_name_password_dialog_get_password(default_name_password_dialog);
146 fail_if (strcmp (default_password,ret_password) != 0,
147 "hildon-name-password-dialog: Default password and returned password are diferent (%s,%s)",default_password,ret_password);
149 gtk_widget_destroy (GTK_WIDGET(default_name_password_dialog));
151 /* Test 4: Create new dialog with empty username and password by default. */
153 default_password = "";
155 default_name_password_dialog =
156 HILDON_NAME_PASSWORD_DIALOG(hildon_name_password_dialog_new_with_default(npd_window,default_name,default_password));
158 fail_if(!HILDON_IS_NAME_PASSWORD_DIALOG(default_name_password_dialog),
159 "hildon-name-password-dialog: Creation failed with hildon_name_password_dialog_new_with_default");
161 ret_name = hildon_name_password_dialog_get_name(default_name_password_dialog);
162 fail_if (strcmp (default_name,ret_name) != 0,
163 "hildon-name-password-dialog: Default name and returned name are diferent (%s,%s)",default_name,ret_name);
165 ret_password = hildon_name_password_dialog_get_password(default_name_password_dialog);
166 fail_if (strcmp (default_password,ret_password) != 0,
167 "hildon-name-password-dialog: Default password and returned password are diferent (%s,%s)",default_password,ret_password);
170 gtk_widget_destroy (GTK_WIDGET(default_name_password_dialog));
176 * Purpose: Check that regular name and password values are correctly added by default on creation.
178 * - Create a name and password dialog with NULL name.
179 * - Create a name and password dialog with NULL password.
181 START_TEST (test_new_with_default_invalid)
183 const gchar * default_name="test_name";
184 const gchar * default_password="test_password";
185 const gchar * ret_name;
186 const gchar * ret_password;
187 HildonNamePasswordDialog * default_name_password_dialog;
189 /* Check that the name password dialog object has been created properly */
190 fail_if (!HILDON_IS_NAME_PASSWORD_DIALOG (name_password_dialog),
191 "hildon-name-password-dialog: Creation failed.");
192 fail_if (!GTK_IS_WINDOW (npd_window),
193 "hildon-name-password-dialog: Window creation failed.");
195 /* Test 1: Create a name and password dialog with NULL name. */
196 default_name_password_dialog =
197 HILDON_NAME_PASSWORD_DIALOG(hildon_name_password_dialog_new_with_default(npd_window,NULL,default_password));
199 fail_if(!HILDON_IS_NAME_PASSWORD_DIALOG(default_name_password_dialog),
200 "hildon-name-password-dialog: Creation failed with hildon_name_password_dialog_new_with_default");
202 ret_name = hildon_name_password_dialog_get_name(default_name_password_dialog);
203 fail_if (strcmp ("",ret_name) != 0,
204 "hildon-name-password-dialog: Default name and returned name are diferent (,%s)",ret_name);
206 ret_password = hildon_name_password_dialog_get_password(default_name_password_dialog);
207 fail_if (strcmp (default_password,ret_password) != 0,
208 "hildon-name-password-dialog: Default password and returned password are diferent (%s,%s)",default_password,ret_password);
210 gtk_widget_destroy (GTK_WIDGET(default_name_password_dialog));
212 /* Test 2: Create a name and password dialog with NULL name. */
213 default_name_password_dialog =
214 HILDON_NAME_PASSWORD_DIALOG(hildon_name_password_dialog_new_with_default(npd_window,default_name,NULL));
216 fail_if(!HILDON_IS_NAME_PASSWORD_DIALOG(default_name_password_dialog),
217 "hildon-name-password-dialog: Creation failed with hildon_name_password_dialog_new_with_default");
219 ret_name = hildon_name_password_dialog_get_name(default_name_password_dialog);
220 fail_if (strcmp (default_name,ret_name) != 0,
221 "hildon-name-password-dialog: Default name and returned name are diferent (%s,%s)",default_name,ret_name);
223 ret_password = hildon_name_password_dialog_get_password(default_name_password_dialog);
224 fail_if (strcmp ("",ret_password) != 0,
225 "hildon-name-password-dialog: Default password and returned password are diferent (,%s)",ret_password);
227 gtk_widget_destroy (GTK_WIDGET(default_name_password_dialog));
232 /* ----- Test case for get_name -----*/
235 * Purpose: Check that regular name and password values are correctly added by default on creation.
237 * - Get name "test_name" set by g_object_set_property.
238 * - Get name "0123456789" set by g_object_set_property.
239 * - Get name TEST_STRING set by g_object_set_property.
241 START_TEST (test_get_name_regular)
243 const gchar * default_name="test_name";
244 const gchar * ret_name;
247 /* Check that the name password dialog object has been created properly */
248 fail_if (!HILDON_IS_NAME_PASSWORD_DIALOG (name_password_dialog),
249 "hildon-name-password-dialog: Creation failed.");
250 fail_if (!GTK_IS_WINDOW (npd_window),
251 "hildon-name-password-dialog: Window creation failed.");
253 g_value_init (&value, G_TYPE_STRING);
254 g_value_set_string(&value, default_name);
255 g_object_set_property(G_OBJECT(name_password_dialog), "name", &value);
256 g_value_unset (&value);
258 /* Test 1: Get name "test_name" set by g_object_set_property. */
259 ret_name = hildon_name_password_dialog_get_name(name_password_dialog);
261 fail_if (strcmp(default_name, ret_name) != 0,
262 "hildon-name-password-dialog: Default name and returned name are diferent (%s,%s)", default_name, ret_name);
264 /* Test 2: Get name "0123456789" set by g_object_set_property. */
265 default_name = "0123456789";
267 g_value_init (&value, G_TYPE_STRING);
268 g_value_set_string(&value,default_name);
269 g_object_set_property(G_OBJECT(name_password_dialog), "name", &value);
270 g_value_unset (&value);
272 ret_name = hildon_name_password_dialog_get_name(name_password_dialog);
273 fail_if (strcmp (default_name,ret_name) != 0,
274 "hildon-name-password-dialog: Default name and returned name are diferent (%s,%s)", default_name, ret_name);
276 /* Test 3: Get name TEST_STRING set by g_object_set_property. */
277 default_name=TEST_STRING;
279 g_value_init (&value, G_TYPE_STRING);
280 g_value_set_string(&value,default_name);
281 g_object_set_property(G_OBJECT (name_password_dialog),"name",&value);
282 g_value_unset (&value);
284 ret_name = hildon_name_password_dialog_get_name(name_password_dialog);
285 fail_if (strcmp (default_name,ret_name) != 0,
286 "hildon-name-password-dialog: Default name and returned name are diferent (%s,%s)",default_name,ret_name);
292 * Purpose: Check that regular name and password values are correctly added by default on creation.
294 * - Get name on NULL object.
295 * - Get empty password set by g_object_set_property with NULL value.
298 START_TEST (test_get_name_invalid)
300 const gchar * default_name;
301 const gchar * ret_name;
304 /* Check that the name password dialog object has been created properly */
305 fail_if (!HILDON_IS_NAME_PASSWORD_DIALOG (name_password_dialog),
306 "hildon-name-password-dialog: Creation failed.");
307 fail_if (!GTK_IS_WINDOW (npd_window),
308 "hildon-name-password-dialog: Window creation failed.");
310 /* Test 1: Get name on NULL object. */
311 ret_name = hildon_name_password_dialog_get_name(NULL);
314 /* Test 2: Get name NULL set by g_object_set_property. */
316 g_value_init (&value, G_TYPE_STRING);
317 g_value_set_string(&value,default_name);
318 g_object_set_property(G_OBJECT (name_password_dialog),"name",&value);
319 g_value_unset (&value);
321 ret_name = hildon_name_password_dialog_get_name(name_password_dialog);
323 fail_if (strcmp ("",ret_name) != 0,
324 "hildon-name-password-dialog: Default name and returned name are diferent (,%s)",ret_name);
329 /* ---------- Suite creation ---------- */
331 Suite *create_hildon_name_password_dialog_suite()
333 /* Create the suite */
334 Suite *s = suite_create("HildonNamePasswordDialog");
336 /* Create test cases */
337 TCase *tc1 = tcase_create("new_with_default");
338 TCase *tc2 = tcase_create("get_name");
340 /* Create unit tests for hildon_name_password_dialog_new_with_default and add it to the suite */
341 tcase_add_checked_fixture(tc1, fx_setup_default_name_password_dialog, fx_teardown_default_name_password_dialog);
342 tcase_add_test(tc1, test_new_with_default_regular);
343 tcase_add_test(tc1, test_new_with_default_invalid);
344 suite_add_tcase (s, tc1);
346 /* Create unit tests for hildon_name_password_dialog_get_name and add it to the suite */
347 tcase_add_checked_fixture(tc2, fx_setup_default_name_password_dialog, fx_teardown_default_name_password_dialog);
348 tcase_add_test(tc2, test_get_name_regular);
349 tcase_add_test(tc2, test_get_name_invalid);
350 suite_add_tcase (s, tc2);
352 /* Return created suite */