1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <cstdio>
17 #include <thread>
18 #include <unistd.h>
19
20 #include <gtest/gtest.h>
21 #include <nlohmann/json.hpp>
22
23 #include "external_file_access_test.h"
24 #include "accesstoken_kit.h"
25 #include "context_impl.h"
26 #include "file_access_framework_errno.h"
27 #include "file_info_shared_memory.h"
28 #include "iservice_registry.h"
29 #include "nativetoken_kit.h"
30 #include "token_setproc.h"
31
32 namespace OHOS::FileAccessFwk {
33 using json = nlohmann::json;
34 static int g_num = 0;
35
36 /**
37 * @tc.number: user_file_service_external_file_access_GetRoots_0000
38 * @tc.name: external_file_access_GetRoots_0000
39 * @tc.desc: Test function of GetRoots interface for SUCCESS.
40 * @tc.size: MEDIUM
41 * @tc.type: FUNC
42 * @tc.level Level 1
43 * @tc.require: SR000H0387
44 */
45 HWTEST_F(FileExtensionHelperTest, external_file_access_GetRoots_0000, testing::ext::TestSize.Level1)
46 {
47 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
48 EXPECT_NE(fileAccessHelper, nullptr);
49 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetRoots_0000";
50 try {
51 vector<RootInfo> info;
52 int result = fileAccessHelper->GetRoots(info);
53 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
54 EXPECT_GT(info.size(), OHOS::FileAccessFwk::ERR_OK);
55 GTEST_LOG_(INFO) << "GetRoots_0000 result:" << info.size() << endl;
56 for (size_t i = 0; i < info.size(); i++) {
57 GTEST_LOG_(INFO) << info[i].uri;
58 GTEST_LOG_(INFO) << info[i].displayName;
59 GTEST_LOG_(INFO) << info[i].deviceFlags;
60 GTEST_LOG_(INFO) << info[i].deviceType;
61 GTEST_LOG_(INFO) << info[i].relativePath;
62 }
63 EXPECT_GE(info.size(), 2);
64 } catch (...) {
65 GTEST_LOG_(ERROR) << "external_file_access_GetRoots_0000 occurs an exception.";
66 }
67 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetRoots_0000";
68 }
69
TestFileAccess(shared_ptr<FileAccessHelper> fileAccessHelper,Uri & dirUri)70 static void TestFileAccess(shared_ptr<FileAccessHelper> fileAccessHelper, Uri& dirUri)
71 {
72 bool isExist = false;
73 int result;
74
75 result = fileAccessHelper->Access(dirUri, isExist);
76 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
77 EXPECT_TRUE(isExist);
78
79 result = fileAccessHelper->Delete(dirUri);
80 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
81
82 result = fileAccessHelper->Access(dirUri, isExist);
83 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
84 EXPECT_FALSE(isExist);
85 }
86
87 /**
88 * @tc.number: user_file_service_external_file_access_Access_0000
89 * @tc.name: external_file_access_Access_0000
90 * @tc.desc: Test function of Access interface for SUCCESS.
91 * @tc.size: MEDIUM
92 * @tc.type: FUNC
93 * @tc.level Level 1
94 * @tc.require: SR000H0386
95 */
96 HWTEST_F(FileExtensionHelperTest, external_file_access_Access_0000, testing::ext::TestSize.Level1)
97 {
98 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
99 EXPECT_NE(fileAccessHelper, nullptr);
100 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Access_0000";
101 try {
102 vector<RootInfo> info;
103 int result = fileAccessHelper->GetRoots(info);
104 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
105 for (size_t i = 0; i < info.size(); i++) {
106 Uri parentUri(info[i].uri);
107 GTEST_LOG_(INFO) << parentUri.ToString();
108 Uri newDirUriTest("");
109 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest);
110 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
111 Uri newFileUri("");
112 result = fileAccessHelper->CreateFile(newDirUriTest, "external_file_access_Access_0000.txt", newFileUri);
113 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
114 TestFileAccess(fileAccessHelper, newDirUriTest);
115 }
116 } catch (...) {
117 GTEST_LOG_(ERROR) << "external_file_access_Access_0000 occurs an exception.";
118 }
119 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Access_0000";
120 }
121
122 /**
123 * @tc.number: user_file_service_external_file_access_Access_0001
124 * @tc.name: external_file_access_Access_0001
125 * @tc.desc: Test function of Access interface FAILED because of GetProxyByUri failed.
126 * @tc.size: MEDIUM
127 * @tc.type: FUNC
128 * @tc.level Level 1
129 * @tc.require: SR000H0386
130 */
131 HWTEST_F(FileExtensionHelperTest, external_file_access_Access_0001, testing::ext::TestSize.Level1)
132 {
133 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
134 EXPECT_NE(fileAccessHelper, nullptr);
135 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Access_0001";
136 try {
137 vector<RootInfo> info;
138 int result = fileAccessHelper->GetRoots(info);
139 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
140 for (size_t i = 0; i < info.size(); i++) {
141 std::string str = info[i].uri;
142 if (ReplaceBundleName(str, "ohos.com.NotExistBundleName")) {
143 Uri newDirUriTest(str + "/test.txt");
144 bool isExist = false;
145 result = fileAccessHelper->Access(newDirUriTest, isExist);
146 EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS);
147 EXPECT_FALSE(isExist);
148 } else {
149 EXPECT_TRUE(false);
150 }
151 }
152 } catch (...) {
153 GTEST_LOG_(ERROR) << "external_file_access_Access_0001 occurs an exception.";
154 }
155 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Access_0001";
156 }
157
158 /**
159 * @tc.number: user_file_service_external_file_access_Access_0002
160 * @tc.name: external_file_access_Access_0002
161 * @tc.desc: Test function of Access interface for SUCCESS, the file and folder name is chinese.
162 * @tc.size: MEDIUM
163 * @tc.type: FUNC
164 * @tc.level Level 1
165 * @tc.require: I70SX9
166 */
167 HWTEST_F(FileExtensionHelperTest, external_file_access_Access_0002, testing::ext::TestSize.Level1)
168 {
169 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
170 EXPECT_NE(fileAccessHelper, nullptr);
171 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Access_0002";
172 try {
173 vector<RootInfo> info;
174 int result = fileAccessHelper->GetRoots(info);
175 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
176 for (size_t i = 0; i < info.size(); i++) {
177 Uri parentUri(info[i].uri);
178 GTEST_LOG_(INFO) << parentUri.ToString();
179 Uri newDirUriTest("");
180 result = fileAccessHelper->Mkdir(parentUri, "访问目录", newDirUriTest);
181 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
182 EXPECT_EQ(newDirUriTest.ToString().find("访问目录"), std::string::npos);
183 Uri newFileUri("");
184 result = fileAccessHelper->CreateFile(newDirUriTest, "访问文件.txt", newFileUri);
185 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
186 EXPECT_EQ(newFileUri.ToString().find("访问文件.txt"), std::string::npos);
187 TestFileAccess(fileAccessHelper, newDirUriTest);
188 }
189 } catch (...) {
190 GTEST_LOG_(ERROR) << "external_file_access_Access_0002 occurs an exception.";
191 }
192 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Access_0002";
193 }
194
195 /**
196 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0000
197 * @tc.name: external_file_access_GetFileInfoFromUri_0000
198 * @tc.desc: Test function of GetFileInfoFromUri interface.
199 * @tc.desc: convert the root directory uri to fileinfo and call listfile for SUCCESS.
200 * @tc.size: MEDIUM
201 * @tc.type: FUNC
202 * @tc.level Level 1
203 * @tc.require: SR000H0386
204 */
205 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0000, testing::ext::TestSize.Level1)
206 {
207 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
208 EXPECT_NE(fileAccessHelper, nullptr);
209 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0000";
210 try {
211 vector<RootInfo> info;
212 int result = fileAccessHelper->GetRoots(info);
213 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
214 SharedMemoryInfo memInfo;
215 result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB,
216 memInfo);
217 for (size_t i = 0; i < info.size(); i++) {
218 Uri parentUri(info[i].uri);
219 FileInfo fileinfo;
220 result = fileAccessHelper->GetFileInfoFromUri(parentUri, fileinfo);
221 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
222
223 int64_t offset = 0;
224 FileFilter filter;
225 result = fileAccessHelper->ListFile(fileinfo, offset, filter, memInfo);
226 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
227 EXPECT_GE(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK);
228 }
229 FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo);
230 } catch (...) {
231 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0000 occurs an exception.";
232 }
233 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0000";
234 }
235
236 /**
237 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0001
238 * @tc.name: external_file_access_GetFileInfoFromUri_0001
239 * @tc.desc: Test function of GetFileInfoFromUri interface.
240 * @tc.desc: convert the general directory uri to fileinfo and call listfile for SUCCESS.
241 * @tc.size: MEDIUM
242 * @tc.type: FUNC
243 * @tc.level Level 1
244 * @tc.require: SR000H0386
245 */
246 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0001, testing::ext::TestSize.Level1)
247 {
248 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
249 EXPECT_NE(fileAccessHelper, nullptr);
250 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0001";
251 try {
252 vector<RootInfo> info;
253 int result = fileAccessHelper->GetRoots(info);
254 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
255 SharedMemoryInfo memInfo;
256 result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB,
257 memInfo);
258 for (size_t i = 0; i < info.size(); i++) {
259 Uri parentUri(info[i].uri);
260 Uri newDirUriTest("");
261 result = fileAccessHelper->Mkdir(parentUri, "testDir", newDirUriTest);
262 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
263
264 FileInfo dirInfo;
265 result = fileAccessHelper->GetFileInfoFromUri(newDirUriTest, dirInfo);
266 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
267
268 int64_t offset = 0;
269 FileFilter filter;
270 result = fileAccessHelper->ListFile(dirInfo, offset, filter, memInfo);
271 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
272 EXPECT_GE(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK);
273
274 result = fileAccessHelper->Delete(newDirUriTest);
275 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
276 }
277 FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo);
278 } catch (...) {
279 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0001 occurs an exception.";
280 }
281 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0001";
282 }
283
284 /**
285 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0002
286 * @tc.name: external_file_access_GetFileInfoFromUri_0002
287 * @tc.desc: Test function of GetFileInfoFromUri interface.
288 * @tc.desc: convert the general filepath uri to fileinfo and call listfile for ERROR.
289 * @tc.size: MEDIUM
290 * @tc.type: FUNC
291 * @tc.level Level 1
292 * @tc.require: SR000H0386
293 */
294 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0002, testing::ext::TestSize.Level1)
295 {
296 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
297 EXPECT_NE(fileAccessHelper, nullptr);
298 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0002";
299 try {
300 vector<RootInfo> info;
301 int result = fileAccessHelper->GetRoots(info);
302 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
303 SharedMemoryInfo memInfo;
304 result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB,
305 memInfo);
306 for (size_t i = 0; i < info.size(); i++) {
307 Uri parentUri(info[i].uri);
308 Uri newDirUriTest("");
309 result = fileAccessHelper->Mkdir(parentUri, "testDir", newDirUriTest);
310 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
311 Uri newFileUri("");
312 result = fileAccessHelper->CreateFile(newDirUriTest,
313 "external_file_access_GetFileInfoFromUri_0002.txt", newFileUri);
314 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
315
316 FileInfo fileinfo;
317 result = fileAccessHelper->GetFileInfoFromUri(newFileUri, fileinfo);
318 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
319
320 int64_t offset = 0;
321 FileFilter filter;
322 result = fileAccessHelper->ListFile(fileinfo, offset, filter, memInfo);
323 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
324 EXPECT_EQ(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK);
325
326 result = fileAccessHelper->Delete(newDirUriTest);
327 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
328 }
329 FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo);
330 } catch (...) {
331 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0002 occurs an exception.";
332 }
333 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0002";
334 }
335
336 /**
337 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0003
338 * @tc.name: external_file_access_GetFileInfoFromUri_0003
339 * @tc.desc: Test function of GetFileInfoFromUri interface.
340 * @tc.desc: convert the root directory uri to fileinfo for CheckUri failed.
341 * @tc.size: MEDIUM
342 * @tc.type: FUNC
343 * @tc.level Level 1
344 * @tc.require: SR000H0386
345 */
346 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0003, testing::ext::TestSize.Level1)
347 {
348 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
349 EXPECT_NE(fileAccessHelper, nullptr);
350 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0003";
351 try {
352 vector<RootInfo> info;
353 int result = fileAccessHelper->GetRoots(info);
354 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
355 for (size_t i = 0; i < info.size(); i++) {
356 FileInfo fileinfo;
357 Uri parentUri(std::string("\?\?\?\?/") + info[i].uri);
358 result = fileAccessHelper->GetFileInfoFromUri(parentUri, fileinfo);
359 EXPECT_EQ(result, OHOS::FileAccessFwk::E_URIS);
360 }
361 } catch (...) {
362 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0003 occurs an exception.";
363 }
364 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0003";
365 }
366
367 /**
368 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0004
369 * @tc.name: external_file_access_GetFileInfoFromUri_0004
370 * @tc.desc: Test function of GetFileInfoFromUri interface.
371 * @tc.desc: convert the root directory uri to fileinfo failed because of GetProxyByUri failed.
372 * @tc.size: MEDIUM
373 * @tc.type: FUNC
374 * @tc.level Level 1
375 * @tc.require: SR000H0386
376 */
377 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0004, testing::ext::TestSize.Level1)
378 {
379 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
380 EXPECT_NE(fileAccessHelper, nullptr);
381 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0004";
382 try {
383 vector<RootInfo> info;
384 int result = fileAccessHelper->GetRoots(info);
385 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
386 for (size_t i = 0; i < info.size(); i++) {
387 std::string str = info[i].uri;
388 if (ReplaceBundleName(str, "ohos.com.NotExistBundleName")) {
389 Uri parentUri(str);
390 FileInfo fileinfo;
391 result = fileAccessHelper->GetFileInfoFromUri(parentUri, fileinfo);
392 EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS);
393 } else {
394 EXPECT_TRUE(false);
395 }
396 }
397 } catch (...) {
398 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0004 occurs an exception.";
399 }
400 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0004";
401 }
402
403 /**
404 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0005
405 * @tc.name: external_file_access_GetFileInfoFromUri_0005
406 * @tc.desc: Test function of GetFileInfoFromUri interface.
407 * @tc.desc: convert the invalid uri to fileinfo failed.
408 * @tc.size: MEDIUM
409 * @tc.type: FUNC
410 * @tc.level Level 1
411 * @tc.require: SR000H0386
412 */
413 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0005, testing::ext::TestSize.Level1)
414 {
415 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
416 EXPECT_NE(fileAccessHelper, nullptr);
417 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0005";
418 try {
419 Uri uri("~!@#$%^&*()_");
420 FileInfo fileInfo;
421 int result = fileAccessHelper->GetFileInfoFromUri(uri, fileInfo);
422 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
423
424 uri = Uri("/");
425 result = fileAccessHelper->GetFileInfoFromUri(uri, fileInfo);
426 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
427
428 uri = Uri("");
429 result = fileAccessHelper->GetFileInfoFromUri(uri, fileInfo);
430 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
431 } catch (...) {
432 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0005 occurs an exception.";
433 }
434 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0005";
435 }
436
437 /**
438 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0006
439 * @tc.name: external_file_access_GetFileInfoFromUri_0006
440 * @tc.desc: Test function of GetFileInfoFromUri interface.
441 * @tc.desc: convert the general directory uri to fileinfo and call listfile for SUCCESS, the folder name is chinese.
442 * @tc.size: MEDIUM
443 * @tc.type: FUNC
444 * @tc.level Level 1
445 * @tc.require: I70SX9
446 */
447 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0006, testing::ext::TestSize.Level1)
448 {
449 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
450 EXPECT_NE(fileAccessHelper, nullptr);
451 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0006";
452 try {
453 vector<RootInfo> info;
454 int result = fileAccessHelper->GetRoots(info);
455 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
456 SharedMemoryInfo memInfo;
457 result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB,
458 memInfo);
459 for (size_t i = 0; i < info.size(); i++) {
460 Uri parentUri(info[i].uri);
461 Uri newDirUriTest("");
462 result = fileAccessHelper->Mkdir(parentUri, "测试目录", newDirUriTest);
463 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
464 EXPECT_EQ(newDirUriTest.ToString().find("测试目录"), std::string::npos);
465
466 FileInfo dirInfo;
467 result = fileAccessHelper->GetFileInfoFromUri(newDirUriTest, dirInfo);
468 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
469
470 int64_t offset = 0;
471 FileFilter filter;
472 result = fileAccessHelper->ListFile(dirInfo, offset, filter, memInfo);
473 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
474 EXPECT_GE(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK);
475
476 result = fileAccessHelper->Delete(newDirUriTest);
477 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
478 }
479 FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo);
480 } catch (...) {
481 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0006 occurs an exception.";
482 }
483 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0006";
484 }
485
486 /**
487 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0007
488 * @tc.name: external_file_access_GetFileInfoFromUri_0007
489 * @tc.desc: Test function of GetFileInfoFromUri interface.
490 * @tc.desc: convert the general filepath uri to fileinfo and call listfile for ERROR, the file name is chinese.
491 * @tc.size: MEDIUM
492 * @tc.type: FUNC
493 * @tc.level Level 1
494 * @tc.require: I70SX9
495 */
496 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0007, testing::ext::TestSize.Level1)
497 {
498 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
499 EXPECT_NE(fileAccessHelper, nullptr);
500 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0007";
501 try {
502 vector<RootInfo> info;
503 int result = fileAccessHelper->GetRoots(info);
504 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
505 SharedMemoryInfo memInfo;
506 result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB,
507 memInfo);
508 for (size_t i = 0; i < info.size(); i++) {
509 Uri newDirUriTest("");
510 Uri parentUri(info[i].uri);
511 result = fileAccessHelper->Mkdir(parentUri, "测试目录1", newDirUriTest);
512 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
513 EXPECT_EQ(newDirUriTest.ToString().find("测试目录1"), std::string::npos);
514 Uri newFileUri("");
515 result = fileAccessHelper->CreateFile(newDirUriTest, "测试文件1.txt", newFileUri);
516 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
517 EXPECT_EQ(newFileUri.ToString().find("测试文件1.txt"), std::string::npos);
518
519 FileInfo fileinfo;
520 result = fileAccessHelper->GetFileInfoFromUri(newFileUri, fileinfo);
521 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
522
523 int64_t offset = 0;
524 FileFilter filter;
525 std::vector<FileInfo> fileInfoVecTemp;
526 result = fileAccessHelper->ListFile(fileinfo, offset, filter, memInfo);
527 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
528 EXPECT_EQ(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK);
529
530 result = fileAccessHelper->Delete(newDirUriTest);
531 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
532 }
533 FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo);
534 } catch (...) {
535 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0007 occurs an exception.";
536 }
537 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0007";
538 }
539
540 /**
541 * @tc.number: user_file_service_external_file_access_Mkdir_0000
542 * @tc.name: external_file_access_Mkdir_0000
543 * @tc.desc: Test function of Mkdir interface for SUCCESS.
544 * @tc.size: MEDIUM
545 * @tc.type: FUNC
546 * @tc.level Level 1
547 * @tc.require: SR000H0386
548 */
549 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0000, testing::ext::TestSize.Level1)
550 {
551 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
552 EXPECT_NE(fileAccessHelper, nullptr);
553 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0000";
554 try {
555 vector<RootInfo> info;
556 int result = fileAccessHelper->GetRoots(info);
557 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
558 for (size_t i = 0; i < info.size(); i++) {
559 Uri parentUri(info[i].uri);
560 Uri newDirUriTest("");
561 result = fileAccessHelper->Mkdir(parentUri, "external_file_access_Mkdir_0000", newDirUriTest);
562 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
563 GTEST_LOG_(INFO) << "Mkdir_0000 result:" << result;
564 result = fileAccessHelper->Delete(newDirUriTest);
565 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
566 }
567 } catch (...) {
568 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0000 occurs an exception.";
569 }
570 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0000";
571 }
572
573 /**
574 * @tc.number: user_file_service_external_file_access_Mkdir_0001
575 * @tc.name: external_file_access_Mkdir_0001
576 * @tc.desc: Test function of Mkdir interface for ERROR which parentUri is null.
577 * @tc.size: MEDIUM
578 * @tc.type: FUNC
579 * @tc.level Level 1
580 * @tc.require: SR000H0386
581 */
582 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0001, testing::ext::TestSize.Level1)
583 {
584 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
585 EXPECT_NE(fileAccessHelper, nullptr);
586 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0001";
587 try {
588 Uri newDirUriTest("");
589 Uri parentUri("");
590 int result = fileAccessHelper->Mkdir(parentUri, "external_file_access_Mkdir_0001", newDirUriTest);
591 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
592 GTEST_LOG_(INFO) << "Mkdir_0001 result:" << result;
593 } catch (...) {
594 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0001 occurs an exception.";
595 }
596 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0001";
597 }
598
599 /**
600 * @tc.number: user_file_service_external_file_access_Mkdir_0002
601 * @tc.name: external_file_access_Mkdir_0002
602 * @tc.desc: Test function of Mkdir interface for ERROR which parentUri is absolute path.
603 * @tc.size: MEDIUM
604 * @tc.type: FUNC
605 * @tc.level Level 1
606 * @tc.require: SR000H0386
607 */
608 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0002, testing::ext::TestSize.Level1)
609 {
610 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
611 EXPECT_NE(fileAccessHelper, nullptr);
612 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0002";
613 try {
614 Uri newDirUriTest("");
615 Uri parentUri("storage/media/100/local/files/Download");
616 int result = fileAccessHelper->Mkdir(parentUri, "external_file_access_Mkdir_0002", newDirUriTest);
617 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
618 GTEST_LOG_(INFO) << "Mkdir_0002 result:" << result;
619 } catch (...) {
620 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0002 occurs an exception.";
621 }
622 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0002";
623 }
624
625 /**
626 * @tc.number: user_file_service_external_file_access_Mkdir_0003
627 * @tc.name: external_file_access_Mkdir_0003
628 * @tc.desc: Test function of Mkdir interface for ERROR which parentUri is special symbols.
629 * @tc.size: MEDIUM
630 * @tc.type: FUNC
631 * @tc.level Level 1
632 * @tc.require: SR000H0386
633 */
634 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0003, testing::ext::TestSize.Level1)
635 {
636 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
637 EXPECT_NE(fileAccessHelper, nullptr);
638 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0002";
639 try {
640 Uri newDirUriTest("");
641 Uri parentUri("~!@#$%^&*()_");
642 int result = fileAccessHelper->Mkdir(parentUri, "external_file_access_Mkdir_0003", newDirUriTest);
643 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
644 GTEST_LOG_(INFO) << "Mkdir_0003 result:" << result;
645 } catch (...) {
646 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0003 occurs an exception.";
647 }
648 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0003";
649 }
650
651 /**
652 * @tc.number: user_file_service_external_file_access_Mkdir_0004
653 * @tc.name: external_file_access_Mkdir_0004
654 * @tc.desc: Test function of Mkdir interface for ERROR which displayName is null.
655 * @tc.size: MEDIUM
656 * @tc.type: FUNC
657 * @tc.level Level 1
658 * @tc.require: SR000H0386
659 */
660 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0004, testing::ext::TestSize.Level1)
661 {
662 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
663 EXPECT_NE(fileAccessHelper, nullptr);
664 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0004";
665 try {
666 vector<RootInfo> info;
667 int result = fileAccessHelper->GetRoots(info);
668 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
669 for (size_t i = 0; i < info.size(); i++) {
670 Uri parentUri(info[i].uri);
671 Uri newDirUriTest("");
672 string displayName = "";
673 result = fileAccessHelper->Mkdir(parentUri, displayName, newDirUriTest);
674 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
675 GTEST_LOG_(INFO) << "Mkdir_0004 result:" << result;
676 }
677 } catch (...) {
678 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0004 occurs an exception.";
679 }
680 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0004";
681 }
682
MkdirTdd(shared_ptr<FileAccessHelper> fahs,Uri uri,std::string displayName,Uri newFile)683 static void MkdirTdd(shared_ptr<FileAccessHelper> fahs, Uri uri, std::string displayName, Uri newFile)
684 {
685 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
686 EXPECT_NE(fileAccessHelper, nullptr);
687 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_MkdirTdd";
688 int ret = fahs->Mkdir(uri, displayName, newFile);
689 if (ret != OHOS::FileAccessFwk::ERR_OK) {
690 GTEST_LOG_(ERROR) << "MkdirTdd get result error, code:" << ret;
691 return;
692 }
693 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
694 EXPECT_NE(newFile.ToString(), "");
695 g_num++;
696 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_MkdirTdd";
697 }
698
699 /**
700 * @tc.number: user_file_service_external_file_access_Mkdir_0005
701 * @tc.name: external_file_access_Mkdir_0005
702 * @tc.desc: Test function of Mkdir interface for SUCCESS which Concurrent.
703 * @tc.size: MEDIUM
704 * @tc.type: FUNC
705 * @tc.level Level 1
706 * @tc.require: SR000H0386
707 */
708 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0005, testing::ext::TestSize.Level1)
709 {
710 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
711 EXPECT_NE(fileAccessHelper, nullptr);
712 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0005";
713 try {
714 vector<RootInfo> info;
715 int result = fileAccessHelper->GetRoots(info);
716 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
717 for (size_t i = 0; i < info.size(); i++) {
718 Uri parentUri(info[i].uri);
719 Uri newDirUriTest("");
720 std::string displayName = "test1";
721 g_num = 0;
722 for (int j = 0; j < INIT_THREADS_NUMBER; j++) {
723 std::thread execthread(MkdirTdd, fileAccessHelper, parentUri, displayName, newDirUriTest);
724 execthread.join();
725 }
726 EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER);
727 Uri newDelete(info[i].uri + "/" + displayName);
728 result = fileAccessHelper->Delete(newDelete);
729 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
730 }
731 } catch (...) {
732 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0005 occurs an exception.";
733 }
734 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0005";
735 }
736
737 /**
738 * @tc.number: user_file_service_external_file_access_Mkdir_0006
739 * @tc.name: external_file_access_Mkdir_0006
740 * @tc.desc: Test function of Mkdir interface for ERROR because of GetProxyByUri failed.
741 * @tc.size: MEDIUM
742 * @tc.type: FUNC
743 * @tc.level Level 1
744 * @tc.require: SR000H0386
745 */
746 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0006, testing::ext::TestSize.Level1)
747 {
748 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
749 EXPECT_NE(fileAccessHelper, nullptr);
750 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0006";
751 try {
752 vector<RootInfo> info;
753 int result = fileAccessHelper->GetRoots(info);
754 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
755 for (size_t i = 0; i < info.size(); i++) {
756 std::string str = info[i].uri;
757 if (ReplaceBundleName(str, "ohos.com.NotExistBundleName")) {
758 Uri parentUri(str);
759 Uri newDirUriTest("");
760 string displayName = "";
761 result = fileAccessHelper->Mkdir(parentUri, displayName, newDirUriTest);
762 EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS);
763 GTEST_LOG_(INFO) << "Mkdir_0006 result:" << result;
764 } else {
765 EXPECT_TRUE(false);
766 }
767 }
768 } catch (...) {
769 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0006 occurs an exception.";
770 }
771 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0006";
772 }
773
774 /**
775 * @tc.number: user_file_service_external_file_access_Mkdir_0007
776 * @tc.name: external_file_access_Mkdir_0007
777 * @tc.desc: Test function of Mkdir interface for SUCCESS,the folder name is chinese.
778 * @tc.size: MEDIUM
779 * @tc.type: FUNC
780 * @tc.level Level 1
781 * @tc.require: I70SX9
782 */
783 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0007, testing::ext::TestSize.Level1)
784 {
785 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
786 EXPECT_NE(fileAccessHelper, nullptr);
787 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0007";
788 try {
789 vector<RootInfo> info;
790 int result = fileAccessHelper->GetRoots(info);
791 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
792 for (size_t i = 0; i < info.size(); i++) {
793 Uri parentUri(info[i].uri);
794 Uri newDirUriTest("");
795 result = fileAccessHelper->Mkdir(parentUri, "新建目录", newDirUriTest);
796 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
797 EXPECT_EQ(newDirUriTest.ToString().find("新建目录"), std::string::npos);
798 GTEST_LOG_(INFO) << "Mkdir_0007 result:" << result;
799 result = fileAccessHelper->Delete(newDirUriTest);
800 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
801 }
802 } catch (...) {
803 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0007 occurs an exception.";
804 }
805 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0007";
806 }
807
808 /**
809 * @tc.number: user_file_service_external_file_access_Mkdir_0008
810 * @tc.name: external_file_access_Mkdir_0008
811 * @tc.desc: Test function of Mkdir interface for FAIL,the folder name is Documents.
812 * @tc.size: MEDIUM
813 * @tc.type: FUNC
814 * @tc.level Level 1
815 * @tc.require: I7MQMD
816 */
817 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0008, testing::ext::TestSize.Level1)
818 {
819 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
820 EXPECT_NE(fileAccessHelper, nullptr);
821 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0008";
822 try {
823 vector<RootInfo> info;
824 int result = fileAccessHelper->GetRoots(info);
825 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
826 EXPECT_GE(info.size(), 2);
827 Uri parentUri(info[0].uri);
828 Uri newDirUriTest("");
829 result = fileAccessHelper->Mkdir(parentUri, "Documents", newDirUriTest);
830 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
831 result = fileAccessHelper->Mkdir(parentUri, "Download", newDirUriTest);
832 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
833 result = fileAccessHelper->Mkdir(parentUri, "Desktop", newDirUriTest);
834 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
835 } catch (...) {
836 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0008 occurs an exception.";
837 }
838 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0008";
839 }
840
841 /**
842 * @tc.number: user_file_service_external_file_access_GetConnectInfo_0000
843 * @tc.name: external_file_access_GetConnectInfo_0000
844 * @tc.desc: Test function of GetConnectInfo interface.
845 * @tc.desc: helper invoke GetConnectInfo for FAILED.
846 * @tc.size: MEDIUM
847 * @tc.type: FUNC
848 * @tc.level Level 1
849 * @tc.require: SR000H0386
850 */
851 HWTEST_F(FileExtensionHelperTest, external_file_access_GetConnectInfo_0000, testing::ext::TestSize.Level1)
852 {
853 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
854 EXPECT_NE(fileAccessHelper, nullptr);
855 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetConnectInfo_0000";
856 try {
857 std::shared_ptr<ConnectInfo> connectInfo = fileAccessHelper->GetConnectInfo("NotExistBundleName");
858 ASSERT_TRUE(connectInfo == nullptr);
859 } catch (...) {
860 GTEST_LOG_(ERROR) << "external_file_access_GetConnectInfo_0000 occurs an exception.";
861 }
862 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetConnectInfo_0000";
863 }
864
865
866 /**
867 * @tc.number: user_file_service_external_file_access_GetProxyByUri_0000
868 * @tc.name: external_file_access_GetProxyByUri_0000
869 * @tc.desc: Test function of GetProxyByUri interface.
870 * @tc.desc: helper invoke GetProxyByUri for FAILED.
871 * @tc.size: MEDIUM
872 * @tc.type: FUNC
873 * @tc.level Level 1
874 * @tc.require: SR000H0386
875 */
876 HWTEST_F(FileExtensionHelperTest, external_file_access_GetProxyByUri_0000, testing::ext::TestSize.Level1)
877 {
878 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
879 EXPECT_NE(fileAccessHelper, nullptr);
880 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetProxyByUri_0000";
881 try {
882 Uri uri("");
883 sptr<IFileAccessExtBase> proxy = fileAccessHelper->GetProxyByUri(uri);
884 ASSERT_TRUE(proxy == nullptr);
885 } catch (...) {
886 GTEST_LOG_(ERROR) << "external_file_access_GetProxyByUri_0000 occurs an exception.";
887 }
888 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetProxyByUri_0000";
889 }
890
891 /**
892 * @tc.number: user_file_service_external_file_access_GetProxyByUri_0001
893 * @tc.name: external_file_access_GetProxyByUri_0001
894 * @tc.desc: Test function of GetProxyByUri interface.
895 * @tc.desc: helper invoke GetProxyByUri for FAILED.
896 * @tc.size: MEDIUM
897 * @tc.type: FUNC
898 * @tc.level Level 1
899 * @tc.require: SR000H0386
900 */
901 HWTEST_F(FileExtensionHelperTest, external_file_access_GetProxyByUri_0001, testing::ext::TestSize.Level1)
902 {
903 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
904 EXPECT_NE(fileAccessHelper, nullptr);
905 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetProxyByUri_0001";
906 try {
907 Uri uri("file://com.ohos.UserFile.NotExistBundleName/data/storage/el1/bundle/storage_daemon");
908 sptr<IFileAccessExtBase> proxy = fileAccessHelper->GetProxyByUri(uri);
909 ASSERT_TRUE(proxy == nullptr);
910 } catch (...) {
911 GTEST_LOG_(ERROR) << "external_file_access_GetProxyByUri_0001 occurs an exception.";
912 }
913 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetProxyByUri_0001";
914 }
915
CheckJson(Uri & newDirUriTest,const std::string displayName,const std::string relativePath,int len,shared_ptr<FileAccessHelper> fileAccessHelper)916 static void CheckJson(Uri& newDirUriTest, const std::string displayName, const std::string relativePath,
917 int len, shared_ptr<FileAccessHelper> fileAccessHelper)
918 {
919 json testJson = {
920 {RELATIVE_PATH, " "},
921 {DISPLAY_NAME, " "},
922 {FILE_SIZE, " "},
923 {DATE_MODIFIED, " "},
924 {DATE_ADDED, " "},
925 {HEIGHT, " "},
926 {WIDTH, " "},
927 {DURATION, " "}
928 };
929 auto testJsonString = testJson.dump();
930 int result = fileAccessHelper->Query(newDirUriTest, testJsonString);
931 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
932 auto jsonObject = json::parse(testJsonString);
933 EXPECT_EQ(jsonObject.at(DISPLAY_NAME), displayName);
934 EXPECT_EQ(jsonObject.at(FILE_SIZE), len);
935 EXPECT_EQ(jsonObject.at(RELATIVE_PATH), relativePath);
936 ASSERT_TRUE(jsonObject.at(DATE_MODIFIED) > 0);
937 ASSERT_TRUE(jsonObject.at(DATE_ADDED) > 0);
938 GTEST_LOG_(INFO) << " result" << testJsonString;
939 }
940
WriteBuffToFile(shared_ptr<FileAccessHelper> & fileAccessHelper,Uri & fileUri,std::string & buff)941 static void WriteBuffToFile(shared_ptr<FileAccessHelper>& fileAccessHelper, Uri& fileUri, std::string& buff)
942 {
943 int fd = -1;
944 int result = fileAccessHelper->OpenFile(fileUri, WRITE_READ, fd);
945 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
946
947 ssize_t fileSize = write(fd, buff.c_str(), buff.size());
948 close(fd);
949 EXPECT_EQ(fileSize, buff.size());
950 }
951
952 /**
953 * @tc.number: user_file_service_external_file_access_Query_0000
954 * @tc.name: external_file_access_Query_0000
955 * @tc.desc: Test function of Query directory for SUCCESS.
956 * @tc.size: MEDIUM
957 * @tc.type: FUNC
958 * @tc.level Level 1
959 * @tc.require: I6S4VV
960 */
961 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0000, testing::ext::TestSize.Level1)
962 {
963 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
964 EXPECT_NE(fileAccessHelper, nullptr);
965 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0000";
966 try {
967 vector<RootInfo> info;
968 int result = fileAccessHelper->GetRoots(info);
969 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
970 Uri parentUri(info[0].uri);
971 GTEST_LOG_(INFO) << parentUri.ToString();
972 Uri newDirUriTest1("");
973 Uri newDirUriTest2("");
974 std::string displayName = "QueryTest1";
975 std::string relativePath = "/storage/Users/currentUser/QueryTest1";
976 result = fileAccessHelper->Mkdir(parentUri, "QueryTest1", newDirUriTest1);
977 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
978 result = fileAccessHelper->Mkdir(newDirUriTest1, "QueryTest2", newDirUriTest2);
979 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
980 Uri newFileUri1("");
981 Uri newFileUri2("");
982 std::string fileName = "external_file_access_Query_00001.txt";
983 result = fileAccessHelper->CreateFile(newDirUriTest1, fileName, newFileUri1);
984 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
985 result = fileAccessHelper->CreateFile(newDirUriTest2, fileName, newFileUri2);
986 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
987 std::string buff = "query test";
988 WriteBuffToFile(fileAccessHelper, newFileUri1, buff);
989 WriteBuffToFile(fileAccessHelper, newFileUri2, buff);
990 int len = buff.size() + buff.size();
991 CheckJson(newDirUriTest1, displayName, relativePath, len, fileAccessHelper);
992 result = fileAccessHelper->Delete(newDirUriTest1);
993 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
994 } catch (...) {
995 GTEST_LOG_(ERROR) << "external_file_access_Query_0000 occurs an exception.";
996 }
997 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0000";
998 }
999
1000 /**
1001 * @tc.number: user_file_service_external_file_access_Query_0001
1002 * @tc.name: external_file_access_Query_0001
1003 * @tc.desc: Test function of Query file for SUCCESS.
1004 * @tc.size: MEDIUM
1005 * @tc.type: FUNC
1006 * @tc.level Level 1
1007 * @tc.require: I6S4VV
1008 */
1009 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0001, testing::ext::TestSize.Level1)
1010 {
1011 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1012 EXPECT_NE(fileAccessHelper, nullptr);
1013 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0001";
1014 try {
1015 vector<RootInfo> info;
1016 int result = fileAccessHelper->GetRoots(info);
1017 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1018 Uri parentUri(info[0].uri);
1019 GTEST_LOG_(INFO) << parentUri.ToString();
1020 Uri newDirUriTest("");
1021 result = fileAccessHelper->Mkdir(parentUri, "QueryTest3", newDirUriTest);
1022 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1023 Uri newFileUri("");
1024 std::string displayName = "external_file_access_Query_0001.txt";
1025 std::string relativePath = "/storage/Users/currentUser/QueryTest3/external_file_access_Query_0001.txt";
1026 result = fileAccessHelper->CreateFile(newDirUriTest, displayName, newFileUri);
1027 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1028 int fd = -1;
1029 result = fileAccessHelper->OpenFile(newFileUri, WRITE_READ, fd);
1030 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1031 std::string buff = "query test";
1032 ssize_t fileSize = write(fd, buff.c_str(), buff.size());
1033 close(fd);
1034 EXPECT_EQ(fileSize, buff.size());
1035 CheckJson(newFileUri, displayName, relativePath, buff.size(), fileAccessHelper);
1036 result = fileAccessHelper->Delete(newDirUriTest);
1037 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1038 } catch (...) {
1039 GTEST_LOG_(ERROR) << "external_file_access_Query_0001 occurs an exception.";
1040 }
1041 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0001";
1042 }
1043
1044 /**
1045 * @tc.number: user_file_service_external_file_access_Query_0002
1046 * @tc.name: external_file_access_Query_0002
1047 * @tc.desc: Test function of Query directory for SUCCESS.
1048 * @tc.size: MEDIUM
1049 * @tc.type: FUNC
1050 * @tc.level Level 1
1051 * @tc.require: I6S4VV
1052 */
1053 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0002, testing::ext::TestSize.Level1)
1054 {
1055 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1056 EXPECT_NE(fileAccessHelper, nullptr);
1057 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0002";
1058 try {
1059 vector<RootInfo> info;
1060 int result = fileAccessHelper->GetRoots(info);
1061 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1062 Uri parentUri(info[0].uri);
1063 GTEST_LOG_(INFO) << parentUri.ToString();
1064 Uri newDirUriTest1("");
1065 Uri newDirUriTest2("");
1066 result = fileAccessHelper->Mkdir(parentUri, "QueryTest4", newDirUriTest1);
1067 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1068 result = fileAccessHelper->Mkdir(newDirUriTest1, "QueryTest5", newDirUriTest2);
1069 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1070 Uri newFileUri1("");
1071 Uri newFileUri2("");
1072 std::string fileName = "external_file_access_Query_00002.txt";
1073 result = fileAccessHelper->CreateFile(newDirUriTest1, fileName, newFileUri1);
1074 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1075 result = fileAccessHelper->CreateFile(newDirUriTest2, fileName, newFileUri2);
1076 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1077 std::string buff = "query test";
1078 WriteBuffToFile(fileAccessHelper, newFileUri1, buff);
1079 WriteBuffToFile(fileAccessHelper, newFileUri2, buff);
1080 json testJson = {
1081 {FILE_SIZE, " "}
1082 };
1083 auto testJsonString = testJson.dump();
1084 result = fileAccessHelper->Query(newDirUriTest1, testJsonString);
1085 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1086 auto jsonObject = json::parse(testJsonString);
1087 EXPECT_EQ(jsonObject.at(FILE_SIZE), buff.size() * 2);
1088 GTEST_LOG_(INFO) << " result" << testJsonString;
1089 result = fileAccessHelper->Delete(newDirUriTest1);
1090 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1091 } catch (...) {
1092 GTEST_LOG_(ERROR) << "external_file_access_Query_0002 occurs an exception.";
1093 }
1094 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0002";
1095 }
1096
1097 /**
1098 * @tc.number: user_file_service_external_file_access_Query_0003
1099 * @tc.name: external_file_access_Query_0003
1100 * @tc.desc: Test function of Query interface for which is unreadable code.
1101 * @tc.size: MEDIUM
1102 * @tc.type: FUNC
1103 * @tc.level Level 1
1104 * @tc.require: I6S4VV
1105 */
1106 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0003, testing::ext::TestSize.Level1)
1107 {
1108 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1109 EXPECT_NE(fileAccessHelper, nullptr);
1110 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0003";
1111 try {
1112 Uri testUri("&*()*/?");
1113 json testJson = {
1114 {RELATIVE_PATH, " "},
1115 {DISPLAY_NAME, " "}
1116 };
1117 auto testJsonString = testJson.dump();
1118 int result = fileAccessHelper->Query(testUri, testJsonString);
1119 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1120 GTEST_LOG_(INFO) << " result" << testJsonString;
1121 } catch (...) {
1122 GTEST_LOG_(ERROR) << "external_file_access_Query_0003 occurs an exception.";
1123 }
1124 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0003";
1125 }
1126
1127 /**
1128 * @tc.number: user_file_service_external_file_access_Query_0004
1129 * @tc.name: external_file_access_Query_0004
1130 * @tc.desc: Test function of Query interface for which all column nonexistence.
1131 * @tc.size: MEDIUM
1132 * @tc.type: FUNC
1133 * @tc.level Level 1
1134 * @tc.require: I6S4VV
1135 */
1136 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0004, testing::ext::TestSize.Level1)
1137 {
1138 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1139 EXPECT_NE(fileAccessHelper, nullptr);
1140 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0004";
1141 try {
1142 vector<RootInfo> info;
1143 int result = fileAccessHelper->GetRoots(info);
1144 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1145 Uri parentUri(info[0].uri);
1146 GTEST_LOG_(INFO) << parentUri.ToString();
1147 Uri newDirUriTest("");
1148 result = fileAccessHelper->Mkdir(parentUri, "QueryTest6", newDirUriTest);
1149 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1150 json testJson = {
1151 {"001", " "},
1152 {"#", " "},
1153 {"test", " "},
1154 {"target", " "}
1155 };
1156 auto testJsonString = testJson.dump();
1157 result = fileAccessHelper->Query(newDirUriTest, testJsonString);
1158 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1159 GTEST_LOG_(INFO) << " result" << testJsonString;
1160 result = fileAccessHelper->Delete(newDirUriTest);
1161 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1162 } catch (...) {
1163 GTEST_LOG_(ERROR) << "external_file_access_Query_0004 occurs an exception.";
1164 }
1165 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0004";
1166 }
1167
1168 /**
1169 * @tc.number: user_file_service_external_file_access_Query_0005
1170 * @tc.name: external_file_access_Query_0005
1171 * @tc.desc: Test function of Query interface for which part of column nonexistence.
1172 * @tc.size: MEDIUM
1173 * @tc.type: FUNC
1174 * @tc.level Level 1
1175 * @tc.require: I6S4VV
1176 */
1177 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0005, testing::ext::TestSize.Level1)
1178 {
1179 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1180 EXPECT_NE(fileAccessHelper, nullptr);
1181 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0005";
1182 try {
1183 vector<RootInfo> info;
1184 int result = fileAccessHelper->GetRoots(info);
1185 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1186 Uri parentUri(info[0].uri);
1187 GTEST_LOG_(INFO) << parentUri.ToString();
1188 Uri newDirUriTest("");
1189 result = fileAccessHelper->Mkdir(parentUri, "QueryTest7", newDirUriTest);
1190 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1191 json testJson = {
1192 {RELATIVE_PATH, " "},
1193 {DISPLAY_NAME, " "},
1194 {"test", " "}
1195 };
1196 auto testJsonString = testJson.dump();
1197 result = fileAccessHelper->Query(newDirUriTest, testJsonString);
1198 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1199 GTEST_LOG_(INFO) << " result" << testJsonString;
1200 result = fileAccessHelper->Delete(newDirUriTest);
1201 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1202 } catch (...) {
1203 GTEST_LOG_(ERROR) << "external_file_access_Query_0005 occurs an exception.";
1204 }
1205 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0005";
1206 }
1207
1208 /**
1209 * @tc.number: user_file_service_external_file_access_Query_0006
1210 * @tc.name: external_file_access_Query_0006
1211 * @tc.desc: Test function of Query interface for which column is null.
1212 * @tc.size: MEDIUM
1213 * @tc.type: FUNC
1214 * @tc.level Level 1
1215 * @tc.require: I6S4VV
1216 */
1217 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0006, testing::ext::TestSize.Level1)
1218 {
1219 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1220 EXPECT_NE(fileAccessHelper, nullptr);
1221 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0006";
1222 try {
1223 vector<RootInfo> info;
1224 int result = fileAccessHelper->GetRoots(info);
1225 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1226 Uri parentUri(info[0].uri);
1227 GTEST_LOG_(INFO) << parentUri.ToString();
1228 Uri newDirUriTest("");
1229 result = fileAccessHelper->Mkdir(parentUri, "QueryTest8", newDirUriTest);
1230 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1231 json testJson;
1232 auto testJsonString = testJson.dump();
1233 result = fileAccessHelper->Query(newDirUriTest, testJsonString);
1234 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1235 GTEST_LOG_(INFO) << " result" << testJsonString;
1236 result = fileAccessHelper->Delete(newDirUriTest);
1237 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1238 } catch (...) {
1239 GTEST_LOG_(ERROR) << "external_file_access_Query_0006 occurs an exception.";
1240 }
1241 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0006";
1242 }
1243
1244 /**
1245 * @tc.number: user_file_service_external_file_access_Query_0007
1246 * @tc.name: external_file_access_Query_0007
1247 * @tc.desc: Test function of Query directory for SUCCESS, the folder and file name is chinese.
1248 * @tc.size: MEDIUM
1249 * @tc.type: FUNC
1250 * @tc.level Level 1
1251 * @tc.require: I70SX9
1252 */
1253 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0007, testing::ext::TestSize.Level1)
1254 {
1255 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1256 EXPECT_NE(fileAccessHelper, nullptr);
1257 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0007";
1258 try {
1259 vector<RootInfo> info;
1260 int result = fileAccessHelper->GetRoots(info);
1261 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1262 Uri parentUri(info[0].uri);
1263 GTEST_LOG_(INFO) << parentUri.ToString();
1264 Uri newDirUriTest1("");
1265 Uri newDirUriTest2("");
1266 std::string displayName = "查询目录1";
1267 std::string relativePath = "/storage/Users/currentUser/查询目录1";
1268 result = fileAccessHelper->Mkdir(parentUri, displayName, newDirUriTest1);
1269 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1270 EXPECT_EQ(newDirUriTest1.ToString().find(displayName), std::string::npos);
1271 result = fileAccessHelper->Mkdir(newDirUriTest1, "查询目录2", newDirUriTest2);
1272 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1273 EXPECT_EQ(newDirUriTest2.ToString().find("查询目录2"), std::string::npos);
1274 Uri newFileUri1("");
1275 Uri newFileUri2("");
1276 std::string fileName = "查询文件.txt";
1277 result = fileAccessHelper->CreateFile(newDirUriTest1, fileName, newFileUri1);
1278 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1279 EXPECT_EQ(newFileUri1.ToString().find(fileName), std::string::npos);
1280 result = fileAccessHelper->CreateFile(newDirUriTest2, fileName, newFileUri2);
1281 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1282 EXPECT_EQ(newFileUri2.ToString().find(fileName), std::string::npos);
1283 std::string buff = "query test";
1284 WriteBuffToFile(fileAccessHelper, newFileUri1, buff);
1285 WriteBuffToFile(fileAccessHelper, newFileUri2, buff);
1286 int len = buff.size() + buff.size();
1287 CheckJson(newDirUriTest1, displayName, relativePath, len, fileAccessHelper);
1288 result = fileAccessHelper->Delete(newDirUriTest1);
1289 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1290 } catch (...) {
1291 GTEST_LOG_(ERROR) << "external_file_access_Query_0007 occurs an exception.";
1292 }
1293 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0007";
1294 }
1295
1296 /**
1297 * @tc.number: user_file_service_external_file_access_GetBundleNameFromPath_0000
1298 * @tc.name: external_file_access_GetBundleNameFromPath_0000
1299 * @tc.desc: Test function of GetBundleNameFromPath interface for SUCCESS.
1300 * @tc.size: MEDIUM
1301 * @tc.type: FUNC
1302 * @tc.level Level 1
1303 * @tc.require: SR000H0386
1304 */
1305 HWTEST_F(FileExtensionHelperTest, external_file_access_GetBundleNameFromPath_0000, testing::ext::TestSize.Level1)
1306 {
1307 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1308 EXPECT_NE(fileAccessHelper, nullptr);
1309 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetBundleNameFromPath_0000";
1310 try {
1311 Uri uri("file://media/some/path");
1312 auto result = fileAccessHelper->GetProxyByUri(uri);
1313 EXPECT_EQ(result, nullptr);
1314 } catch (...) {
1315 GTEST_LOG_(ERROR) << "external_file_access_GetBundleNameFromPath_0000 occurs an exception.";
1316 }
1317 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetBundleNameFromPath_0000";
1318 }
1319
1320 /**
1321 * @tc.number: user_file_service_external_file_access_Move_item_0000
1322 * @tc.name: external_file_access_Move_item_0000
1323 * @tc.desc: Test function of Move item interface.
1324 * @tc.size: MEDIUM
1325 * @tc.type: FUNC
1326 * @tc.level Level 1
1327 */
1328 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0000, testing::ext::TestSize.Level1)
1329 {
1330 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1331 EXPECT_NE(fileAccessHelper, nullptr);
1332 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0000";
1333 try {
1334 vector<RootInfo> info;
1335 int result = fileAccessHelper->GetRoots(info);
1336 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1337 Uri parentUri(info[0].uri);
1338 Uri newDirUriTest1("");
1339 Uri newDirUriTest2("");
1340 result = fileAccessHelper->Mkdir(parentUri, "test3", newDirUriTest1);
1341 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1342 result = fileAccessHelper->Mkdir(parentUri, "test4", newDirUriTest2);
1343 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1344 Uri testUri("");
1345 result = fileAccessHelper->CreateFile(newDirUriTest1, "test.txt", testUri);
1346 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1347 std::vector<Result> moveResult;
1348 result = fileAccessHelper->MoveItem(testUri, newDirUriTest2, moveResult, false);
1349 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1350 result = fileAccessHelper->Delete(newDirUriTest1);
1351 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1352 result = fileAccessHelper->Delete(newDirUriTest2);
1353 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1354 } catch (...) {
1355 GTEST_LOG_(ERROR) << "external_file_access_Move_item_0000 occurs an exception.";
1356 }
1357 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0000";
1358 }
1359
1360 /**
1361 * @tc.number: user_file_service_external_file_access_Move_item_0001
1362 * @tc.name: external_file_access_Move_item_0001
1363 * @tc.desc: Test function of Move item interface.
1364 * @tc.size: MEDIUM
1365 * @tc.type: FUNC
1366 * @tc.level Level 1
1367 */
1368 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0001, testing::ext::TestSize.Level1)
1369 {
1370 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1371 EXPECT_NE(fileAccessHelper, nullptr);
1372 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0001";
1373 try {
1374 vector<RootInfo> info;
1375 int result = fileAccessHelper->GetRoots(info);
1376 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1377 Uri parentUri(info[0].uri);
1378 Uri newDirUriTest1("");
1379 Uri newDirUriTest2("");
1380 result = fileAccessHelper->Mkdir(parentUri, "test5", newDirUriTest1);
1381 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1382 result = fileAccessHelper->Mkdir(parentUri, "test6", newDirUriTest2);
1383 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1384 Uri sourceUri("");
1385 result = fileAccessHelper->CreateFile(newDirUriTest1, "test.txt", sourceUri);
1386 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1387 Uri targetUri("");
1388 result = fileAccessHelper->CreateFile(newDirUriTest2, "test.txt", targetUri);
1389 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1390 std::vector<Result> moveResult;
1391 result = fileAccessHelper->MoveItem(sourceUri, newDirUriTest2, moveResult, false);
1392 EXPECT_EQ(result, -2);
1393 EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_EXIST);
1394 result = fileAccessHelper->Delete(newDirUriTest1);
1395 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1396 result = fileAccessHelper->Delete(newDirUriTest2);
1397 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1398 } catch (...) {
1399 GTEST_LOG_(ERROR) << "external_file_access_Move_item_0001 occurs an exception.";
1400 }
1401 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0001";
1402 }
1403
1404 /**
1405 * @tc.number: user_file_service_external_file_access_Move_item_0002
1406 * @tc.name: external_file_access_Move_item_0002
1407 * @tc.desc: Test function of Move item interface.
1408 * @tc.size: MEDIUM
1409 * @tc.type: FUNC
1410 * @tc.level Level 1
1411 */
1412 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0002, testing::ext::TestSize.Level1)
1413 {
1414 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1415 EXPECT_NE(fileAccessHelper, nullptr);
1416 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0002";
1417 try {
1418 vector<RootInfo> info;
1419 int result = fileAccessHelper->GetRoots(info);
1420 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1421 Uri parentUri(info[0].uri);
1422 Uri newDirUriTest1("");
1423 Uri newDirUriTest2("");
1424 result = fileAccessHelper->Mkdir(parentUri, "test7", newDirUriTest1);
1425 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1426 result = fileAccessHelper->Mkdir(parentUri, "test8", newDirUriTest2);
1427 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1428 Uri sourceUri("");
1429 result = fileAccessHelper->CreateFile(newDirUriTest1, "test.txt", sourceUri);
1430 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1431 Uri targetUri("");
1432 result = fileAccessHelper->CreateFile(newDirUriTest2, "test.txt", targetUri);
1433 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1434 std::vector<Result> moveResult;
1435 result = fileAccessHelper->MoveItem(sourceUri, newDirUriTest2, moveResult, true);
1436 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1437 result = fileAccessHelper->Delete(newDirUriTest1);
1438 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1439 result = fileAccessHelper->Delete(newDirUriTest2);
1440 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1441 } catch (...) {
1442 GTEST_LOG_(ERROR) << "external_file_access_Move_item_0002 occurs an exception.";
1443 }
1444 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0002";
1445 }
1446
1447 /**
1448 * @tc.number: user_file_service_external_file_access_Move_item_0003
1449 * @tc.name: external_file_access_Move_item_0003
1450 * @tc.desc: Test function of Move item interface.
1451 * @tc.size: MEDIUM
1452 * @tc.type: FUNC
1453 * @tc.level Level 1
1454 */
1455 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0003, testing::ext::TestSize.Level1)
1456 {
1457 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1458 EXPECT_NE(fileAccessHelper, nullptr);
1459 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0003";
1460 try {
1461 vector<RootInfo> info;
1462 int result = fileAccessHelper->GetRoots(info);
1463 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1464 Uri parentUri(info[0].uri);
1465 Uri newDirUriTest1("");
1466 Uri newDirUriTest2("");
1467 result = fileAccessHelper->Mkdir(parentUri, "test9", newDirUriTest1);
1468 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1469 result = fileAccessHelper->Mkdir(parentUri, "test10", newDirUriTest2);
1470 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1471 Uri sourceUri("");
1472 result = fileAccessHelper->CreateFile(newDirUriTest1, "test.txt", sourceUri);
1473 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1474 Uri targetUri("");
1475 result = fileAccessHelper->CreateFile(newDirUriTest2, "test.txt", targetUri);
1476 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1477 std::vector<Result> moveResult;
1478 result = fileAccessHelper->MoveItem(newDirUriTest1, newDirUriTest2, moveResult, false);
1479 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1480 GTEST_LOG_(INFO) << "Move_0000 result:" << result;
1481 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1482 result = fileAccessHelper->Delete(newDirUriTest2);
1483 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1484 } catch (...) {
1485 GTEST_LOG_(ERROR) << "external_file_access_Move_item_0003 occurs an exception.";
1486 }
1487 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0003";
1488 }
1489
1490 /**
1491 * @tc.number: user_file_service_external_file_access_Move_item_0004
1492 * @tc.name: external_file_access_Move_item_0004
1493 * @tc.desc: Test function of Move item interface.
1494 * @tc.size: MEDIUM
1495 * @tc.type: FUNC
1496 * @tc.level Level 1
1497 */
1498 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0004, testing::ext::TestSize.Level1)
1499 {
1500 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1501 EXPECT_NE(fileAccessHelper, nullptr);
1502 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0004";
1503 try {
1504 vector<RootInfo> info;
1505 int result = fileAccessHelper->GetRoots(info);
1506 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1507 Uri parentUri(info[0].uri);
1508 Uri newDirUriTest1("");
1509 Uri newDirUriTest2("");
1510 Uri newDirUriTest3("");
1511 result = fileAccessHelper->Mkdir(parentUri, "test3", newDirUriTest1);
1512 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1513 result = fileAccessHelper->Mkdir(parentUri, "test4", newDirUriTest2);
1514 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1515 result = fileAccessHelper->Mkdir(newDirUriTest2, "test3", newDirUriTest3);
1516 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1517 Uri sourceUri("");
1518 result = fileAccessHelper->CreateFile(newDirUriTest1, "test.txt", sourceUri);
1519 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1520 Uri targetUri("");
1521 result = fileAccessHelper->CreateFile(newDirUriTest3, "test.txt", targetUri);
1522 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1523 std::vector<Result> moveResult;
1524 result = fileAccessHelper->MoveItem(newDirUriTest1, newDirUriTest2, moveResult, false);
1525 EXPECT_EQ(result, -2);
1526 EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_EXIST);
1527 GTEST_LOG_(INFO) << "Move_0000 result:" << result;
1528 result = fileAccessHelper->Delete(newDirUriTest1);
1529 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1530 result = fileAccessHelper->Delete(newDirUriTest2);
1531 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1532 } catch (...) {
1533 GTEST_LOG_(ERROR) << "external_file_access_Move_item_0004 occurs an exception.";
1534 }
1535 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0004";
1536 }
1537
1538 /**
1539 * @tc.number: user_file_service_external_file_access_Move_item_0005
1540 * @tc.name: external_file_access_Move_item_0005
1541 * @tc.desc: Test function of Move item interface.
1542 * @tc.size: MEDIUM
1543 * @tc.type: FUNC
1544 * @tc.level Level 1
1545 */
1546 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0005, testing::ext::TestSize.Level1)
1547 {
1548 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1549 EXPECT_NE(fileAccessHelper, nullptr);
1550 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0005";
1551 try {
1552 vector<RootInfo> info;
1553 int result = fileAccessHelper->GetRoots(info);
1554 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1555 Uri parentUri(info[0].uri);
1556 Uri newDirUriTest1("");
1557 Uri newDirUriTest2("");
1558 Uri newDirUriTest3("");
1559 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1);
1560 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1561 result = fileAccessHelper->Mkdir(parentUri, "test2", newDirUriTest2);
1562 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1563 result = fileAccessHelper->Mkdir(newDirUriTest2, "test1", newDirUriTest3);
1564 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1565 Uri sourceUri("");
1566 result = fileAccessHelper->CreateFile(newDirUriTest1, "test.txt", sourceUri);
1567 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1568 Uri targetUri("");
1569 result = fileAccessHelper->CreateFile(newDirUriTest3, "test.txt", targetUri);
1570 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1571 std::vector<Result> moveResult;
1572 result = fileAccessHelper->MoveItem(newDirUriTest1, newDirUriTest2, moveResult, true);
1573 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1574 GTEST_LOG_(INFO) << "Move_0000 result:" << result;
1575 result = fileAccessHelper->Delete(newDirUriTest2);
1576 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1577 } catch (...) {
1578 GTEST_LOG_(ERROR) << "external_file_access_Move_item_0005 occurs an exception.";
1579 }
1580 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0005";
1581 }
1582
1583 /**
1584 * @tc.number: user_file_service_external_file_access_Move_item_0006
1585 * @tc.name: external_file_access_Move_item_0006
1586 * @tc.desc: Test function of Move item interface.
1587 * @tc.size: MEDIUM
1588 * @tc.type: FUNC
1589 * @tc.level Level 1
1590 */
1591 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0006, testing::ext::TestSize.Level1)
1592 {
1593 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1594 EXPECT_NE(fileAccessHelper, nullptr);
1595 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0006";
1596 try {
1597 vector<RootInfo> info;
1598 int result = fileAccessHelper->GetRoots(info);
1599 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1600 Uri parentUri(info[0].uri);
1601 Uri newDirUriTest1("");
1602 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1);
1603 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1604 Uri newDirUriTest2("");
1605 result = fileAccessHelper->Mkdir(newDirUriTest1, "test2", newDirUriTest2);
1606 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1607 Uri sourceUri1("");
1608 result = fileAccessHelper->CreateFile(newDirUriTest2, "test.txt", sourceUri1);
1609 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1610 Uri sourceUri2("");
1611 result = fileAccessHelper->CreateFile(newDirUriTest2, "test1.txt", sourceUri2);
1612 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1613 Uri newDirUriTest3("");
1614 result = fileAccessHelper->Mkdir(parentUri, "test3", newDirUriTest3);
1615 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1616 Uri newDirUriTest4("");
1617 result = fileAccessHelper->Mkdir(newDirUriTest3, "test1", newDirUriTest4);
1618 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1619 Uri newDirUriTest5("");
1620 result = fileAccessHelper->Mkdir(newDirUriTest4, "test2", newDirUriTest5);
1621 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1622 Uri targetUri1("");
1623 result = fileAccessHelper->CreateFile(newDirUriTest5, "test.txt", targetUri1);
1624 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1625 std::vector<Result> moveResult;
1626 result = fileAccessHelper->MoveItem(newDirUriTest1, newDirUriTest3, moveResult, false);
1627 EXPECT_EQ(result, -2);
1628 EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_EXIST);
1629 result = fileAccessHelper->Delete(newDirUriTest1);
1630 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1631 result = fileAccessHelper->Delete(newDirUriTest3);
1632 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1633 } catch (...) {
1634 GTEST_LOG_(ERROR) << "external_file_access_Move_item_0006 occurs an exception.";
1635 }
1636 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0006";
1637 }
1638
1639 /**
1640 * @tc.number: user_file_service_external_file_access_Move_item_0007
1641 * @tc.name: external_file_access_Move_item_0007
1642 * @tc.desc: Test function of Move item interface.
1643 * @tc.size: MEDIUM
1644 * @tc.type: FUNC
1645 * @tc.level Level 1
1646 */
1647 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0007, testing::ext::TestSize.Level1)
1648 {
1649 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1650 EXPECT_NE(fileAccessHelper, nullptr);
1651 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0007";
1652 try {
1653 vector<RootInfo> info;
1654 int result = fileAccessHelper->GetRoots(info);
1655 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1656 Uri parentUri(info[0].uri);
1657 Uri newDirUriTest1("");
1658 result = fileAccessHelper->Mkdir(parentUri, "test3", newDirUriTest1);
1659 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1660 Uri newDirUriTest2("");
1661 result = fileAccessHelper->Mkdir(newDirUriTest1, "test4", newDirUriTest2);
1662 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1663 Uri sourceUri1("");
1664 result = fileAccessHelper->CreateFile(newDirUriTest2, "test.txt", sourceUri1);
1665 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1666 Uri sourceUri2("");
1667 result = fileAccessHelper->CreateFile(newDirUriTest2, "test3.txt", sourceUri2);
1668 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1669 Uri newDirUriTest3("");
1670 result = fileAccessHelper->Mkdir(parentUri, "test5", newDirUriTest3);
1671 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1672 Uri newDirUriTest4("");
1673 result = fileAccessHelper->Mkdir(newDirUriTest3, "test3", newDirUriTest4);
1674 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1675 Uri newDirUriTest5("");
1676 result = fileAccessHelper->Mkdir(newDirUriTest4, "test4", newDirUriTest5);
1677 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1678 Uri targetUri1("");
1679 result = fileAccessHelper->CreateFile(newDirUriTest5, "test.txt", targetUri1);
1680 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1681 std::vector<Result> moveResult;
1682 result = fileAccessHelper->MoveItem(newDirUriTest1, newDirUriTest3, moveResult, true);
1683 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1684 EXPECT_EQ(moveResult.size(), 0);
1685 result = fileAccessHelper->Delete(newDirUriTest3);
1686 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1687 } catch (...) {
1688 GTEST_LOG_(ERROR) << "external_file_access_Move_item_0007 occurs an exception.";
1689 }
1690 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0007";
1691 }
1692
1693 /**
1694 * @tc.number: user_file_service_external_file_access_Move_item_0008
1695 * @tc.name: external_file_access_Move_item_0008
1696 * @tc.desc: Test function of Move item interface.
1697 * @tc.size: MEDIUM
1698 * @tc.type: FUNC
1699 * @tc.level Level 1
1700 */
1701 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0008, testing::ext::TestSize.Level1)
1702 {
1703 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1704 EXPECT_NE(fileAccessHelper, nullptr);
1705 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0008";
1706 try {
1707 vector<RootInfo> info;
1708 int result = fileAccessHelper->GetRoots(info);
1709 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1710 Uri parentUri(info[0].uri);
1711 Uri newDirUriTest1("");
1712 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1);
1713 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1714 Uri sourceUri("");
1715 result = fileAccessHelper->CreateFile(newDirUriTest1, "test", sourceUri);
1716 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1717
1718 Uri newDirUriTest2("");
1719 result = fileAccessHelper->Mkdir(parentUri, "test3", newDirUriTest2);
1720 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1721 Uri newDirUriTest3("");
1722 result = fileAccessHelper->Mkdir(newDirUriTest2, "test", newDirUriTest3);
1723 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1724 std::vector<Result> moveResult;
1725 result = fileAccessHelper->MoveItem(sourceUri, newDirUriTest2, moveResult, true);
1726 EXPECT_EQ(result, -2);
1727 EXPECT_EQ(moveResult.size(), 1);
1728 result = fileAccessHelper->Delete(newDirUriTest1);
1729 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1730 result = fileAccessHelper->Delete(newDirUriTest2);
1731 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1732 } catch (...) {
1733 GTEST_LOG_(ERROR) << "external_file_access_Move_item_0008 occurs an exception.";
1734 }
1735 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0008";
1736 }
1737
1738 /**
1739 * @tc.number: user_file_service_external_file_access_Move_item_0009
1740 * @tc.name: external_file_access_Move_item_0009
1741 * @tc.desc: Test function of Move item interface.
1742 * @tc.size: MEDIUM
1743 * @tc.type: FUNC
1744 * @tc.level Level 1
1745 */
1746 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0009, testing::ext::TestSize.Level1)
1747 {
1748 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1749 EXPECT_NE(fileAccessHelper, nullptr);
1750 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0009";
1751 try {
1752 vector<RootInfo> info;
1753 int result = fileAccessHelper->GetRoots(info);
1754 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1755
1756 Uri parentUri(info[0].uri);
1757 Uri newDirUriTest1("");
1758 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1);
1759 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1760 Uri sourceUri("");
1761 result = fileAccessHelper->Mkdir(newDirUriTest1, "test", sourceUri);
1762 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1763
1764 Uri newDirUriTest2("");
1765 result = fileAccessHelper->Mkdir(parentUri, "test3", newDirUriTest2);
1766 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1767 Uri targetUri("");
1768 result = fileAccessHelper->CreateFile(newDirUriTest2, "test", targetUri);
1769 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1770 std::vector<Result> moveResult;
1771 result = fileAccessHelper->MoveItem(sourceUri, newDirUriTest2, moveResult, true);
1772 EXPECT_EQ(result, -2);
1773 result = fileAccessHelper->Delete(newDirUriTest1);
1774 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1775 result = fileAccessHelper->Delete(newDirUriTest2);
1776 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1777 } catch (...) {
1778 GTEST_LOG_(ERROR) << "external_file_access_Move_item_0009 occurs an exception.";
1779 }
1780 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0009";
1781 }
1782
1783 /**
1784 * @tc.number: user_file_service_external_file_access_Move_item_0010
1785 * @tc.name: external_file_access_Move_0007
1786 * @tc.desc: Test function of Move item interface.
1787 * @tc.size: MEDIUM
1788 * @tc.type: FUNC
1789 * @tc.level Level 1
1790 */
1791 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0010, testing::ext::TestSize.Level1)
1792 {
1793 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1794 EXPECT_NE(fileAccessHelper, nullptr);
1795 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0010";
1796 try {
1797 std::vector<Result> moveResult;
1798 vector<RootInfo> info;
1799 int result = fileAccessHelper->GetRoots(info);
1800 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1801 Uri parentUri(info[0].uri);
1802 Uri newDirUriTest1("");
1803 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1);
1804 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1805 Uri sourceUri(newDirUriTest1.ToString() + "/" + "test");
1806
1807 Uri newDirUriTest2("");
1808 result = fileAccessHelper->Mkdir(parentUri, "test3", newDirUriTest2);
1809 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1810 result = fileAccessHelper->MoveItem(sourceUri, newDirUriTest2, moveResult, true);
1811 EXPECT_EQ(result, -1);
1812 EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_URI);
1813 result = fileAccessHelper->Delete(newDirUriTest1);
1814 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1815 result = fileAccessHelper->Delete(newDirUriTest2);
1816 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1817 } catch (...) {
1818 GTEST_LOG_(ERROR) << "external_file_access_Move_item_0010 occurs an exception.";
1819 }
1820 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0010";
1821 }
1822
1823 /**
1824 * @tc.number: user_file_service_external_file_access_Move_item_0011
1825 * @tc.name: external_file_access_Move_item_0011
1826 * @tc.desc: Test function of Move item interface.
1827 * @tc.size: MEDIUM
1828 * @tc.type: FUNC
1829 * @tc.level Level 1
1830 */
1831 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0011, testing::ext::TestSize.Level1)
1832 {
1833 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1834 EXPECT_NE(fileAccessHelper, nullptr);
1835 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0011";
1836 try {
1837 std::vector<Result> moveResult;
1838 vector<RootInfo> info;
1839 int result = fileAccessHelper->GetRoots(info);
1840 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1841 Uri parentUri(info[0].uri);
1842 Uri newDirUriTest1("");
1843 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1);
1844 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1845 Uri sourceUri("");
1846 result = fileAccessHelper->CreateFile(newDirUriTest1, "test.txt", sourceUri);
1847 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1848
1849 Uri newDirUriTest2("");
1850 result = fileAccessHelper->Mkdir(parentUri, "test2", newDirUriTest2);
1851 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1852 Uri targetUri(newDirUriTest2.ToString() + "/" + "test3");
1853 result = fileAccessHelper->MoveItem(sourceUri, targetUri, moveResult, true);
1854 EXPECT_EQ(result, -1);
1855 EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_URI);
1856 result = fileAccessHelper->Delete(newDirUriTest1);
1857 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1858 result = fileAccessHelper->Delete(newDirUriTest2);
1859 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1860 } catch (...) {
1861 GTEST_LOG_(ERROR) << "external_file_access_Move_item_0011 occurs an exception.";
1862 }
1863 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0011";
1864 }
1865
1866 /**
1867 * @tc.number: user_file_service_external_file_access_Move_item_0012
1868 * @tc.name: external_file_access_Move_item_0012
1869 * @tc.desc: Test function of Move item interface.
1870 * @tc.size: MEDIUM
1871 * @tc.type: FUNC
1872 * @tc.level Level 1
1873 */
1874 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0012, testing::ext::TestSize.Level1)
1875 {
1876 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1877 EXPECT_NE(fileAccessHelper, nullptr);
1878 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0012";
1879 try {
1880 std::vector<Result> moveResult;
1881 vector<RootInfo> info;
1882 int result = fileAccessHelper->GetRoots(info);
1883 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1884 Uri parentUri(info[0].uri);
1885 Uri newDirUriTest1("");
1886 result = fileAccessHelper->Mkdir(parentUri, "测试目录1", newDirUriTest1);
1887 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1888 Uri uri1("");
1889 result = fileAccessHelper->CreateFile(newDirUriTest1, "测试文件.txt", uri1);
1890 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1891 Uri uri2("");
1892 result = fileAccessHelper->CreateFile(newDirUriTest1, "测试目录4", uri2);
1893 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1894
1895 Uri newDirUriTest2("");
1896 result = fileAccessHelper->Mkdir(parentUri, "测试目录3", newDirUriTest2);
1897 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1898 Uri newDirUriTest3("");
1899 result = fileAccessHelper->Mkdir(newDirUriTest2, "测试目录1", newDirUriTest3);
1900 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1901 Uri newDirUriTest4("");
1902 result = fileAccessHelper->Mkdir(newDirUriTest3, "测试目录4", newDirUriTest4);
1903 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1904 Uri newDirUriTest5("");
1905 result = fileAccessHelper->CreateFile(newDirUriTest3, "测试文件.txt", newDirUriTest5);
1906 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1907
1908 result = fileAccessHelper->MoveItem(newDirUriTest1, newDirUriTest2, moveResult, false);
1909 EXPECT_EQ(result, -2);
1910 EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_IS_DIR);
1911 EXPECT_EQ(moveResult[1].errCode, OHOS::FileAccessFwk::ERR_EXIST);
1912 result = fileAccessHelper->Delete(newDirUriTest1);
1913 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1914 result = fileAccessHelper->Delete(newDirUriTest2);
1915 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1916 } catch (...) {
1917 GTEST_LOG_(ERROR) << "external_file_access_Move_item_0012 occurs an exception.";
1918 }
1919 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0012";
1920 }
1921
1922 /**
1923 * @tc.number: user_file_service_external_file_access_Move_item_0013
1924 * @tc.name: external_file_access_Move_item_0013
1925 * @tc.desc: Test function of Move item interface.
1926 * @tc.size: MEDIUM
1927 * @tc.type: FUNC
1928 * @tc.level Level 1
1929 */
1930 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0013, testing::ext::TestSize.Level1)
1931 {
1932 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper();
1933 EXPECT_NE(fileAccessHelper, nullptr);
1934 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0013";
1935 try {
1936 std::vector<Result> moveResult;
1937 vector<RootInfo> info;
1938 int result = fileAccessHelper->GetRoots(info);
1939 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1940 Uri parentUri(info[0].uri);
1941 Uri newDirUriTest1("");
1942 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1);
1943 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1944 Uri uri1("");
1945 result = fileAccessHelper->CreateFile(newDirUriTest1, "test.txt", uri1);
1946 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1947 Uri uri2("");
1948 result = fileAccessHelper->CreateFile(newDirUriTest1, "test4", uri2);
1949 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1950
1951 Uri newDirUriTest2("");
1952 result = fileAccessHelper->Mkdir(parentUri, "test3", newDirUriTest2);
1953 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1954 Uri newDirUriTest3("");
1955 result = fileAccessHelper->Mkdir(newDirUriTest2, "test1", newDirUriTest3);
1956 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1957 Uri newDirUriTest4("");
1958 result = fileAccessHelper->Mkdir(newDirUriTest3, "test4", newDirUriTest4);
1959 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1960 Uri newDirUriTest5("");
1961 result = fileAccessHelper->Mkdir(newDirUriTest3, "test.txt", newDirUriTest5);
1962 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1963
1964 result = fileAccessHelper->MoveItem(newDirUriTest1, newDirUriTest2, moveResult, true);
1965 EXPECT_EQ(result, -2);
1966 EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_IS_DIR);
1967 result = fileAccessHelper->Delete(newDirUriTest1);
1968 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1969 result = fileAccessHelper->Delete(newDirUriTest2);
1970 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1971 } catch (...) {
1972 GTEST_LOG_(ERROR) << "external_file_access_Move_item_0013 occurs an exception.";
1973 }
1974 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0013";
1975 }
1976 } // namespace
1977