From 3f41be7a9534480994d8f2e1da21e844c91d3b49 Mon Sep 17 00:00:00 2001 From: JinWang An Date: Mon, 17 Oct 2022 13:46:21 +0900 Subject: [PATCH] Add sst_font_get_type() - Fix returning "Default" font type value, when it's called at first time after created binary image. - In case of called at first time, it returns default font type from get_default_font_type(). Change-Id: Ic2669f77746b1aa3468b340d0aa360bdc7b295b8 Signed-off-by: JinWang An --- src/sst_font.c | 21 +++++++++++++++ src/sst_font.h | 1 + src/sst_interface.c | 2 +- tests/sst_gtest_normal_font.cpp | 57 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 80 insertions(+), 1 deletion(-) diff --git a/src/sst_font.c b/src/sst_font.c index e14f709..1e73482 100644 --- a/src/sst_font.c +++ b/src/sst_font.c @@ -162,6 +162,27 @@ int sst_font_set_type(sst_interface *iface, const char *font_name) return SYSTEM_SETTINGS_ERROR_NONE; } +int sst_font_get_type(sst_interface *iface, char **value) +{ + RETV_IF(NULL == iface, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER); + RETV_IF(NULL == iface->vconf_key, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER); + + char *result = vconf_get_str(iface->vconf_key); + if (NULL == result) { + ERR("vconf_get_str(%s) Fail(NULL)", iface->vconf_key); + return SYSTEM_SETTINGS_ERROR_IO_ERROR; + } + + if (SST_EQUAL == strcmp(result, "Default")) { + free(result); + return sst_font_get_default_type(iface, value); + } else { + *value = result; + } + + return SYSTEM_SETTINGS_ERROR_NONE; +} + int sst_font_get_default_type(sst_interface *iface, char **value) { char *font_name = sstu_get_default_font(); diff --git a/src/sst_font.h b/src/sst_font.h index dc8ace6..e1f2953 100644 --- a/src/sst_font.h +++ b/src/sst_font.h @@ -19,4 +19,5 @@ int sst_font_set_size(sst_interface *iface, int value); int sst_font_set_type(sst_interface *iface, const char *font_name); +int sst_font_get_type(sst_interface *iface, char **value); int sst_font_get_default_type(sst_interface *iface, char **value); diff --git a/src/sst_interface.c b/src/sst_interface.c index 8934cee..0099ae8 100644 --- a/src/sst_interface.c +++ b/src/sst_interface.c @@ -63,7 +63,7 @@ static sst_interface sst_iface_table[] = { VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, SYSTEM_SETTING_DATA_TYPE_STRING, .feature_checker = sst_feature_check_font, - .getter.s = sst_vconf_get_str, + .getter.s = sst_font_get_type, .setter.s = sst_font_set_type }, [SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION] = { diff --git a/tests/sst_gtest_normal_font.cpp b/tests/sst_gtest_normal_font.cpp index a50ce68..a427265 100644 --- a/tests/sst_gtest_normal_font.cpp +++ b/tests/sst_gtest_normal_font.cpp @@ -41,6 +41,28 @@ TEST(SstFontTest, getDefaultfontERR) EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret); } +TEST(SstFontTest, getFontTypeERR) +{ + char *val = NULL; + sst_interface *iface; + + sstm_system_info_get_platform_bool_setup(true); + sstm_dlopen_setup(true); + + sstm_vconf_get_str_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, "Default", -1); + + int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_TYPE, &iface); + EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret); + ret = sst_font_get_type(iface, &val); + EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret); + + sstm_vconf_get_str_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, "Default", 0); + sstm_dlopen_setup(false); + ret = sst_font_get_type(iface, &val); + EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret); +} + + TEST(SstFontTest, setFontTypeERR) { const char *setVal = "BreezeSans"; @@ -80,6 +102,41 @@ TEST(SstFontTest, setFontSizeERR) ret = sst_font_set_size(iface, SYSTEM_SETTINGS_FONT_SIZE_NORMAL); EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret); } + +TEST(SstFontTest, getFontType) +{ + char *val = NULL; + char *defaultfont_val = NULL; + const char *setVal = "BreezeSans"; + sst_interface *iface; + sst_interface *defaultfont_iface; + + sstm_system_info_get_platform_bool_setup(true); + sstm_dlopen_setup(true); + + sstm_vconf_get_str_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, setVal, 0); + + int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_TYPE, &iface); + EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret); + ret = sst_font_get_type(iface, &val); + EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret); + EXPECT_STREQ(setVal, val); + free(val); + val = NULL; + + sstm_vconf_get_str_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, "Default", 0); + + ret = sst_get_interface(SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE, &defaultfont_iface); + EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret); + ret = sst_font_get_default_type(defaultfont_iface, &defaultfont_val); + EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret); + ret = sst_font_get_type(iface, &val); + EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret); + EXPECT_STREQ(defaultfont_val, val); + free(defaultfont_val); + free(val); +} + TEST(SstFontTest, getDefaultfont) { char *val = NULL; -- 2.7.4