1 /*
2 * Copyright (C) 2025 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 "copy_core.h"
17
18 #include <fcntl.h>
19 #include <filesystem>
20 #include <gtest/gtest.h>
21
22 namespace OHOS::FileManagement::ModuleFileIO::Test {
23 using namespace testing;
24 using namespace testing::ext;
25 using namespace std;
26
27 class CopyCoreTest : public testing::Test {
28 public:
29 static void SetUpTestCase(void);
30 static void TearDownTestCase(void);
31 void SetUp();
32 void TearDown();
33
34 static const string testDir;
35 static const string copyCoreDir;
36 static const string srcDir;
37 static const string destDir;
38 static const string srcFile;
39 static const string destFile;
40
41 private:
42 // rwxr-xr-x
43 static constexpr mode_t permission0755 = 0755;
44 // rw-r--r--
45 static constexpr mode_t permission0644 = 0644;
46 };
47
48 const string CopyCoreTest::testDir = "/data/test";
49 const string CopyCoreTest::copyCoreDir = testDir + "/CopyCoreTest";
50 const string CopyCoreTest::srcDir = copyCoreDir + "/src";
51 const string CopyCoreTest::destDir = copyCoreDir + "/dest";
52 const string CopyCoreTest::srcFile = srcDir + "/src.txt";
53 const string CopyCoreTest::destFile = destDir + "/dest.txt";
54
SetUpTestCase(void)55 void CopyCoreTest::SetUpTestCase(void)
56 {
57 GTEST_LOG_(INFO) << "SetUpTestCase";
58 mkdir(testDir.c_str(), permission0755);
59 mkdir(copyCoreDir.c_str(), permission0755);
60 mkdir(srcDir.c_str(), permission0755);
61 mkdir(destDir.c_str(), permission0755);
62 int32_t fd = open(srcFile.c_str(), O_CREAT | O_RDWR, permission0644);
63 if (fd < 0) {
64 EXPECT_TRUE(false);
65 }
66 close(fd);
67 }
68
TearDownTestCase(void)69 void CopyCoreTest::TearDownTestCase(void)
70 {
71 GTEST_LOG_(INFO) << "TearDownTestCase";
72 int ret = remove(srcFile.c_str());
73 EXPECT_TRUE(ret == 0);
74 rmdir(srcDir.c_str());
75 rmdir(destDir.c_str());
76 rmdir(testDir.c_str());
77 }
78
SetUp(void)79 void CopyCoreTest::SetUp(void)
80 {
81 GTEST_LOG_(INFO) << "SetUp";
82 }
83
TearDown(void)84 void CopyCoreTest::TearDown(void)
85 {
86 CopyCore::callbackMap_.clear();
87 GTEST_LOG_(INFO) << "TearDown";
88 }
89
90 inline const int32_t EXPECTED_WD = 100;
91 inline const int32_t UNEXPECTED_WD = 200;
92
93 /**
94 * @tc.name: CopyCoreTest_IsValidUri_001
95 * @tc.desc: Test function of CopyCore::IsValidUri interface for TRUE.
96 * @tc.size: MEDIUM
97 * @tc.type: FUNC
98 * @tc.level Level 1
99 */
100 HWTEST_F(CopyCoreTest, CopyCoreTest_IsValidUri_001, testing::ext::TestSize.Level1)
101 {
102 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_IsValidUri_001";
103
104 string validUri = "file://data/test/file.txt";
105 auto res = CopyCore::IsValidUri(validUri);
106 EXPECT_EQ(res, true);
107
108 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_IsValidUri_001";
109 }
110
111 /**
112 * @tc.name: CopyCoreTest_IsValidUri_002
113 * @tc.desc: Test function of CopyCore::IsValidUri interface for FALSE.
114 * @tc.size: MEDIUM
115 * @tc.type: FUNC
116 * @tc.level Level 1
117 */
118 HWTEST_F(CopyCoreTest, CopyCoreTest_IsValidUri_002, testing::ext::TestSize.Level1)
119 {
120 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_IsValidUri_002";
121
122 string invalidUri = "invalid://data/test/CopyCoreTest_IsValidUri_002/file.txt";
123 auto res = CopyCore::IsValidUri(invalidUri);
124 EXPECT_EQ(res, false);
125
126 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_IsValidUri_002";
127 }
128
129 /**
130 * @tc.name: CopyCoreTest_IsRemoteUri_001
131 * @tc.desc: Test function of CopyCore::IsRemoteUri interface for TRUE.
132 * @tc.size: MEDIUM
133 * @tc.type: FUNC
134 * @tc.level Level 1
135 */
136 HWTEST_F(CopyCoreTest, CopyCoreTest_IsRemoteUri_001, testing::ext::TestSize.Level1)
137 {
138 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_IsRemoteUri_001";
139
140 string remoteUri = "file://data/test/file.txt?networkid=123";
141 auto res = CopyCore::IsRemoteUri(remoteUri);
142 EXPECT_EQ(res, true);
143
144 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_IsRemoteUri_001";
145 }
146
147 /**
148 * @tc.name: CopyCoreTest_IsRemoteUri_002
149 * @tc.desc: Test function of CopyCore::IsRemoteUri interface for FALSE.
150 * @tc.size: MEDIUM
151 * @tc.type: FUNC
152 * @tc.level Level 1
153 */
154 HWTEST_F(CopyCoreTest, CopyCoreTest_IsRemoteUri_002, testing::ext::TestSize.Level1)
155 {
156 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_IsRemoteUri_002";
157
158 string localUri = "file://data/test/file.txt";
159 auto res = CopyCore::IsRemoteUri(localUri);
160 EXPECT_EQ(res, false);
161
162 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_IsRemoteUri_002";
163 }
164
165 /**
166 * @tc.name: CopyCoreTest_IsDirectory_001
167 * @tc.desc: Test function of CopyCore::IsDirectory interface for TRUE.
168 * @tc.size: MEDIUM
169 * @tc.type: FUNC
170 * @tc.level Level 1
171 */
172 HWTEST_F(CopyCoreTest, CopyCoreTest_IsDirectory_001, testing::ext::TestSize.Level1)
173 {
174 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_IsDirectory_001";
175
176 auto res = CopyCore::IsDirectory(srcDir);
177 EXPECT_EQ(res, true);
178
179 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_IsDirectory_001";
180 }
181
182 /**
183 * @tc.name: CopyCoreTest_IsDirectory_002
184 * @tc.desc: Test function of CopyCore::IsDirectory interface for FALSE.
185 * @tc.size: MEDIUM
186 * @tc.type: FUNC
187 * @tc.level Level 1
188 */
189 HWTEST_F(CopyCoreTest, CopyCoreTest_IsDirectory_002, testing::ext::TestSize.Level1)
190 {
191 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_IsDirectory_002";
192
193 auto res = CopyCore::IsDirectory(srcFile);
194 EXPECT_EQ(res, false);
195
196 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_IsDirectory_002";
197 }
198
199 /**
200 * @tc.name: CopyCoreTest_IsFile_001
201 * @tc.desc: Test function of CopyCore::IsFile interface for TRUE.
202 * @tc.size: MEDIUM
203 * @tc.type: FUNC
204 * @tc.level Level 1
205 */
206 HWTEST_F(CopyCoreTest, CopyCoreTest_IsFile_001, testing::ext::TestSize.Level1)
207 {
208 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_IsFile_001";
209
210 auto res = CopyCore::IsFile(srcFile);
211 EXPECT_EQ(res, true);
212
213 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_IsFile_001";
214 }
215
216 /**
217 * @tc.name: CopyCoreTest_IsFile_002
218 * @tc.desc: Test function of CopyCore::IsFile interface for FALSE.
219 * @tc.size: MEDIUM
220 * @tc.type: FUNC
221 * @tc.level Level 1
222 */
223 HWTEST_F(CopyCoreTest, CopyCoreTest_IsFile_002, testing::ext::TestSize.Level1)
224 {
225 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_IsFile_002";
226
227 auto res = CopyCore::IsFile(srcDir);
228 EXPECT_EQ(res, false);
229
230 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_IsFile_002";
231 }
232
233 /**
234 * @tc.name: CopyCoreTest_IsMediaUri_001
235 * @tc.desc: Test function of CopyCore::IsMediaUri interface for FALSE.
236 * @tc.size: MEDIUM
237 * @tc.type: FUNC
238 * @tc.level Level 1
239 */
240 HWTEST_F(CopyCoreTest, CopyCoreTest_IsMediaUri_001, testing::ext::TestSize.Level1)
241 {
242 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_IsMediaUri_001";
243
244 auto res = CopyCore::IsMediaUri(srcFile);
245 EXPECT_EQ(res, false);
246
247 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_IsMediaUri_001";
248 }
249
250 /**
251 * @tc.name: CopyCoreTest_GetFileSize_001
252 * @tc.desc: Test function of CopyCore::GetFileSize interface for TRUE.
253 * @tc.size: MEDIUM
254 * @tc.type: FUNC
255 * @tc.level Level 1
256 */
257 HWTEST_F(CopyCoreTest, CopyCoreTest_GetFileSize_001, testing::ext::TestSize.Level1)
258 {
259 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_GetFileSize_001";
260
261 auto [err, size] = CopyCore::GetFileSize(srcFile);
262 EXPECT_EQ(err, ERRNO_NOERR);
263 EXPECT_GE(size, 0);
264
265 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_GetFileSize_001";
266 }
267
268 /**
269 * @tc.name: CopyCoreTest_GetFileSize_002
270 * @tc.desc: Test function of CopyCore::GetFileSize interface for FALSE.
271 * @tc.size: MEDIUM
272 * @tc.type: FUNC
273 * @tc.level Level 1
274 */
275 HWTEST_F(CopyCoreTest, CopyCoreTest_GetFileSize_002, testing::ext::TestSize.Level1)
276 {
277 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_GetFileSize_002";
278
279 string nonExistentFile = "/data/test/non_existent.txt";
280 auto [err, size] = CopyCore::GetFileSize(nonExistentFile);
281 EXPECT_NE(err, ERRNO_NOERR);
282 EXPECT_EQ(size, 0);
283
284 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_GetFileSize_002";
285 }
286
287 /**
288 * @tc.name: CopyCoreTest_CheckOrCreatePath_001
289 * @tc.desc: Test function of CopyCore::CheckOrCreatePath interface for TRUE.
290 * @tc.size: MEDIUM
291 * @tc.type: FUNC
292 * @tc.level Level 1
293 */
294 HWTEST_F(CopyCoreTest, CopyCoreTest_CheckOrCreatePath_001, testing::ext::TestSize.Level1)
295 {
296 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_CheckOrCreatePath_001";
297
298 auto res = CopyCore::CheckOrCreatePath(srcFile);
299 EXPECT_EQ(res, ERRNO_NOERR);
300
301 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_CheckOrCreatePath_001";
302 }
303
304 /**
305 * @tc.name: CopyCoreTest_CheckOrCreatePath_002
306 * @tc.desc: Test function of CopyCore::CheckOrCreatePath interface for TRUE.
307 * @tc.size: MEDIUM
308 * @tc.type: FUNC
309 * @tc.level Level 1
310 */
311 HWTEST_F(CopyCoreTest, CopyCoreTest_CheckOrCreatePath_002, testing::ext::TestSize.Level1)
312 {
313 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_CheckOrCreatePath_002";
314
315 string newFile = destDir + "/new_file.txt";
316 auto res = CopyCore::CheckOrCreatePath(newFile);
317 EXPECT_EQ(res, ERRNO_NOERR);
318 EXPECT_TRUE(CopyCore::IsFile(newFile));
319
320 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_CheckOrCreatePath_002";
321 }
322
323 /**
324 * @tc.name: CopyCoreTest_MakeDir_001
325 * @tc.desc: Test function of CopyCore::MakeDir interface for TRUE.
326 * @tc.size: MEDIUM
327 * @tc.type: FUNC
328 * @tc.level Level 1
329 */
330 HWTEST_F(CopyCoreTest, CopyCoreTest_MakeDir_001, testing::ext::TestSize.Level1)
331 {
332 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_MakeDir_001";
333
334 string newDir = destDir + "/new_dir";
335 auto res = CopyCore::MakeDir(newDir);
336 EXPECT_EQ(res, ERRNO_NOERR);
337 EXPECT_TRUE(CopyCore::IsDirectory(newDir));
338
339 rmdir(newDir.c_str());
340 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_MakeDir_001";
341 }
342
343 /**
344 * @tc.name: CopyCoreTest_MakeDir_002
345 * @tc.desc: Test function of CopyCore::MakeDir interface for TRUE.
346 * @tc.size: SMALL
347 * @tc.type: FUNC
348 * @tc.level Level 1
349 */
350 HWTEST_F(CopyCoreTest, CopyCoreTest_MakeDir_002, testing::ext::TestSize.Level1)
351 {
352 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_MakeDir_002";
353
354 auto res = CopyCore::MakeDir(srcDir);
355 EXPECT_EQ(res, ERRNO_NOERR);
356
357 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_MakeDir_002";
358 }
359
360 /**
361 * @tc.name: CopyCoreTest_MakeDir_003
362 * @tc.desc: Test function of CopyCore::MakeDir interface for FALSE.
363 * @tc.size: SMALL
364 * @tc.type: FUNC
365 * @tc.level Level 1
366 */
367 HWTEST_F(CopyCoreTest, CopyCoreTest_MakeDir_003, testing::ext::TestSize.Level1)
368 {
369 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_MakeDir_003";
370
371 string invalidPath = "/invalid/path/dir";
372 auto res = CopyCore::MakeDir(invalidPath);
373 EXPECT_NE(res, ERRNO_NOERR);
374
375 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_MakeDir_003";
376 }
377
378 /**
379 * @tc.name: CopyCoreTest_ValidParams_001
380 * @tc.desc: Test function of CopyCore::ValidParams interface for FALSE.
381 * @tc.size: MEDIUM
382 * @tc.type: FUNC
383 * @tc.level Level 1
384 */
385 HWTEST_F(CopyCoreTest, CopyCoreTest_ValidParams_001, testing::ext::TestSize.Level1)
386 {
387 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_ValidParams_001";
388
389 string srcFile = "invalid://data/test/src.txt";
390
391 auto res = CopyCore::ValidParams(srcFile, destFile);
392 EXPECT_EQ(res, false);
393
394 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_ValidParams_001";
395 }
396
397 /**
398 * @tc.name: CopyCoreTest_ValidParams_002
399 * @tc.desc: Test function of CopyCore::ValidParams interface for FALSE.
400 * @tc.size: MEDIUM
401 * @tc.type: FUNC
402 * @tc.level Level 1
403 */
404 HWTEST_F(CopyCoreTest, CopyCoreTest_ValidParams_002, testing::ext::TestSize.Level1)
405 {
406 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_ValidParams_002";
407
408 string destFile = "invalid://data/test/dest.txt";
409
410 auto res = CopyCore::ValidParams(srcFile, destFile);
411 EXPECT_EQ(res, false);
412
413 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_ValidParams_002";
414 }
415
416 /**
417 * @tc.name: CopyCoreTest_ValidParams_003
418 * @tc.desc: Test function of CopyCore::ValidParams interface for FALSE.
419 * @tc.size: MEDIUM
420 * @tc.type: FUNC
421 * @tc.level Level 1
422 */
423 HWTEST_F(CopyCoreTest, CopyCoreTest_ValidParams_003, testing::ext::TestSize.Level1)
424 {
425 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_ValidParams_003";
426
427 string src = "file://data/test/src.txt";
428 string dest = "file://data/test/dest.txt";
429
430 auto res = CopyCore::ValidParams(src, dest);
431 EXPECT_EQ(res, true);
432
433 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_ValidParams_003";
434 }
435
436 /**
437 * @tc.name: CopyCoreTest_CreateFileInfos_001
438 * @tc.desc: Test function of CopyCore::CreateFileInfos interface for TRUE.
439 * @tc.size: MEDIUM
440 * @tc.type: FUNC
441 * @tc.level Level 1
442 */
443 HWTEST_F(CopyCoreTest, CopyCoreTest_CreateFileInfos_001, testing::ext::TestSize.Level1)
444 {
445 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_CreateFileInfos_001";
446
447 optional<CopyOptions> options = std::make_optional<CopyOptions>();
448
449 auto [errCode, infos] = CopyCore::CreateFileInfos(srcFile, destFile, options);
450 EXPECT_EQ(errCode, ERRNO_NOERR);
451 EXPECT_NE(infos, nullptr);
452 if (infos) {
453 EXPECT_FALSE(infos->hasListener);
454 EXPECT_EQ(infos->listener, nullptr);
455 EXPECT_EQ(infos->taskSignal, nullptr);
456 }
457
458 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_CreateFileInfos_001";
459 }
460
461 /**
462 * @tc.name: CopyCoreTest_CopySubDir_001
463 * @tc.desc: Test function of CopyCore::CopySubDir interface for TRUE.
464 * @tc.size: MEDIUM
465 * @tc.type: FUNC
466 * @tc.level Level 1
467 */
468 HWTEST_F(CopyCoreTest, CopyCoreTest_CopySubDir_001, testing::ext::TestSize.Level1)
469 {
470 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_CopySubDir_001";
471
472 string subDir = srcDir + "/CopyCoreTest_CopySubDir_001_sub_dir";
473 mkdir(subDir.c_str(), permission0755);
474 string subFile = subDir + "/sub_file.txt";
475 int fd = open(subFile.c_str(), O_CREAT | O_RDWR, permission0644);
476 if (fd < 0) {
477 EXPECT_TRUE(false);
478 }
479 close(fd);
480
481 string destSubDir = destDir + "/sub_dir";
482 auto infos = make_shared<FsFileInfos>();
483 auto res = CopyCore::CopySubDir(subDir, destSubDir, infos);
484 string destSubFile = destSubDir + "/sub_file.txt";
485 EXPECT_EQ(res, ERRNO_NOERR);
486 EXPECT_TRUE(CopyCore::IsDirectory(destSubDir));
487 EXPECT_TRUE(CopyCore::IsFile(destSubFile));
488
489 remove(subFile.c_str());
490 rmdir(subDir.c_str());
491 remove(destSubFile.c_str());
492 rmdir(destSubDir.c_str());
493 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_CopySubDir_001";
494 }
495
496 /**
497 * @tc.name: CopyCoreTest_CopySubDir_002
498 * @tc.desc: Test function of CopyCore::CopySubDir interface for TRUE.
499 * @tc.size: MEDIUM
500 * @tc.type: FUNC
501 * @tc.level Level 1
502 */
503 HWTEST_F(CopyCoreTest, CopyCoreTest_CopySubDir_002, testing::ext::TestSize.Level1)
504 {
505 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_CopySubDir_002";
506
507 string subDir = srcDir + "/sub_dir";
508 mkdir(subDir.c_str(), permission0755);
509 string subFile = subDir + "/sub_file.txt";
510 int fd = open(subFile.c_str(), O_CREAT | O_RDWR, permission0644);
511 if (fd < 0) {
512 EXPECT_TRUE(false);
513 }
514 close(fd);
515
516 string destSubDir = destDir + "/sub_dir";
517 auto infos = make_shared<FsFileInfos>();
518 infos->notifyFd = 1;
519 auto res = CopyCore::CopySubDir(subDir, destSubDir, infos);
520 EXPECT_EQ(res, errno);
521
522 remove(subFile.c_str());
523 rmdir(subDir.c_str());
524 rmdir(destSubDir.c_str());
525 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_CopySubDir_002";
526 }
527
528 /**
529 * @tc.name: CopyCoreTest_RecurCopyDir_001
530 * @tc.desc: Test function of CopyCore::RecurCopyDir interface for TRUE.
531 * @tc.size: MEDIUM
532 * @tc.type: FUNC
533 * @tc.level Level 1
534 */
535 HWTEST_F(CopyCoreTest, CopyCoreTest_RecurCopyDir_001, testing::ext::TestSize.Level1)
536 {
537 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_RecurCopyDir_001";
538
539 string subDir = srcDir + "/sub_dir";
540 mkdir(subDir.c_str(), permission0755);
541 string subFile = subDir + "/sub_file.txt";
542 int fd = open(subFile.c_str(), O_CREAT | O_RDWR, permission0644);
543 if (fd < 0) {
544 EXPECT_TRUE(false);
545 }
546 close(fd);
547
548 string destSubDir = destDir + "/sub_dir";
549 auto infos = make_shared<FsFileInfos>();
550 auto res = CopyCore::RecurCopyDir(srcDir, destDir, infos);
551 string destSubFile = destSubDir + "/sub_file.txt";
552 EXPECT_EQ(res, ERRNO_NOERR);
553 EXPECT_TRUE(CopyCore::IsDirectory(destSubDir));
554 EXPECT_TRUE(CopyCore::IsFile(destSubDir + "/sub_file.txt"));
555
556 remove(subFile.c_str());
557 rmdir(subDir.c_str());
558 remove(destSubFile.c_str());
559 rmdir(destSubDir.c_str());
560 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_RecurCopyDir_001";
561 }
562
563 /**
564 * @tc.name: CopyCoreTest_CopyDirFunc_001
565 * @tc.desc: Test function of CopyCore::CopyDirFunc interface for TRUE.
566 * @tc.size: MEDIUM
567 * @tc.type: FUNC
568 * @tc.level Level 1
569 */
570 HWTEST_F(CopyCoreTest, CopyCoreTest_CopyDirFunc_001, testing::ext::TestSize.Level1)
571 {
572 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_CopyDirFunc_001";
573
574 string subDir = srcDir + "/sub_dir";
575 mkdir(subDir.c_str(), permission0755);
576 string subFile = subDir + "/sub_file.txt";
577 int fd = open(subFile.c_str(), O_CREAT | O_RDWR, permission0644);
578 if (fd < 0) {
579 EXPECT_TRUE(false);
580 }
581 close(fd);
582
583 string destSubDir = destDir + "/src/sub_dir";
584 string destSubFile = destSubDir + "/sub_file.txt";
585 string destSrcDir = destDir + "/src";
586 auto infos = make_shared<FsFileInfos>();
587 auto res = CopyCore::CopyDirFunc(srcDir, destDir, infos);
588 EXPECT_EQ(res, ERRNO_NOERR);
589 EXPECT_EQ(CopyCore::IsDirectory(destSubDir), false);
590 EXPECT_EQ(CopyCore::IsFile(destSubDir + "/sub_file.txt"), false);
591
592 remove(subFile.c_str());
593 rmdir(subDir.c_str());
594 remove(destSubFile.c_str());
595 rmdir(destSubDir.c_str());
596 rmdir(destSrcDir.c_str());
597 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_CopyDirFunc_001";
598 }
599
600 /**
601 * @tc.name: CopyCoreTest_ExecLocal_001
602 * @tc.desc: Test function of CopyCore::ExecLocal interface for TRUE.
603 * @tc.size: MEDIUM
604 * @tc.type: FUNC
605 * @tc.level Level 1
606 */
607 HWTEST_F(CopyCoreTest, CopyCoreTest_ExecLocal_001, testing::ext::TestSize.Level1)
608 {
609 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_ExecLocal_001";
610
611 auto infos = make_shared<FsFileInfos>();
612 infos->isFile = true;
613 infos->srcPath = srcFile;
614 infos->destPath = destFile;
615 auto callback = make_shared<FsCallbackObject>(nullptr);
616
617 auto res = CopyCore::ExecLocal(infos, callback);
618 EXPECT_EQ(res, ERRNO_NOERR);
619 EXPECT_TRUE(CopyCore::IsFile(destFile));
620 int ret = remove(destFile.c_str());
621 EXPECT_TRUE(ret == 0);
622
623 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_ExecLocal_001";
624 }
625
626 /**
627 * @tc.name: CopyCoreTest_ExecLocal_002
628 * @tc.desc: Test function of CopyCore::ExecLocal interface for FALSE.
629 * @tc.size: MEDIUM
630 * @tc.type: FUNC
631 * @tc.level Level 1
632 */
633 HWTEST_F(CopyCoreTest, CopyCoreTest_ExecLocal_002, testing::ext::TestSize.Level1)
634 {
635 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_ExecLocal_002";
636
637 auto infos = make_shared<FsFileInfos>();
638 infos->isFile = true;
639 infos->srcPath = srcFile;
640 infos->destPath = srcFile;
641 auto callback = make_shared<FsCallbackObject>(nullptr);
642
643 auto res = CopyCore::ExecLocal(infos, callback);
644 EXPECT_EQ(res, EINVAL);
645
646 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_ExecLocal_002";
647 }
648
649 /**
650 * @tc.name: CopyCoreTest_RegisterListener_001
651 * @tc.desc: Test function of CopyCore::RegisterListener interface for TRUE.
652 * @tc.size: MEDIUM
653 * @tc.type: FUNC
654 * @tc.level Level 1
655 */
656 HWTEST_F(CopyCoreTest, CopyCoreTest_RegisterListener_001, testing::ext::TestSize.Level1)
657 {
658 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_RegisterListener_001";
659
660 auto infos = make_shared<FsFileInfos>();
661 auto callback = CopyCore::RegisterListener(infos);
662 EXPECT_NE(callback, nullptr);
663
664 {
665 std::lock_guard<std::recursive_mutex> lock(CopyCore::mutex_);
666 auto iter = CopyCore::callbackMap_.find(*infos);
667 EXPECT_NE(iter, CopyCore::callbackMap_.end());
668 }
669
670 CopyCore::UnregisterListener(infos);
671 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_RegisterListener_001";
672 }
673
674 /**
675 * @tc.name: CopyCoreTest_RegisterListener_002
676 * @tc.desc: Test function of CopyCore::RegisterListener interface for the case when the info already exists in
677 * callbackMap_.
678 * @tc.size: MEDIUM
679 * @tc.type: FUNC
680 * @tc.level Level 1
681 */
682 HWTEST_F(CopyCoreTest, CopyCoreTest_RegisterListener_002, testing::ext::TestSize.Level1)
683 {
684 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_RegisterListener_002";
685
686 auto infos = make_shared<FsFileInfos>();
687 auto firstCallback = CopyCore::RegisterListener(infos);
688 EXPECT_NE(firstCallback, nullptr);
689 auto secondCallback = CopyCore::RegisterListener(infos);
690 EXPECT_EQ(secondCallback, nullptr);
691
692 {
693 std::lock_guard<std::recursive_mutex> lock(CopyCore::mutex_);
694 auto iter = CopyCore::callbackMap_.find(*infos);
695 EXPECT_NE(iter, CopyCore::callbackMap_.end());
696 }
697
698 CopyCore::UnregisterListener(infos);
699 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_RegisterListener_002";
700 }
701
702 /**
703 * @tc.name: CopyCoreTest_UnregisterListener_001
704 * @tc.desc: Test function of CopyCore::UnregisterListener interface for TRUE.
705 * @tc.size: MEDIUM
706 * @tc.type: FUNC
707 * @tc.level Level 1
708 */
709 HWTEST_F(CopyCoreTest, CopyCoreTest_UnregisterListener_001, testing::ext::TestSize.Level1)
710 {
711 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_UnregisterListener_001";
712
713 auto infos = make_shared<FsFileInfos>();
714 auto callback = CopyCore::RegisterListener(infos);
715 EXPECT_NE(callback, nullptr);
716
717 CopyCore::UnregisterListener(infos);
718
719 {
720 std::lock_guard<std::recursive_mutex> lock(CopyCore::mutex_);
721 auto iter = CopyCore::callbackMap_.find(*infos);
722 EXPECT_EQ(iter, CopyCore::callbackMap_.end());
723 }
724
725 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_UnregisterListener_001";
726 }
727
728 /**
729 * @tc.name: CopyCoreTest_UnregisterListener_002
730 * @tc.desc: Test function of CopyCore::UnregisterListener interface for the case when the info is not registered in
731 * callbackMap_.
732 * @tc.size: MEDIUM
733 * @tc.type: FUNC
734 * @tc.level Level 1
735 */
736 HWTEST_F(CopyCoreTest, CopyCoreTest_UnregisterListener_002, testing::ext::TestSize.Level1)
737 {
738 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_UnregisterListener_002";
739
740 auto infos = make_shared<FsFileInfos>();
741
742 CopyCore::UnregisterListener(infos);
743
744 {
745 std::lock_guard<std::recursive_mutex> lock(CopyCore::mutex_);
746 auto iter = CopyCore::callbackMap_.find(*infos);
747 EXPECT_EQ(iter, CopyCore::callbackMap_.end());
748 }
749
750 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_UnregisterListener_002";
751 }
752
753 /**
754 * @tc.name: CopyCoreTest_DoCopy_001
755 * @tc.desc: Test function of CopyCore::DoCopy interface for FALSE.
756 * @tc.size: MEDIUM
757 * @tc.type: FUNC
758 * @tc.level Level 1
759 */
760 HWTEST_F(CopyCoreTest, CopyCoreTest_DoCopy_001, testing::ext::TestSize.Level1)
761 {
762 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_DoCopy_001";
763
764 string src = "invalid:/" + srcFile;
765 string dest = "invalid:/" + destFile;
766 optional<CopyOptions> options;
767
768 auto res = CopyCore::DoCopy(src, dest, options);
769 EXPECT_FALSE(res.IsSuccess());
770 auto err = res.GetError();
771 EXPECT_EQ(err.GetErrNo(), E_PARAMS);
772
773 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_DoCopy_001";
774 }
775
776 /**
777 * @tc.name: CopyCoreTest_DoCopy_002
778 * @tc.desc: Test function of CopyCore::DoCopy interface for TRUE.
779 * @tc.size: MEDIUM
780 * @tc.type: FUNC
781 * @tc.level Level 1
782 */
783 HWTEST_F(CopyCoreTest, CopyCoreTest_DoCopy_002, testing::ext::TestSize.Level1)
784 {
785 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_DoCopy_002";
786
787 string src = "file:///data/test/src/src.txt";
788 string dest = "file:///data/test/dest/dest.txt";
789 optional<CopyOptions> options;
790
791 auto res = CopyCore::DoCopy(src, dest, options);
792 EXPECT_FALSE(res.IsSuccess());
793
794 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_DoCopy_002";
795 }
796
797 /**
798 * @tc.name: CopyCoreTest_GetDirSize_001
799 * @tc.desc: Test function of CopyCore::GetDirSize interface for TRUE.
800 * @tc.size: MEDIUM
801 * @tc.type: FUNC
802 * @tc.level Level 1
803 */
804 HWTEST_F(CopyCoreTest, CopyCoreTest_GetDirSize_001, testing::ext::TestSize.Level1)
805 {
806 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_GetDirSize_001";
807
808 auto infos = make_shared<FsFileInfos>();
809 infos->isFile = true;
810 infos->srcPath = srcFile;
811 infos->destPath = destFile;
812
813 auto res = CopyCore::GetDirSize(infos, srcDir);
814 EXPECT_EQ(res, 0);
815
816 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_GetDirSize_001";
817 }
818
819 /**
820 * @tc.name: CopyCoreTest_GetUVEntry_001
821 * @tc.desc: Test function of CopyCore::GetUVEntry interface for FALSE.
822 * @tc.size: MEDIUM
823 * @tc.type: FUNC
824 * @tc.level Level 1
825 */
826 HWTEST_F(CopyCoreTest, CopyCoreTest_GetUVEntry_001, testing::ext::TestSize.Level1)
827 {
828 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_GetUVEntry_001";
829
830 auto infos = make_shared<FsFileInfos>();
831 auto res = CopyCore::GetUVEntry(infos);
832 EXPECT_EQ(res, nullptr);
833
834 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_GetUVEntry_001";
835 }
836
837 /**
838 * @tc.name: CopyCoreTest_CheckFileValid_001
839 * @tc.desc: Test function of CopyCore::CheckFileValid interface for FALSE.
840 * @tc.size: MEDIUM
841 * @tc.type: FUNC
842 * @tc.level Level 1
843 */
844 HWTEST_F(CopyCoreTest, CopyCoreTest_CheckFileValid_001, testing::ext::TestSize.Level1)
845 {
846 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_CheckFileValid_001";
847
848 auto infos = make_shared<FsFileInfos>();
849 infos->isFile = true;
850 infos->srcPath = srcFile;
851 infos->destPath = destFile;
852
853 auto res = CopyCore::CheckFileValid(srcFile, infos);
854 EXPECT_EQ(res, false);
855
856 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_CheckFileValid_001";
857 }
858
859 /**
860 * @tc.name: CopyCoreTest_UpdateProgressSize_001
861 * @tc.desc: Test function of CopyCore::UpdateProgressSize interface for TRUE.
862 * @tc.size: MEDIUM
863 * @tc.type: FUNC
864 * @tc.level Level 1
865 */
866 HWTEST_F(CopyCoreTest, CopyCoreTest_UpdateProgressSize_001, testing::ext::TestSize.Level1)
867 {
868 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_UpdateProgressSize_001";
869
870 auto receivedInfo = make_shared<ReceiveInfo>();
871 auto callback = make_shared<FsCallbackObject>(nullptr);
872
873 auto res = CopyCore::UpdateProgressSize(srcFile, receivedInfo, callback);
874 EXPECT_EQ(res, ERRNO_NOERR);
875
876 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_UpdateProgressSize_001";
877 }
878
879 /**
880 * @tc.name: CopyCoreTest_GetRegisteredListener_001
881 * @tc.desc: Test function of CopyCore::GetRegisteredListener interface for FALSE.
882 * @tc.size: MEDIUM
883 * @tc.type: FUNC
884 * @tc.level Level 1
885 */
886 HWTEST_F(CopyCoreTest, CopyCoreTest_GetRegisteredListener_001, testing::ext::TestSize.Level1)
887 {
888 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_GetRegisteredListener_001";
889
890 auto infos = make_shared<FsFileInfos>();
891 infos->isFile = true;
892 infos->srcPath = srcFile;
893 infos->destPath = destFile;
894
895 auto res = CopyCore::GetRegisteredListener(infos);
896 EXPECT_EQ(res, nullptr);
897
898 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_GetRegisteredListener_001";
899 }
900
901 /**
902 * @tc.name: CopyCoreTest_SubscribeLocalListener_001
903 * @tc.desc: Test function of CopyCore::SubscribeLocalListener interface for FALSE.
904 * @tc.size: MEDIUM
905 * @tc.type: FUNC
906 * @tc.level Level 1
907 */
908 HWTEST_F(CopyCoreTest, CopyCoreTest_SubscribeLocalListener_001, testing::ext::TestSize.Level1)
909 {
910 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_SubscribeLocalListener_001";
911
912 auto infos = make_shared<FsFileInfos>();
913 infos->isFile = true;
914 infos->srcPath = srcFile;
915 infos->destPath = destFile;
916 auto callback = make_shared<FsCallbackObject>(nullptr);
917
918 auto res = CopyCore::SubscribeLocalListener(infos, callback);
919 EXPECT_EQ(res, errno);
920
921 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_SubscribeLocalListener_001";
922 }
923
924 /**
925 * @tc.name: CopyCoreTest_GetRealPath_001
926 * @tc.desc: Test function of CopyCore::GetRealPath interface for TRUE.
927 * @tc.size: MEDIUM
928 * @tc.type: FUNC
929 * @tc.level Level 1
930 */
931 HWTEST_F(CopyCoreTest, CopyCoreTest_GetRealPath_001, testing::ext::TestSize.Level1)
932 {
933 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_GetRealPath_001";
934
935 string path = "./data/test/src/src.txt";
936
937 auto res = CopyCore::GetRealPath(path);
938 EXPECT_EQ(res, "data/test/src/src.txt");
939
940 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_GetRealPath_001";
941 }
942
943 /**
944 * @tc.name: CopyCoreTest_GetRealPath_002
945 * @tc.desc: Test function of CopyCore::GetRealPath interface for TRUE.
946 * @tc.size: MEDIUM
947 * @tc.type: FUNC
948 * @tc.level Level 1
949 */
950 HWTEST_F(CopyCoreTest, CopyCoreTest_GetRealPath_002, testing::ext::TestSize.Level1)
951 {
952 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_GetRealPath_002";
953
954 string path = "../data/test/src/src.txt";
955
956 auto res = CopyCore::GetRealPath(path);
957 EXPECT_EQ(res, "data/test/src/src.txt");
958
959 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_GetRealPath_002";
960 }
961
962 /**
963 * @tc.name: CopyCoreTest_ExecCopy_001
964 * @tc.desc: Test function of CopyCore::ExecCopy interface for FALSE.
965 * @tc.size: MEDIUM
966 * @tc.type: FUNC
967 * @tc.level Level 1
968 */
969 HWTEST_F(CopyCoreTest, CopyCoreTest_ExecCopy_001, testing::ext::TestSize.Level1)
970 {
971 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_ExecCopy_001";
972
973 auto infos = make_shared<FsFileInfos>();
974 infos->isFile = false;
975 infos->srcPath = "/data/test/src";
976 infos->destPath = "/data/test/dest";
977
978 auto res = CopyCore::ExecCopy(infos);
979 EXPECT_EQ(res, EINVAL);
980
981 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_ExecCopy_001";
982 }
983
984 /**
985 * @tc.name: CopyCoreTest_CopyFile_001
986 * @tc.desc: Test function of CopyCore::CopyFile interface for file copy FALSE.
987 * @tc.size: MEDIUM
988 * @tc.type: FUNC
989 * @tc.level Level 1
990 */
991 HWTEST_F(CopyCoreTest, CopyCoreTest_CopyFile_001, testing::ext::TestSize.Level1)
992 {
993 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_CopyFile_001";
994
995 string src = "datashare:///media/src_test.jpg";
996 string dest = "datashare:///media/dest_test.jpg";
997 auto infos = make_shared<FsFileInfos>();
998 infos->isFile = true;
999 infos->srcPath = src;
1000 infos->destPath = dest;
1001
1002 auto res = CopyCore::CopyFile(src, dest, infos);
1003 EXPECT_EQ(res, errno);
1004
1005 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_CopyFile_001";
1006 }
1007
1008 /**
1009 * @tc.name: CopyCoreTest_HandleProgress_001
1010 * @tc.desc: Test function of CopyCore::HandleProgress interface for FALSE.
1011 * @tc.size: MEDIUM
1012 * @tc.type: FUNC
1013 * @tc.level Level 1
1014 */
1015 HWTEST_F(CopyCoreTest, CopyCoreTest_HandleProgress_001, testing::ext::TestSize.Level1)
1016 {
1017 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_HandleProgress_001";
1018
1019 auto infos = make_shared<FsFileInfos>();
1020 infos->isFile = false;
1021 infos->srcPath = "/data/test/src";
1022 infos->destPath = "/data/test/dest";
1023
1024 auto event = make_unique<inotify_event>();
1025 event->wd = EXPECTED_WD;
1026 event->mask = IN_MODIFY;
1027 event->len = 0;
1028 auto [continueProcess, errCode, needSend] = CopyCore::HandleProgress(event.get(), infos, nullptr);
1029
1030 EXPECT_TRUE(continueProcess);
1031 EXPECT_EQ(errCode, EINVAL);
1032 EXPECT_FALSE(needSend);
1033
1034 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_HandleProgress_001";
1035 }
1036
1037 /**
1038 * @tc.name: CopyCoreTest_HandleProgress_002
1039 * @tc.desc: Test function of CopyCore::HandleProgress interface for FALSE.
1040 * @tc.size: MEDIUM
1041 * @tc.type: FUNC
1042 * @tc.level Level 1
1043 */
1044 HWTEST_F(CopyCoreTest, CopyCoreTest_HandleProgress_002, testing::ext::TestSize.Level1)
1045 {
1046 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_HandleProgress_002";
1047
1048 auto infos = make_shared<FsFileInfos>();
1049 infos->srcPath = srcDir;
1050 infos->destPath = destDir;
1051 infos->isFile = true;
1052
1053 auto callback = make_shared<FsCallbackObject>(nullptr);
1054
1055 auto receiveInfo = make_shared<ReceiveInfo>();
1056 receiveInfo->path = testDir;
1057 callback->wds.push_back({ UNEXPECTED_WD, receiveInfo });
1058
1059 auto event = make_unique<inotify_event>();
1060 event->wd = EXPECTED_WD;
1061 event->mask = IN_MODIFY;
1062 event->len = 0;
1063
1064 auto [continueProcess, errCode, needSend] = CopyCore::HandleProgress(event.get(), infos, callback);
1065
1066 EXPECT_TRUE(continueProcess);
1067 EXPECT_EQ(errCode, EINVAL);
1068 EXPECT_FALSE(needSend);
1069
1070 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_HandleProgress_002";
1071 }
1072
1073 /**
1074 * @tc.name: CopyCoreTest_HandleProgress_003
1075 * @tc.desc: Test function of CopyCore::HandleProgress interface for FALSE.
1076 * @tc.size: MEDIUM
1077 * @tc.type: FUNC
1078 * @tc.level Level 1
1079 */
1080 HWTEST_F(CopyCoreTest, CopyCoreTest_HandleProgress_003, testing::ext::TestSize.Level1)
1081 {
1082 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_HandleProgress_003";
1083
1084 auto infos = make_shared<FsFileInfos>();
1085 infos->srcPath = srcDir;
1086 infos->destPath = destDir;
1087 infos->isFile = true;
1088
1089 auto callback = make_shared<FsCallbackObject>(nullptr);
1090
1091 auto receiveInfo = make_shared<ReceiveInfo>();
1092 receiveInfo->path = srcFile;
1093 callback->wds.push_back({ EXPECTED_WD, receiveInfo });
1094
1095 auto event = make_unique<inotify_event>();
1096 event->wd = EXPECTED_WD;
1097 event->mask = IN_MODIFY;
1098 event->len = 0;
1099
1100 auto [continueProcess, errCode, needSend] = CopyCore::HandleProgress(event.get(), infos, callback);
1101
1102 EXPECT_TRUE(continueProcess);
1103 EXPECT_EQ(errCode, ERRNO_NOERR);
1104 EXPECT_TRUE(needSend);
1105
1106 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_HandleProgress_003";
1107 }
1108
1109 /**
1110 * @tc.name: CopyCoreTest_OnFileReceive_001
1111 * @tc.desc: Test function of CopyCore::OnFileReceive interface fails.
1112 * @tc.size: MEDIUM
1113 * @tc.type: FUNC
1114 * @tc.level Level 1
1115 */
1116 HWTEST_F(CopyCoreTest, CopyCoreTest_OnFileReceive_001, testing::ext::TestSize.Level1)
1117 {
1118 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_OnFileReceive_001";
1119
1120 auto infos = make_shared<FsFileInfos>();
1121 CopyCore::OnFileReceive(infos);
1122 EXPECT_TRUE(CopyCore::callbackMap_.empty());
1123
1124 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_OnFileReceive_001";
1125 }
1126
1127 /**
1128 * @tc.name: CopyCoreTest_OnFileReceive_002
1129 * @tc.desc: Test function of CopyCore::OnFileReceive interface when listener is nullptr.
1130 * @tc.size: MEDIUM
1131 * @tc.type: FUNC
1132 * @tc.level Level 1
1133 */
1134 HWTEST_F(CopyCoreTest, CopyCoreTest_OnFileReceive_002, testing::ext::TestSize.Level1)
1135 {
1136 GTEST_LOG_(INFO) << "CopyCoreTest-begin CopyCoreTest_OnFileReceive_002";
1137
1138 auto infos = make_shared<FsFileInfos>();
1139 auto callback = CopyCore::RegisterListener(infos);
1140 CopyCore::OnFileReceive(infos);
1141 EXPECT_NE(callback, nullptr);
1142 if (callback) {
1143 EXPECT_EQ(callback->listener, nullptr);
1144 }
1145 GTEST_LOG_(INFO) << "CopyCoreTest-end CopyCoreTest_OnFileReceive_002";
1146 }
1147
1148 } // namespace OHOS::FileManagement::ModuleFileIO::Test
1149