2 * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved
5 * @file security_server_tests_weird_arguments.cpp
6 * @author Zbigniew Jasinski (z.jasinski@samsung.com)
8 * @brief Test cases for security server
12 #include "security-server.h"
13 #include <dpl/test/test_runner.h>
14 #include <dpl/log/log.h>
16 #define SECURITY_SERVER_MAX_OBJ_NAME 30
18 RUNNER_TEST_GROUP_INIT(SECURITY_SERVER_TESTS_WEIRD_ARGUMENTS);
20 RUNNER_TEST(tc01_security_server_get_gid_weird_input_case)
23 char weird[] = {0xe3,0x79,0x82,0x0};
25 /* normal param case */
26 ret = security_server_get_gid("tel_sim");
27 RUNNER_ASSERT_MSG(ret > -1, "ret: " << ret);
29 /* wrong param case */
30 ret = security_server_get_gid("elephony_akecall");
31 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_NO_SUCH_OBJECT, "ret: " << ret);
33 /* weird param case */
34 ret = security_server_get_gid(weird);
35 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_NO_SUCH_OBJECT, "ret: " << ret);
38 ret = security_server_get_gid(NULL);
39 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_INPUT_PARAM, "ret: " << ret);
41 /* param too long case */
42 ret = security_server_get_gid("abcdefghijklmnopqrstuvwxyz01234");
43 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_INPUT_PARAM, "ret: " << ret);
45 /* empty param case */
46 ret = security_server_get_gid("");
47 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_INPUT_PARAM, "ret: " << ret);
50 /* from security_server_tests_server.cpp */
52 RUNNER_TEST(tc02_security_server_get_object_name_weird_input_case)
57 /* null object case */
60 ret = security_server_get_object_name(gid, object, sizeof(object));
61 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_INPUT_PARAM, "ret: " << ret);
63 /* buffer to small case */
66 ret = security_server_get_object_name(gid, object1, sizeof(object1));
67 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_BUFFER_TOO_SMALL, "ret: " << ret);
71 char object2[SECURITY_SERVER_MAX_OBJ_NAME];
73 ret = security_server_get_object_name(gid, object2, sizeof(object2));
74 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_NO_SUCH_OBJECT, "ret: " << ret);
81 ret = security_server_get_object_name(gid, object2, sizeof(object2));
82 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_NO_SUCH_OBJECT, "ret: " << ret);
84 /* invalid gid case */
87 ret = security_server_get_object_name(gid, object2, sizeof(object2));
88 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_NO_SUCH_OBJECT, "ret: " << ret);
91 RUNNER_TEST(tc03_security_server_request_cookie_weird_input_case)
94 size_t cookie_size = security_server_get_cookie_size();
96 /* null cookie case */
99 ret = security_server_request_cookie(cookie, cookie_size);
100 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_INPUT_PARAM, "ret: " << ret);
102 /* buffer size too small case */
104 char cookie2[cookie_size];
106 ret = security_server_request_cookie(cookie2, cookie_size);
107 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_BUFFER_TOO_SMALL, "ret: " << ret);
110 RUNNER_TEST(tc04_security_server_check_privilege_weird_input_case)
113 size_t cookie_size = security_server_get_cookie_size();
116 /* null cookie case */
119 ret = security_server_check_privilege(cookie, gid);
120 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_INPUT_PARAM, "ret: " << ret);
122 /* invalid gid case */
124 char cookie2[cookie_size];
126 ret = security_server_request_cookie(cookie2, cookie_size);
127 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_SUCCESS, "ret: " << ret);
129 ret = security_server_check_privilege(cookie2, gid);
130 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_BAD_REQUEST, "ret: " << ret);
135 ret = security_server_check_privilege(cookie2, gid);
136 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_SUCCESS, "ret: " << ret);
138 RUNNER_TEST(tc05_security_server_check_privilege_by_cookie_weird_input_case)
141 size_t cookie_size = security_server_get_cookie_size();;
142 const char *object = "telephony_makecall";
143 const char *access_rights = "r";
145 /* null cookie case */
147 ret = security_server_check_privilege_by_cookie(cookie, object, access_rights);
148 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_INPUT_PARAM, "ret: " << ret);
150 /* null object case */
151 char *object2 = NULL;
152 char cookie2[cookie_size];
154 ret = security_server_request_cookie(cookie2, cookie_size);
155 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_SUCCESS, "ret: " << ret);
157 ret = security_server_check_privilege_by_cookie(cookie2, object2, access_rights);
158 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_INPUT_PARAM, "ret: " << ret);
160 /* null access rights case */
161 access_rights = NULL;
162 ret = security_server_check_privilege_by_cookie(cookie2, object, access_rights);
163 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_INPUT_PARAM, "ret: " << ret);
166 RUNNER_TEST(tc06_security_server_check_privilege_by_sockfd_weird_input_case)
170 const char *object = "telephony_makecall";
171 const char *access_rights = "r";
173 /* invalid sockfd case */
174 ret = security_server_check_privilege_by_sockfd(sockfd, object, access_rights);
175 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_SERVER_ERROR, "ret: " << ret);
178 /* null object case */
179 char *object2 = NULL;
180 ret = security_server_check_privilege_by_sockfd(sockfd, object2, access_rights);
181 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_SERVER_ERROR, "ret: " << ret);
183 /* null access rights case */
184 access_rights = NULL;
185 ret = security_server_check_privilege_by_sockfd(sockfd, object, access_rights);
186 RUNNER_ASSERT_MSG(ret == SECURITY_SERVER_API_ERROR_SERVER_ERROR, "ret: " << ret);
189 RUNNER_TEST(tc07_security_server_get_cookie_pid_weird_input_case)
194 ret = security_server_get_cookie_pid(cookie);
195 RUNNER_ASSERT(ret == SECURITY_SERVER_API_ERROR_INPUT_PARAM);