1 /*
2 * Copyright (C) 2022 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 #define private public
16 #define protected public
17 #include "wallpaper_service.h"
18 #undef private
19 #undef protected
20
21 #include <gtest/gtest.h>
22
23 #include <ctime>
24
25 #include "accesstoken_kit.h"
26 #include "directory_ex.h"
27 #include "file_deal.h"
28 #include "hilog_wrapper.h"
29 #include "image_packer.h"
30 #include "nativetoken_kit.h"
31 #include "pixel_map.h"
32 #include "scene_board_judgement.h"
33 #include "token_setproc.h"
34 #include "wallpaper_common_event_subscriber.h"
35 #include "wallpaper_manager.h"
36 #include "wallpaper_manager_client.h"
37 #include "wallpaper_service.h"
38
39 namespace OHOS {
40 namespace WallpaperMgrService {
41 constexpr int32_t SYSTYEM = 0;
42 constexpr int32_t LOCKSCREEN = 1;
43 constexpr int32_t INVALID_WALLPAPER_TYPE = 2;
44 constexpr int32_t HUNDRED = 100;
45 constexpr int32_t DEFAULT_WALLPAPER_ID = -1;
46 constexpr int32_t FOO_MAX_LEN = 60000000;
47 constexpr int32_t TEST_USERID = 99;
48 constexpr int32_t TEST_USERID1 = 98;
49 constexpr int32_t INVALID_USERID = -1;
50 constexpr int32_t NORMAL = 0;
51 constexpr int32_t UNFOLD_1 = 1;
52 constexpr int32_t UNFOLD_2 = 2;
53 constexpr int32_t PORT = 0;
54 constexpr int32_t LAND = 1;
55 constexpr int32_t DEFAULT_USERID = 100;
56 uint64_t selfTokenID_ = 0;
57 constexpr const char *URI = "/data/test/theme/wallpaper/wallpaper_test.JPG";
58 constexpr const char *NORMAL_PORT_URI = "/data/test/theme/wallpaper/normal_port_wallpaper.jpg";
59 constexpr const char *NORMAL_LAND_URI = "/data/test/theme/wallpaper/normal_land_wallpaper.jpg";
60 constexpr const char *UNFOLD1_PORT_URI = "/data/test/theme/wallpaper/unfold1_port_wallpaper.jpg";
61 constexpr const char *UNFOLD1_LAND_URI = "/data/test/theme/wallpaper/unfold1_land_wallpaper.jpg";
62 constexpr const char *UNFOLD2_PORT_URI = "/data/test/theme/wallpaper/unfold2_port_wallpaper.jpg";
63 constexpr const char *UNFOLD2_LAND_URI = "/data/test/theme/wallpaper/unfold2_land_wallpaper.jpg";
64 constexpr const char *URI_ZIP = "/data/test/theme/wallpaper/test.zip";
65 constexpr const char *URI_30FPS_3S_MP4 = "/data/test/theme/wallpaper/30fps_3s.mp4";
66 constexpr const char *URI_15FPS_7S_MP4 = "/data/test/theme/wallpaper/15fps_7s.mp4";
67 constexpr const char *URI_30FPS_3S_MOV = "/data/test/theme/wallpaper/30fps_3s.mov";
68 constexpr const char *WALLPAPER_DEFAULT_PATH = "/data/service/el1/public/wallpaper";
69 constexpr const char *SYSTEM_DIR = "/system";
70 constexpr const char *LOCKSCREEN_DIR = "/lockscreen";
71 constexpr const char *LOCKSCREEN_FILE = "/lockscreen/wallpaper_lock";
72 constexpr const char *WALLPAPER_DEFAULT = "wallpaperdefault.jpeg";
73 constexpr const char *HOME_WALLPAPER = "home_wallpaper_0.jpg";
74
75 std::shared_ptr<WallpaperCommonEventSubscriber> subscriber = nullptr;
76
77 using namespace testing::ext;
78 using namespace testing;
79 using namespace OHOS::Media;
80 using namespace OHOS::HiviewDFX;
81 using namespace OHOS::MiscServices;
82 using namespace OHOS::Security::AccessToken;
83
84 static HapPolicyParams policyParams = { .apl = APL_SYSTEM_CORE,
85 .domain = "test.domain",
86 .permList = { { .permissionName = "ohos.permission.GET_WALLPAPER",
87 .bundleName = "ohos.wallpaper_test.demo",
88 .grantMode = 1,
89 .availableLevel = APL_NORMAL,
90 .label = "label",
91 .labelId = 1,
92 .description = "test",
93 .descriptionId = 1 },
94 { .permissionName = "ohos.permission.SET_WALLPAPER",
95 .bundleName = "ohos.wallpaper_test.demo",
96 .grantMode = 1,
97 .availableLevel = APL_NORMAL,
98 .label = "label",
99 .labelId = 1,
100 .description = "test",
101 .descriptionId = 1 },
102 { .permissionName = "ohos.permission.MANAGE_LOCAL_ACCOUNTS",
103 .bundleName = "ohos.wallpaper_test.demo",
104 .grantMode = 1,
105 .availableLevel = APL_NORMAL,
106 .label = "label",
107 .labelId = 1,
108 .description = "test",
109 .descriptionId = 1 } },
110 .permStateList = { { .permissionName = "ohos.permission.GET_WALLPAPER",
111 .isGeneral = true,
112 .resDeviceID = { "local" },
113 .grantStatus = { PermissionState::PERMISSION_GRANTED },
114 .grantFlags = { 1 } },
115 { .permissionName = "ohos.permission.SET_WALLPAPER",
116 .isGeneral = true,
117 .resDeviceID = { "local" },
118 .grantStatus = { PermissionState::PERMISSION_GRANTED },
119 .grantFlags = { 1 } },
120 { .permissionName = "ohos.permission.MANAGE_LOCAL_ACCOUNTS",
121 .isGeneral = true,
122 .resDeviceID = { "local" },
123 .grantStatus = { PermissionState::PERMISSION_GRANTED },
124 .grantFlags = { 1 } } } };
125
126 HapInfoParams infoParams = { .userID = 1,
127 .bundleName = "wallpaper_service",
128 .instIndex = 0,
129 .appIDDesc = "test",
130 .apiVersion = 9,
131 .isSystemApp = true };
132
133 static WallpaperInfo wallpaperInfo_normal_port = { FoldState::NORMAL, RotateState::PORT, NORMAL_PORT_URI };
134 static WallpaperInfo wallpaperInfo_normal_land = { FoldState::NORMAL, RotateState::LAND, NORMAL_LAND_URI };
135 static WallpaperInfo wallpaperInfo_unfold1_port = { FoldState::UNFOLD_1, RotateState::PORT, UNFOLD1_PORT_URI };
136 static WallpaperInfo wallpaperInfo_unfold1_land = { FoldState::UNFOLD_1, RotateState::LAND, UNFOLD1_LAND_URI };
137 static WallpaperInfo wallpaperInfo_unfold2_port = { FoldState::UNFOLD_2, RotateState::PORT, UNFOLD2_PORT_URI };
138 static WallpaperInfo wallpaperInfo_unfold2_land = { FoldState::UNFOLD_2, RotateState::LAND, UNFOLD2_LAND_URI };
139
GrantNativePermission()140 void GrantNativePermission()
141 {
142 selfTokenID_ = GetSelfTokenID();
143 AccessTokenIDEx tokenIdEx = { 0 };
144 tokenIdEx = AccessTokenKit::AllocHapToken(infoParams, policyParams);
145 int32_t ret = SetSelfTokenID(tokenIdEx.tokenIDEx);
146 if (ret == 0) {
147 HILOG_INFO("SetSelfTokenID success!");
148 } else {
149 HILOG_ERROR("SetSelfTokenID fail!");
150 }
151 }
152
153 class WallpaperTest : public testing::Test {
154 public:
155 static void SetUpTestCase(void);
156 static void TearDownTestCase(void);
157 void SetUp();
158 void TearDown();
159 static void CreateTempImage();
160 static std::shared_ptr<PixelMap> CreateTempPixelMap();
161 static bool SubscribeCommonEvent(shared_ptr<WallpaperService> wallpaperService);
162 static void TriggerEvent(int32_t userId, const std::string &commonEventSupport);
163 static std::string GetUserFilePath(int32_t userId, const char *filePath);
164 static bool TestCallBack(int32_t num);
165 };
166 const std::string VALID_SCHEMA_STRICT_DEFINE = "{\"SCHEMA_VERSION\":\"1.0\","
167 "\"SCHEMA_MODE\":\"STRICT\","
168 "\"SCHEMA_SKIPSIZE\":0,"
169 "\"SCHEMA_DEFINE\":{"
170 "\"age\":\"INTEGER, NOT NULL\""
171 "},"
172 "\"SCHEMA_INDEXES\":[\"$.age\"]}";
173
SetUpTestCase(void)174 void WallpaperTest::SetUpTestCase(void)
175 {
176 HILOG_INFO("SetUpTestCase");
177 GrantNativePermission();
178 CreateTempImage();
179 HILOG_INFO("SetUpTestCase end");
180 }
181
TearDownTestCase(void)182 void WallpaperTest::TearDownTestCase(void)
183 {
184 HILOG_INFO("TearDownTestCase");
185 ApiInfo apiInfo{ false, false };
186 WallpaperManager::GetInstance().ResetWallpaper(SYSTYEM, apiInfo);
187 WallpaperManager::GetInstance().ResetWallpaper(LOCKSCREEN, apiInfo);
188 auto ret = SetSelfTokenID(selfTokenID_);
189 HILOG_INFO("SetSelfTokenID ret = %{public}d", ret);
190 }
191
SetUp(void)192 void WallpaperTest::SetUp(void)
193 {
194 }
195
TearDown(void)196 void WallpaperTest::TearDown(void)
197 {
198 }
199
200 class WallpaperEventListenerTestImpl : public WallpaperEventListener {
201 public:
202 std::vector<uint64_t> color_;
203 int32_t wallpaperType_;
204 WallpaperEventListenerTestImpl();
~WallpaperEventListenerTestImpl()205 ~WallpaperEventListenerTestImpl()
206 {
207 }
208
209 WallpaperEventListenerTestImpl(const WallpaperEventListenerTestImpl &) = delete;
210 WallpaperEventListenerTestImpl &operator=(const WallpaperEventListenerTestImpl &) = delete;
211 WallpaperEventListenerTestImpl(WallpaperEventListenerTestImpl &&) = delete;
212 WallpaperEventListenerTestImpl &operator=(WallpaperEventListenerTestImpl &&) = delete;
213
214 // callback function will be called when the db data is changed.
215 void OnColorsChange(const std::vector<uint64_t> &color, int32_t wallpaperType) override;
216 void OnWallpaperChange(
217 WallpaperType wallpaperType, WallpaperResourceType resourceType, const std::string &uri) override;
218 // reset the callCount_ to zero.
219 void ResetToZero();
220
221 unsigned long GetCallCount() const;
222
223 private:
224 unsigned long callCount_;
225 };
226
OnColorsChange(const std::vector<uint64_t> & color,int32_t wallpaperType)227 void WallpaperEventListenerTestImpl::OnColorsChange(const std::vector<uint64_t> &color, int32_t wallpaperType)
228 {
229 callCount_++;
230 for (auto const &each : color) {
231 color_.push_back(each);
232 }
233 wallpaperType_ = wallpaperType;
234 }
235
OnWallpaperChange(WallpaperType wallpaperType,WallpaperResourceType resourceType,const std::string & uri)236 void WallpaperEventListenerTestImpl::OnWallpaperChange(
237 WallpaperType wallpaperType, WallpaperResourceType resourceType, const std::string &uri)
238 {
239 HILOG_INFO("wallpaperType: %{public}d, resourceType: %{public}d, uri: %{public}s",
240 static_cast<int32_t>(wallpaperType), static_cast<int32_t>(resourceType), uri.c_str());
241 }
242
WallpaperEventListenerTestImpl()243 WallpaperEventListenerTestImpl::WallpaperEventListenerTestImpl()
244 {
245 callCount_ = 0;
246 wallpaperType_ = -1;
247 }
248
ResetToZero()249 void WallpaperEventListenerTestImpl::ResetToZero()
250 {
251 callCount_ = 0;
252 }
253
GetCallCount() const254 unsigned long WallpaperEventListenerTestImpl::GetCallCount() const
255 {
256 return callCount_;
257 }
258
CreateTempImage()259 void WallpaperTest::CreateTempImage()
260 {
261 std::shared_ptr<PixelMap> pixelMap = CreateTempPixelMap();
262 ImagePacker imagePacker;
263 PackOption option;
264 option.format = "image/jpeg";
265 option.quality = HUNDRED;
266 option.numberHint = 1;
267 std::set<std::string> formats;
268 imagePacker.GetSupportedFormats(formats);
269 imagePacker.StartPacking(URI, option);
270 HILOG_INFO("AddImage start");
271 imagePacker.AddImage(*pixelMap);
272 int64_t packedSize = 0;
273 HILOG_INFO("FinalizePacking start");
274 imagePacker.FinalizePacking(packedSize);
275 if (packedSize == 0) {
276 HILOG_INFO("FinalizePacking error");
277 }
278 }
279
CreateTempPixelMap()280 std::shared_ptr<PixelMap> WallpaperTest::CreateTempPixelMap()
281 {
282 uint32_t color[100] = { 3, 7, 9, 9, 7, 6 };
283 InitializationOptions opts = { { 5, 7 }, OHOS::Media::PixelFormat::ARGB_8888 };
284 std::unique_ptr<PixelMap> uniquePixelMap = PixelMap::Create(color, sizeof(color) / sizeof(color[0]), opts);
285 std::shared_ptr<PixelMap> pixelMap = std::move(uniquePixelMap);
286 return pixelMap;
287 }
288
SubscribeCommonEvent(shared_ptr<WallpaperService> wallpaperService)289 bool WallpaperTest::SubscribeCommonEvent(shared_ptr<WallpaperService> wallpaperService)
290 {
291 subscriber = std::make_shared<WallpaperCommonEventSubscriber>(*wallpaperService);
292 if (subscriber == nullptr) {
293 HILOG_INFO("wallpaperCommonEvent is nullptr");
294 return false;
295 }
296 if (!EventFwk::CommonEventManager::SubscribeCommonEvent(subscriber)) {
297 HILOG_INFO("SubscribeCommonEvent failed");
298 return false;
299 }
300 return true;
301 }
302
TriggerEvent(int32_t userId,const std::string & commonEventSupport)303 void WallpaperTest::TriggerEvent(int32_t userId, const std::string &commonEventSupport)
304 {
305 EventFwk::Want want;
306 want.SetAction(commonEventSupport);
307 int32_t code = userId;
308 std::string data(commonEventSupport);
309 EventFwk::CommonEventData eventData(want, code, data);
310 subscriber->OnReceiveEvent(eventData);
311 }
312
GetUserFilePath(int32_t userId,const char * filePath)313 std::string WallpaperTest::GetUserFilePath(int32_t userId, const char *filePath)
314 {
315 return WALLPAPER_DEFAULT_PATH + std::string("/") + std::to_string(userId) + filePath;
316 }
317
TestCallBack(int32_t num)318 bool WallpaperTest::TestCallBack(int32_t num)
319 {
320 if (num > 0) {
321 return true;
322 }
323 return false;
324 }
325 /********************* ResetWallpaper *********************/
326 /**
327 * @tc.name: Reset001
328 * @tc.desc: Reset wallpaper with wallpaperType[0].
329 * @tc.type: FUNC
330 * @tc.require: issueI5UHRG
331 */
332 HWTEST_F(WallpaperTest, Reset001, TestSize.Level1)
333 {
334 HILOG_INFO("Reset001 begin.");
335 ApiInfo apiInfo{ false, false };
336 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().ResetWallpaper(SYSTYEM, apiInfo);
337 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to reset.";
338 }
339
340 /**
341 * @tc.name: Reset002
342 * @tc.desc: Reset wallpaper with wallpaperType[1].
343 * @tc.type: FUNC
344 * @tc.require: issueI5UHRG
345 */
346 HWTEST_F(WallpaperTest, Reset002, TestSize.Level1)
347 {
348 HILOG_INFO("Reset002 begin.");
349 ApiInfo apiInfo{ false, false };
350 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().ResetWallpaper(LOCKSCREEN, apiInfo);
351 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to reset.";
352 }
353
354 /**
355 * @tc.name: Reset003
356 * @tc.desc: Reset wallpaper with wallpaperType[2] throw parameters error.
357 * @tc.type: FUNC
358 * @tc.require: issueI5UHRG
359 */
360 HWTEST_F(WallpaperTest, Reset003, TestSize.Level1)
361 {
362 HILOG_INFO("Reset003 begin.");
363 ApiInfo apiInfo{ false, false };
364 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().ResetWallpaper(INVALID_WALLPAPER_TYPE, apiInfo);
365 EXPECT_EQ(wallpaperErrorCode, E_PARAMETERS_INVALID) << "Failed to throw error.";
366 }
367
368 /**
369 * @tc.name: Reset004
370 * @tc.desc: Reset wallpaper with wallpaperType[0] after resetting wallpaper[0].
371 * @tc.type: FUNC
372 * @tc.require: issueI5UHRG
373 */
374 HWTEST_F(WallpaperTest, Reset004, TestSize.Level1)
375 {
376 HILOG_INFO("Reset004 begin.");
377 ApiInfo apiInfo{ false, false };
378 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().ResetWallpaper(SYSTYEM, apiInfo);
379 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to reset.";
380
381 /* duplicate reset */
382 wallpaperErrorCode = WallpaperManager::GetInstance().ResetWallpaper(SYSTYEM, apiInfo);
383 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to reset.";
384 }
385
386 /**
387 * @tc.name: Reset005
388 * @tc.desc: Reset wallpaper with wallpaperType[1] after resetting wallpaper[1] and check whether Id is same one.
389 * @tc.type: FUNC
390 * @tc.require: issueI5UHRG
391 */
392 HWTEST_F(WallpaperTest, Reset005, TestSize.Level1)
393 {
394 HILOG_INFO("Reset005 begin.");
395 ApiInfo apiInfo{ false, false };
396 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().ResetWallpaper(LOCKSCREEN, apiInfo);
397 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to reset.";
398 int32_t firstId = WallpaperManager::GetInstance().GetWallpaperId(LOCKSCREEN);
399
400 /* duplicate reset */
401 wallpaperErrorCode = WallpaperManager::GetInstance().ResetWallpaper(LOCKSCREEN, apiInfo);
402 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to reset.";
403 int32_t secondId = WallpaperManager::GetInstance().GetWallpaperId(LOCKSCREEN);
404 EXPECT_EQ(firstId, secondId) << "Id should be same one.";
405 }
406
407 /**
408 * @tc.name: Reset006
409 * @tc.desc: Reset wallpaper throw permission error
410 * @tc.type: FUNC
411 * @tc.require: issueI5UHRG
412 */
413 HWTEST_F(WallpaperTest, Reset006, TestSize.Level1)
414 {
415 HILOG_INFO("Reset006 begin.");
416 ApiInfo apiInfo{ true, true };
417 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().ResetWallpaper(LOCKSCREEN, apiInfo);
418 EXPECT_EQ(wallpaperErrorCode, E_OK);
419 wallpaperErrorCode = WallpaperManager::GetInstance().ResetWallpaper(SYSTYEM, apiInfo);
420 EXPECT_EQ(wallpaperErrorCode, E_OK);
421 }
422 /********************* ResetWallpaper *********************/
423
424 /********************* IsChangePermitted *********************/
425
426 /**
427 * @tc.name: IsChangePermitted001
428 * @tc.desc: check permission.
429 * @tc.type: FUNC
430 * @tc.require:
431 * @tc.author:
432 */
433 HWTEST_F(WallpaperTest, IsChangePermitted001, TestSize.Level1)
434 {
435 EXPECT_EQ(WallpaperManager::GetInstance().IsChangePermitted(), true);
436 }
437
438 /********************* IsChangePermitted *********************/
439
440 /********************* IsOperationAllowed *********************/
441
442 /**
443 * @tc.name: IsOperationAllowed001
444 * @tc.desc: check permission.
445 * @tc.type: FUNC
446 * @tc.require:
447 * @tc.author:
448 */
449 HWTEST_F(WallpaperTest, IsOperationAllowed001, TestSize.Level1)
450 {
451 EXPECT_EQ(WallpaperManager::GetInstance().IsOperationAllowed(), true);
452 }
453
454 /********************* IsOperationAllowed *********************/
455
456 /********************* On & Off *********************/
457
458 /**
459 * @tc.name: On001
460 * @tc.desc: set wallpaper and get callback.
461 * @tc.type: FUNC
462 * @tc.require:
463 * @tc.author:
464 */
465 HWTEST_F(WallpaperTest, On001, TestSize.Level1)
466 {
467 HILOG_INFO("On001 begin");
468 auto listener = std::make_shared<WallpaperEventListenerTestImpl>();
469 auto status = WallpaperManager::GetInstance().On("colorChange", listener);
470 EXPECT_EQ(status, E_OK) << "subscribe wallpaper color change failed.";
471 auto offSubStatus = WallpaperManager::GetInstance().Off("colorChange", listener);
472 EXPECT_EQ(offSubStatus, E_OK) << "unsubscribe wallpaper color change failed.";
473 }
474
475 /**
476 * @tc.name: On002
477 * @tc.desc: set wallpaper and get callback.
478 * @tc.type: FUNC
479 * @tc.require:
480 * @tc.author:
481 */
482 HWTEST_F(WallpaperTest, On002, TestSize.Level1)
483 {
484 HILOG_INFO("On002 begin");
485 auto listener = std::make_shared<WallpaperEventListenerTestImpl>();
486 auto status = WallpaperManager::GetInstance().On("wallpaperChange", listener);
487 EXPECT_EQ(status, E_OK);
488 auto offSubStatus = WallpaperManager::GetInstance().Off("wallpaperChange", listener);
489 EXPECT_EQ(offSubStatus, E_OK);
490 }
491
492 /********************* On & Off *********************/
493
494 /********************* GetColors *********************/
495 /**
496 * @tc.name: GetColors001
497 * @tc.desc: GetColors with wallpaperType[0].
498 * @tc.type: FUNC
499 * @tc.require:
500 * @tc.author:
501 */
502 HWTEST_F(WallpaperTest, GetColors001, TestSize.Level0)
503 {
504 HILOG_INFO("GetColors001 begin");
505 std::vector<uint64_t> colors;
506 ApiInfo apiInfo{ false, false };
507 ErrorCode errorCode = WallpaperManager::GetInstance().GetColors(SYSTYEM, apiInfo, colors);
508 EXPECT_EQ(errorCode, E_OK) << "Failed to GetColors.";
509 EXPECT_FALSE(colors.empty());
510 }
511
512 /**
513 * @tc.name: GetColors002
514 * @tc.desc: GetColors with wallpaperType[1].
515 * @tc.type: FUNC
516 * @tc.require:
517 * @tc.author:
518 */
519 HWTEST_F(WallpaperTest, GetColors002, TestSize.Level0)
520 {
521 HILOG_INFO("GetColors002 begin");
522 std::vector<uint64_t> colors;
523 ApiInfo apiInfo{ false, false };
524 ErrorCode errorCode = WallpaperManager::GetInstance().GetColors(LOCKSCREEN, apiInfo, colors);
525 EXPECT_EQ(errorCode, E_OK) << "Failed to GetColors.";
526 EXPECT_FALSE(colors.empty());
527 }
528
529 /**
530 * @tc.name: GetColors003
531 * @tc.desc: GetColors throw permission error.
532 * @tc.type: FUNC
533 * @tc.require:
534 * @tc.author:
535 */
536 HWTEST_F(WallpaperTest, GetColors003, TestSize.Level0)
537 {
538 HILOG_INFO("GetColors003 begin");
539 std::vector<uint64_t> colors;
540 ApiInfo apiInfo{ true, true };
541 ErrorCode errorCode = WallpaperManager::GetInstance().GetColors(LOCKSCREEN, apiInfo, colors);
542 EXPECT_EQ(errorCode, E_OK);
543 errorCode = WallpaperManager::GetInstance().GetColors(SYSTYEM, apiInfo, colors);
544 EXPECT_EQ(errorCode, E_OK);
545 }
546 /********************* GetColors *********************/
547
548 /********************* GetId *********************/
549 /**
550 * @tc.name: GetId001
551 * @tc.desc: GetId with wallpaperType[0].
552 * @tc.type: FUNC
553 * @tc.require: issueI65VF1
554 * @tc.author: lvbai
555 */
556 HWTEST_F(WallpaperTest, GetId001, TestSize.Level0)
557 {
558 HILOG_INFO("GetId001 begin");
559 ApiInfo apiInfo{ false, false };
560 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().ResetWallpaper(SYSTYEM, apiInfo);
561 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to ResetWallpaper";
562 int32_t id = WallpaperManager::GetInstance().GetWallpaperId(SYSTYEM);
563 EXPECT_EQ(id, DEFAULT_WALLPAPER_ID) << "Failed to GetId";
564 }
565
566 /**
567 * @tc.name: GetId002
568 * @tc.desc: GetId with wallpaperType[1].
569 * @tc.type: FUNC
570 * @tc.require: issueI65VF1
571 * @tc.author: lvbai
572 */
573 HWTEST_F(WallpaperTest, GetId002, TestSize.Level0)
574 {
575 HILOG_INFO("GetId002 begin");
576 ApiInfo apiInfo{ false, false };
577 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().ResetWallpaper(LOCKSCREEN, apiInfo);
578 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to ResetWallpaper";
579 int32_t id = WallpaperManager::GetInstance().GetWallpaperId(LOCKSCREEN);
580 EXPECT_EQ(id, DEFAULT_WALLPAPER_ID) << "Failed to GetId";
581 }
582
583 /**
584 * @tc.name: GetId003
585 * @tc.desc: GetId with wallpaperType[0] after setWallpaper.
586 * @tc.type: FUNC
587 * @tc.require: issueI65VF1
588 * @tc.author: lvbai
589 */
590 HWTEST_F(WallpaperTest, GetId003, TestSize.Level0)
591 {
592 HILOG_INFO("GetId003 begin");
593 ApiInfo apiInfo{ false, false };
594 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().SetWallpaper(URI, SYSTYEM, apiInfo);
595 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to SetWallpaper";
596 int32_t id = WallpaperManager::GetInstance().GetWallpaperId(SYSTYEM);
597 EXPECT_GT(id, DEFAULT_WALLPAPER_ID) << "Failed to GetId";
598 }
599
600 /**
601 * @tc.name: GetId004
602 * @tc.desc: GetId with wallpaperType[1] after setWallpaper.
603 * @tc.type: FUNC
604 * @tc.require: issueI65VF1
605 * @tc.author: lvbai
606 */
607 HWTEST_F(WallpaperTest, GetId004, TestSize.Level0)
608 {
609 HILOG_INFO("GetId004 begin");
610 ApiInfo apiInfo{ false, false };
611 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().SetWallpaper(URI, LOCKSCREEN, apiInfo);
612 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to SetWallpaper";
613 int32_t id = WallpaperManager::GetInstance().GetWallpaperId(LOCKSCREEN);
614 EXPECT_GT(id, DEFAULT_WALLPAPER_ID) << "Failed to GetId";
615 }
616 /********************* GetId *********************/
617
618 /********************* GetFile *********************/
619 /**
620 * @tc.name: GetFile001
621 * @tc.desc: GetFile with wallpaperType[0].
622 * @tc.type: FUNC
623 * @tc.require: issueI5UHRG
624 */
625 HWTEST_F(WallpaperTest, GetFile001, TestSize.Level0)
626 {
627 HILOG_INFO("GetFile001 begin");
628 int32_t wallpaperFd = 0;
629 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().GetFile(SYSTYEM, wallpaperFd);
630 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to get File.";
631 }
632
633 /**
634 * @tc.name: GetFile002
635 * @tc.desc: GetFile with wallpaperType[1].
636 * @tc.type: FUNC
637 * @tc.require: issueI5UHRG
638 */
639 HWTEST_F(WallpaperTest, GetFile002, TestSize.Level0)
640 {
641 HILOG_INFO("GetFile002 begin");
642 int32_t wallpaperFd = 0;
643 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().GetFile(LOCKSCREEN, wallpaperFd);
644 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to get File.";
645 }
646
647 /**
648 * @tc.name: GetFile003
649 * @tc.desc: GetFile with wallpaperType[2] throw parameters error.
650 * @tc.type: FUNC
651 * @tc.require: issueI5UHRG
652 */
653 HWTEST_F(WallpaperTest, GetFile003, TestSize.Level0)
654 {
655 HILOG_INFO("GetFile003 begin");
656 int32_t wallpaperFd = 0;
657 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().GetFile(INVALID_WALLPAPER_TYPE, wallpaperFd);
658 EXPECT_EQ(wallpaperErrorCode, E_PARAMETERS_INVALID) << "Failed to throw parameters error";
659 }
660
661 /**
662 * @tc.name: GetFile004
663 * @tc.desc: GetFile with wallpaperType[0].
664 * @tc.type: FUNC
665 * @tc.require:
666 * @tc.author:
667 */
668 HWTEST_F(WallpaperTest, GetFile004, TestSize.Level0)
669 {
670 HILOG_INFO("GetFile001 begin");
671 int32_t wallpaperFd = 0;
672 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().GetFile(SYSTYEM, wallpaperFd);
673 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to get File.";
674 }
675 /********************* GetFile *********************/
676
677 /********************* GetWallpaperMinHeight *********************/
678 /**
679 * @tc.name: getMinHeight001
680 * @tc.desc: GetWallpaperMinHeight .
681 * @tc.type: FUNC
682 * @tc.require:
683 */
684 HWTEST_F(WallpaperTest, getMinHeight001, TestSize.Level0)
685 {
686 HILOG_INFO("getMinHeight001 begin");
687 int32_t height = 0;
688 ApiInfo apiInfo{ false, false };
689 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().GetWallpaperMinHeight(apiInfo, height);
690 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to get WallpaperMinHeight.";
691 EXPECT_GT(height, 0);
692 }
693
694 /**
695 * @tc.name: getMinHeight002
696 * @tc.desc: GetWallpaperMinHeight throw permission error.
697 * @tc.type: FUNC
698 * @tc.require:
699 */
700 HWTEST_F(WallpaperTest, getMinHeight002, TestSize.Level0)
701 {
702 HILOG_INFO("getMinHeight002 begin");
703 int32_t height = 0;
704 ApiInfo apiInfo{ true, true };
705 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().GetWallpaperMinHeight(apiInfo, height);
706 EXPECT_EQ(wallpaperErrorCode, E_OK);
707 }
708 /********************* GetWallpaperMinHeight *********************/
709
710 /********************* GetWallpaperMinWidth *********************/
711 /**
712 * @tc.name: getMinWidth001
713 * @tc.desc: GetWallpaperMinWidth .
714 * @tc.type: FUNC
715 * @tc.require:
716 */
717 HWTEST_F(WallpaperTest, getMinWidth001, TestSize.Level0)
718 {
719 HILOG_INFO("getMinWidth001 begin");
720 int32_t width = 0;
721 ApiInfo apiInfo{ false, false };
722 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().GetWallpaperMinWidth(apiInfo, width);
723 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to get WallpaperMinWidth.";
724 EXPECT_GT(width, 0);
725 }
726
727 /**
728 * @tc.name: getMinWidth002
729 * @tc.desc: GetWallpaperMinWidth throw permission error.
730 * @tc.type: FUNC
731 * @tc.require:
732 */
733 HWTEST_F(WallpaperTest, getMinWidth002, TestSize.Level0)
734 {
735 HILOG_INFO("getMinWidth002 begin");
736 int32_t width = 0;
737 ApiInfo apiInfo{ true, true };
738 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().GetWallpaperMinWidth(apiInfo, width);
739 EXPECT_EQ(wallpaperErrorCode, E_OK);
740 }
741 /********************* GetWallpaperMinWidth *********************/
742
743 /********************* GetPixelMap *********************/
744 /**
745 * @tc.name: GetPixelMap001
746 * @tc.desc: GetPixelMap with wallpaperType[0].
747 * @tc.type: FUNC
748 * @tc.require: issueI5UHRG
749 */
750 HWTEST_F(WallpaperTest, GetPixelMap001, TestSize.Level0)
751 {
752 HILOG_INFO("GetPixelMap001 begin");
753 std::shared_ptr<OHOS::Media::PixelMap> pixelMap;
754 ApiInfo apiInfo{ false, false };
755 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().GetPixelMap(SYSTYEM, apiInfo, pixelMap);
756 EXPECT_EQ(wallpaperErrorCode, E_OK);
757 }
758
759 /**
760 * @tc.name: GetPixelMap002
761 * @tc.desc: GetPixelMap with wallpaperType[1].
762 * @tc.type: FUNC
763 * @tc.require: issueI5UHRG
764 */
765 HWTEST_F(WallpaperTest, GetPixelMap002, TestSize.Level0)
766 {
767 HILOG_INFO("GetPixelMap002 begin");
768 std::shared_ptr<OHOS::Media::PixelMap> pixelMap;
769 ApiInfo apiInfo{ false, false };
770 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().GetPixelMap(LOCKSCREEN, apiInfo, pixelMap);
771 EXPECT_EQ(wallpaperErrorCode, E_OK);
772 }
773
774 /**
775 * @tc.name: GetPixelMap003
776 * @tc.desc: GetPixelMap throw permission error.
777 * @tc.type: FUNC
778 * @tc.require:
779 */
780 HWTEST_F(WallpaperTest, GetPixelMap003, TestSize.Level0)
781 {
782 HILOG_INFO("GetPixelMap003 begin");
783 std::shared_ptr<OHOS::Media::PixelMap> pixelMap;
784 ApiInfo apiInfo{ true, true };
785 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().GetPixelMap(LOCKSCREEN, apiInfo, pixelMap);
786 EXPECT_EQ(wallpaperErrorCode, E_OK);
787 wallpaperErrorCode = WallpaperManager::GetInstance().GetPixelMap(SYSTYEM, apiInfo, pixelMap);
788 EXPECT_EQ(wallpaperErrorCode, E_OK);
789 }
790 /********************* GetPixelMap *********************/
791
792 /********************* SetWallpaperByMap *********************/
793 /**
794 * @tc.name: SetWallpaperByMap001
795 * @tc.desc: SetWallpaperByMap with wallpaperType[0].
796 * @tc.type: FUNC
797 * @tc.require: issueI5UHRG
798 */
799 HWTEST_F(WallpaperTest, SetWallpaperByMap001, TestSize.Level0)
800 {
801 HILOG_INFO("SetWallpaperByMap001 begin");
802 std::shared_ptr<PixelMap> pixelMap = WallpaperTest::CreateTempPixelMap();
803 ApiInfo apiInfo{ false, false };
804 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().SetWallpaper(pixelMap, SYSTYEM, apiInfo);
805 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to set SYSTYEM PixelMap.";
806 apiInfo.isSystemApi = true;
807 wallpaperErrorCode = WallpaperManager::GetInstance().SetWallpaper(pixelMap, SYSTYEM, apiInfo);
808 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to set SYSTYEM PixelMap.";
809 }
810
811 /**
812 * @tc.name: SetWallpaperByMap002
813 * @tc.desc: SetWallpaperByMap with wallpaperType[1].
814 * @tc.type: FUNC
815 * @tc.require: issueI5UHRG
816 */
817 HWTEST_F(WallpaperTest, SetWallpaperByMap002, TestSize.Level0)
818 {
819 HILOG_INFO("SetWallpaperByMap002 begin");
820 std::shared_ptr<PixelMap> pixelMap = WallpaperTest::CreateTempPixelMap();
821 ApiInfo apiInfo{ false, false };
822 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().SetWallpaper(pixelMap, LOCKSCREEN, apiInfo);
823 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to set LOCKSCREEN PixelMap.";
824 apiInfo.isSystemApi = true;
825 wallpaperErrorCode = WallpaperManager::GetInstance().SetWallpaper(pixelMap, LOCKSCREEN, apiInfo);
826 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to set LOCKSCREEN PixelMap.";
827 }
828
829 /**
830 * @tc.name: SetWallpaperByMap003
831 * @tc.desc: SetWallpaperByMap with wallpaperType[2] throw parameters error.
832 * @tc.type: FUNC
833 * @tc.require: issueI5UHRG
834 */
835 HWTEST_F(WallpaperTest, SetWallpaperByMap003, TestSize.Level0)
836 {
837 HILOG_INFO("SetWallpaperByMap003 begin");
838 std::shared_ptr<PixelMap> pixelMap = WallpaperTest::CreateTempPixelMap();
839 ApiInfo apiInfo{ false, false };
840 ErrorCode wallpaperErrorCode =
841 WallpaperManager::GetInstance().SetWallpaper(pixelMap, INVALID_WALLPAPER_TYPE, apiInfo);
842 EXPECT_EQ(wallpaperErrorCode, E_PARAMETERS_INVALID) << "Failed to throw parameters error";
843 }
844 /********************* SetWallpaperByMap *********************/
845
846 /********************* SetWallpaperByUri *********************/
847 /**
848 * @tc.name: SetWallpaperByUri001
849 * @tc.desc: SetWallpaperByUri with wallpaperType[0] .
850 * @tc.type: FUNC
851 * @tc.require: issueI5UHRG
852 */
853 HWTEST_F(WallpaperTest, SetWallpaperByUri001, TestSize.Level0)
854 {
855 HILOG_INFO("SetWallpaperByUri001 begin");
856 ApiInfo apiInfo{ false, false };
857 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().SetWallpaper(URI, SYSTYEM, apiInfo);
858 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to set SYSTYEM.";
859 }
860
861 /**
862 * @tc.name: SetWallpaperByUri002
863 * @tc.desc: SetWallpaperByUri with wallpaperType[1].
864 * @tc.type: FUNC
865 * @tc.require: issueI5UHRG
866 */
867 HWTEST_F(WallpaperTest, SetWallpaperByUri002, TestSize.Level0)
868 {
869 HILOG_INFO("SetWallpaperByUri002 begin");
870 ApiInfo apiInfo{ false, false };
871 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().SetWallpaper(URI, LOCKSCREEN, apiInfo);
872 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to set LOCKSCREEN.";
873 }
874
875 /**
876 * @tc.name: SetWallpaperByUri003
877 * @tc.desc: SetWallpaperByUri with wallpaperType[2] throw parameters error.
878 * @tc.type: FUNC
879 * @tc.require: issueI5UHRG
880 */
881 HWTEST_F(WallpaperTest, SetWallpaperByUri003, TestSize.Level0)
882 {
883 HILOG_INFO("SetWallpaperByUri003 begin");
884 ApiInfo apiInfo{ false, false };
885 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().SetWallpaper(URI, INVALID_WALLPAPER_TYPE, apiInfo);
886 EXPECT_EQ(wallpaperErrorCode, E_PARAMETERS_INVALID) << "Failed to throw error";
887 }
888
889 /**
890 * @tc.name: SetWallpaperByUri004
891 * @tc.desc: SetWallpaperByUri with error uri.
892 * @tc.type: FUNC
893 * @tc.require: issueI5UHRG
894 */
895 HWTEST_F(WallpaperTest, SetWallpaperByUri004, TestSize.Level0)
896 {
897 HILOG_INFO("SetWallpaperByUri004 begin");
898 ApiInfo apiInfo{ false, false };
899 ErrorCode wallpaperErrorCode =
900 WallpaperManager::GetInstance().SetWallpaper("/data/test/theme/wallpaper/errorURI", LOCKSCREEN, apiInfo);
901 EXPECT_NE(wallpaperErrorCode, E_OK) << "Failed to throw error";
902 }
903
904 /**
905 * @tc.name: SetWallpaperByUri005
906 * @tc.desc: SetWallpaperByUri with unsafe uri.
907 * @tc.type: FUNC
908 * @tc.require: issueI647HI
909 */
910 HWTEST_F(WallpaperTest, SetWallpaperByUri005, TestSize.Level0)
911 {
912 HILOG_INFO("SetWallpaperByUri005 begin");
913 ApiInfo apiInfo{ false, false };
914 ErrorCode wallpaperErrorCode =
915 WallpaperManager::GetInstance().SetWallpaper("../data/test/theme/wallpaper/errorURI", LOCKSCREEN, apiInfo);
916 EXPECT_EQ(wallpaperErrorCode, E_PARAMETERS_INVALID) << "Failed to return error";
917 }
918
919 /**
920 * @tc.name: SetWallpaperByUri006
921 * @tc.desc: SetWallpaperByUri throw permission error.
922 * @tc.type: FUNC
923 * @tc.require:
924 */
925 HWTEST_F(WallpaperTest, SetWallpaperByUri006, TestSize.Level0)
926 {
927 HILOG_INFO("SetWallpaperByUri006 begin");
928 ApiInfo apiInfo{ true, true };
929 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().SetWallpaper(URI, LOCKSCREEN, apiInfo);
930 EXPECT_EQ(wallpaperErrorCode, E_OK);
931 wallpaperErrorCode = WallpaperManager::GetInstance().SetWallpaper(URI, SYSTYEM, apiInfo);
932 EXPECT_EQ(wallpaperErrorCode, E_OK);
933 }
934
935 /**
936 * @tc.name: SetWallpaperByUri007
937 * @tc.desc: SetWallpaperByUri throw permission error.
938 * @tc.type: FUNC
939 * @tc.require:
940 */
941 HWTEST_F(WallpaperTest, SetWallpaperByUri007, TestSize.Level0)
942 {
943 HILOG_INFO("SetWallpaperByUri007 begin");
944 ApiInfo apiInfo{ true, true };
945 WallpaperManager::GetInstance().ResetWallpaper(LOCKSCREEN, apiInfo);
946 std::shared_ptr<WallpaperService> wallpaperService = std::make_shared<WallpaperService>();
947 int32_t userId = wallpaperService->QueryActiveUserId();
948 HILOG_INFO("guochao userId:%{public}d", userId);
949 bool ret = FileDeal::IsFileExist(WallpaperTest::GetUserFilePath(userId, LOCKSCREEN_FILE));
950 EXPECT_EQ(ret, false) << "Failed to reset.";
951 WallpaperManager::GetInstance().SetWallpaper(URI, LOCKSCREEN, apiInfo);
952 ret = FileDeal::IsFileExist(WallpaperTest::GetUserFilePath(userId, LOCKSCREEN_FILE));
953 EXPECT_EQ(ret, true);
954 WallpaperManager::GetInstance().ResetWallpaper(LOCKSCREEN, apiInfo);
955 }
956
957 /********************* SetWallpaperByUri *********************/
958
959 /********************* FILE_DEAL *********************/
960 /**
961 * @tc.name: FILE_DEAL001
962 * @tc.desc: File operation-related interfaces
963 * @tc.type: FUNC
964 * @tc.require:
965 * @tc.author:
966 */
967 HWTEST_F(WallpaperTest, FILE_DEAL001, TestSize.Level0)
968 {
969 HILOG_INFO("FILE_DEAL001 begin");
970 FileDeal fileOperation;
971 bool isExist = fileOperation.Mkdir("/data/test/theme/wallpaper/");
972 EXPECT_EQ(isExist, true);
973 isExist = fileOperation.Mkdir("/data/test/theme/errorURI/");
974 EXPECT_EQ(isExist, true);
975 isExist = fileOperation.IsFileExist(URI);
976 EXPECT_EQ(isExist, true);
977 isExist = fileOperation.IsFileExist("/data/test/theme/wallpaper/errorURI");
978 EXPECT_EQ(isExist, false);
979 }
980 /********************* FILE_DEAL *********************/
981
982 /**
983 * @tc.name: SetWallpaper001
984 * @tc.desc: SetWallpaper with error length
985 * @tc.type: FUNC
986 * @tc.require: issueI6AW6M
987 * @tc.author: weishaoxiong
988 */
989 HWTEST_F(WallpaperTest, SetWallpaper001, TestSize.Level0)
990 {
991 HILOG_INFO("SetWallpaper001 begin");
992 std::shared_ptr<WallpaperService> wallpaperService = std::make_shared<WallpaperService>();
993 ErrCode wallpaperErrorCode = wallpaperService->SetWallpaper(0, 0, -1);
994 EXPECT_EQ(wallpaperErrorCode, E_PARAMETERS_INVALID) << "Failed to throw error";
995 wallpaperErrorCode = wallpaperService->SetWallpaper(0, 0, FOO_MAX_LEN);
996
997 EXPECT_EQ(wallpaperErrorCode, E_PICTURE_OVERSIZED) << "Failed to throw error";
998 }
999
1000 /********************* USER_DEAL *********************/
1001 /**
1002 * @tc.name: AddUsersDeal001
1003 * @tc.desc: Create a user directory after the user is added
1004 * @tc.type: FUNC
1005 * @tc.require: issueI6DWHR
1006 */
1007 HWTEST_F(WallpaperTest, AddUsersDeal001, TestSize.Level0)
1008 {
1009 std::shared_ptr<WallpaperService> wallpaperService = std::make_shared<WallpaperService>();
1010 bool ret = WallpaperTest::SubscribeCommonEvent(wallpaperService);
1011 ASSERT_EQ(ret, true);
1012 std::string commonEvent = EventFwk::CommonEventSupport::COMMON_EVENT_USER_ADDED;
1013 WallpaperTest::TriggerEvent(TEST_USERID, commonEvent);
1014 ret = FileDeal::IsDirExist(WallpaperTest::GetUserFilePath(TEST_USERID, SYSTEM_DIR));
1015 EXPECT_EQ(ret, true);
1016 ret = FileDeal::IsDirExist(WallpaperTest::GetUserFilePath(TEST_USERID, LOCKSCREEN_DIR));
1017 EXPECT_EQ(ret, true);
1018 std::string userDir = WALLPAPER_DEFAULT_PATH + std::string("/") + std::to_string(TEST_USERID);
1019 if (!OHOS::ForceRemoveDirectory(userDir)) {
1020 HILOG_ERROR("Force remove user directory path failed, errno %{public}d.", errno);
1021 }
1022 }
1023
1024 /**
1025 * @tc.name: RemovedUserDeal001
1026 * @tc.desc: delete a user directory after the user is removed
1027 * @tc.type: FUNC
1028 * @tc.require: issueI6DWHR
1029 */
1030 HWTEST_F(WallpaperTest, RemovedUserDeal001, TestSize.Level0)
1031 {
1032 std::shared_ptr<WallpaperService> wallpaperService = std::make_shared<WallpaperService>();
1033 ASSERT_EQ(WallpaperTest::SubscribeCommonEvent(wallpaperService), true);
1034 std::string commonEvent = EventFwk::CommonEventSupport::COMMON_EVENT_USER_ADDED;
1035 WallpaperTest::TriggerEvent(TEST_USERID, commonEvent);
1036 std::string userDir = WALLPAPER_DEFAULT_PATH + std::string("/") + std::to_string(TEST_USERID);
1037 ASSERT_EQ(FileDeal::IsDirExist(userDir), true);
1038
1039 commonEvent = EventFwk::CommonEventSupport::COMMON_EVENT_USER_REMOVED;
1040 WallpaperTest::TriggerEvent(TEST_USERID, commonEvent);
1041 EXPECT_EQ(FileDeal::IsDirExist(userDir), false);
1042 if (!OHOS::ForceRemoveDirectory(userDir)) {
1043 HILOG_ERROR("Force remove user directory path failed, errno %{public}d.", errno);
1044 }
1045 }
1046
1047 /**
1048 * @tc.name: SwitchedUserIdDeal001
1049 * @tc.desc: The wallpaper has changed after switched user
1050 * @tc.type: FUNC
1051 * @tc.require: issueI6DWHR
1052 */
1053 HWTEST_F(WallpaperTest, SwitchedUserIdDeal001, TestSize.Level0)
1054 {
1055 std::shared_ptr<WallpaperService> wallpaperService = std::make_shared<WallpaperService>();
1056 wallpaperService->InitServiceHandler();
1057 ASSERT_EQ(WallpaperTest::SubscribeCommonEvent(wallpaperService), true);
1058 ApiInfo apiInfo{ false, false };
1059 std::vector<int32_t> ids;
1060 AccountSA::OsAccountManager::QueryActiveOsAccountIds(ids);
1061 int32_t beforeUserId = ids.empty() ? DEFAULT_USERID : ids[0];
1062 std::string addCommonEvent = EventFwk::CommonEventSupport::COMMON_EVENT_USER_ADDED;
1063 WallpaperTest::TriggerEvent(TEST_USERID, addCommonEvent);
1064 std::string userDir = WALLPAPER_DEFAULT_PATH + std::string("/") + std::to_string(TEST_USERID);
1065 ASSERT_EQ(FileDeal::IsDirExist(userDir), true);
1066 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().ResetWallpaper(LOCKSCREEN, apiInfo);
1067 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to reset lockscreen wallpaper";
1068
1069 std::vector<uint64_t> oldLockscreenColor;
1070 wallpaperErrorCode = WallpaperManager::GetInstance().GetColors(LOCKSCREEN, apiInfo, oldLockscreenColor);
1071 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetColors";
1072 wallpaperErrorCode = WallpaperManager::GetInstance().ResetWallpaper(SYSTYEM, apiInfo);
1073 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to reset system wallpaper";
1074 std::vector<uint64_t> oldSystemColor;
1075 wallpaperErrorCode = WallpaperManager::GetInstance().GetColors(SYSTYEM, apiInfo, oldSystemColor);
1076 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetColors";
1077
1078 std::string switchCommonEvent = EventFwk::CommonEventSupport::COMMON_EVENT_USER_SWITCHED;
1079 WallpaperTest::TriggerEvent(TEST_USERID, switchCommonEvent);
1080 wallpaperErrorCode = WallpaperManager::GetInstance().SetWallpaper(URI, LOCKSCREEN, apiInfo);
1081 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to set lockscreen wallpaper";
1082 std::vector<uint64_t> newLockscreenColor;
1083 wallpaperErrorCode = WallpaperManager::GetInstance().GetColors(LOCKSCREEN, apiInfo, newLockscreenColor);
1084 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetColors";
1085 wallpaperErrorCode = WallpaperManager::GetInstance().SetWallpaper(URI, SYSTYEM, apiInfo);
1086 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to set system wallpaper";
1087 std::vector<uint64_t> newSystemColor;
1088 wallpaperErrorCode = WallpaperManager::GetInstance().GetColors(SYSTYEM, apiInfo, newSystemColor);
1089 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetColors";
1090 EXPECT_NE(oldLockscreenColor, newLockscreenColor);
1091 EXPECT_NE(oldSystemColor, newSystemColor);
1092
1093 WallpaperTest::TriggerEvent(beforeUserId, switchCommonEvent);
1094 std::string removeCommonEvent = EventFwk::CommonEventSupport::COMMON_EVENT_USER_REMOVED;
1095 WallpaperTest::TriggerEvent(TEST_USERID, removeCommonEvent);
1096 EXPECT_EQ(FileDeal::IsDirExist(userDir), false);
1097 if (!OHOS::ForceRemoveDirectory(userDir)) {
1098 HILOG_ERROR("Force remove user directory path failed, errno %{public}d.", errno);
1099 }
1100 }
1101
1102 /**
1103 * @tc.name: InvalidUserIdDeal001
1104 * @tc.desc: Invalid user id deal
1105 * @tc.type: FUNC
1106 * @tc.require: issueI6DWHR
1107 */
1108 HWTEST_F(WallpaperTest, InvalidUserIdDeal001, TestSize.Level0)
1109 {
1110 std::shared_ptr<WallpaperService> wallpaperService = std::make_shared<WallpaperService>();
1111 wallpaperService->InitServiceHandler();
1112 ASSERT_EQ(WallpaperTest::SubscribeCommonEvent(wallpaperService), true);
1113 std::string commonEvent = EventFwk::CommonEventSupport::COMMON_EVENT_USER_ADDED;
1114 WallpaperTest::TriggerEvent(INVALID_USERID, commonEvent);
1115 std::string userDir = WALLPAPER_DEFAULT_PATH + std::string("/") + std::to_string(INVALID_USERID);
1116 EXPECT_EQ(FileDeal::IsDirExist(userDir), false);
1117 FileDeal::Mkdir(userDir);
1118 commonEvent = EventFwk::CommonEventSupport::COMMON_EVENT_USER_REMOVED;
1119 WallpaperTest::TriggerEvent(INVALID_USERID, commonEvent);
1120 EXPECT_EQ(FileDeal::IsDirExist(userDir), true);
1121 if (!OHOS::ForceRemoveDirectory(userDir)) {
1122 HILOG_ERROR("Force remove user directory path failed, errno %{public}d.", errno);
1123 }
1124 }
1125 /********************* USER_DEAL *********************/
1126
1127 /********************* SetVideo *********************/
1128 /**
1129 * @tc.name: SetVideo001
1130 * @tc.desc: SetVideo input error fileType
1131 * @tc.type: FUNC
1132 * @tc.require: issueI6R07J
1133 */
1134 HWTEST_F(WallpaperTest, SetVideo001, TestSize.Level0)
1135 {
1136 HILOG_INFO("SetVideo001 begin");
1137 ErrorCode ret = WallpaperManager::GetInstance().SetVideo(URI_30FPS_3S_MOV, SYSTYEM);
1138 EXPECT_EQ(ret, E_PARAMETERS_INVALID);
1139 }
1140
1141 /**
1142 * @tc.name: SetVideo002
1143 * @tc.desc: SetVideo input error uri
1144 * @tc.type: FUNC
1145 * @tc.require: issueI6R07J
1146 */
1147 HWTEST_F(WallpaperTest, SetVideo002, TestSize.Level0)
1148 {
1149 HILOG_INFO("SetVideo002 begin");
1150 std::string errUri = "errorPath/zm_30fps_4s.mp4";
1151 ErrorCode ret = WallpaperManager::GetInstance().SetVideo(errUri, SYSTYEM);
1152 EXPECT_EQ(ret, E_PARAMETERS_INVALID);
1153 }
1154
1155 /**
1156 * @tc.name: SetVideo003
1157 * @tc.desc: SetVideo input correct parameter
1158 * @tc.type: FUNC
1159 * @tc.require: issueI6R07J
1160 */
1161 HWTEST_F(WallpaperTest, SetVideo003, TestSize.Level0)
1162 {
1163 HILOG_INFO("SetVideo003 begin");
1164 ErrorCode ret = WallpaperManager::GetInstance().SetVideo(URI_30FPS_3S_MP4, SYSTYEM);
1165 EXPECT_EQ(ret, E_OK);
1166 }
1167
1168 /**
1169 * @tc.name: SetVideo004
1170 * @tc.desc: SetVideo input error duration
1171 * @tc.type: FUNC
1172 * @tc.require: issueI6R07J
1173 */
1174 HWTEST_F(WallpaperTest, SetVideo004, TestSize.Level0)
1175 {
1176 HILOG_INFO("SetVideo004 begin");
1177 ErrorCode ret = WallpaperManager::GetInstance().SetVideo(URI_15FPS_7S_MP4, SYSTYEM);
1178 EXPECT_EQ(ret, E_PARAMETERS_INVALID);
1179 }
1180
1181 /**
1182 * @tc.name: SetVideo005
1183 * @tc.desc: SetVideo input error fileType
1184 * @tc.type: FUNC
1185 * @tc.require: issueI6R07J
1186 */
1187 HWTEST_F(WallpaperTest, SetVideo005, TestSize.Level0)
1188 {
1189 HILOG_INFO("SetVideo005 begin");
1190 ErrorCode ret = WallpaperManager::GetInstance().SetVideo(URI_30FPS_3S_MOV, LOCKSCREEN);
1191 EXPECT_EQ(ret, E_PARAMETERS_INVALID);
1192 }
1193
1194 /**
1195 * @tc.name: SetVideo006
1196 * @tc.desc: SetVideo input error uri
1197 * @tc.type: FUNC
1198 * @tc.require: issueI6R07J
1199 */
1200 HWTEST_F(WallpaperTest, SetVideo006, TestSize.Level0)
1201 {
1202 HILOG_INFO("SetVideo006 begin");
1203 std::string errUri = "errorPath/zm_30fps_4s.mp4";
1204 ErrorCode ret = WallpaperManager::GetInstance().SetVideo(errUri, LOCKSCREEN);
1205 EXPECT_EQ(ret, E_PARAMETERS_INVALID);
1206 }
1207
1208 /**
1209 * @tc.name: SetVideo007
1210 * @tc.desc: SetVideo input correct parameter
1211 * @tc.type: FUNC
1212 * @tc.require: issueI6R07J
1213 */
1214 HWTEST_F(WallpaperTest, SetVideo007, TestSize.Level0)
1215 {
1216 HILOG_INFO("SetVideo007 begin");
1217 ErrorCode ret = WallpaperManager::GetInstance().SetVideo(URI_30FPS_3S_MP4, LOCKSCREEN);
1218 EXPECT_EQ(ret, E_OK);
1219 }
1220
1221 /**
1222 * @tc.name: SetVideo008
1223 * @tc.desc: SetVideo input error duration
1224 * @tc.type: FUNC
1225 * @tc.require: issueI6R07J
1226 */
1227 HWTEST_F(WallpaperTest, SetVideo008, TestSize.Level0)
1228 {
1229 HILOG_INFO("SetVideo008 begin");
1230 ErrorCode ret = WallpaperManager::GetInstance().SetVideo(URI_15FPS_7S_MP4, LOCKSCREEN);
1231 EXPECT_EQ(ret, E_PARAMETERS_INVALID);
1232 }
1233 /********************* SetVideo *********************/
1234
1235 /**
1236 * @tc.name: SetCustomWallpaper001
1237 * @tc.desc: Set a custom wallpaper in the Sceneborad scene
1238 * @tc.type: FUNC
1239 * @tc.require: issueI7AAMU
1240 */
1241 HWTEST_F(WallpaperTest, SetCustomWallpaper001, TestSize.Level0)
1242 {
1243 HILOG_INFO("SetCustomWallpaper001 begin");
1244 ErrorCode testErrorCode = E_OK;
1245 if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
1246 testErrorCode = E_NO_PERMISSION;
1247 }
1248 ErrorCode ret = WallpaperManager::GetInstance().SetCustomWallpaper(URI_ZIP, SYSTYEM);
1249 EXPECT_EQ(ret, testErrorCode);
1250 ret = WallpaperManager::GetInstance().SetCustomWallpaper(URI_ZIP, LOCKSCREEN);
1251 EXPECT_EQ(ret, testErrorCode);
1252 }
1253
1254 /********************* SendEvent *********************/
1255
1256 /**
1257 * @tc.name: SendEvent001
1258 * @tc.desc: SetVideo input error fileType
1259 * @tc.type: FUNC
1260 * @tc.require: issueI6R07J
1261 */
1262 HWTEST_F(WallpaperTest, SendEvent001, TestSize.Level0)
1263 {
1264 HILOG_INFO("SendEvent001 begin");
1265 std::string errEventType = "SHOW_ERROREVENTTYPE";
1266 ErrorCode ret = WallpaperManager::GetInstance().SendEvent("SHOW_ERROREVENTTYPE");
1267 EXPECT_EQ(ret, E_PARAMETERS_INVALID);
1268 }
1269
1270 /**
1271 * @tc.name: SendEvent002
1272 * @tc.desc: SetVideo input error fileType
1273 * @tc.type: FUNC
1274 * @tc.require: issueI6R07J
1275 */
1276 HWTEST_F(WallpaperTest, SendEvent002, TestSize.Level0)
1277 {
1278 HILOG_INFO("SendEvent002 begin");
1279 ErrorCode ret = WallpaperManager::GetInstance().SendEvent("SHOW_SYSTEMSCREEN");
1280 EXPECT_EQ(ret, E_OK);
1281 }
1282
1283 /**
1284 * @tc.name: SendEvent003
1285 * @tc.desc: SetVideo input error fileType
1286 * @tc.type: FUNC
1287 * @tc.require: issueI6R07J
1288 */
1289 HWTEST_F(WallpaperTest, SendEvent003, TestSize.Level0)
1290 {
1291 HILOG_INFO("SendEvent003 begin");
1292 ErrorCode ret = WallpaperManager::GetInstance().SendEvent("SHOW_LOCKSCREEN");
1293 EXPECT_EQ(ret, E_OK);
1294 }
1295
1296 /**
1297 * @tc.name: WallpaperTest_001
1298 * @tc.desc: Test Onstop and OnStart.
1299 * @tc.type: FUNC
1300 * @tc.require: issueI7OUB6
1301 */
1302 HWTEST_F(WallpaperTest, WallpaperTest_001, TestSize.Level0)
1303 {
1304 HILOG_INFO("Test Onstop");
1305 std::shared_ptr<WallpaperService> wallpaperService = std::make_shared<WallpaperService>();
1306 wallpaperService->state_ = WallpaperService::ServiceRunningState::STATE_RUNNING;
1307 wallpaperService->OnStop();
1308 EXPECT_EQ(wallpaperService->state_, WallpaperService::ServiceRunningState::STATE_NOT_START);
1309 }
1310
1311 /**
1312 * @tc.name: GetPictureFileName_001
1313 * @tc.desc: Load userIds that are not found in the Map.
1314 * @tc.type: FUNC
1315 * @tc.require: issueI90IUI
1316 */
1317 HWTEST_F(WallpaperTest, GetPictureFileName_001, TestSize.Level0)
1318 {
1319 HILOG_INFO("GetPictureFileName_001 begin");
1320 std::shared_ptr<WallpaperService> wallpaperService = std::make_shared<WallpaperService>();
1321 std::string fileName;
1322 wallpaperService->GetPictureFileName(TEST_USERID1, WALLPAPER_SYSTEM, fileName);
1323 auto wallpaperDefault = fileName.find(WALLPAPER_DEFAULT);
1324 auto homeWallpaper = fileName.find(HOME_WALLPAPER);
1325 EXPECT_EQ((wallpaperDefault != string::npos) || (homeWallpaper != string::npos), true);
1326 wallpaperService->SetWallpaperBackupData(TEST_USERID1, PICTURE, URI, WALLPAPER_SYSTEM);
1327 wallpaperService->GetPictureFileName(TEST_USERID1, WALLPAPER_SYSTEM, fileName);
1328 auto pos = fileName.find(to_string(TEST_USERID1));
1329 EXPECT_NE(pos, string::npos);
1330 wallpaperService->OnRemovedUser(TEST_USERID1);
1331 }
1332
1333 /**
1334 * @tc.name: RegisterWallpaperCallback_001
1335 * @tc.desc: Test RegisterWallpaperCallback
1336 * @tc.type: FUNC
1337 * @tc.require: issueIA87VK
1338 */
1339 HWTEST_F(WallpaperTest, RegisterWallpaperCallback_001, TestSize.Level0)
1340 {
1341 HILOG_INFO("RegisterWallpaperCallback_001 begin");
1342 JScallback callback = &WallpaperTest::TestCallBack;
1343 bool res = WallpaperManager::GetInstance().RegisterWallpaperCallback(callback);
1344 EXPECT_EQ(res, true);
1345 }
1346
1347 /**
1348 * @tc.name: RegisterWallpaperListener_001
1349 * @tc.desc: Test RegisterWallpaperListener
1350 * @tc.type: FUNC
1351 * @tc.require: issueIA87VK
1352 */
1353 HWTEST_F(WallpaperTest, RegisterWallpaperListener_001, TestSize.Level0)
1354 {
1355 HILOG_INFO("RegisterWallpaperListener_001 begin");
1356 bool res = WallpaperManager::GetInstance().RegisterWallpaperListener();
1357 EXPECT_EQ(res, true);
1358 }
1359
1360 /********************* SetAllWallpapers *********************/
1361 /**
1362 * @tc.name: SetAllWallpapers001
1363 * @tc.desc: SetAllWallpapers normal device with wallpaperType[0]
1364 * @tc.type: FUNC
1365 * @tc.require:
1366 */
1367 HWTEST_F(WallpaperTest, SetAllWallpapers001, TestSize.Level0)
1368 {
1369 HILOG_INFO("SetAllWallpapers001 begin");
1370 std::vector<WallpaperInfo> wallpaperInfo;
1371 wallpaperInfo.push_back(wallpaperInfo_normal_port);
1372 wallpaperInfo.push_back(wallpaperInfo_normal_land);
1373 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().SetAllWallpapers(wallpaperInfo, SYSTYEM);
1374 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to SetAllWallpapers";
1375 }
1376
1377 /**
1378 * @tc.name: SetAllWallpapers002
1379 * @tc.desc: SetAllWallpapers normal device with wallpaperType[1]
1380 * @tc.type: FUNC
1381 * @tc.require:
1382 */
1383 HWTEST_F(WallpaperTest, SetAllWallpapers002, TestSize.Level0)
1384 {
1385 HILOG_INFO("SetAllWallpapers002 begin");
1386 std::vector<WallpaperInfo> wallpaperInfo;
1387 wallpaperInfo.push_back(wallpaperInfo_normal_port);
1388 wallpaperInfo.push_back(wallpaperInfo_normal_land);
1389 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().SetAllWallpapers(wallpaperInfo, LOCKSCREEN);
1390 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to SetAllWallpapers";
1391 }
1392
1393 /**
1394 * @tc.name: SetAllWallpapers003
1395 * @tc.desc: SetAllWallpapers unfold_1 device with wallpaperType[0]
1396 * @tc.type: FUNC
1397 * @tc.require:
1398 */
1399 HWTEST_F(WallpaperTest, SetAllWallpapers003, TestSize.Level0)
1400 {
1401 HILOG_INFO("SetAllWallpapers003 begin");
1402 std::vector<WallpaperInfo> wallpaperInfo;
1403 wallpaperInfo.push_back(wallpaperInfo_normal_port);
1404 wallpaperInfo.push_back(wallpaperInfo_normal_land);
1405 wallpaperInfo.push_back(wallpaperInfo_unfold1_port);
1406 wallpaperInfo.push_back(wallpaperInfo_unfold1_land);
1407 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().SetAllWallpapers(wallpaperInfo, SYSTYEM);
1408 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to SetAllWallpapers";
1409 }
1410
1411 /**
1412 * @tc.name: SetAllWallpapers004
1413 * @tc.desc: SetAllWallpapers unfold_1 device with wallpaperType[1]
1414 * @tc.type: FUNC
1415 * @tc.require:
1416 */
1417 HWTEST_F(WallpaperTest, SetAllWallpapers004, TestSize.Level0)
1418 {
1419 HILOG_INFO("SetAllWallpapers004 begin");
1420 std::vector<WallpaperInfo> wallpaperInfo;
1421 wallpaperInfo.push_back(wallpaperInfo_normal_port);
1422 wallpaperInfo.push_back(wallpaperInfo_normal_land);
1423 wallpaperInfo.push_back(wallpaperInfo_unfold1_port);
1424 wallpaperInfo.push_back(wallpaperInfo_unfold1_land);
1425 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().SetAllWallpapers(wallpaperInfo, LOCKSCREEN);
1426 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to SetAllWallpapers";
1427 }
1428
1429 /**
1430 * @tc.name: SetAllWallpapers005
1431 * @tc.desc: SetAllWallpapers unfold_2 device with wallpaperType[0]
1432 * @tc.type: FUNC
1433 * @tc.require:
1434 */
1435 HWTEST_F(WallpaperTest, SetAllWallpapers005, TestSize.Level0)
1436 {
1437 HILOG_INFO("SetAllWallpapers005 begin");
1438 std::vector<WallpaperInfo> wallpaperInfo;
1439 wallpaperInfo.push_back(wallpaperInfo_normal_port);
1440 wallpaperInfo.push_back(wallpaperInfo_normal_land);
1441 wallpaperInfo.push_back(wallpaperInfo_unfold1_port);
1442 wallpaperInfo.push_back(wallpaperInfo_unfold1_land);
1443 wallpaperInfo.push_back(wallpaperInfo_unfold2_port);
1444 wallpaperInfo.push_back(wallpaperInfo_unfold2_land);
1445 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().SetAllWallpapers(wallpaperInfo, SYSTYEM);
1446 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to SetAllWallpapers";
1447 }
1448
1449 /**
1450 * @tc.name: SetAllWallpapers006
1451 * @tc.desc: SetAllWallpapers unfold_2 device with wallpaperType[1]
1452 * @tc.type: FUNC
1453 * @tc.require:
1454 */
1455 HWTEST_F(WallpaperTest, SetAllWallpapers006, TestSize.Level0)
1456 {
1457 HILOG_INFO("SetAllWallpapers006 begin");
1458 std::vector<WallpaperInfo> wallpaperInfo;
1459 wallpaperInfo.push_back(wallpaperInfo_normal_port);
1460 wallpaperInfo.push_back(wallpaperInfo_normal_land);
1461 wallpaperInfo.push_back(wallpaperInfo_unfold1_port);
1462 wallpaperInfo.push_back(wallpaperInfo_unfold1_land);
1463 wallpaperInfo.push_back(wallpaperInfo_unfold2_port);
1464 wallpaperInfo.push_back(wallpaperInfo_unfold2_land);
1465 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().SetAllWallpapers(wallpaperInfo, LOCKSCREEN);
1466 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to SetAllWallpapers";
1467 }
1468
1469 /********************* SetAllWallpapers *********************/
1470
1471 /********************* GetCorrespondWallpaper *********************/
1472 /**
1473 * @tc.name: GetCorrespondWallpaper001
1474 * @tc.desc: GetCorrespondWallpaper normal device with wallpaperType[0].
1475 * @tc.type: FUNC
1476 * @tc.require:
1477 */
1478 HWTEST_F(WallpaperTest, GetCorrespondWallpaper001, TestSize.Level0)
1479 {
1480 HILOG_INFO("GetCorrespondWallpaper001 begin");
1481 std::shared_ptr<OHOS::Media::PixelMap> pixelMap;
1482 ErrorCode wallpaperErrorCode =
1483 WallpaperManager::GetInstance().GetCorrespondWallpaper(SYSTYEM, NORMAL, PORT, pixelMap);
1484 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetCorrespondWallpaper";
1485 wallpaperErrorCode = WallpaperManager::GetInstance().GetCorrespondWallpaper(SYSTYEM, NORMAL, LAND, pixelMap);
1486 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetCorrespondWallpaper";
1487 }
1488
1489 /**
1490 * @tc.name: GetCorrespondWallpaper002
1491 * @tc.desc: GetCorrespondWallpaper normal device with wallpaperType[1].
1492 * @tc.type: FUNC
1493 * @tc.require:
1494 */
1495 HWTEST_F(WallpaperTest, GetCorrespondWallpaper002, TestSize.Level0)
1496 {
1497 HILOG_INFO("GetPixelMap002 begin");
1498 std::shared_ptr<OHOS::Media::PixelMap> pixelMap;
1499 ErrorCode wallpaperErrorCode =
1500 WallpaperManager::GetInstance().GetCorrespondWallpaper(LOCKSCREEN, NORMAL, PORT, pixelMap);
1501 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetCorrespondWallpaper";
1502 wallpaperErrorCode = WallpaperManager::GetInstance().GetCorrespondWallpaper(LOCKSCREEN, NORMAL, LAND, pixelMap);
1503 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetCorrespondWallpaper";
1504 }
1505
1506 /**
1507 * @tc.name: GetCorrespondWallpaper003
1508 * @tc.desc: GetCorrespondWallpaper unfold_1 device with wallpaperType[0].
1509 * @tc.type: FUNC
1510 * @tc.require:
1511 */
1512 HWTEST_F(WallpaperTest, GetCorrespondWallpaper003, TestSize.Level0)
1513 {
1514 HILOG_INFO("GetCorrespondWallpaper003 begin");
1515 std::shared_ptr<OHOS::Media::PixelMap> pixelMap;
1516 ErrorCode wallpaperErrorCode =
1517 WallpaperManager::GetInstance().GetCorrespondWallpaper(SYSTYEM, UNFOLD_1, PORT, pixelMap);
1518 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetCorrespondWallpaper";
1519 wallpaperErrorCode = WallpaperManager::GetInstance().GetCorrespondWallpaper(SYSTYEM, UNFOLD_1, LAND, pixelMap);
1520 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetCorrespondWallpaper";
1521 }
1522
1523 /**
1524 * @tc.name: GetCorrespondWallpaper004
1525 * @tc.desc: GetCorrespondWallpaper unfold_1 device with wallpaperType[1].
1526 * @tc.type: FUNC
1527 * @tc.require:
1528 */
1529 HWTEST_F(WallpaperTest, GetCorrespondWallpaper004, TestSize.Level0)
1530 {
1531 HILOG_INFO("GetCorrespondWallpaper004 begin");
1532 std::shared_ptr<OHOS::Media::PixelMap> pixelMap;
1533 ErrorCode wallpaperErrorCode =
1534 WallpaperManager::GetInstance().GetCorrespondWallpaper(LOCKSCREEN, UNFOLD_1, PORT, pixelMap);
1535 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetCorrespondWallpaper";
1536 wallpaperErrorCode = WallpaperManager::GetInstance().GetCorrespondWallpaper(LOCKSCREEN, UNFOLD_1, LAND, pixelMap);
1537 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetCorrespondWallpaper";
1538 }
1539
1540 /**
1541 * @tc.name: GetCorrespondWallpaper005
1542 * @tc.desc: GetCorrespondWallpaper unfold_2 device with wallpaperType[0].
1543 * @tc.type: FUNC
1544 * @tc.require:
1545 */
1546 HWTEST_F(WallpaperTest, GetCorrespondWallpaper005, TestSize.Level0)
1547 {
1548 HILOG_INFO("GetCorrespondWallpaper005 begin");
1549 std::shared_ptr<OHOS::Media::PixelMap> pixelMap;
1550 ErrorCode wallpaperErrorCode =
1551 WallpaperManager::GetInstance().GetCorrespondWallpaper(SYSTYEM, UNFOLD_2, PORT, pixelMap);
1552 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetCorrespondWallpaper";
1553 wallpaperErrorCode = WallpaperManager::GetInstance().GetCorrespondWallpaper(SYSTYEM, UNFOLD_2, LAND, pixelMap);
1554 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetCorrespondWallpaper";
1555 }
1556
1557 /**
1558 * @tc.name: GetCorrespondWallpaper006
1559 * @tc.desc: GetCorrespondWallpaper unfold_2 device with wallpaperType[1].
1560 * @tc.type: FUNC
1561 * @tc.require:
1562 */
1563 HWTEST_F(WallpaperTest, GetCorrespondWallpaper006, TestSize.Level0)
1564 {
1565 HILOG_INFO("GetCorrespondWallpaper006 begin");
1566 std::shared_ptr<OHOS::Media::PixelMap> pixelMap;
1567 ErrorCode wallpaperErrorCode =
1568 WallpaperManager::GetInstance().GetCorrespondWallpaper(LOCKSCREEN, UNFOLD_2, PORT, pixelMap);
1569 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetCorrespondWallpaper";
1570 wallpaperErrorCode = WallpaperManager::GetInstance().GetCorrespondWallpaper(LOCKSCREEN, UNFOLD_2, LAND, pixelMap);
1571 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to GetCorrespondWallpaper";
1572 }
1573 /********************* GetCorrespondWallpaper *********************/
1574
1575 /********************* Wallpaper_Inner_Api *********************/
1576 /**
1577 * @tc.name: IsDefaultWallpaperResource
1578 * @tc.desc: IsDefaultWallpaperResource wallpaper resource is empty.
1579 * @tc.type: FUNC
1580 * @tc.require:
1581 */
1582 HWTEST_F(WallpaperTest, IsDefaultWallpaperResource001, TestSize.Level0)
1583 {
1584 HILOG_INFO("IsDefaultWallpaperResource001 begin");
1585 std::shared_ptr<WallpaperService> wallpaperService = std::make_shared<WallpaperService>();
1586 int32_t userId = wallpaperService->QueryActiveUserId();
1587 ApiInfo apiInfo{ false, false };
1588 std::vector<WallpaperInfo> wallpaperInfo;
1589 wallpaperInfo.push_back(wallpaperInfo_normal_port);
1590 wallpaperInfo.push_back(wallpaperInfo_normal_land);
1591 wallpaperInfo.push_back(wallpaperInfo_unfold1_port);
1592 wallpaperInfo.push_back(wallpaperInfo_unfold1_land);
1593 wallpaperInfo.push_back(wallpaperInfo_unfold2_port);
1594 wallpaperInfo.push_back(wallpaperInfo_unfold2_land);
1595 ErrorCode wallpaperErrorCode = WallpaperManager::GetInstance().ResetWallpaper(SYSTYEM, apiInfo);
1596 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to reset lockscreen wallpaper";
1597 auto ret = WallpaperManagerClient::GetInstance().IsDefaultWallpaperResource(userId, SYSTYEM);
1598 EXPECT_EQ(ret, true) << "Failed to IsDefaultWallpaperResource";
1599 wallpaperErrorCode = WallpaperManager::GetInstance().SetAllWallpapers(wallpaperInfo, SYSTYEM);
1600 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to set system wallpaper";
1601 ret = WallpaperManagerClient::GetInstance().IsDefaultWallpaperResource(userId, SYSTYEM);
1602 EXPECT_EQ(ret, false) << "Failed to IsDefaultWallpaperResource";
1603 wallpaperErrorCode = WallpaperManager::GetInstance().ResetWallpaper(LOCKSCREEN, apiInfo);
1604 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to reset lockscreen wallpaper";
1605 ret = WallpaperManagerClient::GetInstance().IsDefaultWallpaperResource(userId, LOCKSCREEN);
1606 EXPECT_EQ(ret, true) << "Failed to IsDefaultWallpaperResource";
1607 wallpaperErrorCode = WallpaperManager::GetInstance().SetAllWallpapers(wallpaperInfo, LOCKSCREEN);
1608 EXPECT_EQ(wallpaperErrorCode, E_OK) << "Failed to set system wallpaper";
1609 ret = WallpaperManagerClient::GetInstance().IsDefaultWallpaperResource(userId, SYSTYEM);
1610 EXPECT_EQ(ret, false) << "Failed to IsDefaultWallpaperResource";
1611 }
1612
1613 /**
1614 * @tc.name: SetAllWallpapers
1615 * @tc.desc: SetAllWallpapers unfold_2 device with wallpaperType[0].
1616 * @tc.type: FUNC
1617 * @tc.require:
1618 */
1619 HWTEST_F(WallpaperTest, SetAllWallpapersClient001, TestSize.Level0)
1620 {
1621 HILOG_INFO("SetAllWallpapersClient001 begin");
1622 std::vector<WallpaperInfo> wallpaperInfo;
1623 wallpaperInfo.push_back(wallpaperInfo_normal_port);
1624 wallpaperInfo.push_back(wallpaperInfo_normal_land);
1625 wallpaperInfo.push_back(wallpaperInfo_unfold1_port);
1626 wallpaperInfo.push_back(wallpaperInfo_unfold1_land);
1627 wallpaperInfo.push_back(wallpaperInfo_unfold2_port);
1628 wallpaperInfo.push_back(wallpaperInfo_unfold2_land);
1629 auto ret = WallpaperManagerClient::GetInstance().SetAllWallpapers(wallpaperInfo, SYSTYEM);
1630 EXPECT_EQ(ret, static_cast<int32_t>(E_OK)) << "Failed to SetAllWallpapers";
1631 }
1632
1633 /**
1634 * @tc.name: SetAllWallpapers
1635 * @tc.desc: SetAllWallpapers unfold_2 device with wallpaperType[1]
1636 * @tc.type: FUNC
1637 * @tc.require:
1638 */
1639 HWTEST_F(WallpaperTest, SetAllWallpapersClient002, TestSize.Level0)
1640 {
1641 HILOG_INFO("SetAllWallpapersClient002 begin");
1642 std::vector<WallpaperInfo> wallpaperInfo;
1643 wallpaperInfo.push_back(wallpaperInfo_normal_port);
1644 wallpaperInfo.push_back(wallpaperInfo_normal_land);
1645 wallpaperInfo.push_back(wallpaperInfo_unfold1_port);
1646 wallpaperInfo.push_back(wallpaperInfo_unfold1_land);
1647 wallpaperInfo.push_back(wallpaperInfo_unfold2_port);
1648 wallpaperInfo.push_back(wallpaperInfo_unfold2_land);
1649 auto ret = WallpaperManagerClient::GetInstance().SetAllWallpapers(wallpaperInfo, LOCKSCREEN);
1650 EXPECT_EQ(ret, static_cast<int32_t>(E_OK)) << "Failed to SetAllWallpapers";
1651 }
1652 /********************* Wallpaper_Inner_Api *********************/
1653
1654 /********************* Wallpaper_SaveWallpaperState *********************/
1655 /**
1656 * @tc.name: SaveWallpaperState
1657 * @tc.desc: save wallpaper state
1658 * @tc.type: FUNC
1659 * @tc.require:
1660 */
1661 HWTEST_F(WallpaperTest, SaveWallpaperState001, TestSize.Level0)
1662 {
1663 HILOG_INFO("SaveWallpaperState001 begin");
1664 std::shared_ptr<WallpaperService> wallpaperService = std::make_shared<WallpaperService>();
1665 wallpaperService->LoadWallpaperState();
1666 int32_t userId = wallpaperService->QueryActiveUserId();
1667 auto ret =
1668 wallpaperService->SaveWallpaperState(userId, WallpaperType::WALLPAPER_SYSTEM, WallpaperResourceType::DEFAULT);
1669 EXPECT_EQ(ret, true) << "Failed to SaveWallpaperState";
1670 }
1671 /********************* Wallpaper_SaveWallpaperState *********************/
1672 /********************* Wallpaper_file_deal *********************/
1673 /**
1674 * @tc.name: ToBeAnonymous
1675 * @tc.desc: ToBeAnonymous parameter is path length <= 4.
1676 * @tc.type: FUNC
1677 * @tc.require:
1678 */
1679 HWTEST_F(WallpaperTest, ToBeAnonymous001, TestSize.Level0)
1680 {
1681 HILOG_INFO("ToBeAnonymous001 begin");
1682 std::string path = "***";
1683 auto ret = FileDeal::ToBeAnonymous(path);
1684 EXPECT_EQ(ret, path) << "Failed to ToBeAnonymous";
1685 }
1686
1687 /**
1688 * @tc.name: ToBeAnonymous
1689 * @tc.desc: ToBeAnonymous parameter is path length > 4.
1690 * @tc.type: FUNC
1691 * @tc.require:
1692 */
1693 HWTEST_F(WallpaperTest, ToBeAnonymous002, TestSize.Level0)
1694 {
1695 HILOG_INFO("ToBeAnonymous002 begin");
1696 std::string path = "data/test/test/test/test/wallpaper";
1697 auto ret = FileDeal::ToBeAnonymous(path);
1698 std::string expectPath = "data/test/***/test/wallpaper";
1699 EXPECT_EQ(ret, expectPath) << "Failed to ToBeAnonymous";
1700 }
1701 /********************* Wallpaper_file_deal *********************/
1702 } // namespace WallpaperMgrService
1703 } // namespace OHOS