Add file extension check before adding image file to set home or lock screen
[platform/core/api/system-settings.git] / tests / sst_gtest_normal_time_N_locale.cpp
1 /*
2  * Copyright (c) 2020 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 #include <string.h>
18 #include <glib.h>
19 #include <gtest/gtest.h>
20 #include <vconf.h>
21
22 #include "system_settings.h"
23 #include "mocks/sstt_mock.h"
24
25 extern "C" {
26 #include "sst.h"
27 #include "sst_interface.h"
28 #include "sst_time_N_locale.h"
29 }
30
31 TEST(SstTimeNLocaleTest, getCountry)
32 {
33         char *val = NULL;
34         sst_interface *iface;
35         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY, &iface);
36         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
37
38         sstm_vconf_get_str_setup(VCONFKEY_REGIONFORMAT, "ko", 0);
39         ret = sst_locale_get_country(iface, &val);
40         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
41         free(val);
42 }
43
44 TEST(SstTimeNLocaleTest, getCountryERR)
45 {
46         char *val = NULL;
47         sst_interface *iface;
48         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY, &iface);
49         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
50
51         sstm_vconf_get_str_setup(VCONFKEY_REGIONFORMAT, "012345678901234567890", 0);
52         ret = sst_locale_get_country(iface, &val);
53         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
54         free(val);
55
56     val = NULL;
57         sstm_vconf_get_str_setup(VCONFKEY_REGIONFORMAT, "ko", -1);
58         ret = sst_locale_get_country(iface, &val);
59         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
60         free(val);
61 }
62
63 TEST(SstTimeNLocaleTest, setCountry)
64 {
65         char *getVal = NULL;
66         const char *setVal = "ko_KR";
67
68         sst_interface *iface;
69         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY, &iface);
70         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
71
72         sstm_vconf_set_str_setup(VCONFKEY_REGIONFORMAT, 0);
73
74         ret = sst_locale_set_country(iface, setVal);
75         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
76
77         ret = sst_locale_get_country(iface, &getVal);
78         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
79         EXPECT_STREQ(setVal, getVal);
80
81         free(getVal);
82 }
83
84 TEST(SstTimeNLocaleTest, setCountryERR)
85 {
86         const char *setVal = "ko_KR";
87         sst_interface *iface;
88         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY, &iface);
89         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
90
91         sstm_vconf_set_str_setup(VCONFKEY_REGIONFORMAT, -1);
92         ret = sst_locale_set_country(iface, setVal);
93         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
94 }
95
96 TEST(SstTimeNLocaleTest, getLanguage)
97 {
98         char *val = NULL;
99         sst_interface *iface;
100         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &iface);
101         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
102
103         sstm_vconf_get_str_setup(VCONFKEY_LANGSET, "ko", 0);
104
105         ret = sst_locale_get_language(iface, &val);
106         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
107         free(val);
108 }
109
110 TEST(SstTimeNLocaleTest, getLanguageERR)
111 {
112         char *val = NULL;
113         sst_interface *iface;
114         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &iface);
115         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
116
117         sstm_vconf_get_str_setup(VCONFKEY_LANGSET, "012345678901234567890", 0);
118         ret = sst_locale_get_language(iface, &val);
119         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
120
121         sstm_vconf_get_str_setup(VCONFKEY_LANGSET, "ko", -1);
122         ret = sst_locale_get_language(iface, &val);
123         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
124 }
125
126 TEST(SstTimeNLocaleTest, setLanguage)
127 {
128         char *getVal = NULL;
129         const char *setVal = "ko_KR";
130
131         sst_interface *iface;
132         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &iface);
133         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
134
135         sstm_vconf_set_str_setup(VCONFKEY_LANGSET, 0);
136
137         ret = sst_locale_set_language(iface, setVal);
138         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
139
140         ret = sst_locale_get_language(iface, &getVal);
141         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
142         EXPECT_STREQ(setVal, getVal);
143
144         free(getVal);
145 }
146
147 TEST(SstTimeNLocaleTest, setLanguageERR)
148 {
149         const char *setVal = "ko_KR";
150
151         sst_interface *iface;
152         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &iface);
153         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
154
155         sstm_vconf_set_str_setup(VCONFKEY_LANGSET, -1);
156         ret = sst_locale_set_language(iface, setVal);
157         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
158 }
159
160 TEST(SstTimeNLocaleTest, getTimeformat24Hour)
161 {
162         bool val = NULL;
163         sst_interface *iface;
164         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, &iface);
165         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
166
167         sstm_vconf_get_int_setup(VCONFKEY_REGIONFORMAT_TIME1224, false, 0);
168         ret = sst_locale_get_timeformat_24hour(iface, &val);
169         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
170 }
171
172 TEST(SstTimeNLocaleTest, getTimeformat24HourERR)
173 {
174         bool val = NULL;
175         sst_interface *iface;
176         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, &iface);
177         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
178
179         sstm_vconf_get_int_setup(VCONFKEY_REGIONFORMAT_TIME1224, false, -1);
180         ret = sst_locale_get_timeformat_24hour(iface, &val);
181         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
182 }
183
184 TEST(SstTimeNLocaleTest, setTimeformat24Hour)
185 {
186         bool getVal;
187         bool setVal;
188         sst_interface *iface;
189         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, &iface);
190         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
191
192         sstm_vconf_set_int_setup(VCONFKEY_REGIONFORMAT_TIME1224, 0);
193         ret = sst_locale_get_timeformat_24hour(iface, &getVal);
194         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
195         setVal = !getVal;
196
197         ret = sst_locale_set_timeformat_24hour(iface, setVal);
198         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
199
200         ret = sst_locale_get_timeformat_24hour(iface, &getVal);
201         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
202         EXPECT_EQ(getVal, setVal);
203
204         ret = sst_locale_set_timeformat_24hour(iface, !getVal);
205         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
206 }
207
208 TEST(SstTimeNLocaleTest, setTimeformat24HourERR)
209 {
210         sst_interface *iface;
211         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, &iface);
212         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
213
214         sstm_vconf_set_int_setup(VCONFKEY_REGIONFORMAT_TIME1224, -1);
215         ret = sst_locale_set_timeformat_24hour(iface, true);
216         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
217 }
218
219 TEST(SstTimeNLocaleTest, getTimeZone)
220 {
221         char *val = NULL;
222         sst_interface *iface;
223         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, &iface);
224         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
225
226         sstm_readlink_setup(true);
227         ret = sst_locale_get_timezone(iface, &val);
228         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
229         free(val);
230 }
231
232 TEST(SstTimeNLocaleTest, getTimeZoneERR)
233 {
234         char *val = NULL;
235         sst_interface *iface;
236         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, &iface);
237         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
238
239         sstm_readlink_setup(false);
240         ret = sst_locale_get_timezone(iface, &val);
241         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
242         sstm_readlink_setup(true);
243 }
244
245 TEST(SstTimeNLocaleTest, setTimeZone)
246 {
247         char *getVal = NULL;
248         const char *setVal = "Asia/Seoul";
249
250         sst_interface *iface;
251         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, &iface);
252         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
253
254         sstm_access_setup(true);
255         sstm_alarmmgr_set_timezone_setup(true);
256         sstm_vconf_set_str_setup(VCONFKEY_SETAPPL_TIMEZONE_ID, 0);
257
258         ret = sst_locale_set_timezone(iface, setVal);
259         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
260
261         ret = sst_locale_get_timezone(iface, &getVal);
262         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
263         EXPECT_STREQ(setVal, getVal);
264
265         free(getVal);
266 }
267
268 TEST(SstTimeNLocaleTest, setTimeZoneERR)
269 {
270         const char *setVal = "Asia/Seoul";
271
272         sst_interface *iface;
273         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, &iface);
274         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
275
276         sstm_access_setup(true);
277         sstm_alarmmgr_set_timezone_setup(true);
278         sstm_vconf_set_str_setup(VCONFKEY_SETAPPL_TIMEZONE_ID, -1);
279         ret = sst_locale_set_timezone(iface, setVal);
280         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
281
282         sstm_alarmmgr_set_timezone_setup(false);
283         ret = sst_locale_set_timezone(iface, setVal);
284         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
285
286         sstm_access_setup(false);
287         ret = sst_locale_set_timezone(iface, setVal);
288         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, ret);
289         sstm_access_setup(true);
290 }
291
292 TEST(SstTimeNLocaleTest, getTimeChanged)
293 {
294         int val;
295         sst_interface *iface;
296         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_TIME_CHANGED, &iface);
297         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
298
299         ret = sst_time_get_changed(iface, &val);
300         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
301 }