• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021 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 "medialibrary_unit_test.h"
17 #include "media_log.h"
18 
19 using namespace std;
20 using namespace testing::ext;
21 
22 namespace OHOS {
23 namespace Media {
24 IMediaLibraryClient* g_mediaLibClientInstance = nullptr;
25 
SetUpTestCase(void)26 void MediaLibraryUnitTest::SetUpTestCase(void)
27 {
28     g_mediaLibClientInstance = IMediaLibraryClient::GetMediaLibraryClientInstance();
29 }
30 
TearDownTestCase(void)31 void MediaLibraryUnitTest::TearDownTestCase(void)
32 {
33     string albumUri;
34     AlbumAsset albumAsset;
35     AssetType assetType = ASSET_IMAGEALBUM;
36 
37     albumUri = "/storage/media/local/files/gtest";
38     if (g_mediaLibClientInstance != nullptr) {
39         (void)g_mediaLibClientInstance->DeleteMediaAlbumAsset(assetType, albumAsset, albumUri);
40     }
41 
42     g_mediaLibClientInstance = nullptr;
43 }
44 
45 /* SetUp:Execute before each test case */
SetUp()46 void MediaLibraryUnitTest::SetUp() {}
47 
TearDown(void)48 void MediaLibraryUnitTest::TearDown(void) {}
49 
50 /*
51  * Feature: MediaLibrary
52  * Function: CreateMediaAsset
53  * SubFunction: NA
54  * FunctionPoints: NA
55  * EnvConditions: NA
56  * CaseDescription: Create media audio asset in requested directory.
57  */
58 HWTEST_F(MediaLibraryUnitTest, medialibrary_CreateMediaAsset_testlevel0_001, TestSize.Level0)
59 {
60     bool errCode = false;
61     MediaAsset mediaAsset;
62     AssetType assetType = ASSET_AUDIO;
63     mediaAsset.name_ = "test_001_audio.mp3";
64     mediaAsset.albumName_ = "gtest/001/audio";
65     if (g_mediaLibClientInstance != nullptr) {
66         errCode = g_mediaLibClientInstance->CreateMediaAsset(assetType, mediaAsset);
67     }
68     EXPECT_NE(errCode, false);
69 }
70 
71 /*
72  * Feature: MediaLibrary
73  * Function: CreateMediaAsset
74  * SubFunction: NA
75  * FunctionPoints: NA
76  * EnvConditions: NA
77  * CaseDescription: Create media audio asset in ROOT_DIR=/storage/media/local/files directory.
78  */
79 HWTEST_F(MediaLibraryUnitTest, medialibrary_CreateMediaAsset_test_002, TestSize.Level1)
80 {
81     bool errCode = false;
82     MediaAsset mediaAsset;
83     AssetType assetType = ASSET_AUDIO;
84 
85     mediaAsset.name_ = "gtest_002_audio.mp3";
86     mediaAsset.albumName_ = "";
87     if (g_mediaLibClientInstance != nullptr) {
88         errCode = g_mediaLibClientInstance->CreateMediaAsset(assetType, mediaAsset);
89 
90         // clearing the file created
91         mediaAsset.uri_ = "/storage/media/local/files/gtest_002_audio.mp3";
92         (void)g_mediaLibClientInstance->DeleteMediaAsset(assetType, mediaAsset);
93     }
94     EXPECT_NE(errCode, false);
95 }
96 /*
97  * Feature: MediaLibrary
98  * Function: GetAudioAssets
99  * SubFunction: NA
100  * FunctionPoints: NA
101  * EnvConditions: NA
102  * CaseDescription: Get audio assets prsent in particalar directory and subdirectories.
103  */
104 HWTEST_F(MediaLibraryUnitTest, medialibrary_GetAudioAssets_testlevel0_001, TestSize.Level0)
105 {
106     vector<unique_ptr<AudioAsset>> audioAssetList;
107     unsigned int size = 0;
108     string dirPath = "gtest/001/audio";
109     vector<string> selectionArgs;
110     struct stat statInfo {};
111     string dirPathCheck = "/storage/media/local/files/" + dirPath;
112 
113     if (stat(dirPathCheck.c_str(), &statInfo) == 0) {
114         if (statInfo.st_mode & S_IFDIR) {
115             if (g_mediaLibClientInstance != nullptr) {
116                 audioAssetList = g_mediaLibClientInstance->GetAudioAssets(dirPath, selectionArgs);
117             }
118         }
119     }
120     EXPECT_NE(audioAssetList.size(), size);
121 }
122 
123 /*
124  * Feature: MediaLibrary
125  * Function: GetAudioAssets
126  * SubFunction: NA
127  * FunctionPoints: NA
128  * EnvConditions: NA
129  * CaseDescription: Get audio assets from ROOT_DIR=/storage/media/local/files directory and subdirectories.
130  */
131 HWTEST_F(MediaLibraryUnitTest, medialibrary_GetAudioAssets_test_002, TestSize.Level1)
132 {
133     vector<unique_ptr<AudioAsset>> audioAssetList;
134     unsigned int size = 0;
135     string dirPath = ""; // ROOT_DIR
136     vector<string> selectionArgs;
137 
138     if (g_mediaLibClientInstance != nullptr) {
139         audioAssetList = g_mediaLibClientInstance->GetAudioAssets(dirPath, selectionArgs);
140     }
141     EXPECT_NE(audioAssetList.size(), size);
142 }
143 
144 /*
145  * Feature: MediaLibrary
146  * Function: CreateMediaAsset
147  * SubFunction: NA
148  * FunctionPoints: NA
149  * EnvConditions: NA
150  * CaseDescription: Create media video asset in requested directory.
151  */
152 HWTEST_F(MediaLibraryUnitTest, medialibrary_CreateMediaAsset_testlevel0_003, TestSize.Level0)
153 {
154     bool errCode = false;
155     MediaAsset mediaAsset;
156     AssetType assetType = ASSET_VIDEO;
157 
158     mediaAsset.name_ = "test_002_video.mp4";
159     mediaAsset.albumName_ = "gtest/002/video";
160     if (g_mediaLibClientInstance != nullptr) {
161         errCode = g_mediaLibClientInstance->CreateMediaAsset(assetType, mediaAsset);
162     }
163     EXPECT_NE(errCode, false);
164 }
165 
166 /*
167  * Feature: MediaLibrary
168  * Function: CreateMediaAsset
169  * SubFunction: NA
170  * FunctionPoints: NA
171  * EnvConditions: NA
172  * CaseDescription: Create media video sset in ROOT_DIR=/storage/media/local/files directory.
173  */
174 HWTEST_F(MediaLibraryUnitTest, medialibrary_CreateMediaAsset_test_004, TestSize.Level1)
175 {
176     bool errCode = false;
177     MediaAsset mediaAsset;
178     AssetType assetType = ASSET_VIDEO;
179 
180     mediaAsset.name_ = "test_002_video.mp4";
181     mediaAsset.albumName_ = "";
182     if (g_mediaLibClientInstance != nullptr) {
183         errCode = g_mediaLibClientInstance->CreateMediaAsset(assetType, mediaAsset);
184 
185         // clearing the file created
186         mediaAsset.uri_ = "/storage/media/local/files/test_002_video.mp4";
187         (void)g_mediaLibClientInstance->DeleteMediaAsset(assetType, mediaAsset);
188     }
189     EXPECT_NE(errCode, false);
190 }
191 
192 /*
193  * Feature: MediaLibrary
194  * Function: GetVideoAssets
195  * SubFunction: NA
196  * FunctionPoints: NA
197  * EnvConditions: NA
198  * CaseDescription: Get video assets present in particalar directory and subdirectories.
199  */
200 HWTEST_F(MediaLibraryUnitTest, medialibrary_GetVideoAssets_testlevel0_001, TestSize.Level0)
201 {
202     vector<unique_ptr<VideoAsset>> videoAssetList;
203     unsigned int size = 0;
204     string dirPath = "gtest/002/video";
205     vector<string> selectionArgs;
206     struct stat statInfo {};
207     string dirPathCheck = "/storage/media/local/files/" + dirPath;
208 
209     if (stat(dirPathCheck.c_str(), &statInfo) == 0) {
210         if (statInfo.st_mode & S_IFDIR) {
211             if (g_mediaLibClientInstance != nullptr) {
212                 videoAssetList = g_mediaLibClientInstance->GetVideoAssets(dirPath, selectionArgs);
213             }
214         }
215     }
216     EXPECT_NE(videoAssetList.size(), size);
217 }
218 
219 /*
220  * Feature: MediaLibrary
221  * Function: GetVideoAssets
222  * SubFunction: NA
223  * FunctionPoints: NA
224  * EnvConditions: NA
225  * CaseDescription: Get video assets from ROOT_DIR=/storage/media/local/files directory and subdirectories.
226  */
227 HWTEST_F(MediaLibraryUnitTest, medialibrary_GetVideoAssets_test_002, TestSize.Level1)
228 {
229     vector<unique_ptr<VideoAsset>> videoAssetList;
230     unsigned int size = 0;
231     string dirPath = "";
232     vector<string> selectionArgs;
233 
234     if (g_mediaLibClientInstance != nullptr) {
235         videoAssetList = g_mediaLibClientInstance->GetVideoAssets(dirPath, selectionArgs);
236     }
237     EXPECT_NE(videoAssetList.size(), size);
238 }
239 
240 /*
241  * Feature: MediaLibrary
242  * Function: CreateMediaAsset
243  * SubFunction: NA
244  * FunctionPoints: NA
245  * EnvConditions: NA
246  * CaseDescription: Create media image asset in requested directory.
247  */
248 HWTEST_F(MediaLibraryUnitTest, medialibrary_CreateMediaAsset_testlevel0_005, TestSize.Level0)
249 {
250     bool errCode = false;
251     MediaAsset mediaAsset;
252     AssetType assetType = ASSET_IMAGE;
253 
254     mediaAsset.name_ = "test_003_image.jpg";
255     mediaAsset.albumName_ = "gtest/003/image";
256     if (g_mediaLibClientInstance != nullptr) {
257         errCode = g_mediaLibClientInstance->CreateMediaAsset(assetType, mediaAsset);
258     }
259     EXPECT_NE(errCode, false);
260 }
261 
262 /*
263  * Feature: MediaLibrary
264  * Function: CreateMediaAsset
265  * SubFunction: NA
266  * FunctionPoints: NA
267  * EnvConditions: NA
268  * CaseDescription: Create media image asset in ROOT_DIR=/storage/media/local/files directory.
269  */
270 HWTEST_F(MediaLibraryUnitTest, medialibrary_CreateMediaAsset_test_006, TestSize.Level1)
271 {
272     bool errCode = false;
273     MediaAsset mediaAsset;
274     AssetType assetType = ASSET_IMAGE;
275 
276     mediaAsset.name_ = "test_003_image.jpg";
277     mediaAsset.albumName_ = "";
278     if (g_mediaLibClientInstance != nullptr) {
279         errCode = g_mediaLibClientInstance->CreateMediaAsset(assetType, mediaAsset);
280 
281         // clearing the file created
282         mediaAsset.uri_ = "/storage/media/local/files/test_003_image.jpg";
283         (void)g_mediaLibClientInstance->DeleteMediaAsset(assetType, mediaAsset);
284     }
285     EXPECT_NE(errCode, false);
286 }
287 
288 /*
289  * Feature: MediaLibrary
290  * Function: CreateMediaAsset
291  * SubFunction: NA
292  * FunctionPoints: NA
293  * EnvConditions: NA
294  * CaseDescription: Create existing media asset in requested directory.
295  */
296 HWTEST_F(MediaLibraryUnitTest, medialibrary_CreateMediaAsset_test_007, TestSize.Level1)
297 {
298     bool errCode = true;
299     MediaAsset mediaAsset;
300     AssetType assetType = ASSET_IMAGE;
301     // create existing file
302     mediaAsset.name_ = "test_003_image.jpg";
303     mediaAsset.albumName_ = "gtest/003/image";
304     if (g_mediaLibClientInstance != nullptr) {
305         errCode = g_mediaLibClientInstance->CreateMediaAsset(assetType, mediaAsset);
306     }
307     EXPECT_EQ(errCode, false);
308 }
309 
310 /*
311  * Feature: MediaLibrary
312  * Function: GetImageAssets
313  * SubFunction: NA
314  * FunctionPoints: NA
315  * EnvConditions: NA
316  * CaseDescription: Get image assets present in particalar directory and subdirectories.
317  */
318 HWTEST_F(MediaLibraryUnitTest, medialibrary_GetImageAssets_testlevel0_001, TestSize.Level0)
319 {
320     vector<unique_ptr<ImageAsset>> imageAssetList;
321     unsigned int size = 0;
322     string dirPath = "gtest/003/image";
323     vector<string> selectionArgs;
324     struct stat statInfo {};
325     string dirPathCheck = "/storage/media/local/files/" + dirPath;
326 
327     if (stat(dirPathCheck.c_str(), &statInfo) == 0) {
328         if (statInfo.st_mode & S_IFDIR) {
329             if (g_mediaLibClientInstance != nullptr) {
330                 imageAssetList = g_mediaLibClientInstance->GetImageAssets(dirPath, selectionArgs);
331             }
332         }
333     }
334     EXPECT_NE(imageAssetList.size(), size);
335 }
336 
337 /*
338  * Feature: MediaLibrary
339  * Function: GetImageAssets
340  * SubFunction: NA
341  * FunctionPoints: NA
342  * EnvConditions: NA
343  * CaseDescription: Get image assets from ROOT_DIR=/storage/media/local/files directory and subdirectories.
344  */
345 HWTEST_F(MediaLibraryUnitTest, medialibrary_GetImageAssets_test_002, TestSize.Level1)
346 {
347     vector<unique_ptr<ImageAsset>> imageAssetList;
348     unsigned int size = 0;
349     string dirPath = "";
350     vector<string> selectionArgs;
351 
352     if (g_mediaLibClientInstance != nullptr) {
353         imageAssetList = g_mediaLibClientInstance->GetImageAssets(dirPath, selectionArgs);
354     }
355     EXPECT_NE(imageAssetList.size(), size);
356 }
357 
358 /*
359  * Feature: MediaLibrary
360  * Function: GetMediaAssets
361  * SubFunction: NA
362  * FunctionPoints: NA
363  * EnvConditions: NA
364  * CaseDescription: Get media assets present in particalar directory and subdirectories.
365  */
366 HWTEST_F(MediaLibraryUnitTest, medialibrary_GetMediaAssets_testlevel0_001, TestSize.Level0)
367 {
368     vector<unique_ptr<MediaAsset>> mediaAssetList;
369     unsigned int size = 0;
370     string dirPath = "gtest/003/image";
371     vector<string> selectionArgs;
372     struct stat statInfo {};
373     string dirPathCheck = "/storage/media/local/files/" + dirPath;
374 
375     if (stat(dirPathCheck.c_str(), &statInfo) == 0) {
376         if (statInfo.st_mode & S_IFDIR) {
377             if (g_mediaLibClientInstance != nullptr) {
378                 mediaAssetList = g_mediaLibClientInstance->GetMediaAssets(dirPath, selectionArgs);
379             }
380         }
381     }
382     EXPECT_NE(mediaAssetList.size(), size);
383 }
384 
385 /*
386  * Feature: MediaLibrary
387  * Function: GetMediaAssets
388  * SubFunction: NA
389  * FunctionPoints: NA
390  * EnvConditions: NA
391  * CaseDescription: Get media assets from ROOT_DIR=/storage/media/local/files directory and subdirectories.
392  */
393 HWTEST_F(MediaLibraryUnitTest, medialibrary_GetMediaAssets_test_002, TestSize.Level1)
394 {
395     vector<unique_ptr<MediaAsset>> mediaAssetList;
396     unsigned int size = 0;
397     string dirPath = "";
398     vector<string> selectionArgs;
399 
400     if (g_mediaLibClientInstance != nullptr) {
401         mediaAssetList = g_mediaLibClientInstance->GetMediaAssets(dirPath, selectionArgs);
402     }
403     EXPECT_NE(mediaAssetList.size(), size);
404 }
405 
406 /*
407  * Feature: MediaLibrary
408  * Function: GetImageAlbumAssets
409  * SubFunction: NA
410  * FunctionPoints: NA
411  * EnvConditions: NA
412  * CaseDescription: Get image media assets present in particalar directory and subdirectories.
413  */
414 HWTEST_F(MediaLibraryUnitTest, medialibrary_GetIMageAlbumAssets_testlevel0_001, TestSize.Level0)
415 {
416     vector<unique_ptr<AlbumAsset>> albumAssetList;
417     unsigned int size = 0;
418     string dirPath = "gtest/003";
419     vector<string> selectionArgs;
420     struct stat statInfo {};
421     string dirPathCheck = "/storage/media/local/files/" + dirPath;
422 
423     if (stat(dirPathCheck.c_str(), &statInfo) == 0) {
424         if (statInfo.st_mode & S_IFDIR) {
425             if (g_mediaLibClientInstance != nullptr) {
426                 albumAssetList = g_mediaLibClientInstance->GetImageAlbumAssets(dirPath, selectionArgs);
427             }
428         }
429     }
430     EXPECT_NE(albumAssetList.size(), size);
431 }
432 
433 /*
434  * Feature: MediaLibrary
435  * Function: GetImageAlbumAssets
436  * SubFunction: NA
437  * FunctionPoints: NA
438  * EnvConditions: NA
439  * CaseDescription: Get image album assets from ROOT_DIR=/storage/media/local/files/ directory and subdirectories.
440  */
441 HWTEST_F(MediaLibraryUnitTest, medialibrary_GetImageAlbumAssets_test_002, TestSize.Level1)
442 {
443     bool errCode = false;
444     AlbumAsset albumAsset;
445     AssetType assetType = ASSET_IMAGEALBUM;
446 
447     albumAsset.SetAlbumName("crtalbum002");
448     if (g_mediaLibClientInstance != nullptr) {
449         errCode = g_mediaLibClientInstance->CreateMediaAlbumAsset(assetType, albumAsset);
450     }
451     EXPECT_NE(errCode, false);
452 
453     vector<unique_ptr<AlbumAsset>> albumAssetList;
454     unsigned int size = 0;
455     string dirPath = "";
456     vector<string> selectionArgs;
457 
458     if (g_mediaLibClientInstance != nullptr) {
459         albumAssetList = g_mediaLibClientInstance->GetImageAlbumAssets(dirPath, selectionArgs);
460     }
461     EXPECT_NE(albumAssetList.size(), size);
462 
463     errCode = false;
464     string albumUri;
465 
466     // delete the empty album
467     albumUri = "/storage/media/local/files/crtalbum002";
468     if (g_mediaLibClientInstance != nullptr) {
469         errCode = g_mediaLibClientInstance->DeleteMediaAlbumAsset(assetType, albumAsset, albumUri);
470     }
471     EXPECT_NE(errCode, false);
472 }
473 
474 /*
475  * Feature: MediaLibrary
476  * Function: GetVideoAlbumAssets
477  * SubFunction: NA
478  * FunctionPoints: NA
479  * EnvConditions: NA
480  * CaseDescription: Get video media assets present in particalar directory and subdirectories.
481  */
482 HWTEST_F(MediaLibraryUnitTest, medialibrary_GetVideoAlbumAssets_testlevel0_003, TestSize.Level0)
483 {
484     vector<unique_ptr<AlbumAsset>> albumAssetList;
485     unsigned int size = 0;
486     string dirPath = "gtest/002";
487     vector<string> selectionArgs;
488     struct stat statInfo {};
489     string dirPathCheck = "/storage/media/local/files/" + dirPath;
490 
491     if (stat(dirPathCheck.c_str(), &statInfo) == 0) {
492         if (statInfo.st_mode & S_IFDIR) {
493             if (g_mediaLibClientInstance != nullptr) {
494                 albumAssetList = g_mediaLibClientInstance->GetVideoAlbumAssets(dirPath, selectionArgs);
495             }
496         }
497     }
498     EXPECT_NE(albumAssetList.size(), size);
499 }
500 
501 /*
502  * Feature: MediaLibrary
503  * Function: GetVideoAlbumAssets
504  * SubFunction: NA
505  * FunctionPoints: NA
506  * EnvConditions: NA
507  * CaseDescription: Get video album assets from ROOT_DIR=/storage/media/local/files directory and subdirectories.
508  */
509 HWTEST_F(MediaLibraryUnitTest, medialibrary_GetVideoAlbumAssets_test_004, TestSize.Level1)
510 {
511     vector<unique_ptr<AlbumAsset>> albumAssetList;
512     unsigned int size = 0;
513     string dirPath = "";
514     vector<string> selectionArgs;
515 
516     if (g_mediaLibClientInstance != nullptr) {
517         albumAssetList = g_mediaLibClientInstance->GetVideoAlbumAssets(dirPath, selectionArgs);
518     }
519     EXPECT_EQ(albumAssetList.size(), size);
520 }
521 
522 /*
523  * Feature: MediaLibrary
524  * Function: ModifyMediaAsset
525  * SubFunction: NA
526  * FunctionPoints: NA
527  * EnvConditions: NA
528  * CaseDescription: Modify media audio asset in requested directory.
529  */
530 HWTEST_F(MediaLibraryUnitTest, medialibrary_ModifyMediaAsset_testlevel0_001, TestSize.Level0)
531 {
532     bool errCode = false;
533     MediaAsset srcMediaAsset;
534     MediaAsset dstMediaAsset;
535     AssetType assetType = ASSET_AUDIO;
536 
537     srcMediaAsset.name_ = "test_001_audio.mp3";
538     srcMediaAsset.uri_ = "/storage/media/local/files/gtest/001/audio/test_001_audio.mp3";
539     dstMediaAsset.name_ = "test_001_audio_modify.mp3";
540     dstMediaAsset.uri_ = "/storage/media/local/files/gtest/001/audio/test_001_audio.mp3";
541     if (g_mediaLibClientInstance != nullptr) {
542         errCode = g_mediaLibClientInstance->ModifyMediaAsset(assetType, srcMediaAsset, dstMediaAsset);
543     }
544     EXPECT_NE(errCode, false);
545 }
546 
547 /*
548  * Feature: MediaLibrary
549  * Function: ModifyMediaAsset
550  * SubFunction: NA
551  * FunctionPoints: NA
552  * EnvConditions: NA
553  * CaseDescription: Modify media audio mp3 file to wav in requested directory.
554  */
555 HWTEST_F(MediaLibraryUnitTest, medialibrary_ModifyMediaAsset_test_002, TestSize.Level1)
556 {
557     bool errCode = true;
558     MediaAsset srcMediaAsset;
559     MediaAsset dstMediaAsset;
560     AssetType assetType = ASSET_AUDIO;
561 
562     srcMediaAsset.name_ = "test_002_audio.mp3";
563     srcMediaAsset.uri_ = "/storage/media/local/files/gtest/001/audio/test_002_audio.mp3";
564     dstMediaAsset.name_ = "test_002_audio_modify.wav";
565     dstMediaAsset.uri_ = "/storage/media/local/files/gtest/001/audio/test_002_audio.mp3";
566     if (g_mediaLibClientInstance != nullptr) {
567         errCode = g_mediaLibClientInstance->ModifyMediaAsset(assetType, srcMediaAsset, dstMediaAsset);
568     }
569     EXPECT_EQ(errCode, false);
570 }
571 
572 /*
573  * Feature: MediaLibrary
574  * Function: ModifyMediaAsset
575  * SubFunction: NA
576  * FunctionPoints: NA
577  * EnvConditions: NA
578  * CaseDescription: Modify media audio asset  in requested non existing directory.
579  */
580 HWTEST_F(MediaLibraryUnitTest, medialibrary_ModifyMediaAsset_test_003, TestSize.Level1)
581 {
582     bool errCode = false;
583     MediaAsset srcMediaAsset;
584     MediaAsset dstMediaAsset;
585     AssetType assetType = ASSET_AUDIO;
586 
587     srcMediaAsset.name_ = "test_002_audio.mp3";
588     srcMediaAsset.uri_ = "/storage/media/local/files/gtest/001/audio_nofile/test_002_audio.mp3";
589     dstMediaAsset.uri_ = "/storage/media/local/files/gtest/001/audio_nofile/test_002_audio.mp3";
590     dstMediaAsset.name_ = "test_002_audio_modify.mp3";
591     if (g_mediaLibClientInstance != nullptr) {
592         errCode = g_mediaLibClientInstance->ModifyMediaAsset(assetType, srcMediaAsset, dstMediaAsset);
593     }
594     EXPECT_EQ(errCode, false);
595 }
596 
597 /*
598  * Feature: MediaLibrary
599  * Function: CopyMediaAsset
600  * SubFunction: NA
601  * FunctionPoints: NA
602  * EnvConditions: NA
603  * CaseDescription: copy media asset to requested new directory, which gets created.
604  */
605 HWTEST_F(MediaLibraryUnitTest, medialibrary_CopyMediaAsset_testlevel0_001, TestSize.Level0)
606 {
607     bool errCode = false;
608     MediaAsset srcMediaAsset;
609     MediaAsset dstMediaAsset;
610     AssetType assetType = ASSET_AUDIO;
611     // copy to requested albumName
612     srcMediaAsset.name_ = "test_001_audio_modify.mp3";
613     srcMediaAsset.uri_ = "/storage/media/local/files/gtest/001/audio/test_001_audio_modify.mp3";
614     dstMediaAsset.albumName_ = "gtest/001/copyaudio";
615     if (g_mediaLibClientInstance != nullptr) {
616         errCode = g_mediaLibClientInstance->CopyMediaAsset(assetType, srcMediaAsset, dstMediaAsset);
617     }
618     EXPECT_NE(errCode, false);
619 }
620 
621 /*
622  * Feature: MediaLibrary
623  * Function: CopyMediaAsset
624  * SubFunction: NA
625  * FunctionPoints: NA
626  * EnvConditions: NA
627  * CaseDescription: copy media asset to requested non existing directory.
628  */
629 HWTEST_F(MediaLibraryUnitTest, medialibrary_CopyMediaAsset_testlevel0_002, TestSize.Level0)
630 {
631     bool errCode = false;
632     MediaAsset srcMediaAsset;
633     MediaAsset dstMediaAsset;
634     AssetType assetType = ASSET_IMAGE;
635     // create and Copy to requested albumName
636     srcMediaAsset.name_ = "test_003_image.jpg";
637     srcMediaAsset.uri_ = "/storage/media/local/files/gtest/003/image/test_003_image.jpg";
638     dstMediaAsset.albumName_ = "gtest/copyjpg/001/image";
639     if (g_mediaLibClientInstance != nullptr) {
640         errCode = g_mediaLibClientInstance->CopyMediaAsset(assetType, srcMediaAsset, dstMediaAsset);
641     }
642     EXPECT_NE(errCode, false);
643 }
644 
645 /*
646  * Feature: MediaLibrary
647  * Function: CopyMediaAsset
648  * SubFunction: NA
649  * FunctionPoints: NA
650  * EnvConditions: NA
651  * CaseDescription: copy media asset to ROOT_DIR=/storage/media/local/files directory.
652  */
653 HWTEST_F(MediaLibraryUnitTest, medialibrary_CopyMediaAsset_test_003, TestSize.Level1)
654 {
655     bool errCode = false;
656     MediaAsset srcMediaAsset;
657     MediaAsset dstMediaAsset;
658     AssetType assetType = ASSET_AUDIO;
659     // copy to ROOT_DIR
660     srcMediaAsset.name_ = "test_001_audio_modify.mp3";
661     srcMediaAsset.uri_ = "/storage/media/local/files/gtest/001/copyaudio/test_001_audio_modify.mp3";
662     dstMediaAsset.albumName_ = "";
663     if (g_mediaLibClientInstance != nullptr) {
664         errCode = g_mediaLibClientInstance->CopyMediaAsset(assetType, srcMediaAsset, dstMediaAsset);
665     }
666     EXPECT_EQ(errCode, false);
667 }
668 
669 /*
670  * Feature: MediaLibrary
671  * Function: CopyMediaAsset
672  * SubFunction: NA
673  * FunctionPoints: NA
674  * EnvConditions: NA
675  * CaseDescription: copy media asset in requested directory without source file name .
676  */
677 HWTEST_F(MediaLibraryUnitTest, medialibrary_CopyMediaAsset_test_004, TestSize.Level1)
678 {
679     bool errCode = false;
680     MediaAsset srcMediaAsset;
681     MediaAsset dstMediaAsset;
682     AssetType assetType = ASSET_AUDIO;
683 
684     srcMediaAsset.name_ = "";
685     srcMediaAsset.uri_ = "/storage/media/local/files/gtest/001/audio/test_fail.mp3";
686     dstMediaAsset.albumName_ = "";
687     if (g_mediaLibClientInstance != nullptr) {
688         errCode = g_mediaLibClientInstance->CopyMediaAsset(assetType, srcMediaAsset, dstMediaAsset);
689     }
690     EXPECT_EQ(errCode, false);
691 }
692 
693 /*
694  * Feature: MediaLibrary
695  * Function: DeleteMediaAsset
696  * SubFunction: NA
697  * FunctionPoints: NA
698  * EnvConditions: NA
699  * CaseDescription: Delete media audio asset from requested directory.
700  */
701 HWTEST_F(MediaLibraryUnitTest, medialibrary_DeleteMediaAsset_testlevel0_001, TestSize.Level0)
702 {
703     bool errCode = false;
704     MediaAsset mediaAsset;
705     AssetType assetType = ASSET_AUDIO;
706 
707     mediaAsset.name_ = "test_001_audio_modify.mp3";
708     mediaAsset.uri_ = "/storage/media/local/files/gtest/001/copyaudio/test_001_audio_modify.mp3";
709     if (g_mediaLibClientInstance != nullptr) {
710         errCode = g_mediaLibClientInstance->DeleteMediaAsset(assetType, mediaAsset);
711     }
712     EXPECT_NE(errCode, false);
713 }
714 
715 /*
716  * Feature: MediaLibrary
717  * Function: DeleteMediaAsset
718  * SubFunction: NA
719  * FunctionPoints: NA
720  * EnvConditions: NA
721  * CaseDescription: Delete media video asset in requested directory.
722  */
723 HWTEST_F(MediaLibraryUnitTest, medialibrary_DeleteMediaAsset_testlevel0_002, TestSize.Level0)
724 {
725     bool errCode = false;
726     MediaAsset mediaAsset;
727     AssetType assetType = ASSET_VIDEO;
728 
729     mediaAsset.name_ = "test_002_video.mp4";
730     mediaAsset.uri_ = "/storage/media/local/files/gtest/002/video/test_002_video.mp4";
731     if (g_mediaLibClientInstance != nullptr) {
732         errCode = g_mediaLibClientInstance->DeleteMediaAsset(assetType, mediaAsset);
733     }
734     EXPECT_NE(errCode, false);
735 }
736 
737 /*
738  * Feature: MediaLibrary
739  * Function: DeleteMediaAsset
740  * SubFunction: NA
741  * FunctionPoints: NA
742  * EnvConditions: NA
743  * CaseDescription: Create media image asset in requested directory.
744  */
745 HWTEST_F(MediaLibraryUnitTest, medialibrary_DeleteMediaAsset_testlevel0_003, TestSize.Level0)
746 {
747     bool errCode = false;
748     MediaAsset mediaAsset;
749     AssetType assetType = ASSET_IMAGE;
750 
751     mediaAsset.name_ = "test_003_image.jpg";
752     mediaAsset.uri_ = "/storage/media/local/files/gtest/003/image/test_003_image.jpg";
753     if (g_mediaLibClientInstance != nullptr) {
754         errCode = g_mediaLibClientInstance->DeleteMediaAsset(assetType, mediaAsset);
755     }
756     EXPECT_NE(errCode, false);
757 }
758 
759 /*
760  * Feature: MediaLibrary
761  * Function: DeleteMediaAsset
762  * SubFunction: NA
763  * FunctionPoints: NA
764  * EnvConditions: NA
765  * CaseDescription: Delete media asset from requested empty directory path
766  */
767 HWTEST_F(MediaLibraryUnitTest, medialibrary_DeleteMediaAsset_test_004, TestSize.Level1)
768 {
769     bool errCode = true;
770     MediaAsset mediaAsset;
771     AssetType assetType = ASSET_AUDIO;
772 
773     mediaAsset.name_ = "";
774     mediaAsset.uri_ = "";
775     if (g_mediaLibClientInstance != nullptr) {
776         errCode = g_mediaLibClientInstance->DeleteMediaAsset(assetType, mediaAsset);
777     }
778     EXPECT_EQ(errCode, false);
779 }
780 
781 /*
782  * Feature: MediaLibrary
783  * Function: CreateMediaAlbumAsset
784  * SubFunction: NA
785  * FunctionPoints: NA
786  * EnvConditions: NA
787  * CaseDescription: Create album asset in requested directory.
788  */
789 HWTEST_F(MediaLibraryUnitTest, medialibrary_CreateMediaAlbumAsset_testlevel0_001, TestSize.Level0)
790 {
791     bool errCode = false;
792     AlbumAsset albumAsset;
793     AssetType assetType = ASSET_GENERIC_ALBUM;
794 
795     albumAsset.SetAlbumName("gtest/crtalbum001");
796     if (g_mediaLibClientInstance != nullptr) {
797         errCode = g_mediaLibClientInstance->CreateMediaAlbumAsset(assetType, albumAsset);
798     }
799     EXPECT_NE(errCode, false);
800 }
801 
802 /*
803  * Feature: MediaLibrary
804  * Function: ModifyMediaAlbumAsset
805  * SubFunction: NA
806  * FunctionPoints: NA
807  * EnvConditions: NA
808  * CaseDescription: Modify image album asset from requested directory.
809  */
810 HWTEST_F(MediaLibraryUnitTest, medialibrary_ModifyMediaAlbumAsset_testlevel0_001, TestSize.Level0)
811 {
812     bool errCode = false;
813     AlbumAsset srcAlbumAsset;
814     AlbumAsset dstAlbumAsset;
815     string albumUri;
816     AssetType assetType = ASSET_IMAGEALBUM;
817 
818     srcAlbumAsset.SetAlbumName("gtest/copyjpg/001/image");
819     dstAlbumAsset.SetAlbumName("modify_image001");
820     albumUri = "/storage/media/local/files/gtest/copyjpg/001/image";
821     if (g_mediaLibClientInstance != nullptr) {
822         errCode = g_mediaLibClientInstance->ModifyMediaAlbumAsset(assetType, srcAlbumAsset, dstAlbumAsset, albumUri);
823     }
824     EXPECT_NE(errCode, false);
825 }
826 
827 /*
828  * Feature: MediaLibrary
829  * Function: ModifyMediaAlbumAsset
830  * SubFunction: NA
831  * FunctionPoints: NA
832  * EnvConditions: NA
833  * CaseDescription: Modify image album asset in requested "non existing" directory.
834  */
835 HWTEST_F(MediaLibraryUnitTest, medialibrary_ModifyMediaAlbumAsset_test_002, TestSize.Level1)
836 {
837     bool errCode = true;
838     AlbumAsset srcAlbumAsset;
839     AlbumAsset dstAlbumAsset;
840     string albumUri;
841     AssetType assetType = ASSET_IMAGEALBUM;
842 
843     srcAlbumAsset.SetAlbumName("test/album001");
844     dstAlbumAsset.SetAlbumName("modify_album002");
845     albumUri = "/storage/media/local/files/test2/album001";
846     if (g_mediaLibClientInstance != nullptr) {
847         errCode = g_mediaLibClientInstance->ModifyMediaAlbumAsset(assetType, srcAlbumAsset, dstAlbumAsset, albumUri);
848     }
849     EXPECT_EQ(errCode, false);
850 }
851 
852 /*
853  * Feature: MediaLibrary
854  * Function: DeleteMediaAlbumAsset
855  * SubFunction: NA
856  * FunctionPoints: NA
857  * EnvConditions: NA
858  * CaseDescription: Delete media album from requested directory path.
859  */
860 HWTEST_F(MediaLibraryUnitTest, medialibrary_DeleteMediaAlbumAsset_testlevel0_001, TestSize.Level0)
861 {
862     bool errCode = false;
863     AlbumAsset albumAsset;
864     string albumUri;
865     struct stat statInfo {};
866     AssetType assetType = ASSET_IMAGEALBUM;
867 
868     albumAsset.SetAlbumName("gtest/copyjpg/001/modify_image001");
869     albumUri = "/storage/media/local/files/gtest/copyjpg/001/modify_image001";
870     if (stat(albumUri.c_str(), &statInfo) == 0) {
871         if (statInfo.st_mode & S_IFDIR) {
872             if (g_mediaLibClientInstance != nullptr) {
873                 errCode = g_mediaLibClientInstance->DeleteMediaAlbumAsset(assetType, albumAsset, albumUri);
874             }
875         }
876     }
877     EXPECT_NE(errCode, false);
878 }
879 
880 /*
881  * Feature: MediaLibrary
882  * Function: DeleteMediaAlbumAsset
883  * SubFunction: NA
884  * FunctionPoints: NA
885  * EnvConditions: NA
886  * CaseDescription: Delete media album from requested non existing path.
887  */
888 HWTEST_F(MediaLibraryUnitTest, medialibrary_DeleteMediaAlbumAsset_test_002, TestSize.Level1)
889 {
890     bool errCode = true;
891     AlbumAsset albumAsset;
892     string albumUri;
893     AssetType assetType = ASSET_IMAGEALBUM;
894 
895     albumAsset.SetAlbumName("gtest/modify_album001");
896     albumUri = "/storage/media/local/files/test/modify_album002";
897     if (g_mediaLibClientInstance != nullptr) {
898         errCode = g_mediaLibClientInstance->DeleteMediaAlbumAsset(assetType, albumAsset, albumUri);
899     }
900     EXPECT_EQ(errCode, false);
901 }
902 } // namespace Media
903 } // namespace OHOS
904