* added some tests cases for ModestConf and ModestTextUtils
authorDirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>
Mon, 11 Dec 2006 12:40:51 +0000 (12:40 +0000)
committerDirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>
Mon, 11 Dec 2006 12:40:51 +0000 (12:40 +0000)
pmo-trunk-r539

tests/Makefile.am
tests/check_modest-conf.c
tests/check_text-utils.c [new file with mode: 0644]

index 15cc3e2..167a1ba 100644 (file)
@@ -9,13 +9,14 @@ TESTS_ENVIRONMENT       = top_builddir=$(top_builddir)
 TESTS                   =                           \
                         check_folder-xfer           \
                         check_update-account        \
-                       check_modest-conf           
+                       check_modest-conf           \
+                       check_text-utils
 
 noinst_PROGRAMS=                                   \
                        check_folder-xfer           \
                        check_update-account        \
-                       check_modest-conf
-
+                       check_modest-conf           \
+                       check_text-utils
 
 INCLUDES=\
        @CHECK_CFLAGS@ \
@@ -58,3 +59,7 @@ check_update_account_LDADD = $(objects)
 check_modest_conf_SOURCES=\
        check_modest-conf.c
 check_modest_conf_LDADD = $(objects)
+
+check_text_utils_SOURCES=\
+       check_text-utils.c
+check_text_utils_LDADD = $(objects)
index 687405e..c97762a 100644 (file)
@@ -31,7 +31,6 @@
 #include <modest-conf.h>
 
 
-
 START_TEST (test_modest_conf_new)
 {
        ModestConf *conf = modest_conf_new ();
@@ -43,6 +42,116 @@ START_TEST (test_modest_conf_new)
 END_TEST
 
 
+START_TEST (test_modest_conf_store_retrieve_string)
+{
+       ModestConf *conf  = modest_conf_new ();
+       const gchar *key  =  MODEST_CONF_NAMESPACE "/teststring";
+       const gchar *key2 =  MODEST_CONF_NAMESPACE "/teststring2";
+
+       const gchar *data = "hello in Korean:  안녕하세요";
+       gchar *data2;
+       
+       fail_unless (MODEST_IS_CONF(conf),
+                    "modest_conf_new should return a valid"
+                    " ModestConf instance");
+
+       fail_unless (modest_conf_set_string (
+                            conf, key, data, NULL),
+                    "modest_conf_set_string should return TRUE");
+
+       fail_unless (modest_conf_key_exists(conf, key, NULL),
+                    "modest_conf_key_exists should return TRUE for <key>");
+       fail_unless (!modest_conf_key_exists(conf, key2, NULL),
+                    "modest_conf_key_exists should return FALSE for <key2>");
+       
+       data2 = modest_conf_get_string (conf, key, NULL);
+       fail_unless (data2 && strcmp (data2, data) == 0,
+                    "modest_conf_get_string should return what we put there");                                 
+       g_free (data2);
+       
+       fail_unless (modest_conf_remove_key (conf, key, NULL),
+                    "modest_conf_remove_key should return TRUE");
+       
+       fail_unless (!modest_conf_key_exists(conf, key, NULL),
+                    "modest_conf_key should return FALSE after we"
+                    "removed the key");
+       
+       g_object_unref (conf);
+}
+END_TEST
+
+
+
+START_TEST (test_modest_conf_store_retrieve_bool)
+{
+       ModestConf *conf  = modest_conf_new ();
+       const gchar *key  =  MODEST_CONF_NAMESPACE "/teststring";
+       const gchar *key2 =  MODEST_CONF_NAMESPACE "/teststring2";
+
+       gboolean data = TRUE, data2;
+       
+       fail_unless (MODEST_IS_CONF(conf),
+                    "modest_conf_new should return a valid"
+                    " ModestConf instance");
+
+       fail_unless (modest_conf_set_bool (conf, key, data, NULL),
+                    "modest_conf_set_bool should return TRUE");
+       
+       fail_unless (modest_conf_key_exists(conf, key, NULL),
+                    "modest_conf_key_exists should return TRUE for <key>");
+       fail_unless (!modest_conf_key_exists(conf, key2, NULL),
+                    "modest_conf_key_exists should return FALSE for <key2>");
+       
+       data2 = modest_conf_get_bool (conf, key, NULL);
+       fail_unless (data2 == data,
+                    "modest_conf_get_bool should return what we put there");                                   
+       fail_unless (modest_conf_remove_key (conf, key, NULL),
+                    "modest_conf_remove_key should return TRUE");
+       
+       fail_unless (!modest_conf_key_exists(conf, key, NULL),
+                    "modest_conf_key should return FALSE after we"
+                    "removed the key");
+
+       g_object_unref (conf);
+}
+END_TEST
+
+
+START_TEST (test_modest_conf_store_retrieve_int)
+{
+       ModestConf *conf  = modest_conf_new ();
+       const gchar *key  =  MODEST_CONF_NAMESPACE "/teststring";
+       const gchar *key2 =  MODEST_CONF_NAMESPACE "/teststring2";
+
+       gint data = 99, data2;
+       
+       fail_unless (MODEST_IS_CONF(conf),
+                    "modest_conf_new should return a valid"
+                    " ModestConf instance");
+
+       fail_unless (modest_conf_set_int (conf, key, data, NULL),
+                    "modest_conf_set_int should return TRUE");
+       
+       fail_unless (modest_conf_key_exists(conf, key, NULL),
+                    "modest_conf_key_exists should return TRUE for <key>");
+       fail_unless (!modest_conf_key_exists(conf, key2, NULL),
+                    "modest_conf_key_exists should return FALSE for <key2>");
+       
+       data2 = modest_conf_get_int (conf, key, NULL);
+       fail_unless (data2 == data,
+                    "modest_conf_get_int should return what we put there");                                    
+       fail_unless (modest_conf_remove_key (conf, key, NULL),
+                    "modest_conf_remove_key should return TRUE");
+       
+       fail_unless (!modest_conf_key_exists(conf, key, NULL),
+                    "modest_conf_key should return FALSE after we"
+                    "removed the key");
+
+       g_object_unref (conf);
+}
+END_TEST
+
+
 
 static Suite*
 modest_conf_suite (void)
@@ -51,12 +160,16 @@ modest_conf_suite (void)
 
        TCase *tc_core = tcase_create ("core");
        tcase_add_test (tc_core, test_modest_conf_new);
+       tcase_add_test (tc_core, test_modest_conf_store_retrieve_string);
+       tcase_add_test (tc_core, test_modest_conf_store_retrieve_bool);
+       tcase_add_test (tc_core, test_modest_conf_store_retrieve_int);
 
        suite_add_tcase (suite, tc_core);
 
        return suite;
 }
 
+
 int
 main ()
 {
diff --git a/tests/check_text-utils.c b/tests/check_text-utils.c
new file mode 100644 (file)
index 0000000..671076a
--- /dev/null
@@ -0,0 +1,90 @@
+/* Copyright (c) 2006, Nokia Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * * Neither the name of the Nokia Corporation nor the names of its
+ *   contributors may be used to endorse or promote products derived from
+ *   this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <check.h>
+#include <modest-text-utils.h>
+
+typedef struct {
+       const gchar *original;
+       const gchar *expected;
+} StringPair;
+
+START_TEST (test_display_address)
+{
+       int i;
+       const StringPair  tests[] = {
+               { "John Doe <foo@bar>", "John Doe" },
+               { "Rupert Griffin (test)", "Rupert Griffin"},
+               { "Hyvää päivää    ", "Hyvää päivää"},
+       };
+       
+       for (i = 0; i !=  sizeof(tests)/sizeof(StringPair); ++i) {
+               gchar *str = g_strdup (tests[i].original);
+               str = modest_text_utils_display_address (str);
+               fail_unless (str && strcmp(str, tests[i].expected) == 0,
+                       "modest_text_utils_display_address failed for '%s': "
+                            "expected '%s' but got '%s'",
+                            tests[i].original, tests[i].expected, str);
+               g_free (str);
+       }
+}
+END_TEST
+
+
+
+static Suite*
+text_utils_suite (void)
+{
+       Suite *suite = suite_create ("ModestTextUtils");
+
+       TCase *tc_core = tcase_create ("core");
+       tcase_add_test (tc_core, test_display_address);
+
+       suite_add_tcase (suite, tc_core);
+
+       return suite;
+}
+
+
+int
+main ()
+{
+       SRunner *srunner;
+       Suite   *suite;
+       int     failures;
+
+       suite   = text_utils_suite ();
+       srunner = srunner_create (suite);
+       
+       srunner_run_all (srunner, CK_NORMAL);
+       failures = srunner_ntests_failed (srunner);
+       srunner_free (srunner);
+       
+       return failures;
+}