fd6ba8e2a040e2a898c869b0f2e6ae7d48b72d41
[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 != NULL,
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 == NULL,
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         int len;
58         
59         presets = modest_presets_new ("provider-data-test.keyfile");
60         fail_unless (presets != NULL,
61                      "modest_presets_new should return a valid ModestPresets");
62         
63         /* get all providers */
64         providers = modest_presets_get_providers (presets, 0, TRUE);
65         len = g_strv_length(providers);
66 //      for (i = 0; i != len; ++i)
67 //              g_print ("%s\n", providers[i]);
68         
69         fail_unless (providers && len == 5,
70                      "modest_presets_get_providers(presets, 0, TRUE) should return 5 providers "
71                      "but I got %d", len);
72         g_strfreev (providers);
73         
74         /* get all providers in Finland */
75         providers = modest_presets_get_providers (presets, 244, FALSE);
76         len = g_strv_length(providers);
77         fail_unless (providers && len == 2,
78                      "modest_presets_get_providers (presets,244, FALSE) should return 2 providers "
79                      "but I got %d", len);
80         g_strfreev (providers);
81
82         /* get all providers in Afghanistan + international */
83         providers = modest_presets_get_providers (presets, 412, TRUE);
84         len = g_strv_length(providers);
85         fail_unless (providers && len == 3,
86                      "modest_presets_get_providers (presets, 412, TRUE) should return 3 providers "
87                      "but I got %d", len);
88         g_strfreev (providers);
89
90         if (presets)
91                 modest_presets_destroy (presets);       
92 }
93 END_TEST
94
95
96
97 static Suite*
98 modest_presets_suite (void)
99 {
100         Suite *suite = suite_create ("ModestPresets");
101
102         TCase *tc_core = tcase_create ("core");
103         tcase_add_test (tc_core, test_modest_presets_new);
104         tcase_add_test (tc_core, test_modest_presets_get_providers);
105         
106         suite_add_tcase (suite, tc_core);
107
108         return suite;
109 }
110
111
112 int
113 main ()
114 {
115         SRunner *srunner;
116         Suite   *suite;
117         int     failures;
118
119         suite   = modest_presets_suite ();
120         srunner = srunner_create (suite);
121
122         srunner_run_all (srunner, CK_NORMAL);
123         failures = srunner_ntests_failed (srunner);
124         srunner_free (srunner);
125         
126         return failures;
127 }