Add xmlSaveFormatFile() check routine 73/281473/1 accepted/tizen_7.0_unified_hotfix tizen_7.0_hotfix accepted/tizen/7.0/unified/20221110.060949 accepted/tizen/7.0/unified/hotfix/20221116.104842 accepted/tizen/unified/20220921.091753 tizen_7.0_m2_release
authorJinWang An <jinwang.an@samsung.com>
Mon, 19 Sep 2022 09:39:55 +0000 (18:39 +0900)
committerJinWang An <jinwang.an@samsung.com>
Mon, 19 Sep 2022 09:39:55 +0000 (18:39 +0900)
Change-Id: I19e57b540c7ab0ef9c7e5ba601d7cc4def893936
Signed-off-by: JinWang An <jinwang.an@samsung.com>
src/sst_font.c
tests/mocks/sstt_mock.h
tests/mocks/xml.c
tests/sst_gtest_normal_font.cpp

index 446ca99..e14f709 100644 (file)
@@ -144,9 +144,12 @@ int sst_font_set_type(sst_interface *iface, const char *font_name)
 
        xmlDocPtr doc = font_conf_doc_parse(SETTING_FONT_CONF_FILE, font_name);
        if (doc != NULL) {
-               xmlSaveFormatFile(SETTING_FONT_CONF_FILE, doc, 0);
+               int ret = xmlSaveFormatFile(SETTING_FONT_CONF_FILE, doc, 0);
                xmlFreeDoc(doc);
-               doc = NULL;
+               if (ret <= -1) {
+                       ERR("xmlSaveFormatFile() Fail");
+                       return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+               }
        }
 
        sstu_font_config_set_notification();
index 0e8d50a..71a1273 100644 (file)
@@ -43,6 +43,7 @@ void sstm_package_manager_get_package_id_by_app_id_setup(const char *package_id,
 void sstm_alarmmgr_set_timezone_setup(int result);
 
 void sstm_xmlParseFile_setup(bool enable);
+void sstm_xmlSaveFormatFile_setup(bool enable);
 
 void sstm_vconf_get_int_setup(const char *key, int val, int ret);
 void sstm_vconf_get_bool_setup(const char *key, bool val, int ret);
index eb74c98..e53386b 100644 (file)
 #define TEST_FONT_CONF_FILE "./tests/res/99-tizen.conf"
 
 static bool sstm_xmlParseFile_enable = true;
+static int sstm_xmlSaveFormatFile_enable = true;
 
 API void sstm_xmlParseFile_setup(bool enable)
 {
        sstm_xmlParseFile_enable = enable;
 }
 
+API void sstm_xmlSaveFormatFile_setup(bool enable)
+{
+       sstm_xmlSaveFormatFile_enable = enable;
+}
+
 API xmlDocPtr xmlParseFile(const char *filename)
 {
        if (false == sstm_xmlParseFile_enable)
@@ -45,3 +51,20 @@ API xmlDocPtr xmlParseFile(const char *filename)
        org_fn = dlsym(RTLD_NEXT, "xmlParseFile");
        return org_fn(filename);
 }
+
+API int xmlSaveFormatFile(const char * filename,
+                                        xmlDocPtr cur,
+                                        int format)
+{
+       if (false == sstm_xmlParseFile_enable)
+               return -1;
+
+       int (*org_fn)(const char * filename,
+                                        xmlDocPtr cur,
+                                        int format);
+       if (0 == strcmp(filename, SETTING_FONT_CONF_FILE)) {
+               return 20;
+       }
+       org_fn = dlsym(RTLD_NEXT, "xmlSaveFormatFile");
+       return org_fn(filename, cur, format);
+}
index 4ced494..a50ce68 100644 (file)
@@ -53,10 +53,16 @@ TEST(SstFontTest, setFontTypeERR)
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
 
        sstm_dlopen_setup(true);
+       sstm_xmlSaveFormatFile_setup(true);
        sstm_eext_config_font_set_setup(false);
        ret = sst_font_set_type(iface, setVal);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
 
+       sstm_xmlSaveFormatFile_setup(false);
+       sstm_xmlParseFile_setup(false);
+       ret = sst_font_set_type(iface, setVal);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
+
        sstm_xmlParseFile_setup(false);
        sstm_vconf_get_int_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, 0, -1);
        ret = sst_font_set_type(iface, setVal);
@@ -99,6 +105,7 @@ TEST(SstFontTest, setFontType)
        sstm_system_info_get_platform_bool_setup(true);
        sstm_dlopen_setup(true);
        sstm_xmlParseFile_setup(true);
+       sstm_xmlSaveFormatFile_setup(true);
        sstm_eext_config_font_set_setup(true);
 
        int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_TYPE, &iface);