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