Change test files and modification vconf
[platform/core/api/system-settings.git] / tests / sst_gtest_normal_screen.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_vconf.h"
28 #include "sst_interface.h"
29 #include "sst_screen.h"
30 }
31
32 static const char *sstBgPath = SYS_SETTINGS_TEST_DIR"/bg_test.png";
33
34 TEST(SstScreenTest, getHomeWallPaper)
35 {
36         char *val = NULL;
37         sst_interface *iface;
38         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, &iface);
39         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
40
41         sstm_vconf_get_str_setup(VCONFKEY_BGSET, "test.png", 0);
42         ret = sst_vconf_get_str(iface, &val);
43         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
44         free(val);
45 }
46
47 TEST(SstScreenTest, setHomeWallPaper)
48 {
49         char *getVal = NULL;
50         sst_interface *iface;
51         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, &iface);
52         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
53
54         sstm_evas_object_image_load_error_setup(0);
55         sstm_vconf_set_str_setup(VCONFKEY_BGSET, 0);
56         ret = sst_screen_set_home_wallpaper(iface, sstBgPath);
57         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
58         ret = sst_vconf_get_str(iface, &getVal);
59         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
60         EXPECT_STREQ(sstBgPath, getVal);
61         free(getVal);
62 }
63
64 TEST(SstScreenTest, setHomeWallPaperERR)
65 {
66         sst_interface *iface;
67         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, &iface);
68         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
69
70         sstm_evas_object_image_load_error_setup(0);
71         sstm_vconf_set_str_setup(VCONFKEY_BGSET, -1);
72         ret = sst_screen_set_home_wallpaper(iface, sstBgPath);
73         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
74
75         sstm_evas_object_image_load_error_setup(-1);
76         ret = sst_screen_set_home_wallpaper(iface, "test.png");
77         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, ret);
78 }
79
80
81 TEST(SstScreenTest, setLockWallPaper)
82 {
83         char *getVal = NULL;
84         sst_interface *iface;
85         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, &iface);
86         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
87
88         sstm_evas_object_image_load_error_setup(0);
89         sstm_vconf_set_str_setup(VCONFKEY_IDLE_LOCK_BGSET, 0);
90         ret = sst_screen_set_lock_wallpaper(iface, sstBgPath);
91         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
92         ret = sst_vconf_get_str(iface, &getVal);
93         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
94         EXPECT_STREQ(sstBgPath, getVal);
95         free(getVal);
96 }
97
98 TEST(SstScreenTest, setLockWallPaperERR)
99 {
100         sst_interface *iface;
101         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, &iface);
102         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
103
104         sstm_evas_object_image_load_error_setup(0);
105         sstm_vconf_set_str_setup(VCONFKEY_IDLE_LOCK_BGSET, -1);
106         ret = sst_screen_set_lock_wallpaper(iface, sstBgPath);
107         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
108
109         sstm_evas_object_image_load_error_setup(-1);
110         ret = sst_screen_set_lock_wallpaper(iface, "test.png");
111         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, ret);
112 }
113
114 TEST(SstScreenTest, getLockScreen)
115 {
116         char *val = NULL;
117         sst_interface *iface;
118         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCKSCREEN_APP, &iface);
119         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
120
121         sstm_vconf_get_int_setup(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, SETTING_SCREEN_LOCK_TYPE_NONE, 0);
122         sstm_vconf_get_str_setup(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, "com.samsung.lockscreen", 0);
123         ret = sst_screen_get_lockscreen(iface, &val);
124         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
125         free(val);
126 }
127
128 TEST(SstScreenTest, getLockScreenERR)
129 {
130         char *val = NULL;
131         sst_interface *iface;
132         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCKSCREEN_APP, &iface);
133         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
134
135         sstm_vconf_get_int_setup(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, SETTING_SCREEN_LOCK_TYPE_PASSWORD, 0);
136         sstm_vconf_get_str_setup(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, "com.samsung.lockscreen", 0);
137         ret = sst_screen_get_lockscreen(iface, &val);
138         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_LOCKSCREEN_APP_PASSWORD_MODE, ret);
139
140         sstm_vconf_get_str_setup(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, "com.samsung.lockscreen", -1);
141         ret = sst_screen_get_lockscreen(iface, &val);
142         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
143
144         sstm_vconf_get_int_setup(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, SETTING_SCREEN_LOCK_TYPE_PASSWORD, -1);
145         ret = sst_screen_get_lockscreen(iface, &val);
146         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
147 }
148
149 TEST(SstScreenTest, setLockScreen)
150 {
151         char *getVal = NULL;
152         const char *setVal = "org.tizen.voice-control-panel";
153
154         sst_interface *iface;
155         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCKSCREEN_APP, &iface);
156         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
157
158         sstm_pkgmgrinfo_appinfo_get_appinfo_setup(0);
159         sstm_pkgmgrinfo_appinfo_foreach_category_setup(0, true);
160         sstm_pkgmgrinfo_appinfo_destroy_appinfo_setup(0);
161         sstm_vconf_get_int_setup(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, SETTING_SCREEN_LOCK_TYPE_NONE, 0);
162         sstm_vconf_set_str_setup(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, 0);
163         sstm_vconf_set_int_setup(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, 0);
164
165         ret = sst_screen_set_lockscreen(iface, "com.samsung.lockscreen");
166         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
167
168         ret = sst_screen_set_lockscreen(iface, setVal);
169         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
170         ret = sst_screen_get_lockscreen(iface, &getVal);
171         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
172         EXPECT_STREQ(setVal, getVal);
173
174         ret = vconf_set_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, SETTING_SCREEN_LOCK_TYPE_PASSWORD);
175         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
176         ret = sst_screen_set_lockscreen(iface, setVal);
177         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_LOCKSCREEN_APP_PASSWORD_MODE, ret);
178
179         free(getVal);
180 }
181
182 TEST(SstScreenTest, setLockScreenERR)
183 {
184         const char *setVal = "com.samsung.lockscreen";
185
186         sst_interface *iface;
187         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCKSCREEN_APP, &iface);
188         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
189
190         sstm_pkgmgrinfo_appinfo_get_appinfo_setup(0);
191         sstm_pkgmgrinfo_appinfo_foreach_category_setup(0, true);
192         sstm_pkgmgrinfo_appinfo_destroy_appinfo_setup(0);
193         sstm_vconf_get_int_setup(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, SETTING_SCREEN_LOCK_TYPE_NONE, 0);
194         sstm_vconf_get_str_setup(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, "com.samsung.lockscreen", 0);
195         sstm_vconf_set_int_setup(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, -1);
196         ret = sst_screen_set_lockscreen(iface, setVal);
197         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
198
199         sstm_vconf_set_str_setup(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, -1);
200         ret = sst_screen_set_lockscreen(iface, setVal);
201         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
202
203         sstm_vconf_get_int_setup(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, SETTING_SCREEN_LOCK_TYPE_PASSWORD, 0);
204         ret = sst_screen_set_lockscreen(iface, setVal);
205         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_LOCKSCREEN_APP_PASSWORD_MODE, ret);
206
207         sstm_vconf_get_int_setup(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, SETTING_SCREEN_LOCK_TYPE_NONE, -1);
208         ret = sst_screen_set_lockscreen(iface, setVal);
209         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
210
211         sstm_pkgmgrinfo_appinfo_foreach_category_setup(0, false);
212         ret = sst_screen_set_lockscreen(iface, setVal);
213         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
214
215         sstm_pkgmgrinfo_appinfo_foreach_category_setup(-1, false);
216         ret = sst_screen_set_lockscreen(iface, setVal);
217         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, ret);
218
219         sstm_pkgmgrinfo_appinfo_get_appinfo_setup(-1);
220         ret = sst_screen_set_lockscreen(iface, setVal);
221         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, ret);
222 }
223
224 TEST(SstScreenTest, setBackLightTime)
225 {
226         int getVal;
227         sst_interface *iface;
228         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_SCREEN_BACKLIGHT_TIME, &iface);
229         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
230
231         sstm_vconf_set_int_setup(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, 0);
232
233         ret = sst_screen_set_backlight_time(iface, -5);
234         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, ret);
235
236         ret = sst_screen_set_backlight_time(iface, 601);
237         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, ret);
238
239         ret = sst_screen_set_backlight_time(iface, 300);
240         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
241
242         ret = sst_vconf_get_int(iface, &getVal);
243         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
244         EXPECT_EQ(getVal, 300);
245 }
246
247 TEST(SstScreenTest, setBackLightTimeERR)
248 {
249         sst_interface *iface;
250         int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_SCREEN_BACKLIGHT_TIME, &iface);
251         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
252
253         sstm_vconf_set_int_setup(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, -1);
254         ret = sst_screen_set_backlight_time(iface, 300);
255         EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
256 }