1b8cf332add77495959ff8f8139fba8856e8981b
[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         printf("metadata : http://tizen.org/metadata/public\n");
238         metadata_list = g_list_append(metadata_list, "http://tizen.org/metadata/public");
239         __tcinfo(cert_level, "public");
240         __tcinfo(expect, PRVMGR_ERR_NONE);
241         ret = privilege_manager_verify_metadata("3.0", metadata_list, visibility, &error_message);
242         __print_result('m', ret);
243         ShowErrorMsg(error_message != NULL, error_message, ret);
244         __print_line();
245
246         free(error_message);
247         error_message = NULL;
248         gfree(metadata_list);
249
250         printf("metadata : http://tizen.org/metadata/notexist\n");
251         metadata_list = g_list_append(metadata_list, "http://tizen.org/metadata/notexist");
252         __tcinfo(cert_level, "public");
253         __tcinfo(expect, PRVMGR_ERR_NONE);
254         ret = privilege_manager_verify_metadata("3.0", metadata_list, visibility, &error_message);
255         __print_result('m', ret);
256         ShowErrorMsg(error_message != NULL, error_message, ret);
257         __print_line();
258
259         free(error_message);
260         error_message = NULL;
261         gfree(metadata_list);
262
263         printf("metadata : http://tizen.org/metadata/partner\n");
264         printf("metadata : http://tizen.org/metadata/platform\n");
265         metadata_list = g_list_append(metadata_list, "http://tizen.org/metadata/partner");
266         metadata_list = g_list_append(metadata_list, "http://tizen.org/metadata/platform");
267         __tcinfo(cert_level, "partner");
268         __tcinfo(expect, PRVMGR_ERR_INVALID_METADATA);
269         ret = privilege_manager_verify_metadata("3.0", metadata_list, visibility, &error_message);
270         __print_result('m', ret);
271         ShowErrorMsg(error_message != NULL, error_message, ret);
272         __print_line();
273
274         free(error_message);
275         error_message = NULL;
276         gfree(metadata_list);
277 }
278
279 static void __privilege_manager_verify_privilege()
280 {
281         char* error_message = NULL;
282         int ret = 0;
283         ret = privilege_manager_verify_privilege(0, api_version, pkg_type, privilege_list, visibility, &error_message);
284         __print_result('m', ret);
285         ShowErrorMsg(error_message != NULL, error_message, ret);
286         __print_line();
287
288         free(error_message);
289         gfree(privilege_list);
290 }
291
292 static void __test_privilege_manager_verify_privilege()
293 {
294         __tcinfo(version_type, NULL, "core");
295         __tcinfo(goal, "api_version == NULL");
296         __privinfo("http://tizen.org/privilege/account.read", "Public", NULL);
297         __privinfo("http://tizen.org/privilege/account.write", "Public", NULL);
298         __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL);
299         __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL);
300         __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL);
301         __privinfo("http://tizen.org/privilege/systemsettings", "Public", NULL);
302         __tcinfo(cert_level, "public");
303         __tcinfo(expect, PRVMGR_ERR_INVALID_PARAMETER);
304         __privilege_manager_verify_privilege();
305
306         __tcinfo(version_type, "2.3.4.2.1", "core");
307         __tcinfo(goal, "invalid api_version == 2.3.4.2.1");
308         __privinfo("http://tizen.org/privilege/account.read", "Public", NULL);
309         __privinfo("http://tizen.org/privilege/account.write", "Public", NULL);
310         __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL);
311         __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL);
312         __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL);
313         __privinfo("http://tizen.org/privilege/systemsettings", "Public", NULL);
314         __tcinfo(cert_level, "public");
315         __tcinfo(expect, PRVMGR_ERR_INVALID_PARAMETER);
316         __privilege_manager_verify_privilege();
317
318         __tcinfo(version_type, "2.", "core");
319         __tcinfo(goal, "invalid api_version == 2.");
320         __privinfo("http://tizen.org/privilege/account.read", "Public", NULL);
321         __privinfo("http://tizen.org/privilege/account.write", "Public", NULL);
322         __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL);
323         __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL);
324         __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL);
325         __privinfo("http://tizen.org/privilege/systemsettings", "Public", NULL);
326         __tcinfo(cert_level, "public");
327         __tcinfo(expect, PRVMGR_ERR_INVALID_PARAMETER);
328         __privilege_manager_verify_privilege();
329
330         __tcinfo(version_type, "a.b", "core");
331         __tcinfo(goal, "invalid api_version == a.b");
332         __privinfo("http://tizen.org/privilege/account.read", "Public", NULL);
333         __privinfo("http://tizen.org/privilege/account.write", "Public", NULL);
334         __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL);
335         __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL);
336         __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL);
337         __privinfo("http://tizen.org/privilege/systemsettings", "Public", NULL);
338         __tcinfo(cert_level, "public");
339         __tcinfo(expect, PRVMGR_ERR_INVALID_PARAMETER);
340         __privilege_manager_verify_privilege();
341
342         __tcinfo(version_type, "2.3.0.256", "core");
343         __tcinfo(goal, "invalid api_version == 2.3.0.256");
344         __privinfo("http://tizen.org/privilege/internet", "Public", NULL);
345         __tcinfo(cert_level, "public");
346         __tcinfo(expect, PRVMGR_ERR_INVALID_PARAMETER);
347         __privilege_manager_verify_privilege();
348
349         __tcinfo(version_type, "2.3.1.255", "core");
350         __tcinfo(goal, "valid api_version == 2.3.1.255");
351         __privinfo("http://tizen.org/privilege/internet", "Public", NULL);
352         __tcinfo(cert_level, "public");
353         __tcinfo(expect, PRVMGR_ERR_NONE);
354         __privilege_manager_verify_privilege();
355
356         __tcinfo(version_type, "2.2.1", "wrt");
357         __tcinfo(goal, "valid api_version == 2.2.1, check internal privilege");
358         __privinfo("http://tizen.org/privilege/internal/public", "Public", NULL);
359         __tcinfo(cert_level, "public");
360         __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE);
361         __privilege_manager_verify_privilege();
362
363         /* 3.0 Native */
364         __tcinfo(version_type, "3.0", "core");
365
366         __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public");
367         __privinfo("http://tizen.org/privilege/account.read", "Public", NULL);
368         __privinfo("http://tizen.org/privilege/account.write", "Public", NULL);
369         __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL);
370         __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL);
371         __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL);
372         __privinfo("http://tizen.org/privilege/calendar.write", "Public", NULL);
373         __privinfo("http://tizen.org/privilege/call", "Public", NULL);
374         __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL);
375         __privinfo("http://tizen.org/privilege/callhistory.write", "Public", NULL);
376         __privinfo("http://tizen.org/privilege/datasharing", "Public", NULL);
377         __privinfo("http://tizen.org/privilege/display", "Public", NULL);
378         __privinfo("http://tizen.org/privilege/download", "Public", NULL);
379         __privinfo("http://tizen.org/privilege/display", "Public", NULL);
380         __privinfo("http://tizen.org/privilege/haptic", "Public", NULL);
381         __privinfo("http://tizen.org/privilege/internet", "Public", NULL);
382         __privinfo("http://tizen.org/privilege/keymanager", "Public", NULL);
383         __privinfo("http://tizen.org/privilege/systemsettings", "Public", NULL);
384         __tcinfo(cert_level, "public");
385         __tcinfo(expect, PRVMGR_ERR_NONE);
386         __privilege_manager_verify_privilege();
387
388         __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner");
389         __privinfo("http://tizen.org/privilege/dpm.bluetooth", "Partner", NULL);
390         __privinfo("http://tizen.org/privilege/dpm.camera", "Partner", NULL);
391         __privinfo("http://tizen.org/privilege/dpm.clipboard", "Partner", NULL);
392         __privinfo("http://tizen.org/privilege/dpm.email", "Partner", NULL);
393         __privinfo("http://tizen.org/privilege/dpm.location", "Partner", NULL);
394         __privinfo("http://tizen.org/privilege/dpm.lock", "Partner", NULL);
395         __privinfo("http://tizen.org/privilege/dpm.message", "Partner", NULL);
396         __privinfo("http://tizen.org/privilege/internet", "Public", NULL);
397         __privinfo("http://tizen.org/privilege/call", "Public", NULL);
398         __privinfo("http://tizen.org/privilege/antivirus.scan", "Partner", NULL);
399         __privinfo("http://tizen.org/privilege/antivirus.webprotect", "Partner", NULL);
400         __tcinfo(cert_level, "partner");
401         __tcinfo(expect, PRVMGR_ERR_NONE);
402         __privilege_manager_verify_privilege();
403
404         __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform");
405         __privinfo("http://tizen.org/privilege/bookmark.admin", "Platform", NULL);
406         __privinfo("http://tizen.org/privilege/bluetooth.admin", "Platform", NULL);
407         __privinfo("http://tizen.org/privilege/email.admin", "Platform", NULL);
408         __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL);
409         __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL);
410         __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL);
411         __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL);
412         __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL);
413         __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL);
414         __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL);
415         __tcinfo(cert_level, "platform");
416         __tcinfo(expect, PRVMGR_ERR_NONE);
417         __privilege_manager_verify_privilege();
418
419         __tcinfo(goal, "Name=OK, Version=OK, !!! Level=Mismatched !!! -- with public signatured certificate");
420         __privinfo("http://tizen.org/privilege/bookmark.admin", "Platform", NULL);
421         __privinfo("http://tizen.org/privilege/dpm.storage", "Partner", NULL);
422         __privinfo("http://tizen.org/privilege/antivirus.scan", "Partner", NULL);
423         __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL);
424         __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL);
425         __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL);
426         __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL);
427         __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL);
428         __tcinfo(cert_level, "public");
429         __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE);
430         __privilege_manager_verify_privilege();
431
432         __tcinfo(goal, "Name=OK, Version=OK, !!! Level=Mismatched !!! -- with partner signatured certificate");
433         __privinfo("http://tizen.org/privilege/bookmark.admin", "Platform", NULL);
434         __privinfo("http://tizen.org/privilege/bluetooth.admin", "Platform", NULL);
435         __privinfo("http://tizen.org/privilege/email.admin", "Platform", NULL);
436         __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL);
437         __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL);
438         __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL);
439         __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL);
440         __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL);
441         __tcinfo(cert_level, "partner");
442         __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE);
443         __privilege_manager_verify_privilege();
444
445         /* 3.0 Web */
446         __tcinfo(version_type, "3.0", "wrt");
447
448         __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public ");
449         __privinfo("http://tizen.org/privilege/bluetooth.gap", "Public", NULL);
450         __privinfo("http://tizen.org/privilege/bluetooth.health", "Public", NULL);
451         __privinfo("http://tizen.org/privilege/alarm", "Public", NULL);
452         __privinfo("http://tizen.org/privilege/application.info", "Public", NULL);
453         __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL);
454         __privinfo("http://tizen.org/privilege/call", "Public", NULL);
455         __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL);
456         __privinfo("http://tizen.org/privilege/contact.write", "Public", NULL);
457         __privinfo("http://tizen.org/privilege/content.read", "Public", NULL);
458         __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL);
459         __privinfo("http://tizen.org/privilege/datasync", "Public", NULL);
460         __privinfo("http://tizen.org/privilege/download", "Public", NULL);
461         __privinfo("http://tizen.org/privilege/filesystem.read", "Public", NULL);
462         __privinfo("http://tizen.org/privilege/fullscreen", "Public", NULL);
463         __privinfo("http://tizen.org/privilege/healthinfo", "Public", NULL);
464         __privinfo("http://tizen.org/privilege/internet", "Public", NULL);
465         __privinfo("http://tizen.org/privilege/location", "Public", NULL);
466         __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL);
467         __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL);
468         __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL);
469         __privinfo("http://tizen.org/privilege/notification", "Public", NULL);
470         __privinfo("http://tizen.org/privilege/package.info", "Public", NULL);
471         __privinfo("http://tizen.org/privilege/power", "Public", NULL);
472         __privinfo("http://tizen.org/privilege/telephony", "Public", NULL);
473         __privinfo("http://tizen.org/privilege/websetting", "Public", NULL);
474         __tcinfo(cert_level, "public");
475         __tcinfo(expect, PRVMGR_ERR_NONE);
476         __privilege_manager_verify_privilege();
477
478         __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner ");
479         __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL);
480         __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL);
481         __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL);
482         __privinfo("http://tizen.org/privilege/call", "Public", NULL);
483         __privinfo("http://tizen.org/privilege/content.read", "Public", NULL);
484         __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL);
485         __privinfo("http://tizen.org/privilege/internet", "Public", NULL);
486         __privinfo("http://tizen.org/privilege/location", "Public", NULL);
487         __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL);
488         __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL);
489         __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL);
490         __privinfo("http://tizen.org/privilege/notification", "Public", NULL);
491         __tcinfo(cert_level, "partner");
492         __tcinfo(expect, PRVMGR_ERR_NONE);
493         __privilege_manager_verify_privilege();
494
495         __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform ");
496         __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL);
497         __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL);
498         __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL);
499         __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL);
500         __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL);
501         __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL);
502         __privinfo("http://tizen.org/privilege/call", "Public", NULL);
503         __privinfo("http://tizen.org/privilege/content.read", "Public", NULL);
504         __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL);
505         __privinfo("http://tizen.org/privilege/internet", "Public", NULL);
506         __privinfo("http://tizen.org/privilege/location", "Public", NULL);
507         __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL);
508         __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL);
509         __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL);
510         __privinfo("http://tizen.org/privilege/notification", "Public", NULL);
511         __tcinfo(cert_level, "platform");
512         __tcinfo(expect, PRVMGR_ERR_NONE);
513         __privilege_manager_verify_privilege();
514
515         __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate");
516         __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL);
517         __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL);
518         __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL);
519         __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL);
520         __tcinfo(cert_level, "public");
521         __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE);
522         __privilege_manager_verify_privilege();
523
524         __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate");
525         __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL);
526         __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL);
527         __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL);
528         __tcinfo(cert_level, "partner");
529         __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE);
530         __privilege_manager_verify_privilege();
531
532 }
533
534 int main()
535 {
536         __tcinfo(function, "privilege_manager_verify_privilege");
537         __test_privilege_manager_verify_privilege();
538
539         __tcinfo(function, "privilege_manager_get_mapped_privilege_list");
540         __test_privilege_manager_get_mapped_privilege_list();
541
542         __tcinfo(function, "privilege_manager_verify_metadata");
543         __test_privilege_manager_verify_metadata();
544
545         printf_green("Test Complete\n");
546         printf_green("success : %d, ", success_cnt);
547         printf_red("fail : %d\n", fail_cnt);
548
549         return 0;
550 }