Fix test code to work properly
[platform/core/security/privilege-checker.git] / test / tc-privilege-manager.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <stdbool.h>
5 #include <glib.h>
6 #include <privilege_manager.h>
7 #include "tc-common.h"
8
9 static void __privilege_manager_get_mapped_privilege_list()
10 {
11         int ret = 0;
12         GList* mapped_privilege_list = NULL;
13         ret = privilege_manager_get_mapped_privilege_list(api_version, pkg_type, privilege_list, &mapped_privilege_list);
14         /* TBD : Add function to compare mapped list and correct list
15         if (mapped_privilege_list != NULL)
16                 __check_mapping_n_count_result(ret, 1, mapped_privilege_list); */
17         __print_result('m', ret);
18         __print_line();
19
20         gfree(privilege_list);
21         gfree(mapped_privilege_list);
22 }
23
24 static void __test_privilege_manager_get_mapped_privilege_list()
25 {
26         int ret = 0;
27         GList *mapped_privilege_list;
28
29         /* Test for invalid input parameter */
30         __tcinfo(version_type, NULL, "core");
31         __tcinfo(goal, "!!! WRONG PARAM !!! api_version = NULL");
32         __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
33         __tcinfo(expect, PRVMGR_ERR_INVALID_PARAMETER);
34         __privilege_manager_get_mapped_privilege_list();
35
36         __tcinfo(version_type, "2.3.4.5.1", "core");
37         __tcinfo(goal, "!!! WRONG PARAM !!! api_version == 2.3.4.5.1");
38         __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
39         __tcinfo(expect, PRVMGR_ERR_INVALID_PARAMETER);
40         __privilege_manager_get_mapped_privilege_list();
41
42         __tcinfo(version_type, "2.3", "core");
43         __tcinfo(goal, "api_version == 2.3, wrong privilege => returned mapping privilege list should be null");
44         __privinfo("http://tizen.org/privilege/wrong-privilege-name", NULL, NULL);
45         __tcinfo(expect, PRVMGR_ERR_NONE);
46         ret = privilege_manager_get_mapped_privilege_list(api_version, pkg_type, privilege_list, &mapped_privilege_list);
47         if (mapped_privilege_list == NULL) {
48                 printf("it's null\n");
49                 __print_result('m', ret);
50         } else {
51                 printf("it's NOT null\n");
52                 ret = -1;
53                 __print_result('m', ret);
54                 __print_privilege_list(mapped_privilege_list);
55                 gfree(mapped_privilege_list);
56         }
57         __print_line();
58
59         /* 2.3 core - mobile */
60         __tcinfo(version_type, "2.3", "core");
61
62         __tcinfo(goal, "TC1");
63         __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
64         __privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
65         __privinfo("http://tizen.org/privilege/camera", NULL, NULL);
66         __tcinfo(expect, PRVMGR_ERR_NONE);
67         ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_CORE, privilege_list, &mapped_privilege_list);
68         __print_privilege_list(mapped_privilege_list);
69         __print_line();
70         gfree(privilege_list);
71
72         __tcinfo(goal, "TC2");
73         __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
74         __privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
75         __privinfo("http://tizen.org/privilege/camera", NULL, NULL);
76         __privinfo("http://tizen.org/privilege/vpnservice", NULL, "Valid from 3.0 so it should be ignored");
77         __tcinfo(expect, PRVMGR_ERR_NONE);
78         ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_CORE, privilege_list, &mapped_privilege_list);
79         __print_privilege_list(mapped_privilege_list);
80         __print_line();
81
82         gfree(privilege_list);
83
84         /* 3.0 core - mobile */
85         __tcinfo(version_type, "3.0", "core");
86
87         __tcinfo(goal, "normal mapping");
88         __privinfo("http://tizen.org/privilege/message.read", NULL, NULL);
89         __tcinfo(expect, PRVMGR_ERR_NONE);
90         ret = privilege_manager_get_mapped_privilege_list("3.0", PRVMGR_PACKAGE_TYPE_CORE, privilege_list, &mapped_privilege_list);
91         __print_result('m', ret);
92         __print_privilege_list(mapped_privilege_list);
93         __print_line();
94
95         gfree(privilege_list);
96
97         /* 2.2.1 wrt - mobile */
98         __tcinfo(version_type, "2.2.1", "wrt");
99
100         __tcinfo(goal, "normal mapping");
101         __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
102         __privinfo("http://tizen.org/privilege/account.write", NULL, NULL);
103         __privinfo("http://tizen.org/privilege/nfc.admin", NULL, NULL);
104         __privinfo("http://tizen.org/privilege/contact.read", NULL, NULL);
105         __privinfo("http://tizen.org/privilege/calendar.read", NULL, NULL);
106         __tcinfo(expect, PRVMGR_ERR_NONE);
107         ret = privilege_manager_get_mapped_privilege_list(api_version, PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
108         __print_result('m', ret);
109         __print_privilege_list(mapped_privilege_list);
110         __print_line();
111
112         gfree(privilege_list);
113
114         __tcinfo(goal, "normal mapping");
115         __privinfo("http://tizen.org/privilege/internal/default/platform", NULL, NULL);
116         __privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
117         __privinfo("http://tizen.org/privilege/nfc.admin", NULL, NULL);
118         __privinfo("http://tizen.org/privilege/contact.write", NULL, NULL);
119         __privinfo("http://tizen.org/privilege/datasync", NULL, NULL);
120         __tcinfo(expect, PRVMGR_ERR_NONE);
121         ret = privilege_manager_get_mapped_privilege_list(api_version, PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
122         __print_result('m', ret);
123         __print_privilege_list(mapped_privilege_list);
124         __print_line();
125
126         gfree(privilege_list);
127
128         __tcinfo(goal, "normal mapping");
129         __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
130         __privinfo("http://tizen.org/privilege/content.read", NULL, NULL);
131         __privinfo("http://tizen.org/privilege/nfc.p2p", NULL, NULL);
132         __privinfo("http://tizen.org/privilege/call", NULL, NULL);
133         __privinfo("http://tizen.org/privilege/internet", NULL, NULL);
134         __tcinfo(expect, PRVMGR_ERR_NONE);
135         ret = privilege_manager_get_mapped_privilege_list("2.2.1", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
136         __print_result('m', ret);
137         __print_privilege_list(mapped_privilege_list);
138         __print_line();
139
140         gfree(privilege_list);
141
142         /* 2.3 wrt - mobile */
143         __tcinfo(version_type, "2.3", "wrt");
144
145         __tcinfo(goal, "normal mapping");
146         __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
147         __privinfo("http://tizen.org/privilege/account.write", NULL, NULL);
148         __privinfo("http://tizen.org/privilege/nfc.admin", NULL, NULL);
149         __privinfo("http://tizen.org/privilege/contact.read", NULL, NULL);
150         __privinfo("http://tizen.org/privilege/calendar.read", NULL, NULL);
151         __tcinfo(expect, PRVMGR_ERR_NONE);
152         ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
153         __print_result('m', ret);
154         __print_privilege_list(mapped_privilege_list);
155         __print_line();
156
157         gfree(privilege_list);
158
159         __tcinfo(goal, "normal mapping");
160         __privinfo("http://tizen.org/privilege/internal/default/platform", NULL, NULL);
161         __privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
162         __privinfo("http://tizen.org/privilege/nfc.admin", NULL, NULL);
163         __privinfo("http://tizen.org/privilege/contact.write", NULL, NULL);
164         __privinfo("http://tizen.org/privilege/datasync", NULL, NULL);
165         __tcinfo(expect, PRVMGR_ERR_NONE);
166         ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
167         __print_result('m', ret);
168         __print_privilege_list(mapped_privilege_list);
169         __print_line();
170
171         gfree(privilege_list);
172
173         __tcinfo(goal, "normal mapping");
174         __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
175         __privinfo("http://tizen.org/privilege/content.read", NULL, NULL);
176         __privinfo("http://tizen.org/privilege/nfc.p2p", NULL, NULL);
177         __privinfo("http://tizen.org/privilege/call", NULL, NULL);
178         __privinfo("http://tizen.org/privilege/internet", NULL, NULL);
179         __tcinfo(expect, PRVMGR_ERR_NONE);
180         ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
181         __print_result('m', ret);
182         __print_privilege_list(mapped_privilege_list);
183         __print_line();
184
185         gfree(privilege_list);
186
187         __tcinfo(goal, "normal mapping");
188         __privinfo("http://tizen.org/privilege/location", NULL, NULL);
189         __tcinfo(expect, PRVMGR_ERR_NONE);
190         ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
191         __print_result('m', ret);
192         __print_privilege_list(mapped_privilege_list);
193         __print_line();
194
195         gfree(privilege_list);
196
197         __tcinfo(goal, "normal mapping");
198         __privinfo("http://tizen.org/privilege/internal/default/platform", NULL, NULL);
199         __tcinfo(expect, PRVMGR_ERR_NONE);
200         ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
201         __print_result('m', ret);
202         __print_privilege_list(mapped_privilege_list);
203         __print_line();
204
205         gfree(privilege_list);
206
207         /* 2.4 wrt - mobile */
208         __tcinfo(version_type, "2.4", "wrt");
209
210         __tcinfo(goal, "normal mapping");
211         __privinfo("http://tizen.org/privilege/location", NULL, NULL);
212         __tcinfo(expect, PRVMGR_ERR_NONE);
213         ret = privilege_manager_get_mapped_privilege_list("2.4", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
214         __print_result('m', ret);
215         __print_privilege_list(mapped_privilege_list);
216         __print_line();
217
218         gfree(privilege_list);
219
220         __tcinfo(goal, "normal mapping");
221         __privinfo("http://tizen.org/privilege/internal/default/platform", NULL, NULL);
222         __tcinfo(expect, PRVMGR_ERR_NONE);
223         ret = privilege_manager_get_mapped_privilege_list("2.4", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
224         __print_result('m', ret);
225         __print_privilege_list(mapped_privilege_list);
226         __print_line();
227
228         gfree(privilege_list);
229 }
230
231 static void __test_privilege_manager_verify_metadata()
232 {
233         char* error_message = NULL;
234         int ret = 0;
235         GList *metadata_list = NULL;
236
237         ret = system("/usr/bin/sqlite3 /usr/share/privilege-manager/.privilege.db \"insert into privilege_info(package_type_id, package_type, privilege_level_id, privilege_level, documented, privilege_name, privilege_display, privilege_description, privilege_group_id, privilege_group) values (2, 'metadata', 0, 'public', 'no', 'http://tizen.org/metadata/public', '', '', 6, 'IDS_TPLATFORM_BODY_OTHER_PRIVILEGES_ABB')\"");
238         if (ret != 0)
239                 printf_red("system failed!!!\n");
240
241         ret = system("/usr/bin/sqlite3 /usr/share/privilege-manager/.privilege.db \"insert into privilege_info(package_type_id, package_type, privilege_level_id, privilege_level, documented, privilege_name, privilege_display, privilege_description, privilege_group_id, privilege_group) values (2, 'metadata', 1, 'partner', 'no', 'http://tizen.org/metadata/partner', '', '', 6, 'IDS_TPLATFORM_BODY_OTHER_PRIVILEGES_ABB')\"");
242         if (ret != 0)
243                 printf_red("system failed!!!\n");
244
245         ret = system("/usr/bin/sqlite3 /usr/share/privilege-manager/.privilege.db \"insert into privilege_info(package_type_id, package_type, privilege_level_id, privilege_level, documented, privilege_name, privilege_display, privilege_description, privilege_group_id, privilege_group) values (2, 'metadata', 2, 'platform', 'no', 'http://tizen.org/metadata/platform', '', '', 6, 'IDS_TPLATFORM_BODY_OTHER_PRIVILEGES_ABB')\"");
246         if (ret != 0)
247                 printf_red("system failed!!!\n");
248
249         printf("metadata : http://tizen.org/metadata/public\n");
250         metadata_list = g_list_append(metadata_list, "http://tizen.org/metadata/public");
251         __tcinfo(cert_level, "public");
252         __tcinfo(expect, PRVMGR_ERR_NONE);
253         ret = privilege_manager_verify_metadata("3.0", metadata_list, visibility, &error_message);
254         __print_result('m', ret);
255         ShowErrorMsg(error_message != NULL, error_message, ret);
256         __print_line();
257
258         free(error_message);
259         error_message = NULL;
260         gfree(metadata_list);
261
262         printf("metadata : http://tizen.org/metadata/notexist\n");
263         metadata_list = g_list_append(metadata_list, "http://tizen.org/metadata/notexist");
264         __tcinfo(cert_level, "public");
265         __tcinfo(expect, PRVMGR_ERR_NONE);
266         ret = privilege_manager_verify_metadata("3.0", metadata_list, visibility, &error_message);
267         __print_result('m', ret);
268         ShowErrorMsg(error_message != NULL, error_message, ret);
269         __print_line();
270
271         free(error_message);
272         error_message = NULL;
273         gfree(metadata_list);
274
275         printf("metadata : http://tizen.org/metadata/partner\n");
276         printf("metadata : http://tizen.org/metadata/platform\n");
277         metadata_list = g_list_append(metadata_list, "http://tizen.org/metadata/partner");
278         metadata_list = g_list_append(metadata_list, "http://tizen.org/metadata/platform");
279         __tcinfo(cert_level, "partner");
280         __tcinfo(expect, PRVMGR_ERR_INVALID_METADATA);
281         ret = privilege_manager_verify_metadata("3.0", metadata_list, visibility, &error_message);
282         __print_result('m', ret);
283         ShowErrorMsg(error_message != NULL, error_message, ret);
284         __print_line();
285
286         free(error_message);
287         error_message = NULL;
288         gfree(metadata_list);
289
290         ret = system("/usr/bin/sqlite3 /usr/share/privilege-manager/.privilege.db \"delete from privilege_info where package_type_id=2 and privilege_name in ('http://tizen.org/metadata/public', 'http://tizen.org/metadata/partner', 'http://tizen.org/metadata/platform')\"");
291         if (ret != 0)
292                 printf_red("system failed!!!\n");
293
294 }
295
296 static void __privilege_manager_verify_privilege()
297 {
298         char* error_message = NULL;
299         int ret = 0;
300         ret = privilege_manager_verify_privilege(0, api_version, pkg_type, privilege_list, visibility, &error_message);
301         __print_result('m', ret);
302         ShowErrorMsg(error_message != NULL, error_message, ret);
303         __print_line();
304
305         free(error_message);
306         gfree(privilege_list);
307 }
308
309 static void __test_privilege_manager_verify_privilege()
310 {
311         __tcinfo(version_type, NULL, "core");
312         __tcinfo(goal, "api_version == NULL");
313         __privinfo("http://tizen.org/privilege/account.read", "Public", NULL);
314         __privinfo("http://tizen.org/privilege/account.write", "Public", NULL);
315         __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL);
316         __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL);
317         __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL);
318         __privinfo("http://tizen.org/privilege/systemsettings", "Public", NULL);
319         __tcinfo(cert_level, "public");
320         __tcinfo(expect, PRVMGR_ERR_INVALID_PARAMETER);
321         __privilege_manager_verify_privilege();
322
323         __tcinfo(version_type, "2.3.4.2.1", "core");
324         __tcinfo(goal, "invalid api_version == 2.3.4.2.1");
325         __privinfo("http://tizen.org/privilege/account.read", "Public", NULL);
326         __privinfo("http://tizen.org/privilege/account.write", "Public", NULL);
327         __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL);
328         __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL);
329         __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL);
330         __privinfo("http://tizen.org/privilege/systemsettings", "Public", NULL);
331         __tcinfo(cert_level, "public");
332         __tcinfo(expect, PRVMGR_ERR_INVALID_PARAMETER);
333         __privilege_manager_verify_privilege();
334
335         __tcinfo(version_type, "2.", "core");
336         __tcinfo(goal, "invalid api_version == 2.");
337         __privinfo("http://tizen.org/privilege/account.read", "Public", NULL);
338         __privinfo("http://tizen.org/privilege/account.write", "Public", NULL);
339         __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL);
340         __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL);
341         __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL);
342         __privinfo("http://tizen.org/privilege/systemsettings", "Public", NULL);
343         __tcinfo(cert_level, "public");
344         __tcinfo(expect, PRVMGR_ERR_INVALID_PARAMETER);
345         __privilege_manager_verify_privilege();
346
347         __tcinfo(version_type, "a.b", "core");
348         __tcinfo(goal, "invalid api_version == a.b");
349         __privinfo("http://tizen.org/privilege/account.read", "Public", NULL);
350         __privinfo("http://tizen.org/privilege/account.write", "Public", NULL);
351         __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL);
352         __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL);
353         __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL);
354         __privinfo("http://tizen.org/privilege/systemsettings", "Public", NULL);
355         __tcinfo(cert_level, "public");
356         __tcinfo(expect, PRVMGR_ERR_INVALID_PARAMETER);
357         __privilege_manager_verify_privilege();
358
359         __tcinfo(version_type, "2.3.0.256", "core");
360         __tcinfo(goal, "invalid api_version == 2.3.0.256");
361         __privinfo("http://tizen.org/privilege/internet", "Public", NULL);
362         __tcinfo(cert_level, "public");
363         __tcinfo(expect, PRVMGR_ERR_INVALID_PARAMETER);
364         __privilege_manager_verify_privilege();
365
366         __tcinfo(version_type, "2.3.1.255", "core");
367         __tcinfo(goal, "valid api_version == 2.3.1.255");
368         __privinfo("http://tizen.org/privilege/internet", "Public", NULL);
369         __tcinfo(cert_level, "public");
370         __tcinfo(expect, PRVMGR_ERR_NONE);
371         __privilege_manager_verify_privilege();
372
373         __tcinfo(version_type, "2.2.1", "wrt");
374         __tcinfo(goal, "valid api_version == 2.2.1, check internal privilege");
375         __privinfo("http://tizen.org/privilege/internal/public", "Public", NULL);
376         __tcinfo(cert_level, "public");
377         __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE);
378         __privilege_manager_verify_privilege();
379
380         /* 3.0 Native */
381         __tcinfo(version_type, "3.0", "core");
382
383         __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public");
384         __privinfo("http://tizen.org/privilege/account.read", "Public", NULL);
385         __privinfo("http://tizen.org/privilege/account.write", "Public", NULL);
386         __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL);
387         __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL);
388         __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL);
389         __privinfo("http://tizen.org/privilege/calendar.write", "Public", NULL);
390         __privinfo("http://tizen.org/privilege/call", "Public", NULL);
391         __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL);
392         __privinfo("http://tizen.org/privilege/callhistory.write", "Public", NULL);
393         __privinfo("http://tizen.org/privilege/datasharing", "Public", NULL);
394         __privinfo("http://tizen.org/privilege/display", "Public", NULL);
395         __privinfo("http://tizen.org/privilege/download", "Public", NULL);
396         __privinfo("http://tizen.org/privilege/display", "Public", NULL);
397         __privinfo("http://tizen.org/privilege/haptic", "Public", NULL);
398         __privinfo("http://tizen.org/privilege/internet", "Public", NULL);
399         __privinfo("http://tizen.org/privilege/keymanager", "Public", NULL);
400         __privinfo("http://tizen.org/privilege/systemsettings", "Public", NULL);
401         __tcinfo(cert_level, "public");
402         __tcinfo(expect, PRVMGR_ERR_NONE);
403         __privilege_manager_verify_privilege();
404
405         __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner");
406         __privinfo("http://tizen.org/privilege/dpm.bluetooth", "Partner", NULL);
407         __privinfo("http://tizen.org/privilege/dpm.camera", "Partner", NULL);
408         __privinfo("http://tizen.org/privilege/dpm.clipboard", "Partner", NULL);
409         __privinfo("http://tizen.org/privilege/dpm.email", "Partner", NULL);
410         __privinfo("http://tizen.org/privilege/dpm.location", "Partner", NULL);
411         __privinfo("http://tizen.org/privilege/dpm.lock", "Partner", NULL);
412         __privinfo("http://tizen.org/privilege/dpm.message", "Partner", NULL);
413         __privinfo("http://tizen.org/privilege/internet", "Public", NULL);
414         __privinfo("http://tizen.org/privilege/call", "Public", NULL);
415         __privinfo("http://tizen.org/privilege/antivirus.scan", "Partner", NULL);
416         __privinfo("http://tizen.org/privilege/antivirus.webprotect", "Partner", NULL);
417         __tcinfo(cert_level, "partner");
418         __tcinfo(expect, PRVMGR_ERR_NONE);
419         __privilege_manager_verify_privilege();
420
421         __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform");
422         __privinfo("http://tizen.org/privilege/bookmark.admin", "Platform", NULL);
423         __privinfo("http://tizen.org/privilege/bluetooth.admin", "Platform", NULL);
424         __privinfo("http://tizen.org/privilege/email.admin", "Platform", NULL);
425         __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL);
426         __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL);
427         __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL);
428         __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL);
429         __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL);
430         __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL);
431         __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL);
432         __tcinfo(cert_level, "platform");
433         __tcinfo(expect, PRVMGR_ERR_NONE);
434         __privilege_manager_verify_privilege();
435
436         __tcinfo(goal, "Name=OK, Version=OK, !!! Level=Mismatched !!! -- with public signatured certificate");
437         __privinfo("http://tizen.org/privilege/bookmark.admin", "Platform", NULL);
438         __privinfo("http://tizen.org/privilege/dpm.storage", "Partner", NULL);
439         __privinfo("http://tizen.org/privilege/antivirus.scan", "Partner", NULL);
440         __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL);
441         __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL);
442         __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL);
443         __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL);
444         __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL);
445         __tcinfo(cert_level, "public");
446         __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE);
447         __privilege_manager_verify_privilege();
448
449         __tcinfo(goal, "Name=OK, Version=OK, !!! Level=Mismatched !!! -- with partner signatured certificate");
450         __privinfo("http://tizen.org/privilege/bookmark.admin", "Platform", NULL);
451         __privinfo("http://tizen.org/privilege/bluetooth.admin", "Platform", NULL);
452         __privinfo("http://tizen.org/privilege/email.admin", "Platform", NULL);
453         __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL);
454         __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL);
455         __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL);
456         __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL);
457         __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL);
458         __tcinfo(cert_level, "partner");
459         __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE);
460         __privilege_manager_verify_privilege();
461
462         /* 3.0 Web */
463         __tcinfo(version_type, "3.0", "wrt");
464
465         __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public ");
466         __privinfo("http://tizen.org/privilege/bluetooth.gap", "Public", NULL);
467         __privinfo("http://tizen.org/privilege/bluetooth.health", "Public", NULL);
468         __privinfo("http://tizen.org/privilege/alarm", "Public", NULL);
469         __privinfo("http://tizen.org/privilege/application.info", "Public", NULL);
470         __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL);
471         __privinfo("http://tizen.org/privilege/call", "Public", NULL);
472         __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL);
473         __privinfo("http://tizen.org/privilege/contact.write", "Public", NULL);
474         __privinfo("http://tizen.org/privilege/content.read", "Public", NULL);
475         __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL);
476         __privinfo("http://tizen.org/privilege/datasync", "Public", NULL);
477         __privinfo("http://tizen.org/privilege/download", "Public", NULL);
478         __privinfo("http://tizen.org/privilege/filesystem.read", "Public", NULL);
479         __privinfo("http://tizen.org/privilege/fullscreen", "Public", NULL);
480         __privinfo("http://tizen.org/privilege/healthinfo", "Public", NULL);
481         __privinfo("http://tizen.org/privilege/internet", "Public", NULL);
482         __privinfo("http://tizen.org/privilege/location", "Public", NULL);
483         __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL);
484         __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL);
485         __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL);
486         __privinfo("http://tizen.org/privilege/notification", "Public", NULL);
487         __privinfo("http://tizen.org/privilege/package.info", "Public", NULL);
488         __privinfo("http://tizen.org/privilege/power", "Public", NULL);
489         __privinfo("http://tizen.org/privilege/telephony", "Public", NULL);
490         __privinfo("http://tizen.org/privilege/websetting", "Public", NULL);
491         __tcinfo(cert_level, "public");
492         __tcinfo(expect, PRVMGR_ERR_NONE);
493         __privilege_manager_verify_privilege();
494
495         __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner ");
496         __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL);
497         __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL);
498         __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL);
499         __privinfo("http://tizen.org/privilege/call", "Public", NULL);
500         __privinfo("http://tizen.org/privilege/content.read", "Public", NULL);
501         __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL);
502         __privinfo("http://tizen.org/privilege/internet", "Public", NULL);
503         __privinfo("http://tizen.org/privilege/location", "Public", NULL);
504         __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL);
505         __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL);
506         __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL);
507         __privinfo("http://tizen.org/privilege/notification", "Public", NULL);
508         __tcinfo(cert_level, "partner");
509         __tcinfo(expect, PRVMGR_ERR_NONE);
510         __privilege_manager_verify_privilege();
511
512         __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform ");
513         __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL);
514         __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL);
515         __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL);
516         __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL);
517         __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL);
518         __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL);
519         __privinfo("http://tizen.org/privilege/call", "Public", NULL);
520         __privinfo("http://tizen.org/privilege/content.read", "Public", NULL);
521         __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL);
522         __privinfo("http://tizen.org/privilege/internet", "Public", NULL);
523         __privinfo("http://tizen.org/privilege/location", "Public", NULL);
524         __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL);
525         __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL);
526         __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL);
527         __privinfo("http://tizen.org/privilege/notification", "Public", NULL);
528         __tcinfo(cert_level, "platform");
529         __tcinfo(expect, PRVMGR_ERR_NONE);
530         __privilege_manager_verify_privilege();
531
532         __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate");
533         __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL);
534         __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL);
535         __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL);
536         __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL);
537         __tcinfo(cert_level, "public");
538         __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE);
539         __privilege_manager_verify_privilege();
540
541         __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate");
542         __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL);
543         __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL);
544         __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL);
545         __tcinfo(cert_level, "partner");
546         __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE);
547         __privilege_manager_verify_privilege();
548
549 }
550
551 int main()
552 {
553         __tcinfo(function, "privilege_manager_verify_privilege");
554         __test_privilege_manager_verify_privilege();
555
556         __tcinfo(function, "privilege_manager_get_mapped_privilege_list");
557         __test_privilege_manager_get_mapped_privilege_list();
558
559         __tcinfo(function, "privilege_manager_verify_metadata");
560         __test_privilege_manager_verify_metadata();
561
562         printf_green("Test Complete\n");
563         printf_green("success : %d, ", success_cnt);
564         printf_red("fail : %d\n", fail_cnt);
565
566         return 0;
567 }