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
16 #include <cstdio>
17 #include <thread>
18 #include <unistd.h>
19
20 #include <gtest/gtest.h>
21 #include <nlohmann/json.hpp>
22
23 #include "accesstoken_kit.h"
24 #include "file_access_extension_info.h"
25 #include "file_access_framework_errno.h"
26 #include "file_access_helper.h"
27 #include "iservice_registry.h"
28 #include "image_source.h"
29 #include "nativetoken_kit.h"
30 #include "token_setproc.h"
31
32 namespace {
33 using namespace std;
34 using namespace OHOS;
35 using namespace FileAccessFwk;
36 using namespace OHOS::Media;
37 using json = nlohmann::json;
38 const int ABILITY_ID = 5003;
39 const int INIT_THREADS_NUMBER = 4;
40 const int ACTUAL_SUCCESS_THREADS_NUMBER = 1;
41 int g_num = 0;
42 shared_ptr<FileAccessHelper> g_fah = nullptr;
43 Uri g_newDirUri("");
44 const int UID_TRANSFORM_TMP = 20000000;
45 const int UID_DEFAULT = 0;
46
SetNativeToken()47 void SetNativeToken()
48 {
49 uint64_t tokenId;
50 const char **perms = new const char *[1];
51 perms[0] = "ohos.permission.FILE_ACCESS_MANAGER";
52 NativeTokenInfoParams infoInstance = {
53 .dcapsNum = 0,
54 .permsNum = 1,
55 .aclsNum = 0,
56 .dcaps = nullptr,
57 .perms = perms,
58 .acls = nullptr,
59 .aplStr = "system_core",
60 };
61
62 infoInstance.processName = "SetUpTestCase";
63 tokenId = GetAccessTokenId(&infoInstance);
64 const uint64_t systemAppMask = (static_cast<uint64_t>(1) << 32);
65 tokenId |= systemAppMask;
66 SetSelfTokenID(tokenId);
67 OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo();
68 delete[] perms;
69 }
70
71 class FileAccessHelperTest : public testing::Test {
72 public:
SetUpTestCase(void)73 static void SetUpTestCase(void)
74 {
75 cout << "FileAccessHelperTest code test" << endl;
76 SetNativeToken();
77 auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
78 auto remoteObj = saManager->GetSystemAbility(ABILITY_ID);
79 AAFwk::Want want;
80 vector<AAFwk::Want> wantVec;
81 setuid(UID_TRANSFORM_TMP);
82 int ret = FileAccessHelper::GetRegisteredFileAccessExtAbilityInfo(wantVec);
83 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
84 bool sus = false;
85 for (size_t i = 0; i < wantVec.size(); i++) {
86 auto element = wantVec[i].GetElement();
87 if (element.GetBundleName() == "com.ohos.medialibrary.medialibrarydata" &&
88 element.GetAbilityName() == "FileExtensionAbility") {
89 want = wantVec[i];
90 sus = true;
91 break;
92 }
93 }
94 EXPECT_TRUE(sus);
95 vector<AAFwk::Want> wants{want};
96 g_fah = FileAccessHelper::Creator(remoteObj, wants);
97 if (g_fah == nullptr) {
98 GTEST_LOG_(ERROR) << "medialibrary_file_access_test g_fah is nullptr";
99 exit(1);
100 }
101 setuid(UID_DEFAULT);
102 }
TearDownTestCase()103 static void TearDownTestCase()
104 {
105 g_fah->Release();
106 g_fah = nullptr;
107 };
SetUp()108 void SetUp(){};
TearDown()109 void TearDown(){};
110 };
111
GetParentUri()112 static Uri GetParentUri()
113 {
114 vector<RootInfo> info;
115 int result = g_fah->GetRoots(info);
116 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
117 Uri parentUri("");
118 if (info.size() > OHOS::FileAccessFwk::ERR_OK) {
119 parentUri = Uri(info[0].uri + "/file");
120 GTEST_LOG_(ERROR) << parentUri.ToString();
121 }
122 return parentUri;
123 }
124
125 /**
126 * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0000
127 * @tc.name: medialibrary_file_access_OpenFile_0000
128 * @tc.desc: Test function of OpenFile interface for SUCCESS.
129 * @tc.size: MEDIUM
130 * @tc.type: FUNC
131 * @tc.level Level 1
132 * @tc.require: SR000H0386
133 */
134 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0000, testing::ext::TestSize.Level1)
135 {
136 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0000";
137 try {
138 Uri parentUri = GetParentUri();
139 bool isExist = false;
140 int result = g_fah->Access(g_newDirUri, isExist);
141 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
142 if (!isExist) {
143 result = g_fah->Mkdir(parentUri, "Download", g_newDirUri);
144 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
145 }
146 Uri newDirUriTest("file://media/root/file");
147 FileInfo fileInfo;
148 fileInfo.uri = newDirUriTest.ToString();
149 int64_t offset = 0;
150 int64_t maxCount = 1000;
151 std::vector<FileInfo> fileInfoVec;
152 FileFilter filter;
153 result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
154 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
155 EXPECT_GE(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK);
156 for (size_t i = 0; i < fileInfoVec.size(); i++) {
157 if (fileInfoVec[i].fileName.compare("Download") == 0) {
158 g_newDirUri = Uri(fileInfoVec[i].uri);
159 break;
160 }
161 }
162 result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest);
163 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
164 Uri newFileUri("");
165 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_OpenFile_0000.txt", newFileUri);
166 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
167 int fd;
168 result = g_fah->OpenFile(newFileUri, WRITE_READ, fd);
169 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
170 GTEST_LOG_(INFO) << "OpenFile_0000 result:" << result;
171 close(fd);
172 result = g_fah->Delete(newDirUriTest);
173 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
174 } catch (...) {
175 GTEST_LOG_(ERROR) << "medialibrary_file_accsess_OpenFile_0000 occurs an exception.";
176 }
177 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0000";
178 }
179
180 /**
181 * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0001
182 * @tc.name: medialibrary_file_access_OpenFile_0001
183 * @tc.desc: Test function of OpenFile interface for ERROR which Uri is null.
184 * @tc.size: MEDIUM
185 * @tc.type: FUNC
186 * @tc.level Level 1
187 * @tc.require: SR000H0386
188 */
189 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0001, testing::ext::TestSize.Level1)
190 {
191 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0001";
192 try {
193 Uri uri("");
194 int fd;
195 int result = g_fah->OpenFile(uri, WRITE_READ, fd);
196 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
197 GTEST_LOG_(INFO) << "OpenFile_0001 result:" << result;
198 } catch (...) {
199 GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0001 occurs an exception.";
200 }
201 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0001";
202 }
203
204 /**
205 * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0002
206 * @tc.name: medialibrary_file_access_OpenFile_0002
207 * @tc.desc: Test function of OpenFile interface for ERROR which Uri is absolute path.
208 * @tc.size: MEDIUM
209 * @tc.type: FUNC
210 * @tc.level Level 1
211 * @tc.require: SR000H0386
212 */
213 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0002, testing::ext::TestSize.Level1)
214 {
215 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0002";
216 try {
217 Uri uri("storage/media/100/local/files/Download/medialibrary_file_access_OpenFile_0002.txt");
218 int fd;
219 int result = g_fah->OpenFile(uri, WRITE_READ, fd);
220 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
221 GTEST_LOG_(INFO) << "OpenFile_0002 result:" << result;
222 } catch (...) {
223 GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0002 occurs an exception.";
224 }
225 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0002";
226 }
227
228 /**
229 * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0003
230 * @tc.name: medialibrary_file_access_OpenFile_0003
231 * @tc.desc: Test function of OpenFile interface for ERROR which Uri is special symbols.
232 * @tc.size: MEDIUM
233 * @tc.type: FUNC
234 * @tc.level Level 1
235 * @tc.require: SR000H0386
236 */
237 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0003, testing::ext::TestSize.Level1)
238 {
239 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0003";
240 try {
241 Uri uri("~!@#$%^&*()_");
242 int fd;
243 int result = g_fah->OpenFile(uri, WRITE_READ, fd);
244 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
245 GTEST_LOG_(INFO) << "OpenFile_0003 result:" << result;
246 } catch (...) {
247 GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0003 occurs an exception.";
248 }
249 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0003";
250 }
251
252 /**
253 * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0004
254 * @tc.name: medialibrary_file_access_OpenFile_0004
255 * @tc.desc: Test function of OpenFile interface for ERROR which flag is -1.
256 * @tc.size: MEDIUM
257 * @tc.type: FUNC
258 * @tc.level Level 1
259 * @tc.require: SR000H0386
260 */
261 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0004, testing::ext::TestSize.Level1)
262 {
263 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0004";
264 try {
265 Uri newFileUri("");
266 int result = g_fah->CreateFile(g_newDirUri, "medialibrary_file_access_OpenFile_0004.txt", newFileUri);
267 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
268 int fd;
269 int flag = -1;
270 result = g_fah->OpenFile(newFileUri, flag, fd);
271 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
272 GTEST_LOG_(INFO) << "OpenFile_0004 result:" << result;
273 result = g_fah->Delete(newFileUri);
274 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
275 } catch (...) {
276 GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0004 occurs an exception.";
277 }
278 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0004";
279 }
280
281 /**
282 * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0005
283 * @tc.name: medialibrary_file_access_OpenFile_0005
284 * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 0.
285 * @tc.size: MEDIUM
286 * @tc.type: FUNC
287 * @tc.level Level 1
288 * @tc.require: SR000H0386
289 */
290 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0005, testing::ext::TestSize.Level1)
291 {
292 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0005";
293 try {
294 Uri newFileUri("");
295 int result = g_fah->CreateFile(g_newDirUri, "medialibrary_file_access_OpenFile_0005.txt", newFileUri);
296 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
297 int fd;
298 result = g_fah->OpenFile(newFileUri, READ, fd);
299 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
300 GTEST_LOG_(INFO) << "OpenFile_0005 result:" << result;
301 close(fd);
302 result = g_fah->Delete(newFileUri);
303 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
304 } catch (...) {
305 GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0005 occurs an exception.";
306 }
307 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0005";
308 }
309
310 /**
311 * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0006
312 * @tc.name: medialibrary_file_access_OpenFile_0006
313 * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 1.
314 * @tc.size: MEDIUM
315 * @tc.type: FUNC
316 * @tc.level Level 1
317 * @tc.require: SR000H0386
318 */
319 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0006, testing::ext::TestSize.Level1)
320 {
321 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0006";
322 try {
323 Uri newFileUri("");
324 int result = g_fah->CreateFile(g_newDirUri, "medialibrary_file_access_OpenFile_0006.txt", newFileUri);
325 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
326 int fd;
327 result = g_fah->OpenFile(newFileUri, WRITE, fd);
328 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
329 GTEST_LOG_(INFO) << "OpenFile_0006 result:" << result;
330 close(fd);
331 result = g_fah->Delete(newFileUri);
332 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
333 } catch (...) {
334 GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0006 occurs an exception.";
335 }
336 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0006";
337 }
338
339 /**
340 * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0007
341 * @tc.name: medialibrary_file_access_OpenFile_0007
342 * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 2.
343 * @tc.size: MEDIUM
344 * @tc.type: FUNC
345 * @tc.level Level 1
346 * @tc.require: SR000H0386
347 */
348 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0007, testing::ext::TestSize.Level1)
349 {
350 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0007";
351 try {
352 Uri newFileUri("");
353 int result = g_fah->CreateFile(g_newDirUri, "medialibrary_file_access_OpenFile_0007.txt", newFileUri);
354 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
355 int fd;
356 result = g_fah->OpenFile(newFileUri, WRITE_READ, fd);
357 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
358 GTEST_LOG_(INFO) << "OpenFile_0007 result:" << result;
359 close(fd);
360 result = g_fah->Delete(newFileUri);
361 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
362 } catch (...) {
363 GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0007 occurs an exception.";
364 }
365 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0007";
366 }
367
OpenFileTdd(shared_ptr<FileAccessHelper> fahs,Uri uri,int flag,int fd)368 static void OpenFileTdd(shared_ptr<FileAccessHelper> fahs, Uri uri, int flag, int fd)
369 {
370 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFileTdd";
371 int ret = fahs->OpenFile(uri, flag, fd);
372 if (ret != OHOS::FileAccessFwk::ERR_OK) {
373 GTEST_LOG_(ERROR) << "OpenFileTdd get result error, code:" << ret;
374 return;
375 }
376 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
377 EXPECT_GE(fd, OHOS::FileAccessFwk::ERR_OK);
378 g_num++;
379 close(fd);
380 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFileTdd";
381 }
382
383 /**
384 * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0008
385 * @tc.name: medialibrary_file_access_OpenFile_0008
386 * @tc.desc: Test function of OpenFile interface for SUCCESS which Concurrent.
387 * @tc.size: MEDIUM
388 * @tc.type: FUNC
389 * @tc.level Level 1
390 * @tc.require: SR000H0386
391 */
392 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0008, testing::ext::TestSize.Level1)
393 {
394 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0008";
395 try {
396 Uri newFileUri("");
397 int fd;
398 g_num = 0;
399 std::string displayName = "test1.txt";
400 int result = g_fah->CreateFile(g_newDirUri, displayName, newFileUri);
401 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
402 for (int j = 0; j < INIT_THREADS_NUMBER; j++) {
403 std::thread execthread(OpenFileTdd, g_fah, newFileUri, WRITE_READ, fd);
404 execthread.join();
405 }
406 EXPECT_EQ(g_num, INIT_THREADS_NUMBER);
407 result = g_fah->Delete(newFileUri);
408 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
409 } catch (...) {
410 GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0008 occurs an exception.";
411 }
412 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0008";
413 }
414
415 /**
416 * @tc.number: user_file_service_medialibrary_file_access_CreateFile_0000
417 * @tc.name: medialibrary_file_access_CreateFile_0000
418 * @tc.desc: Test function of CreateFile interface for SUCCESS.
419 * @tc.size: MEDIUM
420 * @tc.type: FUNC
421 * @tc.level Level 1
422 * @tc.require: SR000H0386
423 */
424 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_CreateFile_0000, testing::ext::TestSize.Level1)
425 {
426 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_CreateFile_0000";
427 try {
428 Uri newFileUri("");
429 int result = g_fah->CreateFile(g_newDirUri, "medialibrary_file_access_CreateFile_0000.txt", newFileUri);
430 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
431 GTEST_LOG_(INFO) << "CreateFile_0000 result:" << result;
432 result = g_fah->Delete(newFileUri);
433 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
434 } catch (...) {
435 GTEST_LOG_(ERROR) << "medialibrary_file_access_CreateFile_0000 occurs an exception.";
436 }
437 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_CreateFile_0000";
438 }
439
440 /**
441 * @tc.number: user_file_service_medialibrary_file_access_CreateFile_0001
442 * @tc.name: medialibrary_file_access_CreateFile_0001
443 * @tc.desc: Test function of CreateFile interface for ERROR which parentUri is null.
444 * @tc.size: MEDIUM
445 * @tc.type: FUNC
446 * @tc.level Level 1
447 * @tc.require: SR000H0386
448 */
449 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_CreateFile_0001, testing::ext::TestSize.Level1)
450 {
451 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_CreateFile_0001";
452 try {
453 Uri newFileUri("");
454 Uri parentUri("");
455 int result = g_fah->CreateFile(parentUri, "medialibrary_file_access_CreateFile_0001.txt", newFileUri);
456 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
457 GTEST_LOG_(INFO) << "CreateFile_0001 result:" << result;
458 } catch (...) {
459 GTEST_LOG_(ERROR) << "medialibrary_file_access_CreateFile_0001 occurs an exception.";
460 }
461 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_CreateFile_0001";
462 }
463
464 /**
465 * @tc.number: user_file_service_medialibrary_file_access_CreateFile_0002
466 * @tc.name: medialibrary_file_access_CreateFile_0002
467 * @tc.desc: Test function of CreateFile interface for ERROR which parentUri is absolute path.
468 * @tc.size: MEDIUM
469 * @tc.type: FUNC
470 * @tc.level Level 1
471 * @tc.require: SR000H0386
472 */
473 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_CreateFile_0002, testing::ext::TestSize.Level1)
474 {
475 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_CreateFile_0002";
476 try {
477 Uri newFileUri("");
478 Uri parentUri("storage/media/100/local/files/Download");
479 int result = g_fah->CreateFile(parentUri, "medialibrary_file_access_CreateFile_0002.txt", newFileUri);
480 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
481 GTEST_LOG_(INFO) << "CreateFile_0002 result:" << result;
482 } catch (...) {
483 GTEST_LOG_(ERROR) << "medialibrary_file_access_CreateFile_0002 occurs an exception.";
484 }
485 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_CreateFile_0002";
486 }
487
488 /**
489 * @tc.number: user_file_service_medialibrary_file_access_CreateFile_0003
490 * @tc.name: medialibrary_file_access_CreateFile_0003
491 * @tc.desc: Test function of CreateFile interface for ERROR which parentUri is special symbols.
492 * @tc.size: MEDIUM
493 * @tc.type: FUNC
494 * @tc.level Level 1
495 * @tc.require: SR000H0386
496 */
497 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_CreateFile_0003, testing::ext::TestSize.Level1)
498 {
499 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_CreateFile_0002";
500 try {
501 Uri newFileUri("");
502 Uri parentUri("~!@#$%^&*()_");
503 int result = g_fah->CreateFile(parentUri, "medialibrary_file_access_CreateFile_0003.txt", newFileUri);
504 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
505 GTEST_LOG_(INFO) << "CreateFile_0003 result:" << result;
506 } catch (...) {
507 GTEST_LOG_(ERROR) << "medialibrary_file_access_CreateFile_0003 occurs an exception.";
508 }
509 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_CreateFile_0003";
510 }
511
512 /**
513 * @tc.number: user_file_service_medialibrary_file_access_CreateFile_0004
514 * @tc.name: medialibrary_file_access_CreateFile_0004
515 * @tc.desc: Test function of CreateFile interface for ERROR which displayName is null.
516 * @tc.size: MEDIUM
517 * @tc.type: FUNC
518 * @tc.level Level 1
519 * @tc.require: SR000H0386
520 */
521 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_CreateFile_0004, testing::ext::TestSize.Level1)
522 {
523 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_CreateFile_0004";
524 try {
525 Uri newFileUri("");
526 string displayName = "";
527 int result = g_fah->CreateFile(g_newDirUri, displayName, newFileUri);
528 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
529 GTEST_LOG_(INFO) << "CreateFile_0004 result:" << result;
530 } catch (...) {
531 GTEST_LOG_(ERROR) << "medialibrary_file_access_CreateFile_0004 occurs an exception.";
532 }
533 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_CreateFile_0004";
534 }
535
CreateFileTdd(shared_ptr<FileAccessHelper> fahs,Uri parent,std::string displayName,Uri newDir)536 static void CreateFileTdd(shared_ptr<FileAccessHelper> fahs, Uri parent, std::string displayName, Uri newDir)
537 {
538 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_CreateFileTdd";
539 int ret = fahs->CreateFile(parent, displayName, newDir);
540 if (ret != OHOS::FileAccessFwk::ERR_OK) {
541 GTEST_LOG_(ERROR) << "CreateFileTdd get result error, code:" << ret;
542 return;
543 }
544 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
545 EXPECT_NE(newDir.ToString(), "");
546 g_num++;
547 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_CreateFileTdd";
548 }
549
550 /**
551 * @tc.number: user_file_service_medialibrary_file_access_CreateFile_0005
552 * @tc.name: medialibrary_file_access_CreateFile_0005
553 * @tc.desc: Test function of CreateFile interface for SUCCESS while Concurrent.
554 * @tc.size: MEDIUM
555 * @tc.type: FUNC
556 * @tc.level Level 1
557 * @tc.require: SR000H0386
558 */
559 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_CreateFile_0005, testing::ext::TestSize.Level1)
560 {
561 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_CreateFile_0005";
562 try {
563 Uri newFileUri1("");
564 Uri newFileUri2("");
565 Uri newFileUri3("");
566 std::string displayName1 = "test1";
567 std::string displayName2 = "test2";
568 std::string displayName3 = "test3.txt";
569 int result = g_fah->Mkdir(g_newDirUri, displayName1, newFileUri1);
570 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
571 result = g_fah->Mkdir(newFileUri1, displayName2, newFileUri2);
572 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
573 g_num = 0;
574 for (int j = 0; j < INIT_THREADS_NUMBER; j++) {
575 std::thread execthread(CreateFileTdd, g_fah, newFileUri2, displayName3, newFileUri3);
576 execthread.join();
577 }
578 EXPECT_GE(g_num, ACTUAL_SUCCESS_THREADS_NUMBER);
579 GTEST_LOG_(INFO) << "g_newDirUri.ToString() =" << g_newDirUri.ToString();
580 result = g_fah->Delete(newFileUri1);
581 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
582 } catch (...) {
583 GTEST_LOG_(ERROR) << "medialibrary_file_access_CreateFile_0005 occurs an exception.";
584 }
585 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_CreateFile_0005";
586 }
587
588 /**
589 * @tc.number: user_file_service_medialibrary_file_access_Mkdir_0000
590 * @tc.name: medialibrary_file_access_Mkdir_0000
591 * @tc.desc: Test function of Mkdir interface for SUCCESS.
592 * @tc.size: MEDIUM
593 * @tc.type: FUNC
594 * @tc.level Level 1
595 * @tc.require: SR000H0386
596 */
597 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Mkdir_0000, testing::ext::TestSize.Level1)
598 {
599 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Mkdir_0000";
600 try {
601 Uri newDirUriTest("");
602 int result = g_fah->Mkdir(g_newDirUri, "medialibrary_file_access_Mkdir_0000", newDirUriTest);
603 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
604 GTEST_LOG_(INFO) << "Mkdir_0000 result:" << result;
605 result = g_fah->Delete(newDirUriTest);
606 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
607 } catch (...) {
608 GTEST_LOG_(ERROR) << "medialibrary_file_access_Mkdir_0000 occurs an exception.";
609 }
610 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Mkdir_0000";
611 }
612
613 /**
614 * @tc.number: user_file_service_medialibrary_file_access_Mkdir_0001
615 * @tc.name: medialibrary_file_access_Mkdir_0001
616 * @tc.desc: Test function of Mkdir interface for ERROR which parentUri is null.
617 * @tc.size: MEDIUM
618 * @tc.type: FUNC
619 * @tc.level Level 1
620 * @tc.require: SR000H0386
621 */
622 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Mkdir_0001, testing::ext::TestSize.Level1)
623 {
624 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Mkdir_0001";
625 try {
626 Uri newDirUriTest("");
627 Uri parentUri("");
628 int result = g_fah->Mkdir(parentUri, "medialibrary_file_access_Mkdir_0001", newDirUriTest);
629 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
630 GTEST_LOG_(INFO) << "Mkdir_0001 result:" << result;
631 } catch (...) {
632 GTEST_LOG_(ERROR) << "medialibrary_file_access_Mkdir_0001 occurs an exception.";
633 }
634 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Mkdir_0001";
635 }
636
637 /**
638 * @tc.number: user_file_service_medialibrary_file_access_Mkdir_0002
639 * @tc.name: medialibrary_file_access_Mkdir_0002
640 * @tc.desc: Test function of Mkdir interface for ERROR which parentUri is absolute path.
641 * @tc.size: MEDIUM
642 * @tc.type: FUNC
643 * @tc.level Level 1
644 * @tc.require: SR000H0386
645 */
646 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Mkdir_0002, testing::ext::TestSize.Level1)
647 {
648 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Mkdir_0002";
649 try {
650 Uri newDirUriTest("");
651 Uri parentUri("storage/media/100/local/files/Download");
652 int result = g_fah->Mkdir(parentUri, "medialibrary_file_access_Mkdir_0002", newDirUriTest);
653 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
654 GTEST_LOG_(INFO) << "Mkdir_0002 result:" << result;
655 } catch (...) {
656 GTEST_LOG_(ERROR) << "medialibrary_file_access_Mkdir_0002 occurs an exception.";
657 }
658 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Mkdir_0002";
659 }
660
661 /**
662 * @tc.number: user_file_service_medialibrary_file_access_Mkdir_0003
663 * @tc.name: medialibrary_file_access_Mkdir_0003
664 * @tc.desc: Test function of Mkdir interface for ERROR which parentUri is special symbols.
665 * @tc.size: MEDIUM
666 * @tc.type: FUNC
667 * @tc.level Level 1
668 * @tc.require: SR000H0386
669 */
670 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Mkdir_0003, testing::ext::TestSize.Level1)
671 {
672 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Mkdir_0002";
673 try {
674 Uri newDirUriTest("");
675 Uri parentUri("~!@#$%^&*()_");
676 int result = g_fah->Mkdir(parentUri, "medialibrary_file_access_Mkdir_0003", newDirUriTest);
677 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
678 GTEST_LOG_(INFO) << "Mkdir_0003 result:" << result;
679 } catch (...) {
680 GTEST_LOG_(ERROR) << "medialibrary_file_access_Mkdir_0003 occurs an exception.";
681 }
682 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Mkdir_0003";
683 }
684
685 /**
686 * @tc.number: user_file_service_medialibrary_file_access_Mkdir_0004
687 * @tc.name: medialibrary_file_access_Mkdir_0004
688 * @tc.desc: Test function of Mkdir interface for ERROR which displayName is null.
689 * @tc.size: MEDIUM
690 * @tc.type: FUNC
691 * @tc.level Level 1
692 * @tc.require: SR000H0386
693 */
694 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Mkdir_0004, testing::ext::TestSize.Level1)
695 {
696 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Mkdir_0004";
697 try {
698 Uri newDirUriTest("");
699 string displayName = "";
700 int result = g_fah->Mkdir(g_newDirUri, displayName, newDirUriTest);
701 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
702 GTEST_LOG_(INFO) << "Mkdir_0004 result:" << result;
703 } catch (...) {
704 GTEST_LOG_(ERROR) << "medialibrary_file_access_Mkdir_0004 occurs an exception.";
705 }
706 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Mkdir_0004";
707 }
708
MkdirTdd(shared_ptr<FileAccessHelper> fahs,Uri parent,std::string displayName,Uri newDir)709 static void MkdirTdd(shared_ptr<FileAccessHelper> fahs, Uri parent, std::string displayName, Uri newDir)
710 {
711 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_MkdirTdd";
712 int ret = fahs->Mkdir(parent, displayName, newDir);
713 if (ret != OHOS::FileAccessFwk::ERR_OK) {
714 GTEST_LOG_(ERROR) << "MkdirTdd get result error, code:" << ret;
715 return;
716 }
717 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
718 EXPECT_NE(newDir.ToString(), "");
719 g_num++;
720 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_MkdirTdd";
721 }
722
723 /**
724 * @tc.number: user_file_service_medialibrary_file_access_Mkdir_0005
725 * @tc.name: medialibrary_file_access_Mkdir_0005
726 * @tc.desc: Test function of Mkdir interface for SUCCESS which Concurrent.
727 * @tc.size: MEDIUM
728 * @tc.type: FUNC
729 * @tc.level Level 1
730 * @tc.require: SR000H0386
731 */
732 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Mkdir_0005, testing::ext::TestSize.Level1)
733 {
734 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Mkdir_0005";
735 try {
736 Uri newFileUri1("");
737 Uri newFileUri2("");
738 Uri newFileUri3("");
739 std::string displayName1 = "test1";
740 std::string displayName2 = "test2";
741 std::string displayName3 = "test3";
742 int result = g_fah->Mkdir(g_newDirUri, displayName1, newFileUri1);
743 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
744 result = g_fah->Mkdir(newFileUri1, displayName2, newFileUri2);
745 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
746 g_num = 0;
747 for (int j = 0; j < INIT_THREADS_NUMBER; j++) {
748 std::thread execthread(MkdirTdd, g_fah, newFileUri2, displayName3, newFileUri3);
749 execthread.join();
750 }
751 EXPECT_GE(g_num, ACTUAL_SUCCESS_THREADS_NUMBER);
752 result = g_fah->Delete(newFileUri1);
753 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
754 } catch (...) {
755 GTEST_LOG_(ERROR) << "medialibrary_file_access_Mkdir_0005 occurs an exception.";
756 }
757 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Mkdir_0005";
758 }
759
760 /**
761 * @tc.number: user_file_service_medialibrary_file_access_Delete_0000
762 * @tc.name: medialibrary_file_access_Delete_0000
763 * @tc.desc: Test function of Delete interface for SUCCESS which delete file.
764 * @tc.size: MEDIUM
765 * @tc.type: FUNC
766 * @tc.level Level 1
767 * @tc.require: SR000H0386
768 */
769 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Delete_0000, testing::ext::TestSize.Level1)
770 {
771 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Delete_0000";
772 try {
773 Uri newDirUriTest("");
774 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
775 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
776 Uri newFileUri("");
777 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_Delete_0000.txt", newFileUri);
778 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
779 result = g_fah->Delete(newFileUri);
780 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
781 GTEST_LOG_(INFO) << "Delete_0000 result:" << result;
782 result = g_fah->Delete(newDirUriTest);
783 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
784 } catch (...) {
785 GTEST_LOG_(ERROR) << "medialibrary_file_access_Delete_0000 occurs an exception.";
786 }
787 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Delete_0000";
788 }
789
790 /**
791 * @tc.number: user_file_service_medialibrary_file_access_Delete_0001
792 * @tc.name: medialibrary_file_access_Delete_0001
793 * @tc.desc: Test function of Delete interface for SUCCESS which delete folder.
794 * @tc.size: MEDIUM
795 * @tc.type: FUNC
796 * @tc.level Level 1
797 * @tc.require: SR000H0386
798 */
799 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Delete_0001, testing::ext::TestSize.Level1)
800 {
801 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Delete_0001";
802 try {
803 Uri newDirUriTest("");
804 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
805 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
806 result = g_fah->Delete(newDirUriTest);
807 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
808 GTEST_LOG_(INFO) << "Delete_0001 result:" << result;
809 } catch (...) {
810 GTEST_LOG_(ERROR) << "medialibrary_file_access_Delete_0001 occurs an exception.";
811 }
812 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Delete_0001";
813 }
814
815 /**
816 * @tc.number: user_file_service_medialibrary_file_access_Delete_0002
817 * @tc.name: medialibrary_file_access_Delete_0002
818 * @tc.desc: Test function of Delete interface for ERROR which selectFileUri is null.
819 * @tc.size: MEDIUM
820 * @tc.type: FUNC
821 * @tc.level Level 1
822 * @tc.require: SR000H0386
823 */
824 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Delete_0002, testing::ext::TestSize.Level1)
825 {
826 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Delete_0002";
827 try {
828 Uri selectFileUri("");
829 int result = g_fah->Delete(selectFileUri);
830 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
831 GTEST_LOG_(INFO) << "Delete_0002 result:" << result;
832 } catch (...) {
833 GTEST_LOG_(ERROR) << "medialibrary_file_access_Delete_0002 occurs an exception.";
834 }
835 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Delete_0002";
836 }
837
838 /**
839 * @tc.number: user_file_service_medialibrary_file_access_Delete_0003
840 * @tc.name: medialibrary_file_access_Delete_0003
841 * @tc.desc: Test function of Delete interface for ERROR which selectFileUri is absolute path.
842 * @tc.size: MEDIUM
843 * @tc.type: FUNC
844 * @tc.level Level 1
845 * @tc.require: SR000H0386
846 */
847 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Delete_0003, testing::ext::TestSize.Level1)
848 {
849 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Delete_0003";
850 try {
851 Uri newDirUriTest("");
852 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
853 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
854 Uri selectFileUri("storage/media/100/local/files/Download/test");
855 result = g_fah->Delete(selectFileUri);
856 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
857 result = g_fah->Delete(newDirUriTest);
858 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
859 GTEST_LOG_(INFO) << "Delete_0003 result:" << result;
860 } catch (...) {
861 GTEST_LOG_(ERROR) << "medialibrary_file_access_Delete_0003 occurs an exception.";
862 }
863 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Delete_0003";
864 }
865
866 /**
867 * @tc.number: user_file_service_medialibrary_file_access_Delete_0004
868 * @tc.name: medialibrary_file_access_Delete_0004
869 * @tc.desc: Test function of Delete interface for ERROR which selectFileUri is special symbols.
870 * @tc.size: MEDIUM
871 * @tc.type: FUNC
872 * @tc.level Level 1
873 * @tc.require: SR000H0386
874 */
875 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Delete_0004, testing::ext::TestSize.Level1)
876 {
877 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Delete_0004";
878 try {
879 Uri selectFileUri("!@#$%^&*()");
880 int result = g_fah->Delete(selectFileUri);
881 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
882 GTEST_LOG_(INFO) << "Delete_0004 result:" << result;
883 } catch (...) {
884 GTEST_LOG_(ERROR) << "medialibrary_file_access_Delete_0004 occurs an exception.";
885 }
886 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Delete_0004";
887 }
888
DeleteTdd(shared_ptr<FileAccessHelper> fahs,Uri selectFile)889 static void DeleteTdd(shared_ptr<FileAccessHelper> fahs, Uri selectFile)
890 {
891 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_DeleteTdd";
892 int ret = fahs->Delete(selectFile);
893 if (ret < OHOS::FileAccessFwk::ERR_OK) {
894 GTEST_LOG_(ERROR) << "DeleteTdd get result error, code:" << ret;
895 return;
896 }
897 EXPECT_GE(ret, OHOS::FileAccessFwk::ERR_OK);
898 g_num++;
899 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_DeleteTdd";
900 }
901
902 /**
903 * @tc.number: user_file_service_medialibrary_file_access_Delete_0005
904 * @tc.name: medialibrary_file_access_Delete_0005
905 * @tc.desc: Test function of Delete interface for SUCCESS which Concurrent.
906 * @tc.size: MEDIUM
907 * @tc.type: FUNC
908 * @tc.level Level 1
909 * @tc.require: SR000H0386
910 */
911 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Delete_0005, testing::ext::TestSize.Level1)
912 {
913 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Delete_0005";
914 try {
915 Uri newDirUriTest("");
916 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
917 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
918 Uri newFileUri("");
919 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_Delete_0005.txt", newFileUri);
920 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
921 Uri testUri("");
922 std::string displayName = "test1.txt";
923 Uri testUri2("");
924 result = g_fah->CreateFile(newDirUriTest, displayName, testUri);
925 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
926 g_num = 0;
927 for (int j = 0; j < INIT_THREADS_NUMBER; j++) {
928 std::thread execthread(DeleteTdd, g_fah, testUri);
929 execthread.join();
930 }
931 EXPECT_GE(g_num, ACTUAL_SUCCESS_THREADS_NUMBER);
932 result = g_fah->Delete(newDirUriTest);
933 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
934 } catch (...) {
935 GTEST_LOG_(ERROR) << "medialibrary_file_access_Delete_0005 occurs an exception.";
936 }
937 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Delete_0005";
938 }
939
940 /**
941 * @tc.number: user_file_service_medialibrary_file_access_Move_0000
942 * @tc.name: medialibrary_file_access_Move_0000
943 * @tc.desc: Test function of Move interface for SUCCESS which move file.
944 * @tc.size: MEDIUM
945 * @tc.type: FUNC
946 * @tc.level Level 1
947 * @tc.require: SR000H0386
948 */
949 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0000, testing::ext::TestSize.Level1)
950 {
951 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Move_0000";
952 try {
953 Uri newDirUriTest1("");
954 Uri newDirUriTest2("");
955 int result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest1);
956 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
957 result = g_fah->Mkdir(g_newDirUri, "test2", newDirUriTest2);
958 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
959 Uri testUri("");
960 result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri);
961 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
962 Uri testUri2("");
963 result = g_fah->Move(testUri, newDirUriTest2, testUri2);
964 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
965 GTEST_LOG_(INFO) << "Move_0000 result:" << result;
966 result = g_fah->Delete(newDirUriTest1);
967 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
968 result = g_fah->Delete(newDirUriTest2);
969 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
970 } catch (...) {
971 GTEST_LOG_(ERROR) << "medialibrary_file_access_Move_0000 occurs an exception.";
972 }
973 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Move_0000";
974 }
975
976 /**
977 * @tc.number: user_file_service_medialibrary_file_access_Move_0001
978 * @tc.name: medialibrary_file_access_Move_0001
979 * @tc.desc: Test function of Move interface for SUCCESS which move folder.
980 * @tc.size: MEDIUM
981 * @tc.type: FUNC
982 * @tc.level Level 1
983 * @tc.require: SR000H0386
984 */
985 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0001, testing::ext::TestSize.Level1)
986 {
987 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Move_0001";
988 try {
989 Uri newDirUriTest1("");
990 Uri newDirUriTest2("");
991 int result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest1);
992 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
993 result = g_fah->Mkdir(g_newDirUri, "test2", newDirUriTest2);
994 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
995 Uri testUri("");
996 result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri);
997 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
998 Uri testUri2("");
999 result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2);
1000 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1001 GTEST_LOG_(INFO) << "Move_0001 result:" << result;
1002 result = g_fah->Delete(newDirUriTest1);
1003 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1004 result = g_fah->Delete(newDirUriTest2);
1005 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1006 } catch (...) {
1007 GTEST_LOG_(ERROR) << "medialibrary_file_access_Move_0001 occurs an exception.";
1008 }
1009 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Move_0001";
1010 }
1011
1012 /**
1013 * @tc.number: user_file_service_medialibrary_file_access_Move_0002
1014 * @tc.name: medialibrary_file_access_Move_0002
1015 * @tc.desc: Test function of Move interface for ERROR which sourceFileUri is null.
1016 * @tc.size: MEDIUM
1017 * @tc.type: FUNC
1018 * @tc.level Level 1
1019 * @tc.require: SR000H0386
1020 */
1021 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0002, testing::ext::TestSize.Level1)
1022 {
1023 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Move_0002";
1024 try {
1025 Uri newDirUriTest("");
1026 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
1027 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1028 Uri testUri("");
1029 Uri sourceFileUri("");
1030 result = g_fah->Move(sourceFileUri, newDirUriTest, testUri);
1031 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1032 GTEST_LOG_(INFO) << "Move_0002 result:" << result;
1033 result = g_fah->Delete(newDirUriTest);
1034 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1035 } catch (...) {
1036 GTEST_LOG_(ERROR) << "medialibrary_file_access_Move_0002 occurs an exception.";
1037 }
1038 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Move_0002";
1039 }
1040
1041 /**
1042 * @tc.number: user_file_service_medialibrary_file_access_Move_0003
1043 * @tc.name: medialibrary_file_access_Move_0003
1044 * @tc.desc: Test function of Move interface for ERROR which sourceFileUri is absolute path.
1045 * @tc.size: MEDIUM
1046 * @tc.type: FUNC
1047 * @tc.level Level 1
1048 * @tc.require: SR000H0386
1049 */
1050 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0003, testing::ext::TestSize.Level1)
1051 {
1052 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Move_0003";
1053 try {
1054 Uri newDirUriTest1("");
1055 Uri newDirUriTest2("");
1056 int result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest1);
1057 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1058 result = g_fah->Mkdir(g_newDirUri, "test2", newDirUriTest2);
1059 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1060 Uri testUri("");
1061 result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri);
1062 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1063 Uri testUri2("");
1064 Uri sourceFileUri("storage/media/100/local/files/Download/test1/test.txt");
1065 result = g_fah->Move(sourceFileUri, newDirUriTest2, testUri2);
1066 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1067 GTEST_LOG_(INFO) << "Move_0003 result:" << result;
1068 result = g_fah->Delete(newDirUriTest1);
1069 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1070 result = g_fah->Delete(newDirUriTest2);
1071 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1072 } catch (...) {
1073 GTEST_LOG_(ERROR) << "medialibrary_file_access_Move_0003 occurs an exception.";
1074 }
1075 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Move_0003";
1076 }
1077
1078 /**
1079 * @tc.number: user_file_service_medialibrary_file_access_Move_0004
1080 * @tc.name: medialibrary_file_access_Move_0004
1081 * @tc.desc: Test function of Move interface for ERROR which sourceFileUri is special symbols.
1082 * @tc.size: MEDIUM
1083 * @tc.type: FUNC
1084 * @tc.level Level 1
1085 * @tc.require: SR000H0386
1086 */
1087 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0004, testing::ext::TestSize.Level1)
1088 {
1089 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Move_0004";
1090 try {
1091 Uri newDirUriTest("");
1092 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
1093 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1094 Uri testUri("");
1095 Uri sourceFileUri("~!@#$%^&*()_");
1096 result = g_fah->Move(sourceFileUri, newDirUriTest, testUri);
1097 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1098 GTEST_LOG_(INFO) << "Move_0004 result:" << result;
1099 result = g_fah->Delete(newDirUriTest);
1100 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1101 } catch (...) {
1102 GTEST_LOG_(ERROR) << "medialibrary_file_access_Move_0004 occurs an exception.";
1103 }
1104 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Move_0004";
1105 }
1106
1107 /**
1108 * @tc.number: user_file_service_medialibrary_file_access_Move_0005
1109 * @tc.name: medialibrary_file_access_Move_0005
1110 * @tc.desc: Test function of Move interface for ERROR which targetParentUri is null.
1111 * @tc.size: MEDIUM
1112 * @tc.type: FUNC
1113 * @tc.level Level 1
1114 * @tc.require: SR000H0386
1115 */
1116 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0005, testing::ext::TestSize.Level1)
1117 {
1118 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Move_0005";
1119 try {
1120 Uri newDirUriTest("");
1121 int result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest);
1122 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1123 Uri testUri("");
1124 result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri);
1125 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1126 Uri testUri2("");
1127 Uri targetParentUri("");
1128 result = g_fah->Move(testUri, targetParentUri, testUri2);
1129 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1130 GTEST_LOG_(INFO) << "Move_0005 result:" << result;
1131 result = g_fah->Delete(newDirUriTest);
1132 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1133 } catch (...) {
1134 GTEST_LOG_(ERROR) << "medialibrary_file_access_Move_0005 occurs an exception.";
1135 }
1136 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Move_0005";
1137 }
1138
1139 /**
1140 * @tc.number: user_file_service_medialibrary_file_access_Move_0006
1141 * @tc.name: medialibrary_file_access_Move_0006
1142 * @tc.desc: Test function of Move interface for ERROR which targetParentUri is absolute path.
1143 * @tc.size: MEDIUM
1144 * @tc.type: FUNC
1145 * @tc.level Level 1
1146 * @tc.require: SR000H0386
1147 */
1148 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0006, testing::ext::TestSize.Level1)
1149 {
1150 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Move_0006";
1151 try {
1152 Uri newDirUriTest1("");
1153 Uri newDirUriTest2("");
1154 int result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest1);
1155 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1156 result = g_fah->Mkdir(g_newDirUri, "test2", newDirUriTest2);
1157 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1158 Uri testUri("");
1159 result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri);
1160 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1161 Uri testUri2("");
1162 Uri targetParentUri("storage/media/100/local/files/Download/test2");
1163 result = g_fah->Move(testUri, targetParentUri, testUri2);
1164 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1165 GTEST_LOG_(INFO) << "Move_0006 result:" << result;
1166 result = g_fah->Delete(newDirUriTest1);
1167 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1168 result = g_fah->Delete(newDirUriTest2);
1169 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1170 } catch (...) {
1171 GTEST_LOG_(ERROR) << "medialibrary_file_access_Move_0006 occurs an exception.";
1172 }
1173 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Move_0006";
1174 }
1175
1176 /**
1177 * @tc.number: user_file_service_medialibrary_file_access_Move_0007
1178 * @tc.name: medialibrary_file_access_Move_0007
1179 * @tc.desc: Test function of Move interface for ERROR which targetParentUri is special symbols.
1180 * @tc.size: MEDIUM
1181 * @tc.type: FUNC
1182 * @tc.level Level 1
1183 * @tc.require: SR000H0386
1184 */
1185 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0007, testing::ext::TestSize.Level1)
1186 {
1187 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Move_0007";
1188 try {
1189 Uri newDirUriTest1("");
1190 Uri newDirUriTest2("");
1191 int result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest1);
1192 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1193 result = g_fah->Mkdir(g_newDirUri, "test2", newDirUriTest2);
1194 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1195 Uri testUri("");
1196 result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri);
1197 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1198 Uri testUri2("");
1199 Uri targetParentUri("~!@#$^%&*()_");
1200 result = g_fah->Move(testUri, targetParentUri, testUri2);
1201 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1202 GTEST_LOG_(INFO) << "Move_0007 result:" << result;
1203 result = g_fah->Delete(newDirUriTest1);
1204 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1205 result = g_fah->Delete(newDirUriTest2);
1206 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1207 } catch (...) {
1208 GTEST_LOG_(ERROR) << "medialibrary_file_access_Move_0007 occurs an exception.";
1209 }
1210 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Move_0007";
1211 }
1212
1213 /**
1214 * @tc.number: user_file_service_medialibrary_file_access_Move_0008
1215 * @tc.name: medialibrary_file_access_Move_0008
1216 * @tc.desc: Test function of Move interface for SUCCESS which move empty folder.
1217 * @tc.size: MEDIUM
1218 * @tc.type: FUNC
1219 * @tc.level Level 1
1220 * @tc.require: SR000H0386
1221 */
1222 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0008, testing::ext::TestSize.Level1)
1223 {
1224 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Move_0008";
1225 try {
1226 Uri newDirUriTest1("");
1227 Uri newDirUriTest2("");
1228 int result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest1);
1229 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1230 result = g_fah->Mkdir(g_newDirUri, "test2", newDirUriTest2);
1231 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1232 Uri testUri2("");
1233 result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2);
1234 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1235 GTEST_LOG_(INFO) << "Move_0008 result:" << result;
1236 result = g_fah->Delete(newDirUriTest1);
1237 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1238 result = g_fah->Delete(newDirUriTest2);
1239 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1240 } catch (...) {
1241 GTEST_LOG_(ERROR) << "medialibrary_file_access_Move_0008 occurs an exception.";
1242 }
1243 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Move_0008";
1244 }
1245
1246 /**
1247 * @tc.number: user_file_service_medialibrary_file_access_Move_0009
1248 * @tc.name: medialibrary_file_access_Move_0009
1249 * @tc.desc: Test function of Move interface for SUCCESS which move more file in folder.
1250 * @tc.size: MEDIUM
1251 * @tc.type: FUNC
1252 * @tc.level Level 1
1253 * @tc.require: SR000H0386
1254 */
1255 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0009, testing::ext::TestSize.Level1)
1256 {
1257 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Move_0009";
1258 try {
1259 Uri newDirUriTest1("");
1260 Uri newDirUriTest2("");
1261 int result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest1);
1262 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1263 result = g_fah->Mkdir(g_newDirUri, "test2", newDirUriTest2);
1264 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1265 Uri testUri("");
1266 size_t fileNumbers = 2000;
1267 for (size_t i = 0; i < fileNumbers; i++) {
1268 string fileName = "test" + ToString(i) + ".txt";
1269 result = g_fah->CreateFile(newDirUriTest1, fileName, testUri);
1270 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1271 }
1272 Uri testUri2("");
1273 result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2);
1274 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1275 GTEST_LOG_(INFO) << "Move_0009 result:" << result;
1276 result = g_fah->Delete(newDirUriTest1);
1277 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1278 result = g_fah->Delete(newDirUriTest2);
1279 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1280 } catch (...) {
1281 GTEST_LOG_(ERROR) << "medialibrary_file_access_Move_0009 occurs an exception.";
1282 }
1283 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Move_0009";
1284 }
1285
1286 /**
1287 * @tc.number: user_file_service_medialibrary_file_access_Move_0010
1288 * @tc.name: medialibrary_file_access_Move_0010
1289 * @tc.desc: Test function of Move interface for SUCCESS which move Multilevel directory folder.
1290 * @tc.size: MEDIUM
1291 * @tc.type: FUNC
1292 * @tc.level Level 1
1293 * @tc.require: SR000H0386
1294 */
1295 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0010, testing::ext::TestSize.Level1)
1296 {
1297 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Move_0010";
1298 try {
1299 Uri newDirUriTest1("");
1300 Uri newDirUriTest2("");
1301 int result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest1);
1302 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1303 result = g_fah->Mkdir(g_newDirUri, "test2", newDirUriTest2);
1304 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1305 Uri testUri("");
1306 result = g_fah->Mkdir(newDirUriTest1, "test", testUri);
1307 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1308 size_t directoryNumbers = 50;
1309 for (size_t i = 0; i < directoryNumbers; i++) {
1310 result = g_fah->Mkdir(testUri, "test", testUri);
1311 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1312 }
1313 Uri testUri2("");
1314 result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2);
1315 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1316 GTEST_LOG_(INFO) << "Move_0010 result:" << result;
1317 result = g_fah->Delete(newDirUriTest1);
1318 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1319 result = g_fah->Delete(newDirUriTest2);
1320 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1321 } catch (...) {
1322 GTEST_LOG_(ERROR) << "medialibrary_file_access_Move_0010 occurs an exception.";
1323 }
1324 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Move_0010";
1325 }
1326
MoveTdd(shared_ptr<FileAccessHelper> fahs,Uri sourceFile,Uri targetParent,Uri newFile)1327 static void MoveTdd(shared_ptr<FileAccessHelper> fahs, Uri sourceFile, Uri targetParent, Uri newFile)
1328 {
1329 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_MoveTdd";
1330 int ret = fahs->Move(sourceFile, targetParent, newFile);
1331 if (ret != OHOS::FileAccessFwk::ERR_OK) {
1332 GTEST_LOG_(ERROR) << "MoveTdd get result error, code:" << ret;
1333 return;
1334 }
1335 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
1336 EXPECT_NE(newFile.ToString(), "");
1337 g_num++;
1338 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_MoveTdd";
1339 }
1340
1341 /**
1342 * @tc.number: user_file_service_medialibrary_file_access_Move_0011
1343 * @tc.name: medialibrary_file_access_Move_0011
1344 * @tc.desc: Test function of Move interface for SUCCESS which Concurrent.
1345 * @tc.size: MEDIUM
1346 * @tc.type: FUNC
1347 * @tc.level Level 1
1348 * @tc.require: SR000H0386
1349 */
1350 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0011, testing::ext::TestSize.Level1)
1351 {
1352 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Move_0011";
1353 try {
1354 Uri newDirUriTest1("");
1355 Uri newDirUriTest2("");
1356 int result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest1);
1357 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1358 result = g_fah->Mkdir(g_newDirUri, "test2", newDirUriTest2);
1359 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1360 Uri testUri{""};
1361 Uri testUri2("");
1362 std::string displayName = "test1.txt";
1363 result = g_fah->CreateFile(newDirUriTest1, displayName, testUri);
1364 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1365 for (int j = 0; j < INIT_THREADS_NUMBER; j++) {
1366 std::thread execthread(MoveTdd, g_fah, testUri, newDirUriTest2, testUri2);
1367 execthread.join();
1368 }
1369 EXPECT_GE(g_num, ACTUAL_SUCCESS_THREADS_NUMBER);
1370 result = g_fah->Delete(newDirUriTest1);
1371 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1372 result = g_fah->Delete(newDirUriTest2);
1373 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1374 } catch (...) {
1375 GTEST_LOG_(ERROR) << "medialibrary_file_access_Move_0011 occurs an exception.";
1376 }
1377 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Move_0011";
1378 }
1379
1380 /**
1381 * @tc.number: user_file_service_medialibrary_file_access_Copy_0000
1382 * @tc.name: medialibrary_file_access_Copy_0000
1383 * @tc.desc: Test function of Copy interface, copy a file and argument of force is false
1384 * @tc.size: MEDIUM
1385 * @tc.type: FUNC
1386 * @tc.level Level 1
1387 * @tc.require: I6UI3H
1388 */
1389 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0000, testing::ext::TestSize.Level1)
1390 {
1391 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Copy_0000";
1392 try {
1393 Uri srcUri("");
1394 int result = g_fah->Mkdir(g_newDirUri, "Copy_0000_src", srcUri);
1395 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1396 Uri aFileUri("");
1397 result = g_fah->CreateFile(srcUri, "a.txt", aFileUri);
1398 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1399 int fd;
1400 result = g_fah->OpenFile(aFileUri, WRITE_READ, fd);
1401 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1402 std::string aFileBuff = "Copy test content for a.txt";
1403 ssize_t aFileSize = write(fd, aFileBuff.c_str(), aFileBuff.size());
1404 close(fd);
1405 EXPECT_EQ(aFileSize, aFileBuff.size());
1406
1407 Uri destUri("");
1408 result = g_fah->Mkdir(g_newDirUri, "Copy_0000_dest", destUri);
1409 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1410
1411 vector<CopyResult> copyResult;
1412 result = g_fah->Copy(aFileUri, destUri, copyResult, false);
1413 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1414
1415 result = g_fah->Delete(srcUri);
1416 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1417 result = g_fah->Delete(destUri);
1418 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1419 } catch (...) {
1420 GTEST_LOG_(ERROR) << "medialibrary_file_access_Copy_0000 occurs an exception.";
1421 }
1422 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Copy_0000";
1423 }
1424
1425 /**
1426 * @tc.number: user_file_service_medialibrary_file_access_Copy_0001
1427 * @tc.name: medialibrary_file_access_Copy_0001
1428 * @tc.desc: Test function of Copy interface, copy a directory and argument of force is false
1429 * @tc.size: MEDIUM
1430 * @tc.type: FUNC
1431 * @tc.level Level 1
1432 * @tc.require: I6UI3H
1433 */
1434 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0001, testing::ext::TestSize.Level1)
1435 {
1436 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Copy_0001";
1437 try {
1438 Uri srcUri("");
1439 int result = g_fah->Mkdir(g_newDirUri, "Copy_0001_src", srcUri);
1440 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1441 Uri aFileUri("");
1442 result = g_fah->CreateFile(srcUri, "a.txt", aFileUri);
1443 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1444 int fd;
1445 result = g_fah->OpenFile(aFileUri, WRITE_READ, fd);
1446 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1447 std::string aFileBuff = "Copy test content for a.txt";
1448 ssize_t aFileSize = write(fd, aFileBuff.c_str(), aFileBuff.size());
1449 close(fd);
1450 EXPECT_EQ(aFileSize, aFileBuff.size());
1451
1452 Uri bFileUri("");
1453 result = g_fah->CreateFile(srcUri, "b.txt", bFileUri);
1454 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1455 result = g_fah->OpenFile(bFileUri, WRITE_READ, fd);
1456 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1457 std::string bFileBuff = "Copy test content for b.txt";
1458 ssize_t bFileSize = write(fd, bFileBuff.c_str(), bFileBuff.size());
1459 close(fd);
1460 EXPECT_EQ(bFileSize, bFileBuff.size());
1461
1462 Uri destUri("");
1463 result = g_fah->Mkdir(g_newDirUri, "Copy_0001_dest", destUri);
1464 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1465
1466 vector<CopyResult> copyResult;
1467 result = g_fah->Copy(srcUri, destUri, copyResult, false);
1468 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1469
1470 result = g_fah->Delete(srcUri);
1471 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1472 result = g_fah->Delete(destUri);
1473 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1474 } catch (...) {
1475 GTEST_LOG_(ERROR) << "medialibrary_file_access_Copy_0001 occurs an exception.";
1476 }
1477 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Copy_0001";
1478 }
1479
1480 /**
1481 * @tc.number: user_file_service_medialibrary_file_access_Copy_0002
1482 * @tc.name: medialibrary_file_access_Copy_0002
1483 * @tc.desc: Test function of Copy interface, copy a file with the same name and argument of force is false
1484 * @tc.size: MEDIUM
1485 * @tc.type: FUNC
1486 * @tc.level Level 1
1487 * @tc.require: I6UI3H
1488 */
1489 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0002, testing::ext::TestSize.Level1)
1490 {
1491 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Copy_0002";
1492 try {
1493 Uri srcUri("");
1494 int result = g_fah->Mkdir(g_newDirUri, "Copy_0002_src", srcUri);
1495 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1496 Uri srcFileUri("");
1497 result = g_fah->CreateFile(srcUri, "a.txt", srcFileUri);
1498 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1499 int fd;
1500 result = g_fah->OpenFile(srcFileUri, WRITE_READ, fd);
1501 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1502 std::string aFileBuff = "Copy test content for a.txt";
1503 ssize_t aFileSize = write(fd, aFileBuff.c_str(), aFileBuff.size());
1504 close(fd);
1505 EXPECT_EQ(aFileSize, aFileBuff.size());
1506
1507 Uri destUri("");
1508 result = g_fah->Mkdir(g_newDirUri, "Copy_0002_dest_false", destUri);
1509 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1510 Uri destFileUri("");
1511 result = g_fah->CreateFile(destUri, "a.txt", destFileUri);
1512 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1513
1514 vector<CopyResult> copyResult;
1515 result = g_fah->Copy(srcFileUri, destUri, copyResult, false);
1516 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1517 EXPECT_GT(copyResult.size(), 0);
1518
1519 result = g_fah->Delete(srcUri);
1520 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1521 result = g_fah->Delete(destUri);
1522 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1523 } catch (...) {
1524 GTEST_LOG_(ERROR) << "medialibrary_file_access_Copy_0002 occurs an exception.";
1525 }
1526 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Copy_0002";
1527 }
1528
1529 /**
1530 * @tc.number: user_file_service_medialibrary_file_access_Copy_0003
1531 * @tc.name: medialibrary_file_access_Copy_0003
1532 * @tc.desc: Test function of Copy interface, copy a file with the same name and argument of force is true
1533 * @tc.size: MEDIUM
1534 * @tc.type: FUNC
1535 * @tc.level Level 1
1536 * @tc.require: I6UI3H
1537 */
1538 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0003, testing::ext::TestSize.Level1)
1539 {
1540 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Copy_0003";
1541 try {
1542 Uri srcUri("");
1543 int result = g_fah->Mkdir(g_newDirUri, "Copy_0003_src", srcUri);
1544 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1545 Uri srcFileUri("");
1546 result = g_fah->CreateFile(srcUri, "a.txt", srcFileUri);
1547 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1548 int fd;
1549 result = g_fah->OpenFile(srcFileUri, WRITE_READ, fd);
1550 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1551 std::string aFileBuff = "Copy test content for a.txt";
1552 ssize_t aFileSize = write(fd, aFileBuff.c_str(), aFileBuff.size());
1553 close(fd);
1554 EXPECT_EQ(aFileSize, aFileBuff.size());
1555
1556 Uri destUri("");
1557 result = g_fah->Mkdir(g_newDirUri, "Copy_0003_dest_true", destUri);
1558 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1559 Uri destFileUri("");
1560 result = g_fah->CreateFile(destUri, "a.txt", destFileUri);
1561 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1562
1563 vector<CopyResult> copyResult;
1564 result = g_fah->Copy(srcFileUri, destUri, copyResult, true);
1565 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1566
1567 result = g_fah->Delete(srcUri);
1568 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1569 result = g_fah->Delete(destUri);
1570 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1571 } catch (...) {
1572 GTEST_LOG_(ERROR) << "medialibrary_file_access_Copy_0003 occurs an exception.";
1573 }
1574 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Copy_0003";
1575 }
1576
1577 /**
1578 * @tc.number: user_file_service_medialibrary_file_access_Copy_0004
1579 * @tc.name: medialibrary_file_access_Copy_0004
1580 * @tc.desc: Test function of Copy interface, copy a directory with the same name and argument of force is false
1581 * @tc.size: MEDIUM
1582 * @tc.type: FUNC
1583 * @tc.level Level 1
1584 * @tc.require: I6UI3H
1585 */
1586 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0004, testing::ext::TestSize.Level1)
1587 {
1588 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Copy_0004";
1589 try {
1590 Uri srcUri("");
1591 int result = g_fah->Mkdir(g_newDirUri, "Copy_0004_src", srcUri);
1592 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1593
1594 Uri aFileUri("");
1595 result = g_fah->CreateFile(srcUri, "a.txt", aFileUri);
1596 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1597 int fd;
1598 result = g_fah->OpenFile(aFileUri, WRITE_READ, fd);
1599 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1600 std::string aFileBuff = "Copy test content for a.txt";
1601 ssize_t aFileSize = write(fd, aFileBuff.c_str(), aFileBuff.size());
1602 close(fd);
1603 EXPECT_EQ(aFileSize, aFileBuff.size());
1604
1605 Uri bFileUri("");
1606 result = g_fah->CreateFile(srcUri, "b.txt", bFileUri);
1607 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1608 result = g_fah->OpenFile(bFileUri, WRITE_READ, fd);
1609 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1610 std::string bFileBuff = "Copy test content for b.txt";
1611 ssize_t bFileSize = write(fd, bFileBuff.c_str(), bFileBuff.size());
1612 close(fd);
1613 EXPECT_EQ(bFileSize, bFileBuff.size());
1614
1615 Uri destUri("");
1616 result = g_fah->Mkdir(g_newDirUri, "Copy_0004_dest_false", destUri);
1617 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1618 Uri destSrcUri("");
1619 result = g_fah->Mkdir(destUri, "Copy_0004_src", destSrcUri);
1620 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1621 Uri destSrcAUri("");
1622 result = g_fah->CreateFile(destSrcUri, "a.txt", destSrcAUri);
1623 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1624
1625 vector<CopyResult> copyResult;
1626 result = g_fah->Copy(srcUri, destUri, copyResult, false);
1627 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1628 EXPECT_GT(copyResult.size(), 0);
1629
1630 result = g_fah->Delete(srcUri);
1631 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1632 result = g_fah->Delete(destUri);
1633 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1634 } catch (...) {
1635 GTEST_LOG_(ERROR) << "medialibrary_file_access_Copy_0004 occurs an exception.";
1636 }
1637 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Copy_0004";
1638 }
1639
1640 /**
1641 * @tc.number: user_file_service_medialibrary_file_access_Copy_0005
1642 * @tc.name: medialibrary_file_access_Copy_0005
1643 * @tc.desc: Test function of Copy interface, copy a directory with the same name and argument of force is true
1644 * @tc.size: MEDIUM
1645 * @tc.type: FUNC
1646 * @tc.level Level 1
1647 * @tc.require: I6UI3H
1648 */
1649 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0005, testing::ext::TestSize.Level1)
1650 {
1651 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Copy_0005";
1652 try {
1653 Uri srcUri("");
1654 int result = g_fah->Mkdir(g_newDirUri, "Copy_0005_src", srcUri);
1655 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1656
1657 Uri aFileUri("");
1658 result = g_fah->CreateFile(srcUri, "a.txt", aFileUri);
1659 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1660 int fd;
1661 result = g_fah->OpenFile(aFileUri, WRITE_READ, fd);
1662 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1663 std::string aFileBuff = "Copy test content for a.txt";
1664 ssize_t aFileSize = write(fd, aFileBuff.c_str(), aFileBuff.size());
1665 close(fd);
1666 EXPECT_EQ(aFileSize, aFileBuff.size());
1667
1668 Uri bFileUri("");
1669 result = g_fah->CreateFile(srcUri, "b.txt", bFileUri);
1670 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1671 result = g_fah->OpenFile(bFileUri, WRITE_READ, fd);
1672 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1673 std::string bFileBuff = "Copy test content for b.txt";
1674 ssize_t bFileSize = write(fd, bFileBuff.c_str(), bFileBuff.size());
1675 close(fd);
1676 EXPECT_EQ(bFileSize, bFileBuff.size());
1677
1678 Uri destUri("");
1679 result = g_fah->Mkdir(g_newDirUri, "Copy_0005_dest_true", destUri);
1680 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1681 Uri destSrcUri("");
1682 result = g_fah->Mkdir(destUri, "Copy_0005_src", destSrcUri);
1683 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1684 Uri destSrcAUri("");
1685 result = g_fah->CreateFile(destSrcUri, "a.txt", destSrcAUri);
1686 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1687
1688 vector<CopyResult> copyResult;
1689 result = g_fah->Copy(srcUri, destUri, copyResult, true);
1690 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1691
1692 result = g_fah->Delete(srcUri);
1693 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1694 result = g_fah->Delete(destUri);
1695 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1696 } catch (...) {
1697 GTEST_LOG_(ERROR) << "medialibrary_file_access_Copy_0005 occurs an exception.";
1698 }
1699 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Copy_0005";
1700 }
1701
1702 /**
1703 * @tc.number: user_file_service_medialibrary_file_access_Copy_0006
1704 * @tc.name: medialibrary_file_access_Copy_0006
1705 * @tc.desc: Test function of Copy interface, copy a file with the same name
1706 * @tc.size: MEDIUM
1707 * @tc.type: FUNC
1708 * @tc.level Level 1
1709 * @tc.require: I6UI3H
1710 */
1711 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0006, testing::ext::TestSize.Level1)
1712 {
1713 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Copy_0006";
1714 try {
1715 Uri srcUri("");
1716 int result = g_fah->Mkdir(g_newDirUri, "Copy_0006_src", srcUri);
1717 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1718 Uri srcFileUri("");
1719 result = g_fah->CreateFile(srcUri, "a.txt", srcFileUri);
1720 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1721 int fd;
1722 result = g_fah->OpenFile(srcFileUri, WRITE_READ, fd);
1723 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1724 std::string aFileBuff = "Copy test content for a.txt";
1725 ssize_t aFileSize = write(fd, aFileBuff.c_str(), aFileBuff.size());
1726 close(fd);
1727 EXPECT_EQ(aFileSize, aFileBuff.size());
1728
1729 Uri destUri("");
1730 result = g_fah->Mkdir(g_newDirUri, "Copy_0006_dest_false", destUri);
1731 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1732 Uri destFileUri("");
1733 result = g_fah->CreateFile(destUri, "a.txt", destFileUri);
1734 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1735
1736 vector<CopyResult> copyResult;
1737 result = g_fah->Copy(srcFileUri, destUri, copyResult);
1738 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1739 EXPECT_GT(copyResult.size(), 0);
1740
1741 result = g_fah->Delete(srcUri);
1742 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1743 result = g_fah->Delete(destUri);
1744 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1745 } catch (...) {
1746 GTEST_LOG_(ERROR) << "medialibrary_file_access_Copy_0006 occurs an exception.";
1747 }
1748 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Copy_0006";
1749 }
1750
1751 /**
1752 * @tc.number: user_file_service_medialibrary_file_access_Copy_0007
1753 * @tc.name: medialibrary_file_access_Copy_0007
1754 * @tc.desc: Test function of Copy interface, copy a directory with the same name
1755 * @tc.size: MEDIUM
1756 * @tc.type: FUNC
1757 * @tc.level Level 1
1758 * @tc.require: I6UI3H
1759 */
1760 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0007, testing::ext::TestSize.Level1)
1761 {
1762 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Copy_0007";
1763 try {
1764 Uri srcUri("");
1765 int result = g_fah->Mkdir(g_newDirUri, "Copy_0007_src", srcUri);
1766 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1767
1768 Uri aFileUri("");
1769 result = g_fah->CreateFile(srcUri, "a.txt", aFileUri);
1770 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1771 int fd;
1772 result = g_fah->OpenFile(aFileUri, WRITE_READ, fd);
1773 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1774 std::string aFileBuff = "Copy test content for a.txt";
1775 ssize_t aFileSize = write(fd, aFileBuff.c_str(), aFileBuff.size());
1776 close(fd);
1777 EXPECT_EQ(aFileSize, aFileBuff.size());
1778
1779 Uri bFileUri("");
1780 result = g_fah->CreateFile(srcUri, "b.txt", bFileUri);
1781 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1782 result = g_fah->OpenFile(bFileUri, WRITE_READ, fd);
1783 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1784 std::string bFileBuff = "Copy test content for b.txt";
1785 ssize_t bFileSize = write(fd, bFileBuff.c_str(), bFileBuff.size());
1786 close(fd);
1787 EXPECT_EQ(bFileSize, bFileBuff.size());
1788
1789 Uri destUri("");
1790 result = g_fah->Mkdir(g_newDirUri, "Copy_0007_dest_false", destUri);
1791 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1792 Uri destSrcUri("");
1793 result = g_fah->Mkdir(destUri, "Copy_0007_src", destSrcUri);
1794 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1795 Uri destSrcAUri("");
1796 result = g_fah->CreateFile(destSrcUri, "a.txt", destSrcAUri);
1797 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1798
1799 vector<CopyResult> copyResult;
1800 result = g_fah->Copy(srcUri, destUri, copyResult);
1801 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1802 EXPECT_GT(copyResult.size(), 0);
1803
1804 result = g_fah->Delete(srcUri);
1805 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1806 result = g_fah->Delete(destUri);
1807 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1808 } catch (...) {
1809 GTEST_LOG_(ERROR) << "medialibrary_file_access_Copy_0007 occurs an exception.";
1810 }
1811 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Copy_0007";
1812 }
1813
1814 /**
1815 * @tc.number: user_file_service_medialibrary_file_access_Rename_0000
1816 * @tc.name: medialibrary_file_access_Rename_0000
1817 * @tc.desc: Test function of Rename interface for SUCCESS which rename file.
1818 * @tc.size: MEDIUM
1819 * @tc.type: FUNC
1820 * @tc.level Level 1
1821 * @tc.require: SR000H0386
1822 */
1823 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0000, testing::ext::TestSize.Level1)
1824 {
1825 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0000";
1826 try {
1827 Uri newDirUriTest("");
1828 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
1829 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1830 Uri testUri("");
1831 result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri);
1832 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1833 Uri renameUri("");
1834 result = g_fah->Rename(testUri, "test2.txt", renameUri);
1835 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1836 GTEST_LOG_(INFO) << "Rename_0000 result:" << result;
1837 result = g_fah->Delete(newDirUriTest);
1838 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1839 } catch (...) {
1840 GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0000 occurs an exception.";
1841 }
1842 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0000";
1843 }
1844
1845 /**
1846 * @tc.number: user_file_service_medialibrary_file_access_Rename_0001
1847 * @tc.name: medialibrary_file_access_Rename_0001
1848 * @tc.desc: Test function of Rename interface for SUCCESS which rename folder.
1849 * @tc.size: MEDIUM
1850 * @tc.type: FUNC
1851 * @tc.level Level 1
1852 * @tc.require: SR000H0386
1853 */
1854 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0001, testing::ext::TestSize.Level1)
1855 {
1856 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0001";
1857 try {
1858 Uri newDirUriTest("");
1859 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
1860 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1861 Uri renameUri("");
1862 result = g_fah->Rename(newDirUriTest, "testRename", renameUri);
1863 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1864 GTEST_LOG_(INFO) << "Rename_0001 result:" << result;
1865 result = g_fah->Delete(renameUri);
1866 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1867 } catch (...) {
1868 GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0001 occurs an exception.";
1869 }
1870 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0001";
1871 }
1872
1873 /**
1874 * @tc.number: user_file_service_medialibrary_file_access_Rename_0002
1875 * @tc.name: medialibrary_file_access_Rename_0002
1876 * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is null.
1877 * @tc.size: MEDIUM
1878 * @tc.type: FUNC
1879 * @tc.level Level 1
1880 * @tc.require: SR000H0386
1881 */
1882 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0002, testing::ext::TestSize.Level1)
1883 {
1884 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0002";
1885 try {
1886 Uri renameUri("");
1887 Uri sourceFileUri("");
1888 int result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri);
1889 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1890 GTEST_LOG_(INFO) << "Rename_0002 result:" << result;
1891 } catch (...) {
1892 GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0002 occurs an exception.";
1893 }
1894 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0002";
1895 }
1896
1897 /**
1898 * @tc.number: user_file_service_medialibrary_file_access_Rename_0003
1899 * @tc.name: medialibrary_file_access_Rename_0003
1900 * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is absolute path.
1901 * @tc.size: MEDIUM
1902 * @tc.type: FUNC
1903 * @tc.level Level 1
1904 * @tc.require: SR000H0386
1905 */
1906 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0003, testing::ext::TestSize.Level1)
1907 {
1908 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0003";
1909 try {
1910 Uri newDirUriTest("");
1911 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
1912 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1913 Uri testUri("");
1914 result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri);
1915 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1916 Uri renameUri("");
1917 Uri sourceFileUri("storage/media/100/local/files/Download/test/test.txt");
1918 result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri);
1919 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1920 GTEST_LOG_(INFO) << "Rename_0003 result:" << result;
1921 result = g_fah->Delete(newDirUriTest);
1922 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1923 } catch (...) {
1924 GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0003 occurs an exception.";
1925 }
1926 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0003";
1927 }
1928
1929 /**
1930 * @tc.number: user_file_service_medialibrary_file_access_Rename_0004
1931 * @tc.name: medialibrary_file_access_Rename_0004
1932 * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is special symbols.
1933 * @tc.size: MEDIUM
1934 * @tc.type: FUNC
1935 * @tc.level Level 1
1936 * @tc.require: SR000H0386
1937 */
1938 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0004, testing::ext::TestSize.Level1)
1939 {
1940 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0004";
1941 try {
1942 Uri renameUri("");
1943 Uri sourceFileUri("~!@#$%^&*()_");
1944 int result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri);
1945 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1946 GTEST_LOG_(INFO) << "Rename_0004 result:" << result;
1947 } catch (...) {
1948 GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0004 occurs an exception.";
1949 }
1950 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0004";
1951 }
1952
1953 /**
1954 * @tc.number: user_file_service_medialibrary_file_access_Rename_0005
1955 * @tc.name: medialibrary_file_access_Rename_0005
1956 * @tc.desc: Test function of Rename interface for ERROR which displayName is null.
1957 * @tc.size: MEDIUM
1958 * @tc.type: FUNC
1959 * @tc.level Level 1
1960 * @tc.require: SR000H0386
1961 */
1962 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0005, testing::ext::TestSize.Level1)
1963 {
1964 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0005";
1965 try {
1966 Uri newDirUriTest("");
1967 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
1968 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1969 Uri testUri("");
1970 result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri);
1971 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1972 Uri renameUri("");
1973 result = g_fah->Rename(testUri, "", renameUri);
1974 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1975 GTEST_LOG_(INFO) << "Rename_0005 result:" << result;
1976 result = g_fah->Delete(newDirUriTest);
1977 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
1978 } catch (...) {
1979 GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0005 occurs an exception.";
1980 }
1981 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0005";
1982 }
1983
RenameTdd(shared_ptr<FileAccessHelper> fahs,Uri sourceFile,std::string displayName,Uri newFile)1984 static void RenameTdd(shared_ptr<FileAccessHelper> fahs, Uri sourceFile, std::string displayName, Uri newFile)
1985 {
1986 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_RenameTdd";
1987 int ret = fahs->Rename(sourceFile, displayName, newFile);
1988 if (ret != OHOS::FileAccessFwk::ERR_OK) {
1989 GTEST_LOG_(ERROR) << "RenameTdd get result error, code:" << ret;
1990 return;
1991 }
1992 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
1993 EXPECT_NE(newFile.ToString(), "");
1994 g_num++;
1995 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_RenameTdd";
1996 }
1997
1998 /**
1999 * @tc.number: user_file_service_medialibrary_file_access_Rename_0006
2000 * @tc.name: medialibrary_file_access_Rename_0006
2001 * @tc.desc: Test function of Rename interface for SUCCESS which Concurrent.
2002 * @tc.size: MEDIUM
2003 * @tc.type: FUNC
2004 * @tc.level Level 1
2005 * @tc.require: SR000H0386
2006 */
2007 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0006, testing::ext::TestSize.Level1)
2008 {
2009 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0006";
2010 try {
2011 Uri newDirUriTest("");
2012 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
2013 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2014 Uri testUri{""};
2015 std::string displayName1 = "test1.txt";
2016 std::string displayName2 = "test2.txt";
2017 Uri renameUri("");
2018 result = g_fah->CreateFile(newDirUriTest, displayName1, testUri);
2019 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2020 for (int j = 0; j < INIT_THREADS_NUMBER; j++) {
2021 std::thread execthread(RenameTdd, g_fah, testUri, displayName2, renameUri);
2022 execthread.join();
2023 }
2024 EXPECT_GE(g_num, ACTUAL_SUCCESS_THREADS_NUMBER);
2025 result = g_fah->Delete(newDirUriTest);
2026 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
2027 } catch (...) {
2028 GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0006 occurs an exception.";
2029 }
2030 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0006";
2031 }
2032
2033 /**
2034 * @tc.number: user_file_service_medialibrary_file_access_ListFile_0000
2035 * @tc.name: medialibrary_file_access_ListFile_0000
2036 * @tc.desc: Test function of ListFile interface for SUCCESS.
2037 * @tc.size: MEDIUM
2038 * @tc.type: FUNC
2039 * @tc.level Level 1
2040 * @tc.require: SR000H0386
2041 */
2042 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ListFile_0000, testing::ext::TestSize.Level1)
2043 {
2044 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ListFile_0000";
2045 try {
2046 Uri newDirUriTest("");
2047 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
2048 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2049 Uri testUri("");
2050 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ListFile_0000.txt", testUri);
2051 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2052 FileInfo fileInfo;
2053 fileInfo.uri = newDirUriTest.ToString();
2054 int64_t offset = 0;
2055 int64_t maxCount = 1000;
2056 std::vector<FileInfo> fileInfoVec;
2057 FileFilter filter;
2058 result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
2059 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2060 EXPECT_GT(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK);
2061 GTEST_LOG_(INFO) << "ListFile_0000 result:" << fileInfoVec.size() << endl;
2062 result = g_fah->Delete(newDirUriTest);
2063 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
2064 } catch (...) {
2065 GTEST_LOG_(ERROR) << "medialibrary_file_access_ListFile_0000 occurs an exception.";
2066 }
2067 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ListFile_0000";
2068 }
2069
2070 /**
2071 * @tc.number: user_file_service_medialibrary_file_access_ListFile_0001
2072 * @tc.name: medialibrary_file_access_ListFile_0001
2073 * @tc.desc: Test function of ListFile interface for ERROR which Uri is nullptr.
2074 * @tc.size: MEDIUM
2075 * @tc.type: FUNC
2076 * @tc.level Level 1
2077 * @tc.require: SR000H0386
2078 */
2079 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ListFile_0001, testing::ext::TestSize.Level1)
2080 {
2081 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ListFile_0001";
2082 try {
2083 Uri sourceFileUri("");
2084 FileInfo fileInfo;
2085 fileInfo.uri = sourceFileUri.ToString();
2086 int64_t offset = 0;
2087 int64_t maxCount = 1000;
2088 vector<FileAccessFwk::FileInfo> fileInfoVec;
2089 FileFilter filter({}, {}, {}, -1, -1, false, false);
2090 int result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
2091 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2092 EXPECT_EQ(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK);
2093 GTEST_LOG_(INFO) << "ListFile_0001 result:" << fileInfoVec.size() << endl;
2094 } catch (...) {
2095 GTEST_LOG_(ERROR) << "medialibrary_file_access_ListFile_0001 occurs an exception.";
2096 }
2097 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ListFile_0001";
2098 }
2099
2100 /**
2101 * @tc.number: user_file_service_medialibrary_file_access_ListFile_0002
2102 * @tc.name: medialibrary_file_access_ListFile_0002
2103 * @tc.desc: Test function of ListFile interface for ERROR which sourceFileUri is absolute path.
2104 * @tc.size: MEDIUM
2105 * @tc.type: FUNC
2106 * @tc.level Level 1
2107 * @tc.require: SR000H0386
2108 */
2109 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ListFile_0002, testing::ext::TestSize.Level1)
2110 {
2111 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ListFile_0002";
2112 try {
2113 Uri newDirUriTest("");
2114 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
2115 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2116 Uri testUri("");
2117 result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri);
2118 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2119 Uri sourceFileUri("storage/media/100/local/files/Download/test/test.txt");
2120 FileInfo fileInfo;
2121 fileInfo.uri = sourceFileUri.ToString();
2122 int64_t offset = 0;
2123 int64_t maxCount = 1000;
2124 vector<FileAccessFwk::FileInfo> fileInfoVec;
2125 FileFilter filter({}, {}, {}, -1, -1, false, false);
2126 result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
2127 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2128 EXPECT_EQ(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK);
2129 GTEST_LOG_(INFO) << "ListFile_0002 result:" << fileInfoVec.size() << endl;
2130 result = g_fah->Delete(newDirUriTest);
2131 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
2132 } catch (...) {
2133 GTEST_LOG_(ERROR) << "medialibrary_file_access_ListFile_0002 occurs an exception.";
2134 }
2135 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ListFile_0002";
2136 }
2137
2138 /**
2139 * @tc.number: user_file_service_medialibrary_file_access_ListFile_0003
2140 * @tc.name: medialibrary_file_access_ListFile_0003
2141 * @tc.desc: Test function of ListFile interface for ERROR which sourceFileUri is special symbols.
2142 * @tc.size: MEDIUM
2143 * @tc.type: FUNC
2144 * @tc.level Level 1
2145 * @tc.require: SR000H0386
2146 */
2147 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ListFile_0003, testing::ext::TestSize.Level1)
2148 {
2149 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ListFile_0003";
2150 try {
2151 Uri sourceFileUri("~!@#$%^&*()_");
2152 FileInfo fileInfo;
2153 fileInfo.uri = sourceFileUri.ToString();
2154 int64_t offset = 0;
2155 int64_t maxCount = 1000;
2156 vector<FileAccessFwk::FileInfo> fileInfoVec;
2157 FileFilter filter;
2158 int result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
2159 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2160 EXPECT_EQ(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK);
2161 GTEST_LOG_(INFO) << "ListFile_0003 result:" << fileInfoVec.size() << endl;
2162 } catch (...) {
2163 GTEST_LOG_(ERROR) << "medialibrary_file_access_ListFile_0003 occurs an exception.";
2164 }
2165 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ListFile_0003";
2166 }
2167
2168 /**
2169 * @tc.number: user_file_service_medialibrary_file_access_ListFile_0004
2170 * @tc.name: medialibrary_file_access_ListFile_0004
2171 * @tc.desc: Test function of ListFile interface for ERROR which add filter.
2172 * @tc.size: MEDIUM
2173 * @tc.type: FUNC
2174 * @tc.level Level 1
2175 * @tc.require: SR000HB855
2176 */
2177 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ListFile_0004, testing::ext::TestSize.Level1)
2178 {
2179 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ListFile_0004";
2180 try {
2181 Uri newDirUriTest("");
2182 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
2183 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2184 Uri testUri1("");
2185 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ListFile_0004.txt", testUri1);
2186 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2187 Uri testUri2("");
2188 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ListFile_0004.docx", testUri2);
2189 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2190 FileInfo fileInfo;
2191 fileInfo.uri = newDirUriTest.ToString();
2192 int64_t offset = 0;
2193 int64_t maxCount = 1000;
2194 std::vector<FileInfo> fileInfoVec;
2195 FileFilter filter({".txt"}, {}, {}, -1, 1, false, true);
2196 result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
2197 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2198 EXPECT_EQ(fileInfoVec.size(), 1);
2199 result = g_fah->Delete(newDirUriTest);
2200 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
2201 } catch (...) {
2202 GTEST_LOG_(ERROR) << "medialibrary_file_access_ListFile_0004 occurs an exception.";
2203 }
2204 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ListFile_0004";
2205 }
2206
ListFileTdd(shared_ptr<FileAccessHelper> fahs,FileInfo fileInfo,int offset,int maxCount,FileFilter filter,std::vector<FileInfo> fileInfoVec)2207 static void ListFileTdd(shared_ptr<FileAccessHelper> fahs, FileInfo fileInfo, int offset, int maxCount,
2208 FileFilter filter, std::vector<FileInfo> fileInfoVec)
2209 {
2210 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ListFileTdd";
2211 int ret = fahs->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
2212 if (ret != OHOS::FileAccessFwk::ERR_OK) {
2213 GTEST_LOG_(ERROR) << "ListFileTdd get result error, code:" << ret;
2214 return;
2215 }
2216 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
2217 EXPECT_EQ(fileInfoVec.size(), 1);
2218 g_num++;
2219 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ListFileTdd";
2220 }
2221
2222 /**
2223 * @tc.number: user_file_service_medialibrary_file_access_ListFile_0005
2224 * @tc.name: medialibrary_file_access_ListFile_0005
2225 * @tc.desc: Test function of ListFile interface for ERROR which Concurrent.
2226 * @tc.size: MEDIUM
2227 * @tc.type: FUNC
2228 * @tc.level Level 1
2229 * @tc.require: SR000H0386
2230 */
2231 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ListFile_0005, testing::ext::TestSize.Level1)
2232 {
2233 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ListFile_0005";
2234 try {
2235 Uri newDirUriTest("");
2236 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
2237 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2238 Uri testUri1("");
2239 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ListFile_0005.txt", testUri1);
2240 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2241 Uri testUri2("");
2242 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ListFile_0005.docx", testUri2);
2243 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2244 FileInfo fileInfo;
2245 fileInfo.uri = newDirUriTest.ToString();
2246 int64_t offset = 0;
2247 int64_t maxCount = 1000;
2248 std::vector<FileInfo> fileInfoVec;
2249 g_num = 0;
2250 FileFilter filter({".txt"}, {}, {}, -1, -1, false, true);
2251 for (int j = 0; j < INIT_THREADS_NUMBER; j++) {
2252 std::thread execthread(ListFileTdd, g_fah, fileInfo, offset, maxCount, filter, fileInfoVec);
2253 execthread.join();
2254 }
2255 EXPECT_GE(g_num, ACTUAL_SUCCESS_THREADS_NUMBER);
2256 result = g_fah->Delete(newDirUriTest);
2257 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
2258 } catch (...) {
2259 GTEST_LOG_(ERROR) << "medialibrary_file_access_ListFile_0005 occurs an exception.";
2260 }
2261 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ListFile_0005";
2262 }
2263
2264 /**
2265 * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0000
2266 * @tc.name: medialibrary_file_access_ScanFile_0000
2267 * @tc.desc: Test function of ScanFile interface for SUCCESS which scan root directory with filter.
2268 * @tc.size: MEDIUM
2269 * @tc.type: FUNC
2270 * @tc.level Level 1
2271 * @tc.require: SR000HB866
2272 */
2273 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0000, testing::ext::TestSize.Level1)
2274 {
2275 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0000";
2276 try {
2277 Uri newDirUriTest("");
2278 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
2279 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2280 Uri testUri("");
2281 FileInfo fileInfo;
2282 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.q1w2e3r4", testUri);
2283 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2284 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.txt", testUri);
2285 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2286 fileInfo.uri = "file://media/root";
2287 int64_t offset = 0;
2288 int64_t maxCount = 1000;
2289 std::vector<FileInfo> fileInfoVec;
2290 FileFilter filter({".q1w2e3r4"}, {}, {}, -1, -1, false, true);
2291 result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec);
2292 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2293 EXPECT_GE(fileInfoVec.size(), 1);
2294 GTEST_LOG_(INFO) << "ScanFile_0000 result:" << fileInfoVec.size() << endl;
2295 result = g_fah->Delete(newDirUriTest);
2296 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
2297 } catch (...) {
2298 GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0000 occurs an exception.";
2299 }
2300 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0000";
2301 }
2302
2303 /**
2304 * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0001
2305 * @tc.name: medialibrary_file_access_ScanFile_0001
2306 * @tc.desc: Test function of ScanFile interface for SUCCESS which scan root directory with no filter.
2307 * @tc.size: MEDIUM
2308 * @tc.type: FUNC
2309 * @tc.level Level 1
2310 * @tc.require: SR000HB866
2311 */
2312 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0001, testing::ext::TestSize.Level1)
2313 {
2314 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0001";
2315 try {
2316 Uri newDirUriTest("");
2317 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
2318 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2319 Uri testUri("");
2320 FileInfo fileInfo;
2321 fileInfo.uri = "file://media/root";
2322 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0001.q1w2e3r4", testUri);
2323 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2324 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0001.txt", testUri);
2325 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2326 int64_t offset = 0;
2327 int64_t maxCount = 1000;
2328 std::vector<FileInfo> fileInfoVec;
2329 FileFilter filter({}, {}, {}, -1, -1, false, false);
2330 result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec);
2331 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2332 EXPECT_GE(fileInfoVec.size(), 2);
2333 GTEST_LOG_(INFO) << "ScanFile_0000 result:" << fileInfoVec.size() << endl;
2334 result = g_fah->Delete(newDirUriTest);
2335 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
2336 } catch (...) {
2337 GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0001 occurs an exception.";
2338 }
2339 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0001";
2340 }
2341
2342 /**
2343 * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0002
2344 * @tc.name: medialibrary_file_access_ScanFile_0002
2345 * @tc.desc: Test function of ScanFile interface for SUCCESS which self created directory with filter.
2346 * @tc.size: MEDIUM
2347 * @tc.type: FUNC
2348 * @tc.level Level 1
2349 * @tc.require: SR000HB866
2350 */
2351 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0002, testing::ext::TestSize.Level1)
2352 {
2353 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0002";
2354 try {
2355 Uri newDirUriTest("");
2356 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
2357 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2358 Uri testUri("");
2359 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0002.q1w2e3r4", testUri);
2360 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2361 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.txt", testUri);
2362 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2363 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.docx", testUri);
2364 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2365 FileInfo fileInfo;
2366 fileInfo.uri = newDirUriTest.ToString();
2367 int64_t offset = 0;
2368 int64_t maxCount = 1000;
2369 std::vector<FileInfo> fileInfoVec;
2370 FileFilter filter({".q1w2e3r4"}, {}, {}, -1, -1, false, true);
2371 result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec);
2372 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2373 EXPECT_EQ(fileInfoVec.size(), 1);
2374 FileFilter filter1({".q1w2e3r4", ".txt"}, {}, {}, -1, -1, false, true);
2375 result = g_fah->ScanFile(fileInfo, offset, maxCount, filter1, fileInfoVec);
2376 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2377 EXPECT_EQ(fileInfoVec.size(), 2);
2378 GTEST_LOG_(INFO) << "ScanFile_0002 result:" << fileInfoVec.size() << endl;
2379 result = g_fah->Delete(newDirUriTest);
2380 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
2381 } catch (...) {
2382 GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0002 occurs an exception.";
2383 }
2384 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0002";
2385 }
2386
2387 /**
2388 * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0003
2389 * @tc.name: medialibrary_file_access_ScanFile_0003
2390 * @tc.desc: Test function of ScanFile interface for SUCCESS which self created directory with filter.
2391 * @tc.size: MEDIUM
2392 * @tc.type: FUNC
2393 * @tc.level Level 1
2394 * @tc.require: SR000HB866
2395 */
2396 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0003, testing::ext::TestSize.Level1)
2397 {
2398 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0003";
2399 try {
2400 Uri newDirUriTest("");
2401 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
2402 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2403 Uri testUri("");
2404 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0003.q1w2e3r4", testUri);
2405 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2406 FileInfo fileInfo;
2407 fileInfo.uri = newDirUriTest.ToString();
2408 int64_t offset = 0;
2409 int64_t maxCount = 1000;
2410 std::vector<FileInfo> fileInfoVec;
2411 FileFilter filter({".q1w2e3r4"}, {}, {}, -1, -1, false, true);
2412 result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec);
2413 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2414 EXPECT_EQ(fileInfoVec.size(), 1);
2415 GTEST_LOG_(INFO) << "ScanFile_0003 result:" << fileInfoVec.size() << endl;
2416 result = g_fah->Delete(newDirUriTest);
2417 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
2418 } catch (...) {
2419 GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0003 occurs an exception.";
2420 }
2421 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0003";
2422 }
2423
ScanFileTdd(FileInfo fileInfo,int offset,int maxCount,FileFilter filter,std::vector<FileInfo> fileInfoVec)2424 static void ScanFileTdd(FileInfo fileInfo, int offset, int maxCount, FileFilter filter,
2425 std::vector<FileInfo> fileInfoVec)
2426 {
2427 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFileTdd";
2428 int ret = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec);
2429 if (ret != OHOS::FileAccessFwk::ERR_OK) {
2430 GTEST_LOG_(ERROR) << "ScanFileTdd get result error, code:" << ret;
2431 return;
2432 }
2433 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
2434 EXPECT_EQ(fileInfoVec.size(), 1);
2435 g_num++;
2436 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFileTdd";
2437 }
2438
2439 /**
2440 * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0004
2441 * @tc.name: medialibrary_file_access_ScanFile_0004
2442 * @tc.desc: Test function of ScanFile interface for SUCCESS which scan root directory with Concurrent.
2443 * @tc.size: MEDIUM
2444 * @tc.type: FUNC
2445 * @tc.level Level 1
2446 * @tc.require: SR000HB866
2447 */
2448 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0004, testing::ext::TestSize.Level1)
2449 {
2450 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0004";
2451 try {
2452 Uri newDirUriTest("");
2453 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
2454 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2455 Uri testUri("");
2456 FileInfo fileInfo;
2457 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.q1w2e3r4", testUri);
2458 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2459 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.txt", testUri);
2460 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2461 fileInfo.uri = "file://media/root";
2462 int64_t offset = 0;
2463 int64_t maxCount = 1000;
2464 std::vector<FileInfo> fileInfoVec;
2465 FileFilter filter({".q1w2e3r4"}, {}, {}, -1, -1, false, true);
2466 g_num = 0;
2467 for (int j = 0; j < INIT_THREADS_NUMBER; j++) {
2468 std::thread execthread(ScanFileTdd, fileInfo, offset, maxCount, filter, fileInfoVec);
2469 execthread.join();
2470 }
2471 EXPECT_GE(g_num, ACTUAL_SUCCESS_THREADS_NUMBER);
2472 result = g_fah->Delete(newDirUriTest);
2473 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
2474 } catch (...) {
2475 GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0004 occurs an exception.";
2476 }
2477 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0004";
2478 }
2479
ReplaceBundleNameFromPath(std::string & path,const std::string & newName)2480 static bool ReplaceBundleNameFromPath(std::string &path, const std::string &newName)
2481 {
2482 Uri uri(path);
2483 std::string scheme = uri.GetScheme();
2484 if (scheme == FILE_SCHEME_NAME) {
2485 std::string curName = uri.GetAuthority();
2486 if (curName.empty()) {
2487 return false;
2488 }
2489 path.replace(path.find(curName), curName.length(), newName);
2490 return true;
2491 }
2492
2493 std::string tPath = Uri(path).GetPath();
2494 if (tPath.empty()) {
2495 GTEST_LOG_(INFO) << "Uri path error.";
2496 return false;
2497 }
2498
2499 if (tPath.front() != '/') {
2500 GTEST_LOG_(INFO) << "Uri path format error.";
2501 return false;
2502 }
2503
2504 auto index = tPath.substr(1).find_first_of("/");
2505 auto bundleName = tPath.substr(1, index);
2506 if (bundleName.empty()) {
2507 GTEST_LOG_(INFO) << "bundleName empty.";
2508 return false;
2509 }
2510
2511 path.replace(path.find(bundleName), bundleName.length(), newName);
2512 return true;
2513 }
2514
2515 /**
2516 * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0005
2517 * @tc.name: medialibrary_file_access_ScanFile_0005
2518 * @tc.desc: Test function of ScanFile interface for FAILED because of GetProxyByUri failed.
2519 * @tc.size: MEDIUM
2520 * @tc.type: FUNC
2521 * @tc.level Level 1
2522 * @tc.require: SR000HB866
2523 */
2524 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0005, testing::ext::TestSize.Level1)
2525 {
2526 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0005";
2527 try {
2528 Uri newDirUriTest("");
2529 int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest);
2530 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2531 Uri testUri("");
2532 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0005.q1w2e3r4", testUri);
2533 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2534
2535 std::string str = testUri.ToString();
2536 if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) {
2537 GTEST_LOG_(INFO) << "replace BundleName failed.";
2538 EXPECT_TRUE(false);
2539 }
2540 FileInfo fileInfo;
2541 fileInfo.uri = str;
2542 int64_t offset = 0;
2543 int64_t maxCount = 1000;
2544 std::vector<FileInfo> fileInfoVec;
2545 FileFilter filter({".q1w2e3r4"}, {}, {}, -1, -1, false, true);
2546 result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec);
2547 EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS);
2548 EXPECT_EQ(fileInfoVec.size(), 0);
2549 GTEST_LOG_(INFO) << "ScanFile_0005 result:" << fileInfoVec.size() << endl;
2550 result = g_fah->Delete(newDirUriTest);
2551 EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK);
2552 } catch (...) {
2553 GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0005 occurs an exception.";
2554 }
2555 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0005";
2556 }
2557
2558 /**
2559 * @tc.number: user_file_service_medialibrary_file_access_GetRoots_0000
2560 * @tc.name: medialibrary_file_access_GetRoots_0000
2561 * @tc.desc: Test function of GetRoots interface for SUCCESS.
2562 * @tc.size: MEDIUM
2563 * @tc.type: FUNC
2564 * @tc.level Level 1
2565 * @tc.require: SR000H0386
2566 */
2567 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetRoots_0000, testing::ext::TestSize.Level1)
2568 {
2569 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_GetRoots_0000";
2570 try {
2571 vector<RootInfo> info;
2572 int result = g_fah->GetRoots(info);
2573 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2574 EXPECT_GT(info.size(), OHOS::FileAccessFwk::ERR_OK);
2575 if (info.size() > OHOS::FileAccessFwk::ERR_OK) {
2576 GTEST_LOG_(INFO) << info[0].uri;
2577 GTEST_LOG_(INFO) << info[0].displayName;
2578 GTEST_LOG_(INFO) << info[0].deviceType;
2579 GTEST_LOG_(INFO) << info[0].deviceFlags;
2580 }
2581 string uri = "file://media/root";
2582 string displayName = "LOCAL";
2583 EXPECT_EQ(info[0].uri, uri);
2584 EXPECT_EQ(info[0].displayName, displayName);
2585 EXPECT_EQ(info[0].deviceType, DEVICE_LOCAL_DISK);
2586 EXPECT_EQ(info[0].deviceFlags, DEVICE_FLAG_SUPPORTS_READ | DEVICE_FLAG_SUPPORTS_WRITE);
2587 } catch (...) {
2588 GTEST_LOG_(ERROR) << "medialibrary_file_access_GetRoots_0000 occurs an exception.";
2589 }
2590 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetRoots_0000";
2591 }
2592
2593 /**
2594 * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0000
2595 * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0000
2596 * @tc.desc: Test function of GetFileInfoFromUri interface.
2597 * @tc.desc: convert the root directory uri to fileinfo and call listfile for SUCCESS.
2598 * @tc.size: MEDIUM
2599 * @tc.type: FUNC
2600 * @tc.level Level 1
2601 * @tc.require: SR000HRLBS
2602 */
2603 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0000, testing::ext::TestSize.Level1)
2604 {
2605 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0000";
2606 try {
2607 vector<RootInfo> infos;
2608 int result = g_fah->GetRoots(infos);
2609 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2610 for (size_t i = 0; i < infos.size(); i++) {
2611 Uri parentUri(infos[i].uri);
2612 FileInfo fileinfo;
2613 result = g_fah->GetFileInfoFromUri(parentUri, fileinfo);
2614 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2615
2616 int64_t offset = 0;
2617 int64_t maxCount = 1000;
2618 FileFilter filter;
2619 std::vector<FileInfo> fileInfoVecTemp;
2620 result = g_fah->ListFile(fileinfo, offset, maxCount, filter, fileInfoVecTemp);
2621 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2622 EXPECT_GE(fileInfoVecTemp.size(), OHOS::FileAccessFwk::ERR_OK);
2623 }
2624 } catch (...) {
2625 GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0000 occurs an exception.";
2626 }
2627 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0000";
2628 }
2629
2630 /**
2631 * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0001
2632 * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0001
2633 * @tc.desc: Test function of GetFileInfoFromUri interface.
2634 * @tc.desc: convert the general directory uri to fileinfo and call listfile for SUCCESS.
2635 * @tc.size: MEDIUM
2636 * @tc.type: FUNC
2637 * @tc.level Level 1
2638 * @tc.require: SR000HRLBS
2639 */
2640 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0001, testing::ext::TestSize.Level1)
2641 {
2642 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0001";
2643 try {
2644 Uri newDirUriTest("");
2645 int result = g_fah->Mkdir(g_newDirUri, "testDir", newDirUriTest);
2646 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2647
2648 FileInfo dirInfo;
2649 result = g_fah->GetFileInfoFromUri(newDirUriTest, dirInfo);
2650 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2651
2652 int64_t offset = 0;
2653 int64_t maxCount = 1000;
2654 FileFilter filter;
2655 std::vector<FileInfo> fileInfoVec;
2656 result = g_fah->ListFile(dirInfo, offset, maxCount, filter, fileInfoVec);
2657 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2658 EXPECT_GE(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK);
2659
2660 result = g_fah->Delete(newDirUriTest);
2661 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2662 } catch (...) {
2663 GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0001 occurs an exception.";
2664 }
2665 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0001";
2666 }
2667
2668 /**
2669 * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0002
2670 * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0002
2671 * @tc.desc: Test function of GetFileInfoFromUri interface.
2672 * @tc.desc: convert the regular file uri to fileinfo and call listfile for ERROR.
2673 * @tc.size: MEDIUM
2674 * @tc.type: FUNC
2675 * @tc.level Level 1
2676 * @tc.require: SR000HRLBS
2677 */
2678 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0002, testing::ext::TestSize.Level1)
2679 {
2680 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0002";
2681 try {
2682 Uri newDirUriTest("");
2683 int result = g_fah->Mkdir(g_newDirUri, "testDir", newDirUriTest);
2684 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2685 Uri newFileUri("");
2686 result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_GetFileInfoFromUri_0002.txt", newFileUri);
2687 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2688
2689 FileInfo fileinfo;
2690 result = g_fah->GetFileInfoFromUri(newFileUri, fileinfo);
2691 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2692
2693 int64_t offset = 0;
2694 int64_t maxCount = 1000;
2695 FileFilter filter;
2696 std::vector<FileInfo> fileInfoVecTemp;
2697 result = g_fah->ListFile(fileinfo, offset, maxCount, filter, fileInfoVecTemp);
2698 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2699 EXPECT_EQ(fileInfoVecTemp.size(), OHOS::FileAccessFwk::ERR_OK);
2700
2701 result = g_fah->Delete(newDirUriTest);
2702 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2703 } catch (...) {
2704 GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0002 occurs an exception.";
2705 }
2706 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0002";
2707 }
2708
2709 /**
2710 * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0003
2711 * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0003
2712 * @tc.desc: Test function of GetFileInfoFromUri interface.
2713 * @tc.desc: convert the root directory uri to fileinfo for CheckUri failed.
2714 * @tc.size: MEDIUM
2715 * @tc.type: FUNC
2716 * @tc.level Level 1
2717 * @tc.require: SR000HRLBS
2718 */
2719 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0003, testing::ext::TestSize.Level1)
2720 {
2721 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0003";
2722 try {
2723 vector<RootInfo> info;
2724 int result = g_fah->GetRoots(info);
2725 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2726 for (size_t i = 0; i < info.size(); i++) {
2727 Uri parentUri(std::string("\?\?\?\?/") + info[i].uri);
2728 FileInfo fileinfo;
2729 result = g_fah->GetFileInfoFromUri(parentUri, fileinfo);
2730 EXPECT_EQ(result, OHOS::FileAccessFwk::E_URIS);
2731 }
2732 } catch (...) {
2733 GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0003 occurs an exception.";
2734 }
2735 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0003";
2736 }
2737
2738 /**
2739 * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0004
2740 * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0004
2741 * @tc.desc: Test function of GetFileInfoFromUri interface.
2742 * @tc.desc: convert the root directory uri to fileinfo failed because of GetProxyByUri failed.
2743 * @tc.size: MEDIUM
2744 * @tc.type: FUNC
2745 * @tc.level Level 1
2746 * @tc.require: SR000HRLBS
2747 */
2748 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0004, testing::ext::TestSize.Level1)
2749 {
2750 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0004";
2751 try {
2752 vector<RootInfo> info;
2753 int result = g_fah->GetRoots(info);
2754 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2755 for (size_t i = 0; i < info.size(); i++) {
2756 std::string str = info[i].uri;
2757 if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) {
2758 GTEST_LOG_(ERROR) << "replace BundleName failed.";
2759 EXPECT_TRUE(false);
2760 }
2761 Uri parentUri(str);
2762 FileInfo fileinfo;
2763 result = g_fah->GetFileInfoFromUri(parentUri, fileinfo);
2764 EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS);
2765 }
2766 } catch (...) {
2767 GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0004 occurs an exception.";
2768 }
2769 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0004";
2770 }
2771
2772 /**
2773 * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0005
2774 * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0005
2775 * @tc.desc: Test function of GetFileInfoFromUri interface.
2776 * @tc.desc: convert the invalid uri to fileinfo failed.
2777 * @tc.size: MEDIUM
2778 * @tc.type: FUNC
2779 * @tc.level Level 1
2780 * @tc.require: SR000HRLBS
2781 */
2782 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0005, testing::ext::TestSize.Level1)
2783 {
2784 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0005";
2785 try {
2786 Uri uri("~!@#$%^&*()_");
2787 FileInfo fileInfo;
2788 int result = g_fah->GetFileInfoFromUri(uri, fileInfo);
2789 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2790
2791 uri = Uri("/");
2792 result = g_fah->GetFileInfoFromUri(uri, fileInfo);
2793 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2794
2795 uri = Uri("");
2796 result = g_fah->GetFileInfoFromUri(uri, fileInfo);
2797 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2798 } catch (...) {
2799 GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0005 occurs an exception.";
2800 }
2801 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0005";
2802 }
2803
2804 /**
2805 * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromRelativePath_0000
2806 * @tc.name: medialibrary_file_access_GetFileInfoFromRelativePath_0000
2807 * @tc.desc: Test function of GetFileInfoFromRelativePath interface.
2808 * @tc.desc: convert the general directory relativePath to fileinfo for SUCCESS.
2809 * @tc.size: MEDIUM
2810 * @tc.type: FUNC
2811 * @tc.level Level 1
2812 * @tc.require: SR000HRLBS
2813 */
2814 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromRelativePath_0000, testing::ext::TestSize.Level1)
2815 {
2816 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromRelativePath_0000";
2817 try {
2818 FileInfo fileInfo;
2819 string relativePath = "";
2820 int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
2821 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2822
2823 relativePath = "Audios/";
2824 result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
2825 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2826
2827 relativePath = "Camera/";
2828 result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
2829 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2830
2831 relativePath = "Documents/";
2832 result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
2833 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2834
2835 relativePath = "Download";
2836 result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
2837 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2838
2839 relativePath = "Pictures";
2840 result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
2841 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2842
2843 relativePath = "Videos";
2844 result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
2845 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2846 } catch (...) {
2847 GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromRelativePath_0000 occurs an exception.";
2848 }
2849 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetFileInfoFromRelativePath_0000";
2850 }
2851
2852 /**
2853 * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromRelativePath_0001
2854 * @tc.name: medialibrary_file_access_GetFileInfoFromRelativePath_0001
2855 * @tc.desc: Test function of GetFileInfoFromRelativePath interface.
2856 * @tc.desc: convert the general directory relativePath to fileinfo for failed.
2857 * @tc.size: MEDIUM
2858 * @tc.type: FUNC
2859 * @tc.level Level 1
2860 * @tc.require: SR000HRLBS
2861 */
2862 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromRelativePath_0001, testing::ext::TestSize.Level1)
2863 {
2864 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromRelativePath_0001";
2865 try {
2866 FileInfo fileInfo;
2867 string relativePath = "test/";
2868 int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
2869 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2870
2871 relativePath = "/";
2872 result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
2873 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2874
2875 relativePath = "~!@#$%^&*()_";
2876 result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
2877 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2878
2879 relativePath = "/d";
2880 result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
2881 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2882 } catch (...) {
2883 GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromRelativePath_0001 occurs an exception.";
2884 }
2885 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetFileInfoFromRelativePath_0001";
2886 }
2887
2888 /**
2889 * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromRelativePath_0002
2890 * @tc.name: medialibrary_file_access_GetFileInfoFromRelativePath_0002
2891 * @tc.desc: Test function of GetFileInfoFromRelativePath interface.
2892 * @tc.desc: convert the general directory relativePath to fileinfo and call listfile for SUCCESS.
2893 * @tc.size: MEDIUM
2894 * @tc.type: FUNC
2895 * @tc.level Level 1
2896 * @tc.require: SR000HRLBS
2897 */
2898 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromRelativePath_0002, testing::ext::TestSize.Level1)
2899 {
2900 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromRelativePath_0002";
2901 try {
2902 FileInfo fileInfo;
2903 string relativePath = "Download/";
2904 int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
2905 ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2906
2907 Uri parentUri(fileInfo.uri);
2908 Uri newFile("");
2909 result = g_fah->CreateFile(parentUri, "GetFileInfoFromRelativePath_0002.jpg", newFile);
2910 ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2911
2912 int64_t offset = 0;
2913 int64_t maxCount = 1000;
2914 FileFilter filter;
2915 std::vector<FileInfo> fileInfoVec;
2916 result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
2917 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2918 EXPECT_GT(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK);
2919
2920 result = g_fah->Delete(newFile);
2921 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2922 } catch (...) {
2923 GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromRelativePath_0002 occurs an exception.";
2924 }
2925 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetFileInfoFromRelativePath_0002";
2926 }
2927
2928 /**
2929 * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromRelativePath_0003
2930 * @tc.name: medialibrary_file_access_GetFileInfoFromRelativePath_0003
2931 * @tc.desc: Test function of GetFileInfoFromRelativePath interface.
2932 * @tc.desc: convert the relative file path to fileinfo and call listfile for failed.
2933 * @tc.size: MEDIUM
2934 * @tc.type: FUNC
2935 * @tc.level Level 1
2936 * @tc.require: SR000HRLBS
2937 */
2938 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromRelativePath_0003, testing::ext::TestSize.Level1)
2939 {
2940 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromRelativePath_0003";
2941 try {
2942 FileInfo fileInfo;
2943 string relativePath = "Download/";
2944 int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
2945 ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2946
2947 Uri parentUri(fileInfo.uri);
2948 Uri newFile("");
2949 result = g_fah->CreateFile(parentUri, "GetFileInfoFromRelativePath_0003.jpg", newFile);
2950 ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2951
2952 relativePath = "Download/GetFileInfoFromRelativePath_0003.jpg";
2953 result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
2954 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2955
2956 int64_t offset = 0;
2957 int64_t maxCount = 1000;
2958 FileFilter filter;
2959 std::vector<FileInfo> fileInfoVec;
2960 result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
2961 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2962
2963 result = g_fah->Delete(newFile);
2964 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2965 } catch (...) {
2966 GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromRelativePath_0003 occurs an exception.";
2967 }
2968 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetFileInfoFromRelativePath_0003";
2969 }
2970
2971 /**
2972 * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromRelativePath_0004
2973 * @tc.name: medialibrary_file_access_GetFileInfoFromRelativePath_0004
2974 * @tc.desc: Test function of GetFileInfoFromRelativePath interface.
2975 * @tc.desc: convert the relative directory path to fileinfo and call listfile for SUCCESS.
2976 * @tc.size: MEDIUM
2977 * @tc.type: FUNC
2978 * @tc.level Level 1
2979 * @tc.require: SR000HRLBS
2980 */
2981 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromRelativePath_0004, testing::ext::TestSize.Level1)
2982 {
2983 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromRelativePath_0004";
2984 try {
2985 FileInfo fileInfo;
2986 string relativePath = "Download/";
2987 int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
2988 ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2989
2990 Uri parentUri(fileInfo.uri);
2991 Uri newDir("");
2992 result = g_fah->Mkdir(parentUri, "DirGetFileInfoFromRelativePath_0004", newDir);
2993 ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2994
2995 Uri fileUri("");
2996 result = g_fah->CreateFile(newDir, "file1.jpg", fileUri);
2997 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2998
2999 result = g_fah->CreateFile(newDir, "file2.jpg", fileUri);
3000 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3001
3002 relativePath = "Download/DirGetFileInfoFromRelativePath_0004";
3003 result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
3004 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3005
3006 int64_t offset = 0;
3007 int64_t maxCount = 1000;
3008 FileFilter filter;
3009 std::vector<FileInfo> fileInfoVec;
3010 result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3011 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3012 EXPECT_GT(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK);
3013
3014 result = g_fah->Delete(newDir);
3015 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3016 } catch (...) {
3017 GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromRelativePath_0004 occurs an exception.";
3018 }
3019 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetFileInfoFromRelativePath_0004";
3020 }
3021
3022 /**
3023 * @tc.number: user_file_service_medialibrary_file_access_Query_0000
3024 * @tc.name: medialibrary_file_access_Query_0000
3025 * @tc.desc: Test function of Query directory for SUCCESS.
3026 * @tc.size: MEDIUM
3027 * @tc.type: FUNC
3028 * @tc.level Level 1
3029 * @tc.require: I6S4VV
3030 */
3031 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0000, testing::ext::TestSize.Level1)
3032 {
3033 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0000";
3034 try {
3035 FileAccessFwk::FileInfo fileInfo;
3036 std::string relativePath = "Documents/";
3037 std::string displayName = "Documents";
3038 int targetSize = 46;
3039 int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
3040 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3041 Uri dirUriTest(fileInfo.uri);
3042
3043 json testJson = {
3044 {RELATIVE_PATH, " "},
3045 {DISPLAY_NAME, " "},
3046 {FILE_SIZE, " "},
3047 {DATE_MODIFIED, " "},
3048 {DATE_ADDED, " "}
3049 };
3050 auto testJsonString = testJson.dump();
3051 int ret = g_fah->Query(dirUriTest, testJsonString);
3052 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
3053 auto jsonObject = json::parse(testJsonString);
3054 EXPECT_EQ(jsonObject.at(DISPLAY_NAME), displayName);
3055 EXPECT_EQ(jsonObject.at(FILE_SIZE), targetSize);
3056 ASSERT_TRUE(jsonObject.at(DATE_MODIFIED) > 0);
3057 ASSERT_TRUE(jsonObject.at(DATE_ADDED) > 0);
3058 GTEST_LOG_(INFO) << testJsonString;
3059 } catch (...) {
3060 GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0000 occurs an exception.";
3061 }
3062 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0000";
3063 }
3064
3065 /**
3066 * @tc.number: user_file_service_medialibrary_file_access_Query_0001
3067 * @tc.name: medialibrary_file_access_Query_0001
3068 * @tc.desc: Test function of Query file for SUCCESS.
3069 * @tc.size: MEDIUM
3070 * @tc.type: FUNC
3071 * @tc.level Level 1
3072 * @tc.require: I6S4VV
3073 */
3074 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0001, testing::ext::TestSize.Level1)
3075 {
3076 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0001";
3077 try {
3078 FileAccessFwk::FileInfo fileInfo;
3079 std::string relativePath = "Documents/Test/";
3080 std::string displayName = "CreateQueryTest_002.txt";
3081 int targetSize = 23;
3082 std::string filePath = "Documents/Test/CreateQueryTest_002.txt";
3083 int ret = g_fah->GetFileInfoFromRelativePath(filePath, fileInfo);
3084 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
3085 Uri testUri(fileInfo.uri);
3086
3087 json testJson = {
3088 {RELATIVE_PATH, " "},
3089 {DISPLAY_NAME, " "},
3090 {FILE_SIZE, " "},
3091 {DATE_MODIFIED, " "},
3092 {DATE_ADDED, " "}
3093 };
3094 auto testJsonString = testJson.dump();
3095 ret = g_fah->Query(testUri, testJsonString);
3096 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
3097 GTEST_LOG_(INFO) << testJsonString;
3098 auto jsonObject = json::parse(testJsonString);
3099 EXPECT_EQ(jsonObject.at(RELATIVE_PATH), relativePath);
3100 EXPECT_EQ(jsonObject.at(DISPLAY_NAME), displayName);
3101 EXPECT_EQ(jsonObject.at(FILE_SIZE), targetSize);
3102 ASSERT_TRUE(jsonObject.at(DATE_MODIFIED) > 0);
3103 ASSERT_TRUE(jsonObject.at(DATE_ADDED) > 0);
3104 } catch (...) {
3105 GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0001 occurs an exception.";
3106 }
3107 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0001";
3108 }
3109
3110 /**
3111 * @tc.number: user_file_service_medialibrary_file_access_Query_0002
3112 * @tc.name: medialibrary_file_access_Query_0002
3113 * @tc.desc: Test function of Query directory size for SUCCESS.
3114 * @tc.size: MEDIUM
3115 * @tc.type: FUNC
3116 * @tc.level Level 1
3117 * @tc.require:
3118 */
3119 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0002, testing::ext::TestSize.Level1)
3120 {
3121 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0002";
3122 try {
3123 FileAccessFwk::FileInfo fileInfo;
3124 std::string relativePath = "Documents/";
3125 std::string displayName = "Documents";
3126 int targetSize = 46;
3127 int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo);
3128 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3129 Uri dirUriTest(fileInfo.uri);
3130
3131 json testJson = {
3132 {FILE_SIZE, " "}
3133 };
3134 auto testJsonString = testJson.dump();
3135 int ret = g_fah->Query(dirUriTest, testJsonString);
3136 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
3137 auto jsonObject = json::parse(testJsonString);
3138 EXPECT_EQ(jsonObject.at(FILE_SIZE), targetSize);
3139 GTEST_LOG_(INFO) << testJsonString;
3140 } catch (...) {
3141 GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0002 occurs an exception.";
3142 }
3143 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0002";
3144 }
3145
3146 /**
3147 * @tc.number: user_file_service_medialibrary_file_access_Query_0003
3148 * @tc.name: medialibrary_file_access_Query_0003
3149 * @tc.desc: Test function of Query interface for ERROR which Uri is unreadable code.
3150 * @tc.size: MEDIUM
3151 * @tc.type: FUNC
3152 * @tc.level Level 1
3153 * @tc.require: I6S4VV
3154 */
3155 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0003, testing::ext::TestSize.Level1)
3156 {
3157 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0003";
3158 try {
3159 Uri testUri("&*()*/?");
3160 json testJson = {
3161 {RELATIVE_PATH, " "},
3162 {DISPLAY_NAME, " "}
3163 };
3164 auto testJsonString = testJson.dump();
3165 int ret = g_fah->Query(testUri, testJsonString);
3166 EXPECT_NE(ret, OHOS::FileAccessFwk::ERR_OK);
3167 } catch (...) {
3168 GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0004 occurs an exception.";
3169 }
3170 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0003";
3171 }
3172
3173 /**
3174 * @tc.number: user_file_service_medialibrary_file_access_Query_0004
3175 * @tc.name: medialibrary_file_access_Query_0004
3176 * @tc.desc: Test function of Query interface for which all column nonexistence.
3177 * @tc.size: MEDIUM
3178 * @tc.type: FUNC
3179 * @tc.level Level 1
3180 * @tc.require: I6S4VV
3181 */
3182 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0004, testing::ext::TestSize.Level1)
3183 {
3184 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0004";
3185 try {
3186 Uri newDirUriTest("");
3187 std::string fileName = "test.txt";
3188 int ret = g_fah->Mkdir(g_newDirUri, "Query004", newDirUriTest);
3189 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
3190 Uri testUri("");
3191 ret = g_fah->CreateFile(newDirUriTest, fileName, testUri);
3192 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
3193 json testJson = {
3194 {"001", " "},
3195 {"#", " "},
3196 {"test", " "},
3197 {"target", " "}
3198 };
3199 auto testJsonString = testJson.dump();
3200 ret = g_fah->Query(testUri, testJsonString);
3201 EXPECT_NE(ret, OHOS::FileAccessFwk::ERR_OK);
3202 ret = g_fah->Delete(newDirUriTest);
3203 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
3204 } catch (...) {
3205 GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0004 occurs an exception.";
3206 }
3207 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0004";
3208 }
3209
3210 /**
3211 * @tc.number: user_file_service_medialibrary_file_access_Query_0005
3212 * @tc.name: medialibrary_file_access_Query_0005
3213 * @tc.desc: Test function of Query interface for which part of column nonexistence.
3214 * @tc.size: MEDIUM
3215 * @tc.type: FUNC
3216 * @tc.level Level 1
3217 * @tc.require: I6S4VV
3218 */
3219 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0005, testing::ext::TestSize.Level1)
3220 {
3221 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0005";
3222 try {
3223 Uri newDirUriTest("");
3224 std::string fileName = "test.txt";
3225 int ret = g_fah->Mkdir(g_newDirUri, "Query005", newDirUriTest);
3226 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
3227 Uri testUri("");
3228 ret = g_fah->CreateFile(newDirUriTest, fileName, testUri);
3229 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
3230 json testJson = {
3231 {RELATIVE_PATH, " "},
3232 {DISPLAY_NAME, " "},
3233 {"test", " "}
3234 };
3235 auto testJsonString = testJson.dump();
3236 ret = g_fah->Query(testUri, testJsonString);
3237 EXPECT_NE(ret, OHOS::FileAccessFwk::ERR_OK);
3238 ret = g_fah->Delete(newDirUriTest);
3239 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
3240 } catch (...) {
3241 GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0005 occurs an exception.";
3242 }
3243 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0005";
3244 }
3245
3246 /**
3247 * @tc.number: user_file_service_medialibrary_file_access_Query_0006
3248 * @tc.name: medialibrary_file_access_Query_0006
3249 * @tc.desc: Test function of Query interface for which column is null.
3250 * @tc.size: MEDIUM
3251 * @tc.type: FUNC
3252 * @tc.level Level 1
3253 * @tc.require: I6S4VV
3254 */
3255 HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0006, testing::ext::TestSize.Level1)
3256 {
3257 GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0006";
3258 try {
3259 Uri newDirUriTest("");
3260 std::string fileName = "test.txt";
3261 std::string relativePath = "test/test.txt";
3262 int ret = g_fah->Mkdir(g_newDirUri, "Query006", newDirUriTest);
3263 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
3264 Uri testUri("");
3265 ret = g_fah->CreateFile(newDirUriTest, fileName, testUri);
3266 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
3267 json testJson;
3268 auto testJsonString = testJson.dump();
3269 ret = g_fah->Query(testUri, testJsonString);
3270 EXPECT_NE(ret, OHOS::FileAccessFwk::ERR_OK);
3271 ret = g_fah->Delete(newDirUriTest);
3272 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
3273 } catch (...) {
3274 GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0006 occurs an exception.";
3275 }
3276 GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0006";
3277 }
3278 } // namespace
3279