1. Add privilege_db_manager api to handle NULL api version 2. Modify api version...
[platform/core/security/privilege-checker.git] / test / tc-privilege-db-manager.c
1 #include <stdio.h>
2 #include <privilege_db_manager.h>
3
4 #define BRIGHTNESS 0
5 #define RED 31
6 #define GREEN 32
7 #define YELLOW 33
8 #define BG_BLACK 40
9
10 static int fail_cnt=0;
11 static int success_cnt=0;
12
13 static void __change_color_to_red(){
14     printf("%c[%d;%dm", 0x1B, BRIGHTNESS, RED);
15 }
16
17 static void __change_color_to_green(){
18     printf("%c[%d;%dm", 0x1B, BRIGHTNESS, GREEN);
19 }
20
21 static void __change_color_to_yellow(){
22     printf("%c[%d;%dm", 0x1B, BRIGHTNESS, YELLOW);
23 }
24
25 static void __change_color_to_origin(){
26     printf("%c[%dm", 0x1B, 0);
27 }
28
29 static void __free_privilege_list(GList* privilege_list)
30 {
31     GList* l = NULL;
32     for (l = privilege_list; l != NULL; l = l->next)
33     {
34         privilege_info_db_row_s* privilege_info_db_row = (privilege_info_db_row_s*)l->data;
35         if(privilege_info_db_row->profile != NULL)
36             free(privilege_info_db_row->profile);
37         if(privilege_info_db_row->package_type != NULL)
38             free(privilege_info_db_row->package_type);
39         if(privilege_info_db_row->privilege_name != NULL)
40             free(privilege_info_db_row->privilege_name);
41         if(privilege_info_db_row->privilege_display != NULL)
42             free(privilege_info_db_row->privilege_display);
43         if(privilege_info_db_row->privilege_description != NULL)
44             free(privilege_info_db_row->privilege_description);
45         if(privilege_info_db_row->privilege_level != NULL)
46             free(privilege_info_db_row->privilege_level);
47         if(privilege_info_db_row->issued_version != NULL)
48             free(privilege_info_db_row->issued_version);
49         if(privilege_info_db_row->expired_version != NULL)
50             free(privilege_info_db_row->expired_version);
51     }
52 }
53
54 static const char* __get_result_string(privilege_db_manager_error_e ret){
55     if(ret == PRIVILEGE_DB_MANAGER_ERR_NONE){
56         return "PRIVILEGE_DB_MANAGER_ERR_NONE";
57     }
58     else if(ret == PRIVILEGE_DB_NO_EXIST_RESULT){
59         return "PRIVILEGE_DB_NO_EXIST_RESULT";
60     }
61     else if(ret == PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL){
62         return "PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL";
63     }
64     else if(ret == PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY){
65         return "PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY";
66     }
67     else if(ret == PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY){
68         return "PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY";
69     }
70     else{
71         return "FAIL";
72     }
73 }
74
75 void __test_privilege_db_manager_get_privilege_list(){
76     GList* privilege_list;
77     int ret = privilege_db_manager_get_privilege_list("2.4", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, &privilege_list);
78     if(ret != PRIVILEGE_DB_MANAGER_ERR_NONE){
79         printf("failed to call privilege_db_manager_get_privilege_list()\n");
80         printf("error message = %s\n", __get_result_string(ret));
81         __change_color_to_red();
82         printf("test fail\n");
83         __change_color_to_origin();
84         fail_cnt++;
85         return;
86     }
87
88     GList* l = NULL;
89     for (l = privilege_list; l != NULL; l = l->next)
90     {
91         privilege_info_db_row_s* privilege_info_db_row = (privilege_info_db_row_s*)l->data;
92         printf("privilege_name = %s\n", privilege_info_db_row->privilege_name);
93         printf("privilege_level_id = %d\n", privilege_info_db_row->privilege_level_id);
94     }
95     __free_privilege_list(privilege_list);
96
97     __change_color_to_green();
98     printf("test success\n");
99     __change_color_to_origin();
100     success_cnt++;
101 }
102
103 void __check_get_privilege_display_result(privilege_db_manager_error_e expected_result, privilege_db_manager_error_e result, char* privilege_display)
104 {
105     printf("expected result = %s, result = %s\n", __get_result_string(expected_result), __get_result_string(result));
106
107     if(expected_result != result)
108     {
109         printf("not matched\n");
110         __change_color_to_red();
111         printf("test fail\n");
112         fail_cnt++;
113     }else{
114         printf("matched\n");
115
116         if(privilege_display == NULL){
117             printf("privilege_display = NULL\n");
118         }else{
119             printf("privilege_display = %s\n", privilege_display);
120         }
121         __change_color_to_green();
122         printf("test success\n");
123         success_cnt++;
124     }
125     __change_color_to_origin();
126 }
127
128
129 void __test_privilege_db_manager_get_privilege_display(){
130     int ret;
131
132     char* privilege_display = NULL;
133     printf("-----------------------------------------------------------\n");
134     printf("privilege : http://tizen.org/privilege/location\n");
135     printf("privilege_type : core\n");
136     printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
137     ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/location", "2.3", &privilege_display);
138     __check_get_privilege_display_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_display);
139     free(privilege_display);
140
141     printf("-----------------------------------------------------------\n");
142     printf("privilege : http://tizen.org/privilege/power\n");
143     printf("privilege_type : wrt\n");
144     printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
145     privilege_display = NULL;
146     ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/power", "2.3", &privilege_display);
147     __check_get_privilege_display_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_display);
148     free(privilege_display);
149
150     printf("-----------------------------------------------------------\n");
151     printf("privilege : http://tizen.org/privilege/messasdfsfsdfsdfad\n");
152     printf("expected result : PRIVILEGE_DB_NO_EXIST_RESULT\n");
153     privilege_display = NULL;
154     ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", "2.3", &privilege_display);
155     __check_get_privilege_display_result(PRIVILEGE_DB_NO_EXIST_RESULT, ret, privilege_display);
156     free(privilege_display);
157
158         printf("-----------------------------------------------------------\n");
159     printf("api_version is NULL\n");
160     printf("privilege : http://tizen.org/privilege/power\n");
161     printf("privilege_type : wrt\n");
162     printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
163     privilege_display = NULL;
164     ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/power", NULL, &privilege_display);
165     __check_get_privilege_display_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_display);
166         free(privilege_display);
167
168         printf("-----------------------------------------------------------\n");
169         printf("api_version is NULL\n");
170     printf("privilege : http://tizen.org/privilege/messasdfsfsdfsdfad\n");
171     printf("expected result : PRIVILEGE_DB_NO_EXIST_RESULT\n");
172     privilege_display = NULL;
173     ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", NULL, &privilege_display);
174     __check_get_privilege_display_result(PRIVILEGE_DB_NO_EXIST_RESULT, ret, privilege_display);
175     free(privilege_display);
176
177         printf("-----------------------------------------------------------\n");
178
179 }
180
181 void __check_get_privilege_description_result(privilege_db_manager_error_e expected_result, privilege_db_manager_error_e result, char* privilege_description)
182 {
183     printf("expected result = %s, result = %s\n", __get_result_string(expected_result), __get_result_string(result));
184
185     if(expected_result != result)
186     {
187         printf("not matched\n");
188         __change_color_to_red();
189         printf("test fail\n");
190         fail_cnt++;
191     }else{
192         printf("matched\n");
193
194         if(privilege_description == NULL){
195             printf("privilege_description = NULL\n");
196         }else{
197             printf("privilege_description = %s\n", privilege_description);
198         }
199         __change_color_to_green();
200         printf("test success\n");
201         success_cnt++;
202     }
203     __change_color_to_origin();
204 }
205
206 void __test_privilege_db_manager_get_privilege_description(){
207
208     int ret;
209
210     char* privilege_description = NULL;
211     printf("-----------------------------------------------------------\n");
212     printf("privilege : http://tizen.org/privilege/location\n");
213     printf("privilege_type : core\n");
214     printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
215     ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/location", "2.3", &privilege_description);
216     __check_get_privilege_description_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_description);
217
218     if(privilege_description != NULL){
219         free(privilege_description);
220         privilege_description = NULL;
221     }
222
223     printf("-----------------------------------------------------------\n");
224     printf("privilege : http://tizen.org/privilege/power\n");
225     printf("privilege_type : wrt\n");
226     printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
227     ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/power", "2.3", &privilege_description);
228     __check_get_privilege_description_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_description);
229
230     if(privilege_description != NULL){
231         free(privilege_description);
232         privilege_description = NULL;
233     }
234
235     printf("-----------------------------------------------------------\n");
236     printf("privilege : http://tizen.org/privilege/messasdfsfsdfsdfad\n");
237     printf("expected result : PRIVILEGE_DB_NO_EXIST_RESULT\n");
238     ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", "2.3", &privilege_description);
239     __check_get_privilege_description_result(PRIVILEGE_DB_NO_EXIST_RESULT, ret, privilege_description);
240
241         if(privilege_description != NULL){
242         free(privilege_description);
243         privilege_description = NULL;
244     }
245
246     printf("-----------------------------------------------------------\n");
247         printf("api_version is NULL\n");
248     printf("privilege : http://tizen.org/privilege/power\n");
249     printf("privilege_type : wrt\n");
250     printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
251     ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/power", NULL, &privilege_description);
252     __check_get_privilege_description_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_description);
253
254     if(privilege_description != NULL){
255         free(privilege_description);
256         privilege_description = NULL;
257     }
258
259     printf("-----------------------------------------------------------\n");
260         printf("api_version is NULL\n");
261     printf("privilege : http://tizen.org/privilege/messasdfsfsdfsdfad\n");
262     printf("expected result : PRIVILEGE_DB_NO_EXIST_RESULT\n");
263     ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", NULL, &privilege_description);
264     __check_get_privilege_description_result(PRIVILEGE_DB_NO_EXIST_RESULT, ret, privilege_description);
265     printf("-----------------------------------------------------------\n");
266
267     free(privilege_description);
268
269 }
270
271 int main()
272 {
273     __change_color_to_yellow();
274     printf("Test function : privilege_db_manager_get_privilege_list\n");
275     __change_color_to_origin();
276     __test_privilege_db_manager_get_privilege_list();
277
278     __change_color_to_yellow();
279     printf("Test function : privilege_db_manager_get_privilege_display\n");
280     __change_color_to_origin();
281     __test_privilege_db_manager_get_privilege_display();
282
283     __change_color_to_yellow();
284     printf("Test function : privilege_db_manager_get_privilege_description\n");
285     __change_color_to_origin();
286     __test_privilege_db_manager_get_privilege_description();
287
288     __change_color_to_green();
289     printf("Test Complete\n");
290     printf("success : %d, ", success_cnt);
291     __change_color_to_red();
292     printf("fail : %d\n", fail_cnt);
293     __change_color_to_origin();
294
295     return 0;
296 }
297