[CAPI Changed] Enum value names and scan cloud
[platform/upstream/csr-framework.git] / test / test-api-web-protection.cpp
1 /*
2  *  Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *  Licensed under the Apache License, Version 2.0 (the "License");
5  *  you may not use this file except in compliance with the License.
6  *  You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *  Unless required by applicable law or agreed to in writing, software
11  *  distributed under the License is distributed on an "AS IS" BASIS,
12  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *  See the License for the specific language governing permissions and
14  *  limitations under the License
15  */
16 /*
17  * @file        test-api-web-protection.cpp
18  * @author      Kyungwook Tak (k.tak@samsung.com)
19  * @version     1.0
20  * @brief       CSR Web protection API test
21  */
22 #include <csr-web-protection.h>
23
24 #include <string>
25 #include <iostream>
26 #include <boost/test/unit_test.hpp>
27
28 #include "test-common.h"
29 #include "test-helper.h"
30 #include "test-resource.h"
31
32 void ASSERT_RESULT(csr_wp_check_result_h result,
33         csr_wp_risk_level_e risk, const char * detailed_url, csr_wp_user_response_e response)
34 {
35         csr_wp_risk_level_e a_risk;
36         csr_wp_user_response_e a_response;
37         Test::ScopedCstr a_detailed_url;
38
39         CHECK_IS_NOT_NULL(result);
40
41         ASSERT_SUCCESS(csr_wp_result_get_risk_level(result, &a_risk));
42         ASSERT_SUCCESS(csr_wp_result_get_detailed_url(result, &a_detailed_url.ptr));
43         ASSERT_SUCCESS(csr_wp_result_get_user_response(result, &a_response));
44
45         ASSERT_IF(a_risk, risk);
46         ASSERT_IF(a_detailed_url.ptr, detailed_url);
47         ASSERT_IF(a_response, response);
48 }
49
50 BOOST_AUTO_TEST_SUITE(API_WEB_PROTECTION)
51
52 BOOST_AUTO_TEST_CASE(context_create_destroy)
53 {
54         EXCEPTION_GUARD_START
55
56         Test::Context<csr_wp_context_h>();
57
58         EXCEPTION_GUARD_END
59 }
60
61 BOOST_AUTO_TEST_CASE(set_ask_user)
62 {
63         EXCEPTION_GUARD_START
64
65         auto c = Test::Context<csr_wp_context_h>();
66         auto context = c.get();
67
68         ASSERT_SUCCESS(csr_wp_set_ask_user(context, CSR_WP_ASK_USER_YES));
69         ASSERT_SUCCESS(csr_wp_set_ask_user(context, CSR_WP_ASK_USER_NO));
70
71         EXCEPTION_GUARD_END
72 }
73
74 BOOST_AUTO_TEST_CASE(set_ask_user_invalid_param)
75 {
76         EXCEPTION_GUARD_START
77
78         auto c = Test::Context<csr_wp_context_h>();
79         auto context = c.get();
80
81         ASSERT_IF(csr_wp_set_ask_user(nullptr, CSR_WP_ASK_USER_YES), CSR_ERROR_INVALID_HANDLE);
82
83         ASSERT_IF(csr_wp_set_ask_user(context, static_cast<csr_wp_ask_user_e>(-1)),
84                         CSR_ERROR_INVALID_PARAMETER);
85
86         EXCEPTION_GUARD_END
87 }
88
89 BOOST_AUTO_TEST_CASE(set_popup_message)
90 {
91         EXCEPTION_GUARD_START
92
93         auto c = Test::Context<csr_wp_context_h>();
94         auto context = c.get();
95         const char *msg = "test popup message";
96
97         ASSERT_SUCCESS(csr_wp_set_popup_message(context, msg));
98
99         EXCEPTION_GUARD_END
100 }
101
102 BOOST_AUTO_TEST_CASE(set_popup_message_invalid_param)
103 {
104         EXCEPTION_GUARD_START
105
106         auto c = Test::Context<csr_wp_context_h>();
107         auto context = c.get();
108         const char *msg = "test popup message";
109
110         ASSERT_IF(csr_wp_set_popup_message(nullptr, msg), CSR_ERROR_INVALID_HANDLE);
111         ASSERT_IF(csr_wp_set_popup_message(context, nullptr), CSR_ERROR_INVALID_PARAMETER);
112
113         EXCEPTION_GUARD_END
114 }
115
116 BOOST_AUTO_TEST_CASE(check_url_high)
117 {
118         EXCEPTION_GUARD_START
119
120         auto c = Test::Context<csr_wp_context_h>();
121         auto context = c.get();
122
123         csr_wp_check_result_h result;
124         ASSERT_SUCCESS(csr_wp_check_url(context, RISK_HIGH_URL, &result));
125
126         CHECK_IS_NOT_NULL(result);
127
128         ASSERT_RESULT(result, RISK_HIGH_RISK, RISK_HIGH_DETAILED_URL, CSR_WP_USER_RESPONSE_USER_NOT_ASKED);
129
130         EXCEPTION_GUARD_END
131 }
132
133 BOOST_AUTO_TEST_CASE(check_url_medium)
134 {
135         EXCEPTION_GUARD_START
136
137         auto c = Test::Context<csr_wp_context_h>();
138         auto context = c.get();
139
140         csr_wp_check_result_h result;
141         ASSERT_SUCCESS(csr_wp_check_url(context, RISK_MEDIUM_URL, &result));
142
143         CHECK_IS_NOT_NULL(result);
144
145         ASSERT_RESULT(result, RISK_MEDIUM_RISK, RISK_MEDIUM_DETAILED_URL, CSR_WP_USER_RESPONSE_USER_NOT_ASKED);
146
147         EXCEPTION_GUARD_END
148 }
149
150 BOOST_AUTO_TEST_CASE(check_url_low)
151 {
152         EXCEPTION_GUARD_START
153
154         auto c = Test::Context<csr_wp_context_h>();
155         auto context = c.get();
156
157         csr_wp_check_result_h result;
158         ASSERT_SUCCESS(csr_wp_check_url(context, RISK_LOW_URL, &result));
159
160         CHECK_IS_NOT_NULL(result);
161
162         ASSERT_RESULT(result, RISK_LOW_RISK, RISK_LOW_DETAILED_URL, CSR_WP_USER_RESPONSE_USER_NOT_ASKED);
163
164         EXCEPTION_GUARD_END
165 }
166
167 BOOST_AUTO_TEST_CASE(check_url_unverified)
168 {
169         EXCEPTION_GUARD_START
170
171         auto c = Test::Context<csr_wp_context_h>();
172         auto context = c.get();
173
174         csr_wp_check_result_h result;
175         ASSERT_SUCCESS(csr_wp_check_url(context, RISK_UNVERIFIED_URL, &result));
176
177         CHECK_IS_NOT_NULL(result);
178
179         ASSERT_RESULT(result, RISK_UNVERIFIED_RISK, RISK_UNVERIFIED_DETAILED_URL,
180                                   CSR_WP_USER_RESPONSE_USER_NOT_ASKED);
181
182         EXCEPTION_GUARD_END
183 }
184
185 BOOST_AUTO_TEST_CASE(check_url_invalid_param)
186 {
187         EXCEPTION_GUARD_START
188
189         auto c = Test::Context<csr_wp_context_h>();
190         auto context = c.get();
191
192         csr_wp_check_result_h result;
193         ASSERT_IF(csr_wp_check_url(nullptr, RISK_HIGH_URL, &result), CSR_ERROR_INVALID_HANDLE);
194         ASSERT_IF(csr_wp_check_url(context, nullptr, &result), CSR_ERROR_INVALID_PARAMETER);
195         ASSERT_IF(csr_wp_check_url(context, RISK_HIGH_URL, nullptr),
196                           CSR_ERROR_INVALID_PARAMETER);
197
198         EXCEPTION_GUARD_END
199 }
200
201 BOOST_AUTO_TEST_CASE(get_risk_level)
202 {
203         EXCEPTION_GUARD_START
204
205         auto c = Test::Context<csr_wp_context_h>();
206         auto context = c.get();
207         csr_wp_risk_level_e risk_level;
208
209         csr_wp_check_result_h result;
210         ASSERT_SUCCESS(csr_wp_check_url(context, RISK_HIGH_URL, &result));
211         ASSERT_SUCCESS(csr_wp_result_get_risk_level(result, &risk_level));
212
213         ASSERT_IF(risk_level, RISK_HIGH_RISK);
214
215         EXCEPTION_GUARD_END
216 }
217
218 BOOST_AUTO_TEST_CASE(get_risk_level_invalid_param)
219 {
220         EXCEPTION_GUARD_START
221
222         auto c = Test::Context<csr_wp_context_h>();
223         auto context = c.get();
224         csr_wp_risk_level_e risk_level;
225
226         csr_wp_check_result_h result;
227         ASSERT_SUCCESS(csr_wp_check_url(context, RISK_HIGH_URL, &result));
228
229         ASSERT_IF(csr_wp_result_get_risk_level(result, nullptr), CSR_ERROR_INVALID_PARAMETER);
230         ASSERT_IF(csr_wp_result_get_risk_level(nullptr, &risk_level),
231                           CSR_ERROR_INVALID_HANDLE);
232
233         EXCEPTION_GUARD_END
234 }
235
236 BOOST_AUTO_TEST_CASE(get_detailed_url)
237 {
238         EXCEPTION_GUARD_START
239
240         auto c = Test::Context<csr_wp_context_h>();
241         auto context = c.get();
242
243         Test::ScopedCstr detailed_url;
244
245         csr_wp_check_result_h result;
246         ASSERT_SUCCESS(csr_wp_check_url(context, RISK_HIGH_URL, &result));
247
248         ASSERT_SUCCESS(csr_wp_result_get_detailed_url(result, &detailed_url.ptr));
249         ASSERT_IF(detailed_url.ptr, static_cast<const char *>(RISK_HIGH_DETAILED_URL));
250
251         EXCEPTION_GUARD_END
252 }
253
254 BOOST_AUTO_TEST_CASE(get_detailed_url_invalid_param)
255 {
256         EXCEPTION_GUARD_START
257
258         auto c = Test::Context<csr_wp_context_h>();
259         auto context = c.get();
260
261         Test::ScopedCstr detailed_url;
262
263         csr_wp_check_result_h result;
264         ASSERT_SUCCESS(csr_wp_check_url(context, RISK_HIGH_URL, &result));
265
266         ASSERT_IF(csr_wp_result_get_detailed_url(nullptr, &detailed_url.ptr),
267                           CSR_ERROR_INVALID_HANDLE);
268         ASSERT_IF(csr_wp_result_get_detailed_url(result, nullptr),
269                           CSR_ERROR_INVALID_PARAMETER);
270
271         EXCEPTION_GUARD_END
272 }
273
274 BOOST_AUTO_TEST_SUITE_END()