1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <gtest/gtest.h>
17
18 #include "screen_session_manager/include/screen_setting_helper.h"
19 #include "window_manager_hilog.h"
20 #include "scene_board_judgement.h"
21
22 using namespace testing;
23 using namespace testing::ext;
24
25 namespace OHOS {
26 namespace Rosen {
27 namespace {
28 constexpr uint32_t SLEEP_TIME_US = 100000;
29 }
30
31 class ScreenSettingHelperTest : public testing::Test {
32 public:
33 static void SetUpTestCase();
34 static void TearDownTestCase();
35 void SetUp() override;
36 void TearDown() override;
37 };
38
SetUpTestCase()39 void ScreenSettingHelperTest::SetUpTestCase()
40 {
41 }
42
TearDownTestCase()43 void ScreenSettingHelperTest::TearDownTestCase()
44 {
45 }
46
SetUp()47 void ScreenSettingHelperTest::SetUp()
48 {
49 }
50
TearDown()51 void ScreenSettingHelperTest::TearDown()
52 {
53 usleep(SLEEP_TIME_US);
54 }
55
56 namespace {
57 /**
58 * @tc.name: RegisterSettingDpiObserver
59 * @tc.desc: RegisterSettingDpiObserver
60 * @tc.type: FUNC
61 */
62 HWTEST_F(ScreenSettingHelperTest, RegisterSettingDpiObserver, Function | SmallTest | Level3)
63 {
__anon719a4df80302(const std::string&) 64 auto func = [] (const std::string&) {
65 TLOGI(WmsLogTag::DMS, "UT test");
66 };
67 ScreenSettingHelper::RegisterSettingDpiObserver(func);
68 ScreenSettingHelper::dpiObserver_ = nullptr;
69 ASSERT_EQ(ScreenSettingHelper::dpiObserver_, nullptr);
70 }
71
72 /**
73 * @tc.name: UnregisterSettingDpiObserver01
74 * @tc.desc: UnregisterSettingDpiObserver01
75 * @tc.type: FUNC
76 */
77 HWTEST_F(ScreenSettingHelperTest, UnregisterSettingDpiObserver01, Function | SmallTest | Level3)
78 {
79 ScreenSettingHelper::dpiObserver_ = new SettingObserver;
80 ScreenSettingHelper::UnregisterSettingDpiObserver();
81 ASSERT_EQ(ScreenSettingHelper::dpiObserver_, nullptr);
82 }
83
84 /**
85 * @tc.name: UnregisterSettingDpiObserver02
86 * @tc.desc: UnregisterSettingDpiObserver02
87 * @tc.type: FUNC
88 */
89 HWTEST_F(ScreenSettingHelperTest, UnregisterSettingDpiObserver02, Function | SmallTest | Level3)
90 {
91 ScreenSettingHelper::dpiObserver_ = nullptr;
92 ScreenSettingHelper::UnregisterSettingDpiObserver();
93 ASSERT_EQ(ScreenSettingHelper::dpiObserver_, nullptr);
94 }
95
96 /**
97 * @tc.name: GetSettingDpi01
98 * @tc.desc: GetSettingDpi01
99 * @tc.type: FUNC
100 */
101 HWTEST_F(ScreenSettingHelperTest, GetSettingDpi01, Function | SmallTest | Level3)
102 {
103 uint32_t dpi = 0;
104 std::string key = "test";
105 bool ret = ScreenSettingHelper::GetSettingDpi(dpi, key);
106 ASSERT_FALSE(ret);
107 }
108
109 /**
110 * @tc.name: RegisterSettingCastObserver01
111 * @tc.desc: RegisterSettingCastObserver
112 * @tc.type: FUNC
113 */
114 HWTEST_F(ScreenSettingHelperTest, RegisterSettingCastObserver01, Function | SmallTest | Level3)
115 {
__anon719a4df80402(const std::string&) 116 auto func = [] (const std::string&) {
117 TLOGI(WmsLogTag::DMS, "UT test");
118 };
119 ScreenSettingHelper::castObserver_ = new SettingObserver;
120 ScreenSettingHelper::RegisterSettingCastObserver(func);
121 ASSERT_NE(ScreenSettingHelper::castObserver_, nullptr);
122 }
123
124 /**
125 * @tc.name: RegisterSettingCastObserver02
126 * @tc.desc: RegisterSettingCastObserver02
127 * @tc.type: FUNC
128 */
129 HWTEST_F(ScreenSettingHelperTest, RegisterSettingCastObserver02, Function | SmallTest | Level3)
130 {
__anon719a4df80502(const std::string&) 131 auto func = [] (const std::string&) {
132 TLOGI(WmsLogTag::DMS, "UT test");
133 };
134 ScreenSettingHelper::castObserver_ = nullptr;
135 ScreenSettingHelper::RegisterSettingCastObserver(func);
136 ASSERT_NE(ScreenSettingHelper::castObserver_, nullptr);
137 }
138
139 /**
140 * @tc.name: UnregisterSettingCastObserver01
141 * @tc.desc: UnregisterSettingCastObserver01
142 * @tc.type: FUNC
143 */
144 HWTEST_F(ScreenSettingHelperTest, UnregisterSettingCastObserver01, Function | SmallTest | Level3)
145 {
146 ScreenSettingHelper::castObserver_ = nullptr;
147 ScreenSettingHelper::UnregisterSettingCastObserver();
148 ASSERT_EQ(ScreenSettingHelper::castObserver_, nullptr);
149 }
150
151 /**
152 * @tc.name: UnregisterSettingCastObserver02
153 * @tc.desc: UnregisterSettingCastObserver02
154 * @tc.type: FUNC
155 */
156 HWTEST_F(ScreenSettingHelperTest, UnregisterSettingCastObserver02, Function | SmallTest | Level3)
157 {
158 ScreenSettingHelper::castObserver_ = new SettingObserver;
159 ScreenSettingHelper::UnregisterSettingCastObserver();
160 ASSERT_EQ(ScreenSettingHelper::castObserver_, nullptr);
161 }
162
163 /**
164 * @tc.name: GetSettingCast01
165 * @tc.desc: GetSettingCast01
166 * @tc.type: FUNC
167 */
168 HWTEST_F(ScreenSettingHelperTest, GetSettingCast01, Function | SmallTest | Level3)
169 {
170 bool enable = true;
171 std::string key = "test";
172 bool ret = ScreenSettingHelper::GetSettingCast(enable, key);
173 ASSERT_FALSE(ret);
174 }
175
176 /**
177 * @tc.name: GetSettingCast02
178 * @tc.desc: GetSettingCast02
179 * @tc.type: FUNC
180 */
181 HWTEST_F(ScreenSettingHelperTest, GetSettingCast02, Function | SmallTest | Level3)
182 {
183 if (!SceneBoardJudgement::IsSceneBoardEnabled()) {
184 GTEST_SKIP() << "SceneBoard is not enabled, skipping test.";
185 }
186 bool enable = true;
187 std::string key = "default_display_dpi";
188 bool ret = ScreenSettingHelper::GetSettingCast(enable, key);
189 ASSERT_TRUE(ret);
190 }
191
192 /**
193 * @tc.name: UnregisterSettingRotationObserver01
194 * @tc.desc: UnregisterSettingRotationObserver01
195 * @tc.type: FUNC
196 */
197 HWTEST_F(ScreenSettingHelperTest, UnregisterSettingRotationObserver01, Function | SmallTest | Level3)
198 {
199 ScreenSettingHelper::rotationObserver_ = nullptr;
200 ASSERT_EQ(ScreenSettingHelper::rotationObserver_, nullptr);
201 }
202
203 /**
204 * @tc.name: UnregisterSettingRotationObserver02
205 * @tc.desc: UnregisterSettingRotationObserver02
206 * @tc.type: FUNC
207 */
208 HWTEST_F(ScreenSettingHelperTest, UnregisterSettingRotationObserver02, Function | SmallTest | Level3)
209 {
210 ScreenSettingHelper::rotationObserver_ = new SettingObserver;
211 ASSERT_NE(ScreenSettingHelper::rotationObserver_, nullptr);
212 }
213
214 /**
215 * @tc.name: SetSettingRotation
216 * @tc.desc: SetSettingRotation
217 * @tc.type: FUNC
218 */
219 HWTEST_F(ScreenSettingHelperTest, SetSettingRotation, Function | SmallTest | Level3)
220 {
221 int32_t rotation = 180;
222 ScreenSettingHelper::SetSettingRotation(rotation);
223 ASSERT_NE(ScreenSettingHelper::rotationObserver_, nullptr);
224 }
225
226 /**
227 * @tc.name: GetSettingRotation01
228 * @tc.desc: GetSettingRotation01
229 * @tc.type: FUNC
230 */
231 HWTEST_F(ScreenSettingHelperTest, GetSettingRotation01, Function | SmallTest | Level3)
232 {
233 int32_t rotation = 0;
234 std::string key = "test";
235 auto result = ScreenSettingHelper::GetSettingRotation(rotation, key);
236 ASSERT_EQ(result, false);
237 }
238
239 /**
240 * @tc.name: GetSettingRotation02
241 * @tc.desc: GetSettingRotation02
242 * @tc.type: FUNC
243 */
244 HWTEST_F(ScreenSettingHelperTest, GetSettingRotation02, Function | SmallTest | Level3)
245 {
246 if (!SceneBoardJudgement::IsSceneBoardEnabled()) {
247 GTEST_SKIP() << "SceneBoard is not enabled, skipping test.";
248 }
249 int32_t rotation = 0;
250 std::string key = "default_display_dpi";
251 auto result = ScreenSettingHelper::GetSettingRotation(rotation, key);
252 ASSERT_EQ(result, true);
253 }
254
255 /**
256 * @tc.name: SetSettingRotationScreenId
257 * @tc.desc: SetSettingRotationScreenId
258 * @tc.type: FUNC
259 */
260 HWTEST_F(ScreenSettingHelperTest, SetSettingRotationScreenId, Function | SmallTest | Level3)
261 {
262 int32_t screenId = 0;
263 ScreenSettingHelper::SetSettingRotationScreenId(screenId);
264 ASSERT_NE(ScreenSettingHelper::rotationObserver_, nullptr);
265 }
266
267 /**
268 * @tc.name: GetSettingRotationScreenID01
269 * @tc.desc: GetSettingRotationScreenID01
270 * @tc.type: FUNC
271 */
272 HWTEST_F(ScreenSettingHelperTest, GetSettingRotationScreenID01, Function | SmallTest | Level3)
273 {
274 int32_t screenId = 0;
275 std::string key = "test";
276 auto result = ScreenSettingHelper::GetSettingRotation(screenId, key);
277 ASSERT_EQ(result, false);
278 }
279
280 /**
281 * @tc.name: GetSettingRotationScreenID02
282 * @tc.desc: GetSettingRotationScreenID02
283 * @tc.type: FUNC
284 */
285 HWTEST_F(ScreenSettingHelperTest, GetSettingRotationScreenID02, Function | SmallTest | Level3)
286 {
287 int32_t screenId = 0;
288 std::string key = "screen_rotation_screen_id_value";
289 auto result = ScreenSettingHelper::GetSettingRotation(screenId, key);
290 ASSERT_EQ(result, false);
291 }
292
293 /**
294 * @tc.name: GetSettingValue
295 * @tc.desc: GetSettingValue
296 * @tc.type: FUNC
297 */
298 HWTEST_F(ScreenSettingHelperTest, GetSettingValue, Function | SmallTest | Level3)
299 {
300 ScreenSettingHelper screenSettingHelper = ScreenSettingHelper();
301 uint32_t value = 0;
302 std::string key = "test";
303 bool ret = screenSettingHelper.GetSettingValue(value, key);
304 ASSERT_FALSE(ret);
305 }
306
307 /**
308 * @tc.name: RemoveInvalidChar01
309 * @tc.desc: RemoveInvalidChar Test01
310 * @tc.type: FUNC
311 */
312 HWTEST_F(ScreenSettingHelperTest, RemoveInvalidChar01, Function | SmallTest | Level3)
313 {
314 ScreenSettingHelper screenSettingHelper = ScreenSettingHelper();
315 std::string test_str = "test";
316 auto ret = screenSettingHelper.RemoveInvalidChar(test_str);
317 ASSERT_EQ(ret, "");
318 }
319
320 /**
321 * @tc.name: RemoveInvalidChar02
322 * @tc.desc: RemoveInvalidChar Test02
323 * @tc.type: FUNC
324 */
325 HWTEST_F(ScreenSettingHelperTest, RemoveInvalidChar02, Function | SmallTest | Level3)
326 {
327 ScreenSettingHelper screenSettingHelper = ScreenSettingHelper();
328 std::string test_str = "test 2.0 ,";
329 auto ret = screenSettingHelper.RemoveInvalidChar(test_str);
330 ASSERT_EQ(ret, " 2.0 ,");
331 }
332
333 /**
334 * @tc.name: SplitString
335 * @tc.desc: SplitString Test01
336 * @tc.type: FUNC
337 */
338 HWTEST_F(ScreenSettingHelperTest, SplitString01, Function | SmallTest | Level3)
339 {
340 ScreenSettingHelper screenSettingHelper = ScreenSettingHelper();
341 std::vector<std::string> splitValues = {"split", "test"};
342 std::string input = "";
343 char delimiter = ',';
344 auto ret = screenSettingHelper.SplitString(splitValues, input, delimiter);
345 ASSERT_FALSE(ret);
346 }
347
348 /**
349 * @tc.name: SplitString
350 * @tc.desc: SplitString Test02
351 * @tc.type: FUNC
352 */
353 HWTEST_F(ScreenSettingHelperTest, SplitString02, Function | SmallTest | Level3)
354 {
355 ScreenSettingHelper screenSettingHelper = ScreenSettingHelper();
356 std::vector<std::string> splitValues = {};
357 std::string input = "test, str";
358 char delimiter = ',';
359 auto ret = screenSettingHelper.SplitString(splitValues, input, delimiter);
360 ASSERT_TRUE(ret);
361 }
362
363 /**
364 * @tc.name: IsNumber01
365 * @tc.desc: IsNumber01 Test
366 * @tc.type: FUNC
367 */
368 HWTEST_F(ScreenSettingHelperTest, IsNumber01, Function | SmallTest | Level3)
369 {
370 ScreenSettingHelper screenSettingHelper = ScreenSettingHelper();
371 std::string test_str = "12.34";
372 auto ret = screenSettingHelper.IsNumber(test_str);
373 ASSERT_TRUE(ret);
374 }
375
376 /**
377 * @tc.name: IsNumber02
378 * @tc.desc: IsNumber02 Test
379 * @tc.type: FUNC
380 */
381 HWTEST_F(ScreenSettingHelperTest, IsNumber02, Function | SmallTest | Level3)
382 {
383 ScreenSettingHelper screenSettingHelper = ScreenSettingHelper();
384 std::string test_str = "test";
385 auto ret = screenSettingHelper.IsNumber(test_str);
386 ASSERT_FALSE(ret);
387 }
388
389 /**
390 * @tc.name: RegisterSettingWireCastObserver01
391 * @tc.desc: RegisterSettingWireCastObserver01
392 * @tc.type: FUNC
393 */
394 HWTEST_F(ScreenSettingHelperTest, RegisterSettingWireCastObserver01, Function | SmallTest | Level3)
395 {
__anon719a4df80602(const std::string&) 396 auto func = [] (const std::string&) {
397 TLOGI(WmsLogTag::DMS, "UT test");
398 };
399 ScreenSettingHelper::wireCastObserver_ = new SettingObserver;
400 ScreenSettingHelper::RegisterSettingWireCastObserver(func);
401 ASSERT_NE(ScreenSettingHelper::wireCastObserver_, nullptr);
402 }
403
404 /**
405 * @tc.name: UnregisterSettingWireCastObserver01
406 * @tc.desc: UnregisterSettingWireCastObserver01
407 * @tc.type: FUNC
408 */
409 HWTEST_F(ScreenSettingHelperTest, UnregisterSettingWireCastObserver01, Function | SmallTest | Level3)
410 {
411 ScreenSettingHelper::wireCastObserver_ = nullptr;
412 ScreenSettingHelper::UnregisterSettingWireCastObserver();
413 ASSERT_EQ(ScreenSettingHelper::wireCastObserver_, nullptr);
414 }
415
416 /**
417 * @tc.name: UnregisterSettingWireCastObserver02
418 * @tc.desc: UnregisterSettingWireCastObserver02
419 * @tc.type: FUNC
420 */
421 HWTEST_F(ScreenSettingHelperTest, UnregisterSettingWireCastObserver02, Function | SmallTest | Level3)
422 {
423 ScreenSettingHelper::wireCastObserver_ = new SettingObserver;
424 ScreenSettingHelper::UnregisterSettingWireCastObserver();
425 ASSERT_EQ(ScreenSettingHelper::wireCastObserver_, nullptr);
426 }
427 }
428 } // namespace Rosen
429 } // namespace OHOS