2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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
17 * @file test-api-web-protection.cpp
18 * @author Kyungwook Tak (k.tak@samsung.com)
20 * @brief CSR Web protection API test
22 #include <csr-web-protection.h>
26 #include <boost/test/unit_test.hpp>
28 #include "test-common.h"
29 #include "test-helper.h"
30 #include "test-resource.h"
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)
35 csr_wp_risk_level_e a_risk;
36 csr_wp_user_response_e a_response;
37 Test::ScopedCstr a_detailed_url;
39 CHECK_IS_NOT_NULL(result);
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));
45 ASSERT_IF(a_risk, risk);
46 ASSERT_IF(a_detailed_url.ptr, detailed_url);
47 ASSERT_IF(a_response, response);
50 BOOST_AUTO_TEST_SUITE(API_WEB_PROTECTION)
52 BOOST_AUTO_TEST_CASE(context_create_destroy)
56 Test::Context<csr_wp_context_h>();
61 BOOST_AUTO_TEST_CASE(set_ask_user)
65 auto c = Test::Context<csr_wp_context_h>();
66 auto context = c.get();
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));
74 BOOST_AUTO_TEST_CASE(set_ask_user_invalid_param)
78 auto c = Test::Context<csr_wp_context_h>();
79 auto context = c.get();
81 ASSERT_IF(csr_wp_set_ask_user(nullptr, CSR_WP_ASK_USER_YES), CSR_ERROR_INVALID_HANDLE);
83 ASSERT_IF(csr_wp_set_ask_user(context, static_cast<csr_wp_ask_user_e>(-1)),
84 CSR_ERROR_INVALID_PARAMETER);
89 BOOST_AUTO_TEST_CASE(set_popup_message)
93 auto c = Test::Context<csr_wp_context_h>();
94 auto context = c.get();
95 const char *msg = "test popup message";
97 ASSERT_SUCCESS(csr_wp_set_popup_message(context, msg));
102 BOOST_AUTO_TEST_CASE(set_popup_message_invalid_param)
104 EXCEPTION_GUARD_START
106 auto c = Test::Context<csr_wp_context_h>();
107 auto context = c.get();
108 const char *msg = "test popup message";
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);
116 BOOST_AUTO_TEST_CASE(check_url_high)
118 EXCEPTION_GUARD_START
120 auto c = Test::Context<csr_wp_context_h>();
121 auto context = c.get();
123 csr_wp_check_result_h result;
124 ASSERT_SUCCESS(csr_wp_check_url(context, RISK_HIGH_URL, &result));
126 CHECK_IS_NOT_NULL(result);
128 ASSERT_RESULT(result, RISK_HIGH_RISK, RISK_HIGH_DETAILED_URL, CSR_WP_USER_RESPONSE_USER_NOT_ASKED);
133 BOOST_AUTO_TEST_CASE(check_url_medium)
135 EXCEPTION_GUARD_START
137 auto c = Test::Context<csr_wp_context_h>();
138 auto context = c.get();
140 csr_wp_check_result_h result;
141 ASSERT_SUCCESS(csr_wp_check_url(context, RISK_MEDIUM_URL, &result));
143 CHECK_IS_NOT_NULL(result);
145 ASSERT_RESULT(result, RISK_MEDIUM_RISK, RISK_MEDIUM_DETAILED_URL, CSR_WP_USER_RESPONSE_USER_NOT_ASKED);
150 BOOST_AUTO_TEST_CASE(check_url_low)
152 EXCEPTION_GUARD_START
154 auto c = Test::Context<csr_wp_context_h>();
155 auto context = c.get();
157 csr_wp_check_result_h result;
158 ASSERT_SUCCESS(csr_wp_check_url(context, RISK_LOW_URL, &result));
160 CHECK_IS_NOT_NULL(result);
162 ASSERT_RESULT(result, RISK_LOW_RISK, RISK_LOW_DETAILED_URL, CSR_WP_USER_RESPONSE_USER_NOT_ASKED);
167 BOOST_AUTO_TEST_CASE(check_url_unverified)
169 EXCEPTION_GUARD_START
171 auto c = Test::Context<csr_wp_context_h>();
172 auto context = c.get();
174 csr_wp_check_result_h result;
175 ASSERT_SUCCESS(csr_wp_check_url(context, RISK_UNVERIFIED_URL, &result));
177 CHECK_IS_NOT_NULL(result);
179 ASSERT_RESULT(result, RISK_UNVERIFIED_RISK, RISK_UNVERIFIED_DETAILED_URL,
180 CSR_WP_USER_RESPONSE_USER_NOT_ASKED);
185 BOOST_AUTO_TEST_CASE(check_url_invalid_param)
187 EXCEPTION_GUARD_START
189 auto c = Test::Context<csr_wp_context_h>();
190 auto context = c.get();
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);
201 BOOST_AUTO_TEST_CASE(get_risk_level)
203 EXCEPTION_GUARD_START
205 auto c = Test::Context<csr_wp_context_h>();
206 auto context = c.get();
207 csr_wp_risk_level_e risk_level;
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));
213 ASSERT_IF(risk_level, RISK_HIGH_RISK);
218 BOOST_AUTO_TEST_CASE(get_risk_level_invalid_param)
220 EXCEPTION_GUARD_START
222 auto c = Test::Context<csr_wp_context_h>();
223 auto context = c.get();
224 csr_wp_risk_level_e risk_level;
226 csr_wp_check_result_h result;
227 ASSERT_SUCCESS(csr_wp_check_url(context, RISK_HIGH_URL, &result));
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);
236 BOOST_AUTO_TEST_CASE(get_detailed_url)
238 EXCEPTION_GUARD_START
240 auto c = Test::Context<csr_wp_context_h>();
241 auto context = c.get();
243 Test::ScopedCstr detailed_url;
245 csr_wp_check_result_h result;
246 ASSERT_SUCCESS(csr_wp_check_url(context, RISK_HIGH_URL, &result));
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));
254 BOOST_AUTO_TEST_CASE(get_detailed_url_invalid_param)
256 EXCEPTION_GUARD_START
258 auto c = Test::Context<csr_wp_context_h>();
259 auto context = c.get();
261 Test::ScopedCstr detailed_url;
263 csr_wp_check_result_h result;
264 ASSERT_SUCCESS(csr_wp_check_url(context, RISK_HIGH_URL, &result));
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);
274 BOOST_AUTO_TEST_SUITE_END()