* extended modest-presets testcases
[modest] / tests / check_modest-presets.c
1 /* Copyright (c) 2006, Nokia Corporation
2  * All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *
8  * * Redistributions of source code must retain the above copyright
9  *   notice, this list of conditions and the following disclaimer.
10  * * Redistributions in binary form must reproduce the above copyright
11  *   notice, this list of conditions and the following disclaimer in the
12  *   documentation and/or other materials provided with the distribution.
13  * * Neither the name of the Nokia Corporation nor the names of its
14  *   contributors may be used to endorse or promote products derived from
15  *   this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
18  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
20  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
21  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29
30 #include <check.h>
31 #include <glib.h>
32 #include <modest-presets.h>
33
34 START_TEST (test_modest_presets_new)
35 {
36         ModestPresets *presets;
37         
38         presets = modest_presets_new ("provider-data-test.keyfile");
39         fail_unless (presets,
40                      "modest_presets_new should return a valid ModestPresets*");
41         modest_presets_destroy (presets);
42         
43         presets = modest_presets_new ("/foo/bar/cuux");
44         fail_unless (!presets,
45                      "modest_presets_new should return NULL when given an invalid file");
46         if (presets)
47                 modest_presets_destroy (presets);       
48 }
49 END_TEST
50
51
52
53 START_TEST (test_modest_presets_get_providers)
54 {
55         ModestPresets *presets;
56         gchar **providers;
57         gchar **cursor;
58         int len, i;
59         
60         presets = modest_presets_new ("provider-data-test.keyfile");
61         fail_unless (presets,
62                      "modest_presets_new should return a valid ModestPresets*");
63         
64         /* get all providers */
65         providers = modest_presets_get_providers (presets, -1, TRUE);
66         len = g_strv_length(providers);
67         fail_unless (presets && len == 5,
68                      "modest_presets_get_providers(presets, -1, TRUE) should return 5 providers "
69                      "but I got %d", len);
70         g_strfreev (providers);
71         
72         /* get all non-global providers */
73         providers = modest_presets_get_providers (presets, -1, FALSE);
74         len = g_strv_length(providers);
75         for (i = 0; i != len; ++i)
76                 g_print ("%s\n", providers[i]);
77
78         
79         fail_unless (presets && len == 3,
80                      "modest_presets_get_providers(presets, -1, FALSE) should return 3 providers "
81                      "but I got %d", len);
82         g_strfreev (providers);
83
84         /* get all providers in Finland */
85         providers = modest_presets_get_providers (presets, 244, FALSE);
86         len = g_strv_length(providers);
87         fail_unless (presets && len == 2,
88                      "modest_presets_get_providers (presets,244, FALSE) should return 2 providers "
89                      "but I got %d", len);
90         g_strfreev (providers);
91
92         /* get all providers in Afghanistan + internaltion */
93         providers = modest_presets_get_providers (presets, 412, TRUE);
94         len = g_strv_length(providers);
95         fail_unless (presets && len == 3,
96                      "modest_presets_get_providers (presets, 412, TRUE) should return 3 providers "
97                      "but I got %d", len);
98         g_strfreev (providers);
99
100         if (presets)
101                 modest_presets_destroy (presets);       
102 }
103 END_TEST
104
105
106
107 static Suite*
108 modest_presets_suite (void)
109 {
110         Suite *suite = suite_create ("ModestPresets");
111
112         TCase *tc_core = tcase_create ("core");
113         tcase_add_test (tc_core, test_modest_presets_new);
114 //      tcase_add_test (tc_core, test_modest_presets_get_providers);
115         
116         suite_add_tcase (suite, tc_core);
117
118         return suite;
119 }
120
121
122 int
123 main ()
124 {
125         SRunner *srunner;
126         Suite   *suite;
127         int     failures;
128
129         suite   = modest_presets_suite ();
130         srunner = srunner_create (suite);
131
132         srunner_run_all (srunner, CK_NORMAL);
133         failures = srunner_ntests_failed (srunner);
134         srunner_free (srunner);
135         
136         return failures;
137 }