First public contribution.
2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
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., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
25 #undef G_DISABLE_ASSERT
35 #include "mrt2_glib2_test.h"
40 load_data (const gchar *data,
46 keyfile = g_key_file_new ();
47 g_key_file_load_from_data (keyfile, data, -1, flags, &error);
50 g_print ("Could not load data: %s\n", error->message);
52 g_assert(FALSE && "keyfile_test failed");
55 testResultXml("keyfile_test");
65 check_error (GError **error,
71 g_print ("Missing an error\n");
75 if ((*error)->domain != domain)
77 g_print ("Wrong error domain: got %s, expected %s\n",
78 g_quark_to_string ((*error)->domain),
79 g_quark_to_string (domain));
81 g_assert(FALSE && "keyfile_test failed");
84 testResultXml("keyfile_test");
90 if ((*error)->code != code)
92 g_print ("Wrong error code: got %d, expected %d\n",
93 (*error)->code, code);
95 g_assert(FALSE && "keyfile_test failed");
98 testResultXml("keyfile_test");
104 g_error_free (*error);
109 check_no_error (GError **error)
113 g_print ("Unexpected error: (%s, %d) %s\n",
114 g_quark_to_string ((*error)->domain),
115 (*error)->code, (*error)->message);
116 g_assert(FALSE && "keyfile_test failed");
119 testResultXml("keyfile_test");
120 #endif /* EMULATOR */
127 check_string_value (GKeyFile *keyfile,
130 const gchar *expected)
132 GError *error = NULL;
135 value = g_key_file_get_string (keyfile, group, key, &error);
136 check_no_error (&error);
137 g_assert (value != NULL);
139 if (strcmp (value, expected) != 0)
141 g_print ("Group %s key %s: "
142 "expected string value '%s', actual value '%s'\n",
143 group, key, expected, value);
145 g_assert(FALSE && "keyfile_test failed");
148 testResultXml("keyfile_test");
149 #endif /* EMULATOR */
158 check_locale_string_value (GKeyFile *keyfile,
162 const gchar *expected)
164 GError *error = NULL;
167 value = g_key_file_get_locale_string (keyfile, group, key, locale, &error);
168 check_no_error (&error);
169 g_assert (value != NULL);
171 if (strcmp (value, expected) != 0)
173 g_print ("Group %s key %s locale %s: "
174 "expected string value '%s', actual value '%s'\n",
175 group, key, locale, expected, value);
177 g_assert(FALSE && "keyfile_test failed");
180 testResultXml("keyfile_test");
181 #endif /* EMULATOR */
190 check_boolean_value (GKeyFile *keyfile,
195 GError *error = NULL;
198 value = g_key_file_get_boolean (keyfile, group, key, &error);
199 check_no_error (&error);
201 if (value != expected)
203 g_print ("Group %s key %s: "
204 "expected boolean value '%s', actual value '%s'\n",
206 expected ? "true" : "false",
207 value ? "true" : "false");
210 g_assert(FALSE && "keyfile_test failed");
213 testResultXml("keyfile_test");
214 #endif /* EMULATOR */
221 check_integer_value (GKeyFile *keyfile,
226 GError *error = NULL;
229 value = g_key_file_get_integer (keyfile, group, key, &error);
230 check_no_error (&error);
232 if (value != expected)
234 g_print ("Group %s key %s: "
235 "expected integer value %d, actual value %d\n",
236 group, key, expected, value);
238 g_assert(FALSE && "keyfile_test failed");
241 testResultXml("keyfile_test");
242 #endif /* EMULATOR */
248 int create_file(char *path)
250 FILE *fp = fopen(path,"w");
253 fprintf(fp,"[group1]\n");
254 fprintf(fp,"key1=123\n");
255 fprintf(fp,"key2=456\n");
262 void test_loadfromfile()
265 GKeyFile *keyfile = g_key_file_new(),*keyfile1=g_key_file_new();
267 gchar *full_path = NULL;
270 if(create_file("c:\\tempfile.txt"))
272 g_assert(g_key_file_load_from_file(keyfile,"c:\\tempfile.txt",0,NULL));
273 check_string_value (keyfile, "group1", "key1", "123");
274 check_string_value (keyfile, "group1", "key2", "456");
279 g_key_file_free(keyfile);
281 if(create_file("tempfile.txt"))
282 g_assert(g_key_file_load_from_data_dirs(keyfile1,"tempfile.txt",&full_path,0,NULL));
287 void test_setstring()
293 const gchar *list[2] =
304 keyfile = load_data (data, 0);
306 check_string_value (keyfile, "1", "key1", "123");
307 g_key_file_set_string(keyfile,"1","key1","789");
308 check_string_value (keyfile, "1", "key1", "789");
310 g_key_file_set_string_list(keyfile,"1","key1",list,2);
312 value = g_key_file_get_string_list(keyfile, "1", "key1",&n, NULL);
314 g_assert(!strcmp(value[0],"test1"));
315 g_assert(!strcmp(value[1],"test2"));
319 void test_setboolean()
325 gboolean list[2] = {TRUE,FALSE};
332 keyfile = load_data (data, 0);
334 check_boolean_value (keyfile, "1", "key1", TRUE);
335 g_key_file_set_boolean(keyfile,"1","key1",FALSE);
336 check_boolean_value (keyfile, "1", "key1", FALSE);
338 g_key_file_set_boolean_list(keyfile,"1","key1",list,2);
340 value = g_key_file_get_boolean_list(keyfile, "1", "key1",&n, NULL);
342 g_assert(value[0] == TRUE);
343 g_assert(value[1] == FALSE);
347 void test_setinteger()
353 gint list[2] = {111,222};
360 keyfile = load_data (data, 0);
362 check_integer_value (keyfile, "1", "key1", 123);
363 g_key_file_set_integer(keyfile,"1","key1",789);
364 check_integer_value (keyfile, "1", "key1", 789);
366 g_key_file_set_integer_list(keyfile,"1","key1",list,2);
368 value = g_key_file_get_integer_list(keyfile, "1", "key1",&n, NULL);
370 g_assert(value[0] == 111);
371 g_assert(value[1] == 222);
375 void test_keyfiletodata()
379 gchar *retVal = NULL;
387 keyfile = load_data (data, 0);
389 retVal = g_key_file_to_data(keyfile,&length,NULL);
391 g_assert(retVal != NULL && length > 0);
394 void test_setcomment()
404 keyfile = load_data (data, 0);
406 g_key_file_set_comment(keyfile,"1","key1","comment1",NULL);
408 comment = g_key_file_get_comment(keyfile,"1","key1",NULL);
410 g_assert(!strcmp(comment,"comment1\n"));
412 g_key_file_remove_comment(keyfile,"1","key1",NULL);
416 comment = g_key_file_get_comment(keyfile,"1","key1",NULL);
418 g_assert(comment == NULL);
422 void test_setlocale()
427 gchar *input_list[2] = {"test2","test3"};
435 keyfile = load_data (data, 0);
437 g_key_file_set_locale_string(keyfile,"1","key3","C","test");
439 value = g_key_file_get_locale_string(keyfile,"1","key3","C",NULL);
441 g_assert(!strcmp(value,"test"));
445 value = g_key_file_get_locale_string(keyfile,"1","key3","de",NULL);
447 g_assert(value == NULL);
449 g_key_file_set_locale_string_list(keyfile,"1","key4","C",input_list,2);
451 list = g_key_file_get_locale_string_list(keyfile,"1","key4","C",&length,NULL);
453 g_assert(!strcmp(list[0],"test2"));
454 g_assert(!strcmp(list[1],"test3"));
459 main (int argc, char *argv[])
463 g_log_set_handler (NULL, G_LOG_FLAG_FATAL| G_LOG_FLAG_RECURSION | G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING | G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO | G_LOG_LEVEL_DEBUG, &mrtLogHandler, NULL);
470 test_keyfiletodata();
475 testResultXml("keyfile_test");
476 #endif /* EMULATOR */
479 testResultXml("keyfile_test");
480 #endif /* EMULATOR */