Add sst_font_get_type() 36/283036/1
authorJinWang An <jinwang.an@samsung.com>
Mon, 17 Oct 2022 04:46:21 +0000 (13:46 +0900)
committerJinWang An <jinwang.an@samsung.com>
Mon, 17 Oct 2022 04:46:21 +0000 (13:46 +0900)
 - 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 <jinwang.an@samsung.com>
src/sst_font.c
src/sst_font.h
src/sst_interface.c
tests/sst_gtest_normal_font.cpp

index e14f709..1e73482 100644 (file)
@@ -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();
index dc8ace6..e1f2953 100644 (file)
@@ -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);
index 8934cee..0099ae8 100644 (file)
@@ -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] = {
index a50ce68..a427265 100644 (file)
@@ -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;