4ced494cb067c46e85f931fd77376ffeaebc32fc
[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_eext_config_font_set_setup(false);
57         ret = sst_font_set_type(iface, setVal);
58         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
59
60         sstm_xmlParseFile_setup(false);
61         sstm_vconf_get_int_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, 0, -1);
62         ret = sst_font_set_type(iface, setVal);
63         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
64 }
65
66 TEST(SstFontTest, setFontSizeERR)
67 {
68         sst_interface *iface;
69
70         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_SIZE, &iface);
71         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
72
73         sstm_vconf_set_int_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, -1);
74         ret = sst_font_set_size(iface, SYSTEM_SETTINGS_FONT_SIZE_NORMAL);
75         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
76 }
77 TEST(SstFontTest, getDefaultfont)
78 {
79         char *val = NULL;
80         sst_interface *iface;
81
82         sstm_system_info_get_platform_bool_setup(true);
83         sstm_dlopen_setup(true);
84
85         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_TYPE, &iface);
86         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
87         ret = sst_font_get_default_type(iface, &val);
88         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
89         free(val);
90 }
91
92 TEST(SstFontTest, setFontType)
93 {
94         char *getVal = NULL;
95         const char *eVal = "WrongFontName";
96         const char *setVal = "BreezeSans";
97         sst_interface *iface;
98
99         sstm_system_info_get_platform_bool_setup(true);
100         sstm_dlopen_setup(true);
101         sstm_xmlParseFile_setup(true);
102         sstm_eext_config_font_set_setup(true);
103
104         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_TYPE, &iface);
105         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
106
107         sstm_vconf_set_int_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, 0);
108         sstm_vconf_set_str_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, 0);
109
110         ret = sst_font_set_type(iface, eVal);
111         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
112         ret = sst_font_set_type(iface, setVal);
113         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
114         ret = sst_vconf_get_str(iface, &getVal);
115         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
116         EXPECT_STREQ(setVal, getVal);
117
118         free(getVal);
119 }
120
121 TEST(SstFontTest, setFontSize)
122 {
123         int fontSize[] = {
124                 SYSTEM_SETTINGS_FONT_SIZE_SMALL,
125                 SYSTEM_SETTINGS_FONT_SIZE_NORMAL,
126                 SYSTEM_SETTINGS_FONT_SIZE_LARGE,
127                 SYSTEM_SETTINGS_FONT_SIZE_HUGE,
128                 SYSTEM_SETTINGS_FONT_SIZE_GIANT
129         };
130         int fsCnt = sizeof(fontSize) / sizeof(fontSize[0]);
131         int getVal;
132         int setVal;
133         sst_interface *iface;
134
135         sstm_system_info_get_platform_bool_setup(true);
136         sstm_dlopen_setup(true);
137         sstm_vconf_get_str_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, "BreezeSans", 0);
138         sstm_vconf_set_int_setup(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, 0);
139
140         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_FONT_SIZE, &iface);
141         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
142
143         for (int i = 0; i < fsCnt; i++) {
144                 setVal = fontSize[i];
145                 ret = sst_font_set_size(iface, setVal);
146                 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
147                 ret = sst_vconf_get_int(iface, &getVal);
148                 EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
149                 EXPECT_EQ(setVal, getVal);
150         }
151 }