Add xmlSaveFormatFile() check routine
[platform/core/api/system-settings.git] / tests / sst_gtest_normal_font.cpp
1 /*
2  * Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 #include <string.h>
18 #include <glib.h>
19 #include <gtest/gtest.h>
20 #include <vconf.h>
21
22 #include "system_settings.h"
23 #include "mocks/sstt_mock.h"
24
25 extern "C" {
26 #include "sst.h"
27 #include "sst_font.h"
28 #include "sst_vconf.h"
29 #include "sst_interface.h"
30 }
31
32 TEST(SstFontTest, getDefaultfontERR)
33 {
34         char *val;
35         sst_interface *iface;
36         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE, &iface);
37         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
38
39         sstm_dlopen_setup(false);
40         ret = sst_font_get_default_type(iface, &val);
41         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
42 }
43
44 TEST(SstFontTest, setFontTypeERR)
45 {
46         const char *setVal = "BreezeSans";
47         sst_interface *iface;
48         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_TYPE, &iface);
49         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
50
51         sstm_dlopen_setup(false);
52         ret = sst_font_set_type(iface, setVal);
53         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
54
55         sstm_dlopen_setup(true);
56         sstm_xmlSaveFormatFile_setup(true);
57         sstm_eext_config_font_set_setup(false);
58         ret = sst_font_set_type(iface, setVal);
59         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
60
61         sstm_xmlSaveFormatFile_setup(false);
62         sstm_xmlParseFile_setup(false);
63         ret = sst_font_set_type(iface, setVal);
64         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
65
66         sstm_xmlParseFile_setup(false);
67         sstm_vconf_get_int_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, 0, -1);
68         ret = sst_font_set_type(iface, setVal);
69         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
70 }
71
72 TEST(SstFontTest, setFontSizeERR)
73 {
74         sst_interface *iface;
75
76         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_SIZE, &iface);
77         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
78
79         sstm_vconf_set_int_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, -1);
80         ret = sst_font_set_size(iface, SYSTEM_SETTINGS_FONT_SIZE_NORMAL);
81         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
82 }
83 TEST(SstFontTest, getDefaultfont)
84 {
85         char *val = NULL;
86         sst_interface *iface;
87
88         sstm_system_info_get_platform_bool_setup(true);
89         sstm_dlopen_setup(true);
90
91         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_TYPE, &iface);
92         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
93         ret = sst_font_get_default_type(iface, &val);
94         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
95         free(val);
96 }
97
98 TEST(SstFontTest, setFontType)
99 {
100         char *getVal = NULL;
101         const char *eVal = "WrongFontName";
102         const char *setVal = "BreezeSans";
103         sst_interface *iface;
104
105         sstm_system_info_get_platform_bool_setup(true);
106         sstm_dlopen_setup(true);
107         sstm_xmlParseFile_setup(true);
108         sstm_xmlSaveFormatFile_setup(true);
109         sstm_eext_config_font_set_setup(true);
110
111         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_TYPE, &iface);
112         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
113
114         sstm_vconf_set_int_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, 0);
115         sstm_vconf_set_str_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, 0);
116
117         ret = sst_font_set_type(iface, eVal);
118         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
119         ret = sst_font_set_type(iface, setVal);
120         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
121         ret = sst_vconf_get_str(iface, &getVal);
122         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
123         EXPECT_STREQ(setVal, getVal);
124
125         free(getVal);
126 }
127
128 TEST(SstFontTest, setFontSize)
129 {
130         int fontSize[] = {
131                 SYSTEM_SETTINGS_FONT_SIZE_SMALL,
132                 SYSTEM_SETTINGS_FONT_SIZE_NORMAL,
133                 SYSTEM_SETTINGS_FONT_SIZE_LARGE,
134                 SYSTEM_SETTINGS_FONT_SIZE_HUGE,
135                 SYSTEM_SETTINGS_FONT_SIZE_GIANT
136         };
137         int fsCnt = sizeof(fontSize) / sizeof(fontSize[0]);
138         int getVal;
139         int setVal;
140         sst_interface *iface;
141
142         sstm_system_info_get_platform_bool_setup(true);
143         sstm_dlopen_setup(true);
144         sstm_vconf_get_str_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, "BreezeSans", 0);
145         sstm_vconf_set_int_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, 0);
146
147         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_SIZE, &iface);
148         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
149
150         for (int i = 0; i < fsCnt; i++) {
151                 setVal = fontSize[i];
152                 ret = sst_font_set_size(iface, setVal);
153                 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
154                 ret = sst_vconf_get_int(iface, &getVal);
155                 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
156                 EXPECT_EQ(setVal, getVal);
157         }
158 }