From: JinWang An Date: Mon, 19 Sep 2022 09:39:55 +0000 (+0900) Subject: Add xmlSaveFormatFile() check routine X-Git-Tag: accepted/tizen/7.0/unified/20221110.060949^0 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fapi%2Fsystem-settings.git;a=commitdiff_plain;h=52995af0221f705b1347a060bb9d0f65d0f65194 Add xmlSaveFormatFile() check routine Change-Id: I19e57b540c7ab0ef9c7e5ba601d7cc4def893936 Signed-off-by: JinWang An --- diff --git a/src/sst_font.c b/src/sst_font.c index 446ca99..e14f709 100644 --- a/src/sst_font.c +++ b/src/sst_font.c @@ -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(); diff --git a/tests/mocks/sstt_mock.h b/tests/mocks/sstt_mock.h index 0e8d50a..71a1273 100644 --- a/tests/mocks/sstt_mock.h +++ b/tests/mocks/sstt_mock.h @@ -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); diff --git a/tests/mocks/xml.c b/tests/mocks/xml.c index eb74c98..e53386b 100644 --- a/tests/mocks/xml.c +++ b/tests/mocks/xml.c @@ -24,12 +24,18 @@ #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); +} diff --git a/tests/sst_gtest_normal_font.cpp b/tests/sst_gtest_normal_font.cpp index 4ced494..a50ce68 100644 --- a/tests/sst_gtest_normal_font.cpp +++ b/tests/sst_gtest_normal_font.cpp @@ -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);