2 * Copyright (c) 2020 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.
19 #include <gtest/gtest.h>
23 #include "system_settings.h"
24 #include "mocks/sstt_mock.h"
25 #define FONT_SCALE_CONF_PATH "conf_example/font_scale.json"
30 #include "sst_vconf.h"
31 #include "sst_interface.h"
33 typedef struct __font_size_info {
42 TEST(SstFontTest, getDefaultfontERR)
46 int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE, &iface);
47 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
49 sstm_dlopen_setup(false);
50 ret = sst_font_get_default_type(iface, &val);
51 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
54 TEST(SstFontTest, getFontTypeERR)
59 sstm_system_info_get_platform_bool_setup(true);
60 sstm_dlopen_setup(true);
62 sstm_vconf_get_str_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, "Default", -1);
64 int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_TYPE, &iface);
65 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
66 ret = sst_font_get_type(iface, &val);
67 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
69 sstm_vconf_get_str_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, "Default", 0);
70 sstm_dlopen_setup(false);
71 ret = sst_font_get_type(iface, &val);
72 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
76 TEST(SstFontTest, setFontTypeERR)
78 const char *setVal = "BreezeSans";
80 int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_TYPE, &iface);
81 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
83 sstm_dlopen_setup(false);
84 ret = sst_font_set_type(iface, setVal);
85 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
87 sstm_dlopen_setup(true);
88 sstm_xmlSaveFormatFile_setup(true);
89 sstm_eext_config_font_set_setup(false);
90 ret = sst_font_set_type(iface, setVal);
91 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
93 sstm_xmlSaveFormatFile_setup(false);
94 sstm_xmlParseFile_setup(false);
95 ret = sst_font_set_type(iface, setVal);
96 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
98 sstm_xmlParseFile_setup(false);
99 sstm_vconf_get_int_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, 0, -1);
100 ret = sst_font_set_type(iface, setVal);
101 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
104 TEST(SstFontTest, setFontSizeERR)
106 sst_interface *iface;
108 int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_SIZE, &iface);
109 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
111 sstm_vconf_set_int_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, -1);
112 ret = sst_font_set_size(iface, SYSTEM_SETTINGS_FONT_SIZE_NORMAL);
113 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
116 TEST(SstFontTest, getFontType)
119 char *defaultfont_val = NULL;
120 const char *setVal = "BreezeSans";
121 sst_interface *iface;
122 sst_interface *defaultfont_iface;
124 sstm_system_info_get_platform_bool_setup(true);
125 sstm_dlopen_setup(true);
127 sstm_vconf_get_str_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, setVal, 0);
129 int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_TYPE, &iface);
130 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
131 ret = sst_font_get_type(iface, &val);
132 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
133 EXPECT_STREQ(setVal, val);
137 sstm_vconf_get_str_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, "Default", 0);
139 ret = sst_get_interface(SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE, &defaultfont_iface);
140 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
141 ret = sst_font_get_default_type(defaultfont_iface, &defaultfont_val);
142 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
143 ret = sst_font_get_type(iface, &val);
144 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
145 EXPECT_STREQ(defaultfont_val, val);
146 free(defaultfont_val);
150 static void* _utils_load_lib()
152 const char* const path = SETTING_UTILS_SO_FILE_PATH;
153 void *handle = dlopen(path, RTLD_LAZY | RTLD_GLOBAL);
155 ERR("dlopen(%s) Fail", path);
160 TEST(SstFontTest,loadFontSizeInfo)
163 void *handle = _utils_load_lib();
164 EXPECT_NE((void*)NULL, handle);
166 typedef int (*fn_impl)(font_size_info *info, const char *path);
167 fn_impl load_font_size_info = NULL;
169 load_font_size_info = (fn_impl)dlsym(handle, "load_font_size_info");
170 char *error = dlerror();
173 int ret = load_font_size_info(&info, FONT_SCALE_CONF_PATH);
176 EXPECT_EQ(-80, info.small);
177 EXPECT_EQ(-150, info.large);
178 EXPECT_EQ(-100, info.normal);
179 EXPECT_EQ(-190, info.huge);
180 EXPECT_EQ(-250, info.giant);
186 TEST(SstFontTest, getDefaultfont)
189 sst_interface *iface;
191 sstm_system_info_get_platform_bool_setup(true);
192 sstm_dlopen_setup(true);
194 int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_TYPE, &iface);
195 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
196 ret = sst_font_get_default_type(iface, &val);
197 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
201 TEST(SstFontTest, setFontType)
204 const char *eVal = "WrongFontName";
205 const char *setVal = "BreezeSans";
206 sst_interface *iface;
208 sstm_system_info_get_platform_bool_setup(true);
209 sstm_dlopen_setup(true);
210 sstm_xmlParseFile_setup(true);
211 sstm_xmlSaveFormatFile_setup(true);
212 sstm_eext_config_font_set_setup(true);
214 int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_TYPE, &iface);
215 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
217 sstm_vconf_set_int_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, 0);
218 sstm_vconf_set_str_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, 0);
220 ret = sst_font_set_type(iface, eVal);
221 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
222 ret = sst_font_set_type(iface, setVal);
223 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
224 ret = sst_vconf_get_str(iface, &getVal);
225 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
226 EXPECT_STREQ(setVal, getVal);
231 TEST(SstFontTest, setFontSize)
234 SYSTEM_SETTINGS_FONT_SIZE_SMALL,
235 SYSTEM_SETTINGS_FONT_SIZE_NORMAL,
236 SYSTEM_SETTINGS_FONT_SIZE_LARGE,
237 SYSTEM_SETTINGS_FONT_SIZE_HUGE,
238 SYSTEM_SETTINGS_FONT_SIZE_GIANT
240 int fsCnt = sizeof(fontSize) / sizeof(fontSize[0]);
243 sst_interface *iface;
245 sstm_system_info_get_platform_bool_setup(true);
246 sstm_dlopen_setup(true);
247 sstm_vconf_get_str_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, "BreezeSans", 0);
248 sstm_vconf_set_int_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, 0);
250 int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_SIZE, &iface);
251 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
253 for (int i = 0; i < fsCnt; i++) {
254 setVal = fontSize[i];
255 ret = sst_font_set_size(iface, setVal);
256 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
257 ret = sst_vconf_get_int(iface, &getVal);
258 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
259 EXPECT_EQ(setVal, getVal);