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 "context_impl.h"
25 #include "file_access_framework_errno.h"
26 #include "iservice_registry.h"
27 #include "nativetoken_kit.h"
28 #include "token_setproc.h"
29
30 #define private public
31 #include "file_access_helper.h"
32 #undef private
33
34 namespace {
35 using namespace std;
36 using namespace OHOS;
37 using namespace FileAccessFwk;
38 using json = nlohmann::json;
39 const int ABILITY_ID = 5003;
40 const int INIT_THREADS_NUMBER = 4;
41 const int ACTUAL_SUCCESS_THREADS_NUMBER = 1;
42 shared_ptr<FileAccessHelper> g_fah = nullptr;
43 int g_num = 0;
44 const int UID_TRANSFORM_TMP = 20000000;
45 const int UID_DEFAULT = 0;
46 shared_ptr<OHOS::AbilityRuntime::Context> g_context = nullptr;
47 const int FILE_COUNT_1 = 1;
48 const int FILE_COUNT_2 = 2;
49 const int FILE_COUNT_3 = 3;
50 const int FILE_COUNT_4 = 4;
51 const int FILE_COUNT_5 = 5;
52 const int FILE_COUNT_6 = 6;
53 const int SLEEP_TIME = 2;
54
SetNativeToken()55 void SetNativeToken()
56 {
57 uint64_t tokenId;
58 const char **perms = new const char *[1];
59 perms[0] = "ohos.permission.FILE_ACCESS_MANAGER";
60 NativeTokenInfoParams infoInstance = {
61 .dcapsNum = 0,
62 .permsNum = 1,
63 .aclsNum = 0,
64 .dcaps = nullptr,
65 .perms = perms,
66 .acls = nullptr,
67 .aplStr = "system_core",
68 };
69
70 infoInstance.processName = "SetUpTestCase";
71 tokenId = GetAccessTokenId(&infoInstance);
72 const uint64_t systemAppMask = (static_cast<uint64_t>(1) << 32);
73 tokenId |= systemAppMask;
74 SetSelfTokenID(tokenId);
75 OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo();
76 delete[] perms;
77 }
78
79 class FileExtensionHelperTest : public testing::Test {
80 public:
SetUpTestCase(void)81 static void SetUpTestCase(void)
82 {
83 cout << "FileExtensionHelperTest code test" << endl;
84 SetNativeToken();
85 auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
86 auto remoteObj = saManager->GetSystemAbility(ABILITY_ID);
87 g_context = make_shared<OHOS::AbilityRuntime::ContextImpl>();
88 g_context->SetToken(remoteObj);
89 AAFwk::Want want;
90 vector<AAFwk::Want> wantVec;
91 setuid(UID_TRANSFORM_TMP);
92 int ret = FileAccessHelper::GetRegisteredFileAccessExtAbilityInfo(wantVec);
93 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
94 bool sus = false;
95 for (size_t i = 0; i < wantVec.size(); i++) {
96 auto element = wantVec[i].GetElement();
97 if (element.GetBundleName() == "com.ohos.UserFile.ExternalFileManager" &&
98 element.GetAbilityName() == "FileExtensionAbility") {
99 want = wantVec[i];
100 sus = true;
101 break;
102 }
103 }
104 EXPECT_TRUE(sus);
105 vector<AAFwk::Want> wants{want};
106 g_fah = FileAccessHelper::Creator(remoteObj, wants);
107 if (g_fah == nullptr) {
108 GTEST_LOG_(ERROR) << "external_file_access_test g_fah is nullptr";
109 exit(1);
110 }
111 setuid(UID_DEFAULT);
112 }
TearDownTestCase()113 static void TearDownTestCase()
114 {
115 g_fah->Release();
116 g_fah = nullptr;
117 };
SetUp()118 void SetUp(){};
TearDown()119 void TearDown(){};
120 };
121
122 /**
123 * @tc.number: user_file_service_external_file_access_OpenFile_0000
124 * @tc.name: external_file_access_OpenFile_0000
125 * @tc.desc: Test function of OpenFile interface for SUCCESS.
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_OpenFile_0000, testing::ext::TestSize.Level1)
132 {
133 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0000";
134 try {
135 vector<RootInfo> info;
136 int result = g_fah->GetRoots(info);
137 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
138 for (size_t i = 0; i < info.size(); i++) {
139 Uri parentUri(info[i].uri);
140 GTEST_LOG_(INFO) << parentUri.ToString();
141 Uri newDirUriTest1("");
142 result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1);
143 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
144 Uri newFileUri("");
145 result = g_fah->CreateFile(newDirUriTest1, "external_file_access_OpenFile_0000.txt", newFileUri);
146 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
147 int fd;
148 result = g_fah->OpenFile(newFileUri, WRITE_READ, fd);
149 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
150 GTEST_LOG_(INFO) << "OpenFile_0000 result:" << result;
151 close(fd);
152 result = g_fah->Delete(newDirUriTest1);
153 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
154 }
155 } catch (...) {
156 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0000 occurs an exception.";
157 }
158 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0000";
159 }
160
161 /**
162 * @tc.number: user_file_service_external_file_access_OpenFile_0001
163 * @tc.name: external_file_access_OpenFile_0001
164 * @tc.desc: Test function of OpenFile interface for ERROR which Uri is null.
165 * @tc.size: MEDIUM
166 * @tc.type: FUNC
167 * @tc.level Level 1
168 * @tc.require: SR000H0386
169 */
170 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0001, testing::ext::TestSize.Level1)
171 {
172 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0001";
173 try {
174 Uri uri("");
175 int fd;
176 int result = g_fah->OpenFile(uri, WRITE_READ, fd);
177 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
178 GTEST_LOG_(INFO) << "OpenFile_0001 result:" << result;
179 } catch (...) {
180 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0001 occurs an exception.";
181 }
182 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0001";
183 }
184
185 /**
186 * @tc.number: user_file_service_external_file_access_OpenFile_0002
187 * @tc.name: external_file_access_OpenFile_0002
188 * @tc.desc: Test function of OpenFile interface for ERROR which Uri is absolute path.
189 * @tc.size: MEDIUM
190 * @tc.type: FUNC
191 * @tc.level Level 1
192 * @tc.require: SR000H0386
193 */
194 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0002, testing::ext::TestSize.Level1)
195 {
196 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0002";
197 try {
198 vector<RootInfo> info;
199 int result = g_fah->GetRoots(info);
200 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
201 for (size_t i = 0; i < info.size(); i++) {
202 Uri parentUri(info[i].uri);
203 Uri newFileUri("");
204 result = g_fah->CreateFile(parentUri, "external_file_access_OpenFile_0002.txt", newFileUri);
205 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
206 Uri uri("storage/media/100/local/files/Download/external_file_access_OpenFile_0002.txt");
207 int fd;
208 result = g_fah->OpenFile(uri, WRITE_READ, fd);
209 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
210 GTEST_LOG_(INFO) << "OpenFile_0002 result:" << result;
211 result = g_fah->Delete(newFileUri);
212 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
213 }
214 } catch (...) {
215 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0002 occurs an exception.";
216 }
217 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0002";
218 }
219
220 /**
221 * @tc.number: user_file_service_external_file_access_OpenFile_0003
222 * @tc.name: external_file_access_OpenFile_0003
223 * @tc.desc: Test function of OpenFile interface for ERROR which Uri is special symbols.
224 * @tc.size: MEDIUM
225 * @tc.type: FUNC
226 * @tc.level Level 1
227 * @tc.require: SR000H0386
228 */
229 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0003, testing::ext::TestSize.Level1)
230 {
231 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0003";
232 try {
233 Uri uri("~!@#$%^&*()_");
234 int fd;
235 int result = g_fah->OpenFile(uri, WRITE_READ, fd);
236 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
237 GTEST_LOG_(INFO) << "OpenFile_0003 result:" << result;
238 } catch (...) {
239 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0003 occurs an exception.";
240 }
241 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0003";
242 }
243
244 /**
245 * @tc.number: user_file_service_external_file_access_OpenFile_0004
246 * @tc.name: external_file_access_OpenFile_0004
247 * @tc.desc: Test function of OpenFile interface for ERROR which flag is -1.
248 * @tc.size: MEDIUM
249 * @tc.type: FUNC
250 * @tc.level Level 1
251 * @tc.require: SR000H0386
252 */
253 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0004, testing::ext::TestSize.Level1)
254 {
255 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0004";
256 try {
257 vector<RootInfo> info;
258 int result = g_fah->GetRoots(info);
259 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
260 for (size_t i = 0; i < info.size(); i++) {
261 Uri parentUri(info[i].uri);
262 Uri newFileUri("");
263 result = g_fah->CreateFile(parentUri, "external_file_access_OpenFile_0004.txt", newFileUri);
264 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
265 int fd;
266 int flag = -1;
267 result = g_fah->OpenFile(newFileUri, flag, fd);
268 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
269 GTEST_LOG_(INFO) << "OpenFile_0004 result:" << result;
270 result = g_fah->Delete(newFileUri);
271 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
272 }
273 } catch (...) {
274 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0004 occurs an exception.";
275 }
276 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0004";
277 }
278
279 /**
280 * @tc.number: user_file_service_external_file_access_OpenFile_0005
281 * @tc.name: external_file_access_OpenFile_0005
282 * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 0.
283 * @tc.size: MEDIUM
284 * @tc.type: FUNC
285 * @tc.level Level 1
286 * @tc.require: SR000H0386
287 */
288 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0005, testing::ext::TestSize.Level1)
289 {
290 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0005";
291 try {
292 vector<RootInfo> info;
293 int result = g_fah->GetRoots(info);
294 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
295 for (size_t i = 0; i < info.size(); i++) {
296 Uri parentUri(info[i].uri);
297 Uri newFileUri("");
298 result = g_fah->CreateFile(parentUri, "external_file_access_OpenFile_0005.txt", newFileUri);
299 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
300 int fd;
301 result = g_fah->OpenFile(newFileUri, READ, fd);
302 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
303 GTEST_LOG_(INFO) << "OpenFile_0005 result:" << result;
304 close(fd);
305 result = g_fah->Delete(newFileUri);
306 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
307 }
308 } catch (...) {
309 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0005 occurs an exception.";
310 }
311 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0005";
312 }
313
314 /**
315 * @tc.number: user_file_service_external_file_access_OpenFile_0006
316 * @tc.name: external_file_access_OpenFile_0006
317 * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 1.
318 * @tc.size: MEDIUM
319 * @tc.type: FUNC
320 * @tc.level Level 1
321 * @tc.require: SR000H0386
322 */
323 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0006, testing::ext::TestSize.Level1)
324 {
325 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0006";
326 try {
327 vector<RootInfo> info;
328 int result = g_fah->GetRoots(info);
329 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
330 for (size_t i = 0; i < info.size(); i++) {
331 Uri parentUri(info[i].uri);
332 Uri newFileUri("");
333 result = g_fah->CreateFile(parentUri, "external_file_access_OpenFile_0006.txt", newFileUri);
334 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
335 int fd;
336 result = g_fah->OpenFile(newFileUri, WRITE, fd);
337 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
338 GTEST_LOG_(INFO) << "OpenFile_0006 result:" << result;
339 close(fd);
340 result = g_fah->Delete(newFileUri);
341 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
342 }
343 } catch (...) {
344 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0006 occurs an exception.";
345 }
346 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0006";
347 }
348
349 /**
350 * @tc.number: user_file_service_external_file_access_OpenFile_0007
351 * @tc.name: external_file_access_OpenFile_0007
352 * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 2.
353 * @tc.size: MEDIUM
354 * @tc.type: FUNC
355 * @tc.level Level 1
356 * @tc.require: SR000H0386
357 */
358 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0007, testing::ext::TestSize.Level1)
359 {
360 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0007";
361 try {
362 vector<RootInfo> info;
363 int result = g_fah->GetRoots(info);
364 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
365 for (size_t i = 0; i < info.size(); i++) {
366 Uri parentUri(info[i].uri);
367 Uri newFileUri("");
368 result = g_fah->CreateFile(parentUri, "external_file_access_OpenFile_0007.txt", newFileUri);
369 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
370 int fd;
371 result = g_fah->OpenFile(newFileUri, WRITE_READ, fd);
372 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
373 GTEST_LOG_(INFO) << "OpenFile_0007 result:" << result;
374 close(fd);
375 result = g_fah->Delete(newFileUri);
376 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
377 }
378 } catch (...) {
379 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0007 occurs an exception.";
380 }
381 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0007";
382 }
383
OpenFileTdd(shared_ptr<FileAccessHelper> fahs,Uri uri,int flag,int fd)384 static void OpenFileTdd(shared_ptr<FileAccessHelper> fahs, Uri uri, int flag, int fd)
385 {
386 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFileTdd";
387 int ret = fahs->OpenFile(uri, flag, fd);
388 if (ret != OHOS::FileAccessFwk::ERR_OK) {
389 GTEST_LOG_(ERROR) << "OpenFile get result error, code:" << ret;
390 return;
391 }
392 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
393 EXPECT_GE(fd, OHOS::FileAccessFwk::ERR_OK);
394 g_num++;
395 close(fd);
396 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFileTdd";
397 }
398
399 /**
400 * @tc.number: user_file_service_external_file_access_OpenFile_0008
401 * @tc.name: external_file_access_OpenFile_0008
402 * @tc.desc: Test function of OpenFile interface for SUCCESS which Concurrent.
403 * @tc.size: MEDIUM
404 * @tc.type: FUNC
405 * @tc.level Level 1
406 * @tc.require: SR000H0386
407 */
408 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0008, testing::ext::TestSize.Level1)
409 {
410 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0008";
411 try {
412 vector<RootInfo> info;
413 int result = g_fah->GetRoots(info);
414 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
415 for (size_t i = 0; i < info.size(); i++) {
416 Uri parentUri(info[i].uri);
417 Uri newFileUri("");
418 int fd;
419 std::string displayName = "test1.txt";
420 g_num = 0;
421 result = g_fah->CreateFile(parentUri, displayName, newFileUri);
422 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
423 for (size_t j = 0; j < INIT_THREADS_NUMBER; j++) {
424 std::thread execthread(OpenFileTdd, g_fah, newFileUri, WRITE_READ, fd);
425 execthread.join();
426 }
427 EXPECT_EQ(g_num, INIT_THREADS_NUMBER);
428 result = g_fah->Delete(newFileUri);
429 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
430 }
431 } catch (...) {
432 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0008 occurs an exception.";
433 }
434 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0008";
435 }
436
ReplaceBundleNameFromPath(std::string & path,const std::string & newName)437 static bool ReplaceBundleNameFromPath(std::string &path, const std::string &newName)
438 {
439 Uri uri(path);
440 std::string scheme = uri.GetScheme();
441 if (scheme == FILE_SCHEME_NAME) {
442 std::string curName = uri.GetAuthority();
443 if (curName.empty()) {
444 return false;
445 }
446 path.replace(path.find(curName), curName.length(), newName);
447 return true;
448 }
449
450 std::string tPath = uri.GetPath();
451 if (tPath.empty()) {
452 GTEST_LOG_(INFO) << "Uri path error.";
453 return false;
454 }
455
456 if (tPath.front() != '/') {
457 GTEST_LOG_(INFO) << "Uri path format error.";
458 return false;
459 }
460
461 auto index = tPath.substr(1).find_first_of("/");
462 auto bundleName = tPath.substr(1, index);
463 if (bundleName.empty()) {
464 GTEST_LOG_(INFO) << "bundleName empty.";
465 return false;
466 }
467
468 path.replace(path.find(bundleName), bundleName.length(), newName);
469 return true;
470 }
471
472 /**
473 * @tc.number: user_file_service_external_file_access_OpenFile_0009
474 * @tc.name: external_file_access_OpenFile_0009
475 * @tc.desc: Test function of OpenFile interface for FAILED because of GetProxyByUri failed.
476 * @tc.size: MEDIUM
477 * @tc.type: FUNC
478 * @tc.level Level 1
479 * @tc.require: SR000H0386
480 */
481 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0009, testing::ext::TestSize.Level1)
482 {
483 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0009";
484 try {
485 vector<RootInfo> info;
486 int result = g_fah->GetRoots(info);
487 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
488 for (size_t i = 0; i < info.size(); i++) {
489 std::string str = info[i].uri;
490 if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) {
491 GTEST_LOG_(ERROR) << "replace BundleName failed.";
492 EXPECT_TRUE(false);
493 }
494 int fd;
495 Uri newFileUri(str + "/NotExistFile.txt");
496 result = g_fah->OpenFile(newFileUri, WRITE_READ, fd);
497 EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS);
498 GTEST_LOG_(INFO) << "OpenFile_0009 result:" << result;
499 }
500 } catch (...) {
501 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0009 occurs an exception.";
502 }
503 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0009";
504 }
505
506 /**
507 * @tc.number: user_file_service_external_file_access_OpenFile_0010
508 * @tc.name: external_file_access_OpenFile_0010
509 * @tc.desc: Test function of OpenFile interface for SUCCESS, the file name is chinese.
510 * @tc.size: MEDIUM
511 * @tc.type: FUNC
512 * @tc.level Level 1
513 * @tc.require: I70SX9
514 */
515 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0010, testing::ext::TestSize.Level1)
516 {
517 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0010";
518 try {
519 vector<RootInfo> info;
520 int result = g_fah->GetRoots(info);
521 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
522 for (size_t i = 0; i < info.size(); i++) {
523 Uri parentUri(info[i].uri);
524 GTEST_LOG_(INFO) << parentUri.ToString();
525 Uri newDirUriTest1("");
526 result = g_fah->Mkdir(parentUri, "测试目录", newDirUriTest1);
527 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
528 EXPECT_EQ(newDirUriTest1.ToString().find("测试目录"), std::string::npos);
529 Uri newFileUri("");
530 result = g_fah->CreateFile(newDirUriTest1, "打开文件.txt", newFileUri);
531 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
532 EXPECT_EQ(newFileUri.ToString().find("打开文件.txt"), std::string::npos);
533 int fd;
534 result = g_fah->OpenFile(newFileUri, WRITE_READ, fd);
535 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
536 GTEST_LOG_(INFO) << "OpenFile_0010 result:" << result;
537 close(fd);
538 result = g_fah->Delete(newDirUriTest1);
539 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
540 }
541 } catch (...) {
542 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0010 occurs an exception.";
543 }
544 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0010";
545 }
546
547 /**
548 * @tc.number: user_file_service_external_file_access_CreateFile_0000
549 * @tc.name: external_file_access_CreateFile_0000
550 * @tc.desc: Test function of CreateFile interface for SUCCESS.
551 * @tc.size: MEDIUM
552 * @tc.type: FUNC
553 * @tc.level Level 1
554 * @tc.require: SR000H0386
555 */
556 HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0000, testing::ext::TestSize.Level1)
557 {
558 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0000";
559 try {
560 vector<RootInfo> info;
561 int result = g_fah->GetRoots(info);
562 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
563 for (size_t i = 0; i < info.size(); i++) {
564 Uri parentUri(info[i].uri);
565 Uri newFileUri("");
566 result = g_fah->CreateFile(parentUri, "external_file_access_CreateFile_0000.txt", newFileUri);
567 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
568 GTEST_LOG_(INFO) << "CreateFile_0000 result:" << result;
569 result = g_fah->Delete(newFileUri);
570 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
571 }
572 } catch (...) {
573 GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0000 occurs an exception.";
574 }
575 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0000";
576 }
577
578 /**
579 * @tc.number: user_file_service_external_file_access_CreateFile_0001
580 * @tc.name: external_file_access_CreateFile_0001
581 * @tc.desc: Test function of CreateFile interface for ERROR which parentUri is null.
582 * @tc.size: MEDIUM
583 * @tc.type: FUNC
584 * @tc.level Level 1
585 * @tc.require: SR000H0386
586 */
587 HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0001, testing::ext::TestSize.Level1)
588 {
589 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0001";
590 try {
591 Uri newFileUri("");
592 Uri parentUri("");
593 int result = g_fah->CreateFile(parentUri, "external_file_access_CreateFile_0001.txt", newFileUri);
594 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
595 GTEST_LOG_(INFO) << "CreateFile_0001 result:" << result;
596 } catch (...) {
597 GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0001 occurs an exception.";
598 }
599 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0001";
600 }
601
602 /**
603 * @tc.number: user_file_service_external_file_access_CreateFile_0002
604 * @tc.name: external_file_access_CreateFile_0002
605 * @tc.desc: Test function of CreateFile interface for ERROR which parentUri is absolute path.
606 * @tc.size: MEDIUM
607 * @tc.type: FUNC
608 * @tc.level Level 1
609 * @tc.require: SR000H0386
610 */
611 HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0002, testing::ext::TestSize.Level1)
612 {
613 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0002";
614 try {
615 Uri newFileUri("");
616 Uri parentUri("storage/media/100/local/files/Download");
617 int result = g_fah->CreateFile(parentUri, "external_file_access_CreateFile_0002.txt", newFileUri);
618 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
619 GTEST_LOG_(INFO) << "CreateFile_0002 result:" << result;
620 } catch (...) {
621 GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0002 occurs an exception.";
622 }
623 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0002";
624 }
625
626 /**
627 * @tc.number: user_file_service_external_file_access_CreateFile_0003
628 * @tc.name: external_file_access_CreateFile_0003
629 * @tc.desc: Test function of CreateFile interface for ERROR which parentUri is special symbols.
630 * @tc.size: MEDIUM
631 * @tc.type: FUNC
632 * @tc.level Level 1
633 * @tc.require: SR000H0386
634 */
635 HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0003, testing::ext::TestSize.Level1)
636 {
637 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0002";
638 try {
639 Uri newFileUri("");
640 Uri parentUri("~!@#$%^&*()_");
641 int result = g_fah->CreateFile(parentUri, "external_file_access_CreateFile_0003.txt", newFileUri);
642 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
643 GTEST_LOG_(INFO) << "CreateFile_0003 result:" << result;
644 } catch (...) {
645 GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0003 occurs an exception.";
646 }
647 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0003";
648 }
649
650 /**
651 * @tc.number: user_file_service_external_file_access_CreateFile_0004
652 * @tc.name: external_file_access_CreateFile_0004
653 * @tc.desc: Test function of CreateFile interface for ERROR which displayName is null.
654 * @tc.size: MEDIUM
655 * @tc.type: FUNC
656 * @tc.level Level 1
657 * @tc.require: SR000H0386
658 */
659 HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0004, testing::ext::TestSize.Level1)
660 {
661 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0004";
662 try {
663 vector<RootInfo> info;
664 int result = g_fah->GetRoots(info);
665 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
666 for (size_t i = 0; i < info.size(); i++) {
667 Uri parentUri(info[i].uri);
668 Uri newFileUri("");
669 string displayName = "";
670 result = g_fah->CreateFile(parentUri, displayName, newFileUri);
671 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
672 GTEST_LOG_(INFO) << "CreateFile_0004 result:" << result;
673 }
674 } catch (...) {
675 GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0004 occurs an exception.";
676 }
677 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0004";
678 }
679
CreateFileTdd(shared_ptr<FileAccessHelper> fahs,Uri uri,std::string displayName,Uri newFile)680 static void CreateFileTdd(shared_ptr<FileAccessHelper> fahs, Uri uri, std::string displayName, Uri newFile)
681 {
682 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFileTdd";
683 int ret = fahs->CreateFile(uri, displayName, newFile);
684 if (ret != OHOS::FileAccessFwk::ERR_OK) {
685 GTEST_LOG_(ERROR) << "CreateFileTdd get result error, code:" << ret;
686 return;
687 }
688 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
689 EXPECT_NE(newFile.ToString(), "");
690 g_num++;
691 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFileTdd";
692 }
693
694 /**
695 * @tc.number: user_file_service_external_file_access_CreateFile_0005
696 * @tc.name: external_file_access_CreateFile_0005
697 * @tc.desc: Test function of CreateFile interface for ERROR which Concurrent.
698 * @tc.size: MEDIUM
699 * @tc.type: FUNC
700 * @tc.level Level 1
701 * @tc.require: SR000H0386
702 */
703 HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0005, testing::ext::TestSize.Level1)
704 {
705 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0005";
706 try {
707 vector<RootInfo> info;
708 int result = g_fah->GetRoots(info);
709 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
710 for (size_t i = 0; i < info.size(); i++) {
711 Uri parentUri(info[i].uri);
712 Uri newFileUri("");
713 std::string displayName = "test1.txt";
714 g_num = 0;
715 for (int j = 0; j < INIT_THREADS_NUMBER; j++) {
716 std::thread execthread(CreateFileTdd, g_fah, parentUri, displayName, newFileUri);
717 execthread.join();
718 }
719 EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER);
720 Uri newDelete(info[i].uri + "/" + displayName);
721 result = g_fah->Delete(newDelete);
722 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
723 }
724 } catch (...) {
725 GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0005 occurs an exception.";
726 }
727 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0005";
728 }
729
730 /**
731 * @tc.number: user_file_service_external_file_access_CreateFile_0006
732 * @tc.name: external_file_access_CreateFile_0006
733 * @tc.desc: Test function of CreateFile interface for ERROR because of GetProxyByUri failed.
734 * @tc.size: MEDIUM
735 * @tc.type: FUNC
736 * @tc.level Level 1
737 * @tc.require: SR000H0386
738 */
739 HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0006, testing::ext::TestSize.Level1)
740 {
741 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0006";
742 try {
743 vector<RootInfo> info;
744 int result = g_fah->GetRoots(info);
745 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
746 for (size_t i = 0; i < info.size(); i++) {
747 std::string str = info[i].uri;
748 if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) {
749 GTEST_LOG_(ERROR) << "replace BundleName failed.";
750 EXPECT_TRUE(false);
751 }
752 Uri parentUri(str);
753 Uri newFileUri("");
754 string displayName = "test.txt";
755 result = g_fah->CreateFile(parentUri, displayName, newFileUri);
756 EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS);
757 GTEST_LOG_(INFO) << "CreateFile_0006 result:" << result;
758 }
759 } catch (...) {
760 GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0006 occurs an exception.";
761 }
762 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0006";
763 }
764
765 /**
766 * @tc.number: user_file_service_external_file_access_CreateFile_0007
767 * @tc.name: external_file_access_CreateFile_0007
768 * @tc.desc: Test function of CreateFile interface for SUCCESS, the file name is chinese.
769 * @tc.size: MEDIUM
770 * @tc.type: FUNC
771 * @tc.level Level 1
772 * @tc.require: I70SX9
773 */
774 HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0007, testing::ext::TestSize.Level1)
775 {
776 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0007";
777 try {
778 vector<RootInfo> info;
779 int result = g_fah->GetRoots(info);
780 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
781 for (size_t i = 0; i < info.size(); i++) {
782 Uri parentUri(info[i].uri);
783 Uri newFileUri("");
784 result = g_fah->CreateFile(parentUri, "新建文件.txt", newFileUri);
785 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
786 EXPECT_EQ(newFileUri.ToString().find("新建文件.txt"), std::string::npos);
787 GTEST_LOG_(INFO) << "CreateFile_0007 result:" << result;
788 result = g_fah->Delete(newFileUri);
789 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
790 }
791 } catch (...) {
792 GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0007 occurs an exception.";
793 }
794 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0007";
795 }
796
797 /**
798 * @tc.number: user_file_service_external_file_access_Mkdir_0000
799 * @tc.name: external_file_access_Mkdir_0000
800 * @tc.desc: Test function of Mkdir interface for SUCCESS.
801 * @tc.size: MEDIUM
802 * @tc.type: FUNC
803 * @tc.level Level 1
804 * @tc.require: SR000H0386
805 */
806 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0000, testing::ext::TestSize.Level1)
807 {
808 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0000";
809 try {
810 vector<RootInfo> info;
811 int result = g_fah->GetRoots(info);
812 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
813 for (size_t i = 0; i < info.size(); i++) {
814 Uri parentUri(info[i].uri);
815 Uri newDirUriTest("");
816 result = g_fah->Mkdir(parentUri, "external_file_access_Mkdir_0000", newDirUriTest);
817 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
818 GTEST_LOG_(INFO) << "Mkdir_0000 result:" << result;
819 result = g_fah->Delete(newDirUriTest);
820 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
821 }
822 } catch (...) {
823 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0000 occurs an exception.";
824 }
825 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0000";
826 }
827
828 /**
829 * @tc.number: user_file_service_external_file_access_Mkdir_0001
830 * @tc.name: external_file_access_Mkdir_0001
831 * @tc.desc: Test function of Mkdir interface for ERROR which parentUri is null.
832 * @tc.size: MEDIUM
833 * @tc.type: FUNC
834 * @tc.level Level 1
835 * @tc.require: SR000H0386
836 */
837 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0001, testing::ext::TestSize.Level1)
838 {
839 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0001";
840 try {
841 Uri newDirUriTest("");
842 Uri parentUri("");
843 int result = g_fah->Mkdir(parentUri, "external_file_access_Mkdir_0001", newDirUriTest);
844 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
845 GTEST_LOG_(INFO) << "Mkdir_0001 result:" << result;
846 } catch (...) {
847 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0001 occurs an exception.";
848 }
849 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0001";
850 }
851
852 /**
853 * @tc.number: user_file_service_external_file_access_Mkdir_0002
854 * @tc.name: external_file_access_Mkdir_0002
855 * @tc.desc: Test function of Mkdir interface for ERROR which parentUri is absolute path.
856 * @tc.size: MEDIUM
857 * @tc.type: FUNC
858 * @tc.level Level 1
859 * @tc.require: SR000H0386
860 */
861 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0002, testing::ext::TestSize.Level1)
862 {
863 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0002";
864 try {
865 Uri newDirUriTest("");
866 Uri parentUri("storage/media/100/local/files/Download");
867 int result = g_fah->Mkdir(parentUri, "external_file_access_Mkdir_0002", newDirUriTest);
868 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
869 GTEST_LOG_(INFO) << "Mkdir_0002 result:" << result;
870 } catch (...) {
871 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0002 occurs an exception.";
872 }
873 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0002";
874 }
875
876 /**
877 * @tc.number: user_file_service_external_file_access_Mkdir_0003
878 * @tc.name: external_file_access_Mkdir_0003
879 * @tc.desc: Test function of Mkdir interface for ERROR which parentUri is special symbols.
880 * @tc.size: MEDIUM
881 * @tc.type: FUNC
882 * @tc.level Level 1
883 * @tc.require: SR000H0386
884 */
885 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0003, testing::ext::TestSize.Level1)
886 {
887 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0002";
888 try {
889 Uri newDirUriTest("");
890 Uri parentUri("~!@#$%^&*()_");
891 int result = g_fah->Mkdir(parentUri, "external_file_access_Mkdir_0003", newDirUriTest);
892 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
893 GTEST_LOG_(INFO) << "Mkdir_0003 result:" << result;
894 } catch (...) {
895 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0003 occurs an exception.";
896 }
897 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0003";
898 }
899
900 /**
901 * @tc.number: user_file_service_external_file_access_Mkdir_0004
902 * @tc.name: external_file_access_Mkdir_0004
903 * @tc.desc: Test function of Mkdir interface for ERROR which displayName is null.
904 * @tc.size: MEDIUM
905 * @tc.type: FUNC
906 * @tc.level Level 1
907 * @tc.require: SR000H0386
908 */
909 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0004, testing::ext::TestSize.Level1)
910 {
911 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0004";
912 try {
913 vector<RootInfo> info;
914 int result = g_fah->GetRoots(info);
915 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
916 for (size_t i = 0; i < info.size(); i++) {
917 Uri parentUri(info[i].uri);
918 Uri newDirUriTest("");
919 string displayName = "";
920 result = g_fah->Mkdir(parentUri, displayName, newDirUriTest);
921 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
922 GTEST_LOG_(INFO) << "Mkdir_0004 result:" << result;
923 }
924 } catch (...) {
925 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0004 occurs an exception.";
926 }
927 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0004";
928 }
929
MkdirTdd(shared_ptr<FileAccessHelper> fahs,Uri uri,std::string displayName,Uri newFile)930 static void MkdirTdd(shared_ptr<FileAccessHelper> fahs, Uri uri, std::string displayName, Uri newFile)
931 {
932 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_MkdirTdd";
933 int ret = fahs->Mkdir(uri, displayName, newFile);
934 if (ret != OHOS::FileAccessFwk::ERR_OK) {
935 GTEST_LOG_(ERROR) << "MkdirTdd get result error, code:" << ret;
936 return;
937 }
938 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
939 EXPECT_NE(newFile.ToString(), "");
940 g_num++;
941 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_MkdirTdd";
942 }
943
944 /**
945 * @tc.number: user_file_service_external_file_access_Mkdir_0005
946 * @tc.name: external_file_access_Mkdir_0005
947 * @tc.desc: Test function of Mkdir interface for SUCCESS which Concurrent.
948 * @tc.size: MEDIUM
949 * @tc.type: FUNC
950 * @tc.level Level 1
951 * @tc.require: SR000H0386
952 */
953 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0005, testing::ext::TestSize.Level1)
954 {
955 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0005";
956 try {
957 vector<RootInfo> info;
958 int result = g_fah->GetRoots(info);
959 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
960 for (size_t i = 0; i < info.size(); i++) {
961 Uri parentUri(info[i].uri);
962 Uri newDirUriTest("");
963 std::string displayName = "test1";
964 g_num = 0;
965 for (int j = 0; j < INIT_THREADS_NUMBER; j++) {
966 std::thread execthread(MkdirTdd, g_fah, parentUri, displayName, newDirUriTest);
967 execthread.join();
968 }
969 EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER);
970 Uri newDelete(info[i].uri + "/" + displayName);
971 result = g_fah->Delete(newDelete);
972 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
973 }
974 } catch (...) {
975 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0005 occurs an exception.";
976 }
977 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0005";
978 }
979
980 /**
981 * @tc.number: user_file_service_external_file_access_Mkdir_0006
982 * @tc.name: external_file_access_Mkdir_0006
983 * @tc.desc: Test function of Mkdir interface for ERROR because of GetProxyByUri failed.
984 * @tc.size: MEDIUM
985 * @tc.type: FUNC
986 * @tc.level Level 1
987 * @tc.require: SR000H0386
988 */
989 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0006, testing::ext::TestSize.Level1)
990 {
991 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0006";
992 try {
993 vector<RootInfo> info;
994 int result = g_fah->GetRoots(info);
995 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
996 for (size_t i = 0; i < info.size(); i++) {
997 std::string str = info[i].uri;
998 if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) {
999 GTEST_LOG_(ERROR) << "replace BundleName failed.";
1000 EXPECT_TRUE(false);
1001 }
1002 Uri parentUri(str);
1003 Uri newDirUriTest("");
1004 string displayName = "";
1005 result = g_fah->Mkdir(parentUri, displayName, newDirUriTest);
1006 EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS);
1007 GTEST_LOG_(INFO) << "Mkdir_0006 result:" << result;
1008 }
1009 } catch (...) {
1010 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0006 occurs an exception.";
1011 }
1012 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0006";
1013 }
1014
1015 /**
1016 * @tc.number: user_file_service_external_file_access_Mkdir_0007
1017 * @tc.name: external_file_access_Mkdir_0007
1018 * @tc.desc: Test function of Mkdir interface for SUCCESS,the folder name is chinese.
1019 * @tc.size: MEDIUM
1020 * @tc.type: FUNC
1021 * @tc.level Level 1
1022 * @tc.require: I70SX9
1023 */
1024 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0007, testing::ext::TestSize.Level1)
1025 {
1026 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0007";
1027 try {
1028 vector<RootInfo> info;
1029 int result = g_fah->GetRoots(info);
1030 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1031 for (size_t i = 0; i < info.size(); i++) {
1032 Uri parentUri(info[i].uri);
1033 Uri newDirUriTest("");
1034 result = g_fah->Mkdir(parentUri, "新建目录", newDirUriTest);
1035 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1036 EXPECT_EQ(newDirUriTest.ToString().find("新建目录"), std::string::npos);
1037 GTEST_LOG_(INFO) << "Mkdir_0007 result:" << result;
1038 result = g_fah->Delete(newDirUriTest);
1039 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1040 }
1041 } catch (...) {
1042 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0007 occurs an exception.";
1043 }
1044 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0007";
1045 }
1046
1047 /**
1048 * @tc.number: user_file_service_external_file_access_Mkdir_0008
1049 * @tc.name: external_file_access_Mkdir_0008
1050 * @tc.desc: Test function of Mkdir interface for FAIL,the folder name is Documents.
1051 * @tc.size: MEDIUM
1052 * @tc.type: FUNC
1053 * @tc.level Level 1
1054 * @tc.require: I7MQMD
1055 */
1056 HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0008, testing::ext::TestSize.Level1)
1057 {
1058 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0008";
1059 try {
1060 vector<RootInfo> info;
1061 int result = g_fah->GetRoots(info);
1062 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1063 EXPECT_GE(info.size(), 2);
1064 Uri parentUri(info[0].uri);
1065 Uri newDirUriTest("");
1066 result = g_fah->Mkdir(parentUri, "Documents", newDirUriTest);
1067 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1068 result = g_fah->Mkdir(parentUri, "Download", newDirUriTest);
1069 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1070 result = g_fah->Mkdir(parentUri, "Desktop", newDirUriTest);
1071 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1072 } catch (...) {
1073 GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0008 occurs an exception.";
1074 }
1075 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0008";
1076 }
1077
1078 /**
1079 * @tc.number: user_file_service_external_file_access_Delete_0000
1080 * @tc.name: external_file_access_Delete_0000
1081 * @tc.desc: Test function of Delete interface for SUCCESS which delete file.
1082 * @tc.size: MEDIUM
1083 * @tc.type: FUNC
1084 * @tc.level Level 1
1085 * @tc.require: SR000H0386
1086 */
1087 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0000, testing::ext::TestSize.Level1)
1088 {
1089 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0000";
1090 try {
1091 vector<RootInfo> info;
1092 int result = g_fah->GetRoots(info);
1093 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1094 for (size_t i = 0; i < info.size(); i++) {
1095 Uri parentUri(info[i].uri);
1096 Uri newDirUriTest("");
1097 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
1098 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1099 Uri newFileUri("");
1100 result = g_fah->CreateFile(newDirUriTest, "external_file_access_Delete_0000.txt", newFileUri);
1101 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1102 result = g_fah->Delete(newFileUri);
1103 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1104 GTEST_LOG_(INFO) << "Delete_0000 result:" << result;
1105 result = g_fah->Delete(newDirUriTest);
1106 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1107 }
1108 } catch (...) {
1109 GTEST_LOG_(ERROR) << "external_file_access_Delete_0000 occurs an exception.";
1110 }
1111 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0000";
1112 }
1113
1114 /**
1115 * @tc.number: user_file_service_external_file_access_Delete_0001
1116 * @tc.name: external_file_access_Delete_0001
1117 * @tc.desc: Test function of Delete interface for SUCCESS which delete folder.
1118 * @tc.size: MEDIUM
1119 * @tc.type: FUNC
1120 * @tc.level Level 1
1121 * @tc.require: SR000H0386
1122 */
1123 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0001, testing::ext::TestSize.Level1)
1124 {
1125 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0001";
1126 try {
1127 vector<RootInfo> info;
1128 int result = g_fah->GetRoots(info);
1129 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1130 for (size_t i = 0; i < info.size(); i++) {
1131 Uri parentUri(info[i].uri);
1132 Uri newDirUriTest("");
1133 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
1134 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1135 result = g_fah->Delete(newDirUriTest);
1136 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1137 GTEST_LOG_(INFO) << "Delete_0001 result:" << result;
1138 }
1139 } catch (...) {
1140 GTEST_LOG_(ERROR) << "external_file_access_Delete_0001 occurs an exception.";
1141 }
1142 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0001";
1143 }
1144
1145 /**
1146 * @tc.number: user_file_service_external_file_access_Delete_0002
1147 * @tc.name: external_file_access_Delete_0002
1148 * @tc.desc: Test function of Delete interface for ERROR which selectFileUri is null.
1149 * @tc.size: MEDIUM
1150 * @tc.type: FUNC
1151 * @tc.level Level 1
1152 * @tc.require: SR000H0386
1153 */
1154 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0002, testing::ext::TestSize.Level1)
1155 {
1156 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0002";
1157 try {
1158 Uri selectFileUri("");
1159 int result = g_fah->Delete(selectFileUri);
1160 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1161 GTEST_LOG_(INFO) << "Delete_0002 result:" << result;
1162 } catch (...) {
1163 GTEST_LOG_(ERROR) << "external_file_access_Delete_0002 occurs an exception.";
1164 }
1165 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0002";
1166 }
1167
1168 /**
1169 * @tc.number: user_file_service_external_file_access_Delete_0003
1170 * @tc.name: external_file_access_Delete_0003
1171 * @tc.desc: Test function of Delete interface for ERROR which selectFileUri is absolute path.
1172 * @tc.size: MEDIUM
1173 * @tc.type: FUNC
1174 * @tc.level Level 1
1175 * @tc.require: SR000H0386
1176 */
1177 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0003, testing::ext::TestSize.Level1)
1178 {
1179 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0003";
1180 try {
1181 vector<RootInfo> info;
1182 int result = g_fah->GetRoots(info);
1183 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1184 for (size_t i = 0; i < info.size(); i++) {
1185 Uri parentUri(info[i].uri);
1186 Uri newDirUriTest("");
1187 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
1188 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1189 Uri selectFileUri("storage/media/100/local/files/Download/test");
1190 result = g_fah->Delete(selectFileUri);
1191 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1192 result = g_fah->Delete(newDirUriTest);
1193 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1194 GTEST_LOG_(INFO) << "Delete_0003 result:" << result;
1195 }
1196 } catch (...) {
1197 GTEST_LOG_(ERROR) << "external_file_access_Delete_0003 occurs an exception.";
1198 }
1199 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0003";
1200 }
1201
1202 /**
1203 * @tc.number: user_file_service_external_file_access_Delete_0004
1204 * @tc.name: external_file_access_Delete_0004
1205 * @tc.desc: Test function of Delete interface for ERROR which selectFileUri is special symbols.
1206 * @tc.size: MEDIUM
1207 * @tc.type: FUNC
1208 * @tc.level Level 1
1209 * @tc.require: SR000H0386
1210 */
1211 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0004, testing::ext::TestSize.Level1)
1212 {
1213 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0004";
1214 try {
1215 Uri selectFileUri("!@#$%^&*()");
1216 int result = g_fah->Delete(selectFileUri);
1217 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1218 GTEST_LOG_(INFO) << "Delete_0004 result:" << result;
1219 } catch (...) {
1220 GTEST_LOG_(ERROR) << "external_file_access_Delete_0004 occurs an exception.";
1221 }
1222 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0004";
1223 }
1224
DeleteTdd(shared_ptr<FileAccessHelper> fahs,Uri selectFile)1225 static void DeleteTdd(shared_ptr<FileAccessHelper> fahs, Uri selectFile)
1226 {
1227 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_DeleteTdd";
1228 int ret = fahs->Delete(selectFile);
1229 if (ret != OHOS::FileAccessFwk::ERR_OK) {
1230 GTEST_LOG_(ERROR) << "DeleteTdd get result error, code:" << ret;
1231 return;
1232 }
1233 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
1234 g_num++;
1235 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_DeleteTdd";
1236 }
1237
1238 /**
1239 * @tc.number: user_file_service_external_file_access_Delete_0005
1240 * @tc.name: external_file_access_Delete_0005
1241 * @tc.desc: Test function of Delete interface for SUCCESS which Concurrent.
1242 * @tc.size: MEDIUM
1243 * @tc.type: FUNC
1244 * @tc.level Level 1
1245 * @tc.require: SR000H0386
1246 */
1247 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0005, testing::ext::TestSize.Level1)
1248 {
1249 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0005";
1250 try {
1251 vector<RootInfo> info;
1252 int result = g_fah->GetRoots(info);
1253 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1254 for (size_t i = 0; i < info.size(); i++) {
1255 Uri parentUri(info[i].uri);
1256 Uri newDirUriTest("");
1257 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
1258 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1259 Uri newFileUri("");
1260 std::string displayName = "test1.txt";
1261 result = g_fah->CreateFile(newDirUriTest, displayName, newFileUri);
1262 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1263 g_num = 0;
1264 for (int j = 0; j < INIT_THREADS_NUMBER; j++) {
1265 std::thread execthread(DeleteTdd, g_fah, newFileUri);
1266 execthread.join();
1267 }
1268 EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER);
1269 result = g_fah->Delete(newDirUriTest);
1270 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1271 }
1272 } catch (...) {
1273 GTEST_LOG_(ERROR) << "external_file_access_Delete_0005 occurs an exception.";
1274 }
1275 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0005";
1276 }
1277
1278 /**
1279 * @tc.number: user_file_service_external_file_access_Delete_0006
1280 * @tc.name: external_file_access_Delete_0006
1281 * @tc.desc: Test function of Delete interface for ERROR because of GetProxyByUri failed.
1282 * @tc.size: MEDIUM
1283 * @tc.type: FUNC
1284 * @tc.level Level 1
1285 * @tc.require: SR000H0386
1286 */
1287 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0006, testing::ext::TestSize.Level1)
1288 {
1289 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0006";
1290 try {
1291 vector<RootInfo> info;
1292 int result = g_fah->GetRoots(info);
1293 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1294 for (size_t i = 0; i < info.size(); i++) {
1295 std::string str = info[i].uri;
1296 if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) {
1297 GTEST_LOG_(ERROR) << "replace BundleName failed.";
1298 EXPECT_TRUE(false);
1299 }
1300 Uri selectFileUri(str);
1301 int result = g_fah->Delete(selectFileUri);
1302 EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS);
1303 GTEST_LOG_(INFO) << "Delete_0006 result:" << result;
1304 }
1305 } catch (...) {
1306 GTEST_LOG_(ERROR) << "external_file_access_Delete_0006 occurs an exception.";
1307 }
1308 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0006";
1309 }
1310
1311 /**
1312 * @tc.number: user_file_service_external_file_access_Delete_0007
1313 * @tc.name: external_file_access_Delete_0007
1314 * @tc.desc: Test function of Delete interface for SUCCESS which delete file, the file name is chinese.
1315 * @tc.size: MEDIUM
1316 * @tc.type: FUNC
1317 * @tc.level Level 1
1318 * @tc.require: I70SX9
1319 */
1320 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0007, testing::ext::TestSize.Level1)
1321 {
1322 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0007";
1323 try {
1324 vector<RootInfo> info;
1325 int result = g_fah->GetRoots(info);
1326 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1327 for (size_t i = 0; i < info.size(); i++) {
1328 Uri parentUri(info[i].uri);
1329 Uri newDirUriTest("");
1330 result = g_fah->Mkdir(parentUri, "测试目录", newDirUriTest);
1331 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1332 EXPECT_EQ(newDirUriTest.ToString().find("测试目录"), std::string::npos);
1333 Uri newFileUri("");
1334 result = g_fah->CreateFile(newDirUriTest, "删除文件.txt", newFileUri);
1335 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1336 EXPECT_EQ(newFileUri.ToString().find("删除文件.txt"), std::string::npos);
1337 result = g_fah->Delete(newFileUri);
1338 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1339 GTEST_LOG_(INFO) << "Delete_0007 result:" << result;
1340 result = g_fah->Delete(newDirUriTest);
1341 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1342 }
1343 } catch (...) {
1344 GTEST_LOG_(ERROR) << "external_file_access_Delete_0007 occurs an exception.";
1345 }
1346 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0007";
1347 }
1348
1349 /**
1350 * @tc.number: user_file_service_external_file_access_Move_0000
1351 * @tc.name: external_file_access_Move_0000
1352 * @tc.desc: Test function of Move interface for SUCCESS which move file.
1353 * @tc.size: MEDIUM
1354 * @tc.type: FUNC
1355 * @tc.level Level 1
1356 * @tc.require: SR000H0387
1357 */
1358 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0000, testing::ext::TestSize.Level1)
1359 {
1360 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0000";
1361 try {
1362 vector<RootInfo> info;
1363 int result = g_fah->GetRoots(info);
1364 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1365 for (size_t i = 0; i < info.size(); i++) {
1366 Uri parentUri(info[i].uri);
1367 Uri newDirUriTest1("");
1368 Uri newDirUriTest2("");
1369 result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1);
1370 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1371 result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2);
1372 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1373 Uri testUri("");
1374 result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri);
1375 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1376 Uri testUri2("");
1377 result = g_fah->Move(testUri, newDirUriTest2, testUri2);
1378 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1379 GTEST_LOG_(INFO) << "Move_0000 result:" << result;
1380 result = g_fah->Delete(newDirUriTest1);
1381 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1382 result = g_fah->Delete(newDirUriTest2);
1383 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1384 }
1385 } catch (...) {
1386 GTEST_LOG_(ERROR) << "external_file_access_Move_0000 occurs an exception.";
1387 }
1388 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0000";
1389 }
1390
1391 /**
1392 * @tc.number: user_file_service_external_file_access_Move_0001
1393 * @tc.name: external_file_access_Move_0001
1394 * @tc.desc: Test function of Move interface for SUCCESS which move folder.
1395 * @tc.size: MEDIUM
1396 * @tc.type: FUNC
1397 * @tc.level Level 1
1398 * @tc.require: SR000H0387
1399 */
1400 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0001, testing::ext::TestSize.Level1)
1401 {
1402 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0001";
1403 try {
1404 vector<RootInfo> info;
1405 int result = g_fah->GetRoots(info);
1406 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1407 for (size_t i = 0; i < info.size(); i++) {
1408 Uri parentUri(info[i].uri);
1409 Uri newDirUriTest1("");
1410 Uri newDirUriTest2("");
1411 result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1);
1412 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1413 result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2);
1414 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1415 Uri testUri("");
1416 result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri);
1417 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1418 Uri testUri2("");
1419 result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2);
1420 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1421 GTEST_LOG_(INFO) << "Move_0001 result:" << result;
1422 result = g_fah->Delete(newDirUriTest2);
1423 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1424 }
1425 } catch (...) {
1426 GTEST_LOG_(ERROR) << "external_file_access_Move_0001 occurs an exception.";
1427 }
1428 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0001";
1429 }
1430
1431 /**
1432 * @tc.number: user_file_service_external_file_access_Move_0002
1433 * @tc.name: external_file_access_Move_0002
1434 * @tc.desc: Test function of Move interface for ERROR which sourceFileUri is null.
1435 * @tc.size: MEDIUM
1436 * @tc.type: FUNC
1437 * @tc.level Level 1
1438 * @tc.require: SR000H0387
1439 */
1440 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0002, testing::ext::TestSize.Level1)
1441 {
1442 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0002";
1443 try {
1444 vector<RootInfo> info;
1445 int result = g_fah->GetRoots(info);
1446 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1447 for (size_t i = 0; i < info.size(); i++) {
1448 Uri parentUri(info[i].uri);
1449 Uri newDirUriTest("");
1450 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
1451 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1452 Uri testUri("");
1453 Uri sourceFileUri("");
1454 result = g_fah->Move(sourceFileUri, newDirUriTest, testUri);
1455 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1456 GTEST_LOG_(INFO) << "Move_0002 result:" << result;
1457 result = g_fah->Delete(newDirUriTest);
1458 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1459 }
1460 } catch (...) {
1461 GTEST_LOG_(ERROR) << "external_file_access_Move_0002 occurs an exception.";
1462 }
1463 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0002";
1464 }
1465
1466 /**
1467 * @tc.number: user_file_service_external_file_access_Move_0003
1468 * @tc.name: external_file_access_Move_0003
1469 * @tc.desc: Test function of Move interface for ERROR which sourceFileUri is absolute path.
1470 * @tc.size: MEDIUM
1471 * @tc.type: FUNC
1472 * @tc.level Level 1
1473 * @tc.require: SR000H0386
1474 */
1475 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0003, testing::ext::TestSize.Level1)
1476 {
1477 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0003";
1478 try {
1479 vector<RootInfo> info;
1480 int result = g_fah->GetRoots(info);
1481 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1482 for (size_t i = 0; i < info.size(); i++) {
1483 Uri parentUri(info[i].uri);
1484 Uri newDirUriTest1("");
1485 Uri newDirUriTest2("");
1486 result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1);
1487 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1488 result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2);
1489 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1490 Uri testUri("");
1491 result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri);
1492 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1493 Uri testUri2("");
1494 Uri sourceFileUri("storage/media/100/local/files/Download/test1/test.txt");
1495 result = g_fah->Move(sourceFileUri, newDirUriTest2, testUri2);
1496 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1497 GTEST_LOG_(INFO) << "Move_0003 result:" << result;
1498 result = g_fah->Delete(newDirUriTest1);
1499 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1500 result = g_fah->Delete(newDirUriTest2);
1501 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1502 }
1503 } catch (...) {
1504 GTEST_LOG_(ERROR) << "external_file_access_Move_0003 occurs an exception.";
1505 }
1506 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0003";
1507 }
1508
1509 /**
1510 * @tc.number: user_file_service_external_file_access_Move_0004
1511 * @tc.name: external_file_access_Move_0004
1512 * @tc.desc: Test function of Move interface for ERROR which sourceFileUri is special symbols.
1513 * @tc.size: MEDIUM
1514 * @tc.type: FUNC
1515 * @tc.level Level 1
1516 * @tc.require: SR000H0387
1517 */
1518 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0004, testing::ext::TestSize.Level1)
1519 {
1520 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0004";
1521 try {
1522 vector<RootInfo> info;
1523 int result = g_fah->GetRoots(info);
1524 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1525 for (size_t i = 0; i < info.size(); i++) {
1526 Uri parentUri(info[i].uri);
1527 Uri newDirUriTest("");
1528 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
1529 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1530 Uri testUri("");
1531 Uri sourceFileUri("~!@#$%^&*()_");
1532 result = g_fah->Move(sourceFileUri, newDirUriTest, testUri);
1533 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1534 GTEST_LOG_(INFO) << "Move_0004 result:" << result;
1535 result = g_fah->Delete(newDirUriTest);
1536 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1537 }
1538 } catch (...) {
1539 GTEST_LOG_(ERROR) << "external_file_access_Move_0004 occurs an exception.";
1540 }
1541 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0004";
1542 }
1543
1544 /**
1545 * @tc.number: user_file_service_external_file_access_Move_0005
1546 * @tc.name: external_file_access_Move_0005
1547 * @tc.desc: Test function of Move interface for ERROR which targetParentUri is null.
1548 * @tc.size: MEDIUM
1549 * @tc.type: FUNC
1550 * @tc.level Level 1
1551 * @tc.require: SR000H0387
1552 */
1553 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0005, testing::ext::TestSize.Level1)
1554 {
1555 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0005";
1556 try {
1557 vector<RootInfo> info;
1558 int result = g_fah->GetRoots(info);
1559 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1560 for (size_t i = 0; i < info.size(); i++) {
1561 Uri parentUri(info[i].uri);
1562 Uri newDirUriTest("");
1563 result = g_fah->Mkdir(parentUri, "test1", newDirUriTest);
1564 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1565 Uri testUri("");
1566 result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri);
1567 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1568 Uri testUri2("");
1569 Uri targetParentUri("");
1570 result = g_fah->Move(testUri, targetParentUri, testUri2);
1571 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1572 GTEST_LOG_(INFO) << "Move_0005 result:" << result;
1573 result = g_fah->Delete(newDirUriTest);
1574 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1575 }
1576 } catch (...) {
1577 GTEST_LOG_(ERROR) << "external_file_access_Move_0005 occurs an exception.";
1578 }
1579 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0005";
1580 }
1581
1582 /**
1583 * @tc.number: user_file_service_external_file_access_Move_0006
1584 * @tc.name: external_file_access_Move_0006
1585 * @tc.desc: Test function of Move interface for ERROR which targetParentUri is absolute path.
1586 * @tc.size: MEDIUM
1587 * @tc.type: FUNC
1588 * @tc.level Level 1
1589 * @tc.require: SR000H0387
1590 */
1591 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0006, testing::ext::TestSize.Level1)
1592 {
1593 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0006";
1594 try {
1595 vector<RootInfo> info;
1596 int result = g_fah->GetRoots(info);
1597 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1598 for (size_t i = 0; i < info.size(); i++) {
1599 Uri parentUri(info[i].uri);
1600 Uri newDirUriTest1("");
1601 Uri newDirUriTest2("");
1602 result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1);
1603 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1604 result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2);
1605 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1606 Uri testUri("");
1607 result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri);
1608 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1609 Uri testUri2("");
1610 Uri targetParentUri("storage/media/100/local/files/Download/test2");
1611 result = g_fah->Move(testUri, targetParentUri, testUri2);
1612 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1613 GTEST_LOG_(INFO) << "Move_0006 result:" << result;
1614 result = g_fah->Delete(newDirUriTest1);
1615 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1616 result = g_fah->Delete(newDirUriTest2);
1617 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1618 }
1619 } catch (...) {
1620 GTEST_LOG_(ERROR) << "external_file_access_Move_0006 occurs an exception.";
1621 }
1622 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0006";
1623 }
1624
1625 /**
1626 * @tc.number: user_file_service_external_file_access_Move_0007
1627 * @tc.name: external_file_access_Move_0007
1628 * @tc.desc: Test function of Move interface for ERROR which targetParentUri is special symbols.
1629 * @tc.size: MEDIUM
1630 * @tc.type: FUNC
1631 * @tc.level Level 1
1632 * @tc.require: SR000H0387
1633 */
1634 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0007, testing::ext::TestSize.Level1)
1635 {
1636 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0007";
1637 try {
1638 vector<RootInfo> info;
1639 int result = g_fah->GetRoots(info);
1640 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1641 for (size_t i = 0; i < info.size(); i++) {
1642 Uri parentUri(info[i].uri);
1643 Uri newDirUriTest1("");
1644 Uri newDirUriTest2("");
1645 result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1);
1646 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1647 result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2);
1648 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1649 Uri testUri("");
1650 result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri);
1651 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1652 Uri testUri2("");
1653 Uri targetParentUri("~!@#$^%&*()_");
1654 result = g_fah->Move(testUri, targetParentUri, testUri2);
1655 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1656 GTEST_LOG_(INFO) << "Move_0007 result:" << result;
1657 result = g_fah->Delete(newDirUriTest1);
1658 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1659 result = g_fah->Delete(newDirUriTest2);
1660 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1661 }
1662 } catch (...) {
1663 GTEST_LOG_(ERROR) << "external_file_access_Move_0007 occurs an exception.";
1664 }
1665 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0007";
1666 }
1667
1668 /**
1669 * @tc.number: user_file_service_external_file_access_Move_0008
1670 * @tc.name: external_file_access_Move_0008
1671 * @tc.desc: Test function of Move interface for SUCCESS which move empty folder.
1672 * @tc.size: MEDIUM
1673 * @tc.type: FUNC
1674 * @tc.level Level 1
1675 * @tc.require: SR000H0387
1676 */
1677 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0008, testing::ext::TestSize.Level1)
1678 {
1679 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0008";
1680 try {
1681 vector<RootInfo> info;
1682 int result = g_fah->GetRoots(info);
1683 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1684 for (size_t i = 0; i < info.size(); i++) {
1685 Uri parentUri(info[i].uri);
1686 Uri newDirUriTest1("");
1687 Uri newDirUriTest2("");
1688 result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1);
1689 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1690 result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2);
1691 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1692 Uri testUri("");
1693 result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri);
1694 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1695 GTEST_LOG_(INFO) << "Move_0008 result:" << result;
1696 result = g_fah->Delete(newDirUriTest2);
1697 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1698 }
1699 } catch (...) {
1700 GTEST_LOG_(ERROR) << "external_file_access_Move_0008 occurs an exception.";
1701 }
1702 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0008";
1703 }
1704
1705 /**
1706 * @tc.number: user_file_service_external_file_access_Move_0009
1707 * @tc.name: external_file_access_Move_0009
1708 * @tc.desc: Test function of Move interface for SUCCESS which move more file in folder.
1709 * @tc.size: MEDIUM
1710 * @tc.type: FUNC
1711 * @tc.level Level 1
1712 * @tc.require: SR000H0387
1713 */
1714 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0009, testing::ext::TestSize.Level1)
1715 {
1716 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0009";
1717 try {
1718 vector<RootInfo> info;
1719 int result = g_fah->GetRoots(info);
1720 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1721 for (size_t i = 0; i < info.size(); i++) {
1722 Uri parentUri(info[i].uri);
1723 Uri newDirUriTest1("");
1724 Uri newDirUriTest2("");
1725 result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1);
1726 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1727 result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2);
1728 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1729 Uri testUri("");
1730 size_t fileNumbers = 2000;
1731 for (size_t j = 0; j < fileNumbers; j++) {
1732 string fileName = "test" + ToString(j) + ".txt";
1733 result = g_fah->CreateFile(newDirUriTest1, fileName, testUri);
1734 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1735 }
1736 Uri testUri2("");
1737 result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2);
1738 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1739 GTEST_LOG_(INFO) << "Move_0009 result:" << result;
1740 result = g_fah->Delete(newDirUriTest2);
1741 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1742 }
1743 } catch (...) {
1744 GTEST_LOG_(ERROR) << "external_file_access_Move_0009 occurs an exception.";
1745 }
1746 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0009";
1747 }
1748
1749 /**
1750 * @tc.number: user_file_service_external_file_access_Move_0010
1751 * @tc.name: external_file_access_Move_0010
1752 * @tc.desc: Test function of Move interface for SUCCESS which move Multilevel directory folder.
1753 * @tc.size: MEDIUM
1754 * @tc.type: FUNC
1755 * @tc.level Level 1
1756 * @tc.require: SR000H0387
1757 */
1758 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0010, testing::ext::TestSize.Level1)
1759 {
1760 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0010";
1761 try {
1762 vector<RootInfo> info;
1763 int result = g_fah->GetRoots(info);
1764 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1765 for (size_t i = 0; i < info.size(); i++) {
1766 Uri parentUri(info[i].uri);
1767 Uri newDirUriTest1("");
1768 Uri newDirUriTest2("");
1769 result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1);
1770 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1771 result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2);
1772 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1773 Uri testUri("");
1774 result = g_fah->Mkdir(newDirUriTest1, "test", testUri);
1775 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1776 size_t directoryNumbers = 64;
1777 for (size_t j = 0; j < directoryNumbers; j++) {
1778 result = g_fah->Mkdir(testUri, "test", testUri);
1779 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1780 }
1781 Uri testUri2("");
1782 result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2);
1783 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1784 GTEST_LOG_(INFO) << "Move_0010 result:" << result;
1785 result = g_fah->Delete(newDirUriTest2);
1786 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1787 }
1788 } catch (...) {
1789 GTEST_LOG_(ERROR) << "external_file_access_Move_0010 occurs an exception.";
1790 }
1791 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0010";
1792 }
1793
1794 /**
1795 * @tc.number: user_file_service_external_file_access_Move_0011
1796 * @tc.name: external_file_access_Move_0011
1797 * @tc.desc: Test function of Move interface for SUCCESS which move other equipment file.
1798 * @tc.size: MEDIUM
1799 * @tc.type: FUNC
1800 * @tc.level Level 1
1801 * @tc.require: SR000H0387
1802 */
1803 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0011, testing::ext::TestSize.Level1)
1804 {
1805 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0011";
1806 try {
1807 vector<RootInfo> info;
1808 int result = g_fah->GetRoots(info);
1809 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1810 for (size_t i = 0; i < info.size(); i++) {
1811 Uri parentUri(info[i].uri);
1812 Uri newDirUriTest1("");
1813 Uri newDirUriTest2("");
1814 result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1);
1815 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1816 Uri testUri("");
1817 result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri);
1818 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1819 for (size_t j = i + 1; j < info.size(); j++) {
1820 Uri otherUri(info[j].uri);
1821 result = g_fah->Mkdir(otherUri, "test2", newDirUriTest2);
1822 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1823 result = g_fah->Move(testUri, newDirUriTest2, testUri);
1824 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1825 result = g_fah->Move(testUri, newDirUriTest1, testUri);
1826 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1827 GTEST_LOG_(INFO) << "Move_0011 result:" << result;
1828 result = g_fah->Delete(newDirUriTest2);
1829 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1830 }
1831 result = g_fah->Delete(newDirUriTest1);
1832 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1833 }
1834 } catch (...) {
1835 GTEST_LOG_(ERROR) << "external_file_access_Move_0011 occurs an exception.";
1836 }
1837 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0011";
1838 }
1839
MoveTdd(shared_ptr<FileAccessHelper> fahs,Uri sourceFile,Uri targetParent,Uri newFile)1840 static void MoveTdd(shared_ptr<FileAccessHelper> fahs, Uri sourceFile, Uri targetParent, Uri newFile)
1841 {
1842 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_MoveTdd";
1843 int ret = fahs->Move(sourceFile, targetParent, newFile);
1844 if (ret != OHOS::FileAccessFwk::ERR_OK) {
1845 GTEST_LOG_(ERROR) << "MoveTdd get result error, code:" << ret;
1846 return;
1847 }
1848 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
1849 g_num++;
1850 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_MoveTdd";
1851 }
1852
1853 /**
1854 * @tc.number: user_file_service_external_file_access_Move_0012
1855 * @tc.name: external_file_access_Move_0012
1856 * @tc.desc: Test function of Move interface for SUCCESS which Concurrent.
1857 * @tc.size: MEDIUM
1858 * @tc.type: FUNC
1859 * @tc.level Level 1
1860 * @tc.require: SR000H0386
1861 */
1862 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0012, testing::ext::TestSize.Level1)
1863 {
1864 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0012";
1865 try {
1866 vector<RootInfo> info;
1867 int result = g_fah->GetRoots(info);
1868 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1869 for (size_t i = 0; i < info.size(); i++) {
1870 Uri parentUri(info[i].uri);
1871 Uri newDirUriTest1("");
1872 Uri newDirUriTest2("");
1873 result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1);
1874 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1875 result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2);
1876 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1877 Uri testUri("");
1878 std::string displayName = "test3.txt";
1879 result = g_fah->CreateFile(newDirUriTest1, displayName, testUri);
1880 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1881 Uri testUri2("");
1882 g_num = 0;
1883 for (int j = 0; j < INIT_THREADS_NUMBER; j++) {
1884 std::thread execthread(MoveTdd, g_fah, testUri, newDirUriTest2, testUri2);
1885 execthread.join();
1886 }
1887 EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER);
1888 result = g_fah->Delete(newDirUriTest1);
1889 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1890 result = g_fah->Delete(newDirUriTest2);
1891 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1892 }
1893 } catch (...) {
1894 GTEST_LOG_(ERROR) << "external_file_access_Move_0012 occurs an exception.";
1895 }
1896 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0012";
1897 }
1898
1899 /**
1900 * @tc.number: user_file_service_external_file_access_Move_0013
1901 * @tc.name: external_file_access_Move_0013
1902 * @tc.desc: Test function of Move interface for FAILED because of GetProxyByUri failed.
1903 * @tc.size: MEDIUM
1904 * @tc.type: FUNC
1905 * @tc.level Level 1
1906 * @tc.require: SR000H0387
1907 */
1908 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0013, testing::ext::TestSize.Level1)
1909 {
1910 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0013";
1911 try {
1912 vector<RootInfo> info;
1913 int result = g_fah->GetRoots(info);
1914 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1915 Uri parentUri(info[0].uri);
1916 Uri newDirUriTest1("");
1917 Uri newDirUriTest2("");
1918 result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1);
1919 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1920 result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2);
1921 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1922 Uri testUri("");
1923 result = g_fah->Mkdir(newDirUriTest1, "test", testUri);
1924 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1925 std::string str = newDirUriTest1.ToString();
1926 if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) {
1927 GTEST_LOG_(ERROR) << "replace BundleName failed.";
1928 EXPECT_TRUE(false);
1929 }
1930 Uri uri(str);
1931 Uri testUri2("");
1932 result = g_fah->Move(uri, newDirUriTest2, testUri2);
1933 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
1934 GTEST_LOG_(INFO) << "Move_0013 result:" << result;
1935 result = g_fah->Delete(newDirUriTest1);
1936 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1937 result = g_fah->Delete(newDirUriTest2);
1938 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1939 } catch (...) {
1940 GTEST_LOG_(ERROR) << "external_file_access_Move_0013 occurs an exception.";
1941 }
1942 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0013";
1943 }
1944
1945 /**
1946 * @tc.number: user_file_service_external_file_access_Move_0014
1947 * @tc.name: external_file_access_Move_0014
1948 * @tc.desc: Test function of Move interface for SUCCESS which move file, the file name is chinese.
1949 * @tc.size: MEDIUM
1950 * @tc.type: FUNC
1951 * @tc.level Level 1
1952 * @tc.require: I70SX9
1953 */
1954 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0014, testing::ext::TestSize.Level1)
1955 {
1956 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0014";
1957 try {
1958 vector<RootInfo> info;
1959 int result = g_fah->GetRoots(info);
1960 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1961 for (size_t i = 0; i < info.size(); i++) {
1962 Uri parentUri(info[i].uri);
1963 Uri newDirUriTest1("");
1964 Uri newDirUriTest2("");
1965 result = g_fah->Mkdir(parentUri, "测试目录1", newDirUriTest1);
1966 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1967 EXPECT_EQ(newDirUriTest1.ToString().find("测试目录1"), std::string::npos);
1968 result = g_fah->Mkdir(parentUri, "测试目录2", newDirUriTest2);
1969 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1970 EXPECT_EQ(newDirUriTest2.ToString().find("测试目录2"), std::string::npos);
1971 Uri testUri("");
1972 result = g_fah->CreateFile(newDirUriTest1, "移动文件.txt", testUri);
1973 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1974 EXPECT_EQ(testUri.ToString().find("移动文件.txt"), std::string::npos);
1975 Uri testUri2("");
1976 result = g_fah->Move(testUri, newDirUriTest2, testUri2);
1977 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1978 GTEST_LOG_(INFO) << "Move_0014 result:" << result;
1979 result = g_fah->Delete(newDirUriTest1);
1980 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1981 result = g_fah->Delete(newDirUriTest2);
1982 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1983 }
1984 } catch (...) {
1985 GTEST_LOG_(ERROR) << "external_file_access_Move_0014 occurs an exception.";
1986 }
1987 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0014";
1988 }
1989
1990 /**
1991 * @tc.number: user_file_service_external_file_access_Move_0015
1992 * @tc.name: external_file_access_Move_0015
1993 * @tc.desc: Test function of Move interface for SUCCESS which move Multilevel directory folder,
1994 * the folder name is chinese.
1995 * @tc.size: MEDIUM
1996 * @tc.type: FUNC
1997 * @tc.level Level 1
1998 * @tc.require: I70SX9
1999 */
2000 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0015, testing::ext::TestSize.Level1)
2001 {
2002 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0015";
2003 try {
2004 vector<RootInfo> info;
2005 int result = g_fah->GetRoots(info);
2006 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2007 for (size_t i = 0; i < info.size(); i++) {
2008 Uri parentUri(info[i].uri);
2009 Uri newDirUriTest1("");
2010 Uri newDirUriTest2("");
2011 result = g_fah->Mkdir(parentUri, "移动目录", newDirUriTest1);
2012 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2013 EXPECT_EQ(newDirUriTest1.ToString().find("移动目录"), std::string::npos);
2014 result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2);
2015 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2016 Uri testUri2("");
2017 result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2);
2018 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2019 GTEST_LOG_(INFO) << "Move_0015 result:" << result;
2020 result = g_fah->Delete(newDirUriTest2);
2021 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2022 }
2023 } catch (...) {
2024 GTEST_LOG_(ERROR) << "external_file_access_Move_0015 occurs an exception.";
2025 }
2026 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0015";
2027 }
2028
2029 /**
2030 * @tc.number: user_file_service_external_file_access_Move_0016
2031 * @tc.name: external_file_access_Move_0016
2032 * @tc.desc: Test function of Move interface for SUCCESS which move Multilevel directory folder,
2033 * the folder name is chinese.
2034 * @tc.size: MEDIUM
2035 * @tc.type: FUNC
2036 * @tc.level Level 1
2037 * @tc.require: I70SX9
2038 */
2039 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0016, testing::ext::TestSize.Level1)
2040 {
2041 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0016";
2042 try {
2043 vector<RootInfo> info;
2044 int result = g_fah->GetRoots(info);
2045 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2046 for (size_t i = 0; i < info.size(); i++) {
2047 Uri parentUri(info[i].uri);
2048 Uri newDirUriTest1("");
2049 Uri newDirUriTest2("");
2050 result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1);
2051 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2052 result = g_fah->Mkdir(parentUri, "移动目录", newDirUriTest2);
2053 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2054 Uri testUri2("");
2055 result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2);
2056 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2057 GTEST_LOG_(INFO) << "Move_0016 result:" << result;
2058 result = g_fah->Delete(newDirUriTest2);
2059 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2060 }
2061 } catch (...) {
2062 GTEST_LOG_(ERROR) << "external_file_access_Move_0016 occurs an exception.";
2063 }
2064 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0016";
2065 }
2066
2067 /**
2068 * @tc.number: user_file_service_external_file_access_Copy_0000
2069 * @tc.name: external_file_access_Copy_0000
2070 * @tc.desc: Test function of Copy interface, copy a file and argument of force is false
2071 * @tc.size: MEDIUM
2072 * @tc.type: FUNC
2073 * @tc.level Level 1
2074 * @tc.require: I7QXVD
2075 */
2076 HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0000, testing::ext::TestSize.Level1)
2077 {
2078 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0000";
2079 try {
2080 vector<RootInfo> info;
2081 int result = g_fah->GetRoots(info);
2082 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2083
2084 for (size_t i = 0; i < info.size(); i++) {
2085 Uri parentUri(info[i].uri);
2086 Uri srcDir("");
2087 result = g_fah->Mkdir(parentUri, "Copy_0000_src", srcDir);
2088 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2089 Uri srcFile("");
2090 result = g_fah->CreateFile(srcDir, "a.txt", srcFile);
2091 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2092 int fd = -1;
2093 result = g_fah->OpenFile(srcFile, WRITE_READ, fd);
2094 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2095 char buff[] = "Copy test content for a.txt";
2096 ssize_t srcFileSize = write(fd, buff, sizeof(buff));
2097 EXPECT_EQ(srcFileSize, sizeof(buff));
2098 close(fd);
2099
2100 Uri destDir("");
2101 result = g_fah->Mkdir(parentUri, "Copy_0000_dest", destDir);
2102 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2103
2104 std::vector<CopyResult> copyResult;
2105 result = g_fah->Copy(srcFile, destDir, copyResult, false);
2106 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2107 EXPECT_EQ(copyResult.size(), 0);
2108
2109 Uri destFileUri(destDir.ToString() + "/" + "a.txt");
2110 result = g_fah->OpenFile(destFileUri, WRITE_READ, fd);
2111 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2112 ssize_t destFileSize = read(fd, buff, sizeof(buff));
2113 EXPECT_EQ(srcFileSize, destFileSize);
2114 close(fd);
2115
2116 result = g_fah->Delete(srcDir);
2117 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2118 result = g_fah->Delete(destDir);
2119 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2120 }
2121 } catch (...) {
2122 GTEST_LOG_(ERROR) << "external_file_access_Copy_0000 occurs an exception.";
2123 }
2124 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0000";
2125 }
2126
2127 /**
2128 * @tc.number: user_file_service_external_file_access_Copy_0001
2129 * @tc.name: external_file_access_Copy_0001
2130 * @tc.desc: Test function of Copy interface, copy a directory and argument of force is false
2131 * @tc.size: MEDIUM
2132 * @tc.type: FUNC
2133 * @tc.level Level 1
2134 * @tc.require: I7QXVD
2135 */
2136 HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0001, testing::ext::TestSize.Level1)
2137 {
2138 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0001";
2139 try {
2140 vector<RootInfo> info;
2141 int result = g_fah->GetRoots(info);
2142 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2143 for (size_t i = 0; i < info.size(); i++) {
2144 Uri parentUri(info[i].uri);
2145 Uri srcDir("");
2146 Uri destDir("");
2147 result = g_fah->Mkdir(parentUri, "Copy_0001_src", srcDir);
2148 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2149 Uri aFileUri("");
2150 result = g_fah->CreateFile(srcDir, "a.txt", aFileUri);
2151 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2152 int fd = -1;
2153 result = g_fah->OpenFile(aFileUri, WRITE_READ, fd);
2154 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2155 char buff[] = "Copy test content for a.txt";
2156 ssize_t aFileSize = write(fd, buff, sizeof(buff));
2157 EXPECT_EQ(aFileSize, sizeof(buff));
2158 close(fd);
2159 Uri bFileUri("");
2160 result = g_fah->CreateFile(srcDir, "b.txt", bFileUri);
2161 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2162 result = g_fah->Mkdir(parentUri, "Copy_0001_dest", destDir);
2163 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2164
2165 std::vector<CopyResult> copyResult;
2166 result = g_fah->Copy(srcDir, destDir, copyResult, false);
2167 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2168 EXPECT_EQ(copyResult.size(), 0);
2169
2170 result = g_fah->Delete(srcDir);
2171 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2172 result = g_fah->Delete(destDir);
2173 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2174 }
2175 } catch (...) {
2176 GTEST_LOG_(ERROR) << "external_file_access_Copy_0001 occurs an exception.";
2177 }
2178 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0001";
2179 }
2180
2181 /**
2182 * @tc.number: user_file_service_external_file_access_Copy_0002
2183 * @tc.name: external_file_access_Copy_0002
2184 * @tc.desc: Test function of Copy interface, copy a empty directory
2185 * @tc.size: MEDIUM
2186 * @tc.type: FUNC
2187 * @tc.level Level 1
2188 * @tc.require: I7QXVD
2189 */
2190 HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0002, testing::ext::TestSize.Level1)
2191 {
2192 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0002";
2193 try {
2194 vector<RootInfo> info;
2195 int result = g_fah->GetRoots(info);
2196 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2197 for (size_t i = 0; i < info.size(); i++) {
2198 Uri parentUri(info[i].uri);
2199 Uri srcDir("");
2200 result = g_fah->Mkdir(parentUri, "Copy_0002_src", srcDir);
2201 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2202 Uri destDir("");
2203 result = g_fah->Mkdir(parentUri, "Copy_0002_dest", destDir);
2204 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2205
2206 std::vector<CopyResult> copyResult;
2207 result = g_fah->Copy(srcDir, destDir, copyResult, false);
2208 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2209 EXPECT_EQ(copyResult.size(), 0);
2210
2211 result = g_fah->Delete(srcDir);
2212 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2213 result = g_fah->Delete(destDir);
2214 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2215 }
2216 } catch (...) {
2217 GTEST_LOG_(ERROR) << "external_file_access_Copy_0002 occurs an exception.";
2218 }
2219 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0002";
2220 }
2221
2222 /**
2223 * @tc.number: user_file_service_external_file_access_Copy_0003
2224 * @tc.name: external_file_access_Copy_0003
2225 * @tc.desc: Test function of Copy interface, copy a file with the same name and argument of force is true
2226 * @tc.size: MEDIUM
2227 * @tc.type: FUNC
2228 * @tc.level Level 1
2229 * @tc.require: I7QXVD
2230 */
2231 HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0003, testing::ext::TestSize.Level1)
2232 {
2233 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0003";
2234 try {
2235 vector<RootInfo> info;
2236 int result = g_fah->GetRoots(info);
2237 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2238 for (size_t i = 0; i < info.size(); i++) {
2239 Uri parentUri(info[i].uri);
2240 Uri srcDir("");
2241 result = g_fah->Mkdir(parentUri, "Copy_0003_src", srcDir);
2242 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2243 Uri srcFile("");
2244 result = g_fah->CreateFile(srcDir, "a.txt", srcFile);
2245 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2246 int fd = -1;
2247 result = g_fah->OpenFile(srcFile, WRITE_READ, fd);
2248 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2249 char buff[] = "Copy test content for a.txt";
2250 ssize_t srcFileSize = write(fd, buff, sizeof(buff));
2251 EXPECT_EQ(srcFileSize, sizeof(buff));
2252 close(fd);
2253
2254 Uri destDir("");
2255 result = g_fah->Mkdir(parentUri, "Copy_0003_dest", destDir);
2256 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2257 Uri existFile("");
2258 result = g_fah->CreateFile(destDir, "a.txt", existFile);
2259 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2260
2261 std::vector<CopyResult> copyResult;
2262 result = g_fah->Copy(srcFile, destDir, copyResult, true);
2263 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2264 EXPECT_EQ(copyResult.size(), 0);
2265
2266 result = g_fah->OpenFile(existFile, WRITE_READ, fd);
2267 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2268 ssize_t destFileSize = read(fd, buff, sizeof(buff));
2269 EXPECT_EQ(srcFileSize, destFileSize);
2270 close(fd);
2271
2272 result = g_fah->Delete(srcDir);
2273 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2274 result = g_fah->Delete(destDir);
2275 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2276 }
2277 } catch (...) {
2278 GTEST_LOG_(ERROR) << "external_file_access_Copy_0003 occurs an exception.";
2279 }
2280 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0003";
2281 }
2282
2283 /**
2284 * @tc.number: user_file_service_external_file_access_Copy_0004
2285 * @tc.name: external_file_access_Copy_0004
2286 * @tc.desc: Test function of Copy interface, copy a file with the same name and argument of force is false
2287 * @tc.size: MEDIUM
2288 * @tc.type: FUNC
2289 * @tc.level Level 1
2290 * @tc.require: I7QXVD
2291 */
2292 HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0004, testing::ext::TestSize.Level1)
2293 {
2294 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0004";
2295 try {
2296 vector<RootInfo> info;
2297 int result = g_fah->GetRoots(info);
2298 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2299 for (size_t i = 0; i < info.size(); i++) {
2300 Uri parentUri(info[i].uri);
2301 Uri srcDir("");
2302 result = g_fah->Mkdir(parentUri, "Copy_0004_src", srcDir);
2303 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2304 Uri srcFile("");
2305 result = g_fah->CreateFile(srcDir, "a.txt", srcFile);
2306 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2307 int fd = -1;
2308 result = g_fah->OpenFile(srcFile, WRITE_READ, fd);
2309 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2310 char buff[] = "Copy test content for a.txt";
2311 ssize_t srcFileSize = write(fd, buff, sizeof(buff));
2312 EXPECT_EQ(srcFileSize, sizeof(buff));
2313 close(fd);
2314
2315 Uri destDir("");
2316 result = g_fah->Mkdir(parentUri, "Copy_0004_dest", destDir);
2317 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2318 Uri existFile("");
2319 result = g_fah->CreateFile(destDir, "a.txt", existFile);
2320 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2321
2322 std::vector<CopyResult> copyResult;
2323 result = g_fah->Copy(srcFile, destDir, copyResult, false);
2324 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2325 EXPECT_EQ(copyResult.size(), 1);
2326
2327 result = g_fah->OpenFile(existFile, WRITE_READ, fd);
2328 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2329 ssize_t destFileSize = read(fd, buff, sizeof(buff));
2330 EXPECT_EQ(destFileSize, 0);
2331 close(fd);
2332
2333 result = g_fah->Delete(srcDir);
2334 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2335 result = g_fah->Delete(destDir);
2336 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2337 }
2338 } catch (...) {
2339 GTEST_LOG_(ERROR) << "external_file_access_Copy_0004 occurs an exception.";
2340 }
2341 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0004";
2342 }
2343
2344 /**
2345 * @tc.number: user_file_service_external_file_access_Copy_0005
2346 * @tc.name: external_file_access_Copy_0005
2347 * @tc.desc: Test function of Copy interface, copy a file with the same name and no force argument
2348 * @tc.size: MEDIUM
2349 * @tc.type: FUNC
2350 * @tc.level Level 1
2351 * @tc.require: I7QXVD
2352 */
2353 HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0005, testing::ext::TestSize.Level1)
2354 {
2355 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0005";
2356 try {
2357 vector<RootInfo> info;
2358 int result = g_fah->GetRoots(info);
2359 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2360 for (size_t i = 0; i < info.size(); i++) {
2361 Uri parentUri(info[i].uri);
2362 Uri srcDir("");
2363 result = g_fah->Mkdir(parentUri, "Copy_0005_src", srcDir);
2364 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2365 Uri srcFile("");
2366 result = g_fah->CreateFile(srcDir, "a.txt", srcFile);
2367 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2368 int fd = -1;
2369 result = g_fah->OpenFile(srcFile, WRITE_READ, fd);
2370 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2371 char buff[] = "Copy test content for a.txt";
2372 ssize_t srcFileSize = write(fd, buff, sizeof(buff));
2373 EXPECT_EQ(srcFileSize, sizeof(buff));
2374 close(fd);
2375
2376 Uri destDir("");
2377 result = g_fah->Mkdir(parentUri, "Copy_0005_dest", destDir);
2378 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2379 Uri existFile("");
2380 result = g_fah->CreateFile(destDir, "a.txt", existFile);
2381 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2382
2383 std::vector<CopyResult> copyResult;
2384 result = g_fah->Copy(srcFile, destDir, copyResult);
2385 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2386 EXPECT_GT(copyResult.size(), 0);
2387
2388 result = g_fah->OpenFile(existFile, WRITE_READ, fd);
2389 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2390 ssize_t destFileSize = read(fd, buff, sizeof(buff));
2391 EXPECT_EQ(destFileSize, 0);
2392 close(fd);
2393
2394 result = g_fah->Delete(srcDir);
2395 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2396 result = g_fah->Delete(destDir);
2397 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2398 }
2399 } catch (...) {
2400 GTEST_LOG_(ERROR) << "external_file_access_Copy_0005 occurs an exception.";
2401 }
2402 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0005";
2403 }
2404
2405 /**
2406 * @tc.number: user_file_service_external_file_access_Copy_0006
2407 * @tc.name: external_file_access_Copy_0006
2408 * @tc.desc: Test function of Copy interface, copy a directory with the same name and argument of force is true
2409 * @tc.size: MEDIUM
2410 * @tc.type: FUNC
2411 * @tc.level Level 1
2412 * @tc.require: I7QXVD
2413 */
2414 HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0006, testing::ext::TestSize.Level1)
2415 {
2416 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0006";
2417 try {
2418 vector<RootInfo> info;
2419 int result = g_fah->GetRoots(info);
2420 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2421 for (size_t i = 0; i < info.size(); i++) {
2422 Uri parentUri(info[i].uri);
2423 Uri srcDir("");
2424 result = g_fah->Mkdir(parentUri, "Copy_0006_src", srcDir);
2425 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2426 Uri aFileUri("");
2427 result = g_fah->CreateFile(srcDir, "a.txt", aFileUri);
2428 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2429 Uri bFileUri("");
2430 result = g_fah->CreateFile(srcDir, "b.txt", bFileUri);
2431 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2432 int fd = -1;
2433 result = g_fah->OpenFile(bFileUri, WRITE_READ, fd);
2434 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2435 char buff[] = "Copy test content for b.txt";
2436 ssize_t srcFileSize = write(fd, buff, sizeof(buff));
2437 EXPECT_EQ(srcFileSize, sizeof(buff));
2438 close(fd);
2439
2440 Uri destDir("");
2441 result = g_fah->Mkdir(parentUri, "Copy_0006_dest", destDir);
2442 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2443 Uri destSrcDir("");
2444 result = g_fah->Mkdir(destDir, "Copy_0006_src", destSrcDir);
2445 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2446 result = g_fah->CreateFile(destSrcDir, "b.txt", bFileUri);
2447 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2448
2449 std::vector<CopyResult> copyResult;
2450 result = g_fah->Copy(srcDir, destDir, copyResult, true);
2451 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2452 EXPECT_EQ(copyResult.size(), 0);
2453
2454 result = g_fah->OpenFile(bFileUri, WRITE_READ, fd);
2455 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2456 ssize_t destFileSize = read(fd, buff, sizeof(buff));
2457 EXPECT_EQ(destFileSize, srcFileSize);
2458 close(fd);
2459
2460 result = g_fah->Delete(srcDir);
2461 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2462 result = g_fah->Delete(destDir);
2463 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2464 }
2465 } catch (...) {
2466 GTEST_LOG_(ERROR) << "external_file_access_Copy_0006 occurs an exception.";
2467 }
2468 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0006";
2469 }
2470
2471 /**
2472 * @tc.number: user_file_service_external_file_access_Copy_0007
2473 * @tc.name: external_file_access_Copy_0007
2474 * @tc.desc: Test function of Copy interface, copy a directory with the same name and argument of force is false
2475 * @tc.size: MEDIUM
2476 * @tc.type: FUNC
2477 * @tc.level Level 1
2478 * @tc.require: I7QXVD
2479 */
2480 HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0007, testing::ext::TestSize.Level1)
2481 {
2482 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0007";
2483 try {
2484 vector<RootInfo> info;
2485 int result = g_fah->GetRoots(info);
2486 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2487 for (size_t i = 0; i < info.size(); i++) {
2488 Uri parentUri(info[i].uri);
2489 Uri srcDir("");
2490 result = g_fah->Mkdir(parentUri, "Copy_0007_src", srcDir);
2491 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2492 Uri aFileUri("");
2493 result = g_fah->CreateFile(srcDir, "a.txt", aFileUri);
2494 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2495 Uri bFileUri("");
2496 result = g_fah->CreateFile(srcDir, "b.txt", bFileUri);
2497 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2498 int fd = -1;
2499 result = g_fah->OpenFile(bFileUri, WRITE_READ, fd);
2500 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2501 char buff[] = "Copy test content for b.txt";
2502 ssize_t bFileSize = write(fd, buff, sizeof(buff));
2503 EXPECT_EQ(bFileSize, sizeof(buff));
2504 close(fd);
2505
2506 Uri destDir("");
2507 result = g_fah->Mkdir(parentUri, "Copy_0007_dest", destDir);
2508 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2509 Uri destSrcDir("");
2510 result = g_fah->Mkdir(destDir, "Copy_0007_src", destSrcDir);
2511 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2512 Uri destFileUri("");
2513 result = g_fah->CreateFile(destSrcDir, "b.txt", destFileUri);
2514 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2515
2516 std::vector<CopyResult> copyResult;
2517 result = g_fah->Copy(srcDir, destDir, copyResult, false);
2518 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2519 EXPECT_EQ(copyResult.size(), 1);
2520 EXPECT_EQ(copyResult[0].sourceUri, bFileUri.ToString());
2521 EXPECT_EQ(copyResult[0].destUri, destFileUri.ToString());
2522
2523 result = g_fah->Delete(srcDir);
2524 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2525 result = g_fah->Delete(destDir);
2526 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2527 }
2528 } catch (...) {
2529 GTEST_LOG_(ERROR) << "external_file_access_Copy_0007 occurs an exception.";
2530 }
2531 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0007";
2532 }
2533
2534 /**
2535 * @tc.number: user_file_service_external_file_access_Copy_0008
2536 * @tc.name: external_file_access_Copy_0008
2537 * @tc.desc: Test function of Copy interface, copy a directory with the same name and no force argument
2538 * @tc.size: MEDIUM
2539 * @tc.type: FUNC
2540 * @tc.level Level 1
2541 * @tc.require: I7QXVD
2542 */
2543 HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0008, testing::ext::TestSize.Level1)
2544 {
2545 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0008";
2546 try {
2547 vector<RootInfo> info;
2548 int result = g_fah->GetRoots(info);
2549 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2550 for (size_t i = 0; i < info.size(); i++) {
2551 Uri parentUri(info[i].uri);
2552 Uri srcDir("");
2553 result = g_fah->Mkdir(parentUri, "Copy_0008_src", srcDir);
2554 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2555 Uri aFileUri("");
2556 result = g_fah->CreateFile(srcDir, "a.txt", aFileUri);
2557 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2558 Uri bFileUri("");
2559 result = g_fah->CreateFile(srcDir, "b.txt", bFileUri);
2560 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2561
2562 Uri destDir("");
2563 result = g_fah->Mkdir(parentUri, "Copy_0008_dest", destDir);
2564 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2565 Uri destSrcDir("");
2566 result = g_fah->Mkdir(destDir, "Copy_0008_src", destSrcDir);
2567 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2568 result = g_fah->CreateFile(destSrcDir, "b.txt", bFileUri);
2569 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2570
2571 std::vector<CopyResult> copyResult;
2572 result = g_fah->Copy(srcDir, destDir, copyResult);
2573 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2574 EXPECT_EQ(copyResult.size(), 1);
2575
2576 result = g_fah->Delete(srcDir);
2577 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2578 result = g_fah->Delete(destDir);
2579 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2580 }
2581 } catch (...) {
2582 GTEST_LOG_(ERROR) << "external_file_access_Copy_0008 occurs an exception.";
2583 }
2584 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0008";
2585 }
2586
2587 /**
2588 * @tc.number: user_file_service_external_file_access_Copy_0009
2589 * @tc.name: external_file_access_Copy_0009
2590 * @tc.desc: Test function of Copy interface, copy directory and file between different disks
2591 * @tc.size: MEDIUM
2592 * @tc.type: FUNC
2593 * @tc.level Level 1
2594 * @tc.require: I7QXVD
2595 */
2596 HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0009, testing::ext::TestSize.Level1)
2597 {
2598 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0009";
2599 try {
2600 vector<RootInfo> info;
2601 int result = g_fah->GetRoots(info);
2602 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2603 for (size_t i = 0; i < info.size(); i++) {
2604 Uri parentUri(info[i].uri);
2605 Uri srcDir("");
2606 result = g_fah->Mkdir(parentUri, "Copy_0009_src", srcDir);
2607 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2608 Uri aFileUri("");
2609 result = g_fah->CreateFile(srcDir, "a.txt", aFileUri);
2610 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2611 Uri bFileUri("");
2612 result = g_fah->CreateFile(srcDir, "b.txt", bFileUri);
2613 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2614 int fd = -1;
2615 result = g_fah->OpenFile(bFileUri, WRITE_READ, fd);
2616 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2617 char buff[] = "Copy test content for b.txt";
2618 ssize_t srcFileSize = write(fd, buff, sizeof(buff));
2619 EXPECT_EQ(srcFileSize, sizeof(buff));
2620 close(fd);
2621
2622 for (size_t j = i + 1; j < info.size(); j++) {
2623 Uri targetUri(info[j].uri);
2624 Uri destDir("");
2625 result = g_fah->Mkdir(targetUri, "Copy_0009_dest", destDir);
2626 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2627 Uri destSrcDir("");
2628 result = g_fah->Mkdir(destDir, "Copy_0009_src", destSrcDir);
2629 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2630 result = g_fah->CreateFile(destSrcDir, "b.txt", bFileUri);
2631 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2632
2633 std::vector<CopyResult> copyResult;
2634 result = g_fah->Copy(srcDir, destDir, copyResult, true);
2635 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2636 EXPECT_EQ(copyResult.size(), 0);
2637
2638 result = g_fah->OpenFile(bFileUri, WRITE_READ, fd);
2639 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2640 ssize_t destFileSize = read(fd, buff, sizeof(buff));
2641 EXPECT_EQ(destFileSize, srcFileSize);
2642 close(fd);
2643
2644 result = g_fah->Delete(destDir);
2645 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2646 }
2647 result = g_fah->Delete(srcDir);
2648 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2649 }
2650 } catch (...) {
2651 GTEST_LOG_(ERROR) << "external_file_access_Copy_0009 occurs an exception.";
2652 }
2653 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0009";
2654 }
2655
2656 /**
2657 * @tc.number: user_file_service_external_file_access_Rename_0000
2658 * @tc.name: external_file_access_Rename_0000
2659 * @tc.desc: Test function of Rename interface for SUCCESS which rename file.
2660 * @tc.size: MEDIUM
2661 * @tc.type: FUNC
2662 * @tc.level Level 1
2663 * @tc.require: SR000H0387
2664 */
2665 HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0000, testing::ext::TestSize.Level1)
2666 {
2667 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0000";
2668 try {
2669 vector<RootInfo> info;
2670 int result = g_fah->GetRoots(info);
2671 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2672 for (size_t i = 0; i < info.size(); i++) {
2673 Uri parentUri(info[i].uri);
2674 Uri newDirUriTest("");
2675 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
2676 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2677 Uri testUri("");
2678 result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri);
2679 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2680 Uri renameUri("");
2681 result = g_fah->Rename(testUri, "test2.txt", renameUri);
2682 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2683 GTEST_LOG_(INFO) << "Rename_0000 result:" << result;
2684 result = g_fah->Delete(newDirUriTest);
2685 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2686 }
2687 } catch (...) {
2688 GTEST_LOG_(ERROR) << "external_file_access_Rename_0000 occurs an exception.";
2689 }
2690 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0000";
2691 }
2692
2693 /**
2694 * @tc.number: user_file_service_external_file_access_Rename_0001
2695 * @tc.name: external_file_access_Rename_0001
2696 * @tc.desc: Test function of Rename interface for SUCCESS which rename folder.
2697 * @tc.size: MEDIUM
2698 * @tc.type: FUNC
2699 * @tc.level Level 1
2700 * @tc.require: SR000H0387
2701 */
2702 HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0001, testing::ext::TestSize.Level1)
2703 {
2704 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0001";
2705 try {
2706 vector<RootInfo> info;
2707 int result = g_fah->GetRoots(info);
2708 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2709 for (size_t i = 0; i < info.size(); i++) {
2710 Uri parentUri(info[i].uri);
2711 Uri newDirUriTest("");
2712 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
2713 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2714 Uri renameUri("");
2715 result = g_fah->Rename(newDirUriTest, "testRename", renameUri);
2716 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2717 GTEST_LOG_(INFO) << "Rename_0001 result:" << result;
2718 result = g_fah->Delete(renameUri);
2719 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2720 }
2721 } catch (...) {
2722 GTEST_LOG_(ERROR) << "external_file_access_Rename_0001 occurs an exception.";
2723 }
2724 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0001";
2725 }
2726
2727 /**
2728 * @tc.number: user_file_service_external_file_access_Rename_0002
2729 * @tc.name: external_file_access_Rename_0002
2730 * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is null.
2731 * @tc.size: MEDIUM
2732 * @tc.type: FUNC
2733 * @tc.level Level 1
2734 * @tc.require: SR000H0387
2735 */
2736 HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0002, testing::ext::TestSize.Level1)
2737 {
2738 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0002";
2739 try {
2740 Uri renameUri("");
2741 Uri sourceFileUri("");
2742 int result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri);
2743 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2744 GTEST_LOG_(INFO) << "Rename_0002 result:" << result;
2745 } catch (...) {
2746 GTEST_LOG_(ERROR) << "external_file_access_Rename_0002 occurs an exception.";
2747 }
2748 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0002";
2749 }
2750
2751 /**
2752 * @tc.number: user_file_service_external_file_access_Rename_0003
2753 * @tc.name: external_file_access_Rename_0003
2754 * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is absolute path.
2755 * @tc.size: MEDIUM
2756 * @tc.type: FUNC
2757 * @tc.level Level 1
2758 * @tc.require: SR000H0387
2759 */
2760 HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0003, testing::ext::TestSize.Level1)
2761 {
2762 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0003";
2763 try {
2764 vector<RootInfo> info;
2765 int result = g_fah->GetRoots(info);
2766 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2767 for (size_t i = 0; i < info.size(); i++) {
2768 Uri parentUri(info[i].uri);
2769 Uri newDirUriTest("");
2770 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
2771 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2772 Uri testUri("");
2773 result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri);
2774 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2775 Uri renameUri("");
2776 Uri sourceFileUri("storage/media/100/local/files/Download/test/test.txt");
2777 result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri);
2778 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2779 GTEST_LOG_(INFO) << "Rename_0003 result:" << result;
2780 result = g_fah->Delete(newDirUriTest);
2781 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2782 }
2783 } catch (...) {
2784 GTEST_LOG_(ERROR) << "external_file_access_Rename_0003 occurs an exception.";
2785 }
2786 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0003";
2787 }
2788
2789 /**
2790 * @tc.number: user_file_service_external_file_access_Rename_0004
2791 * @tc.name: external_file_access_Rename_0004
2792 * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is special symbols.
2793 * @tc.size: MEDIUM
2794 * @tc.type: FUNC
2795 * @tc.level Level 1
2796 * @tc.require: SR000H0387
2797 */
2798 HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0004, testing::ext::TestSize.Level1)
2799 {
2800 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0004";
2801 try {
2802 Uri renameUri("");
2803 Uri sourceFileUri("~!@#$%^&*()_");
2804 int result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri);
2805 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2806 GTEST_LOG_(INFO) << "Rename_0004 result:" << result;
2807 } catch (...) {
2808 GTEST_LOG_(ERROR) << "external_file_access_Rename_0004 occurs an exception.";
2809 }
2810 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0004";
2811 }
2812
2813 /**
2814 * @tc.number: user_file_service_external_file_access_Rename_0005
2815 * @tc.name: external_file_access_Rename_0005
2816 * @tc.desc: Test function of Rename interface for ERROR which displayName is null.
2817 * @tc.size: MEDIUM
2818 * @tc.type: FUNC
2819 * @tc.level Level 1
2820 * @tc.require: SR000H0387
2821 */
2822 HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0005, testing::ext::TestSize.Level1)
2823 {
2824 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0005";
2825 try {
2826 vector<RootInfo> info;
2827 int result = g_fah->GetRoots(info);
2828 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2829 for (size_t i = 0; i < info.size(); i++) {
2830 Uri parentUri(info[i].uri);
2831 Uri newDirUriTest("");
2832 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
2833 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2834 Uri testUri("");
2835 result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri);
2836 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2837 Uri renameUri("");
2838 result = g_fah->Rename(testUri, "", renameUri);
2839 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
2840 GTEST_LOG_(INFO) << "Rename_0005 result:" << result;
2841 result = g_fah->Delete(newDirUriTest);
2842 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2843 }
2844 } catch (...) {
2845 GTEST_LOG_(ERROR) << "external_file_access_Rename_0005 occurs an exception.";
2846 }
2847 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0005";
2848 }
2849
RenameTdd(shared_ptr<FileAccessHelper> fahs,Uri sourceFile,std::string displayName,Uri newFile)2850 static void RenameTdd(shared_ptr<FileAccessHelper> fahs, Uri sourceFile, std::string displayName, Uri newFile)
2851 {
2852 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_RenameTdd";
2853 int ret = fahs->Rename(sourceFile, displayName, newFile);
2854 if (ret != OHOS::FileAccessFwk::ERR_OK) {
2855 GTEST_LOG_(ERROR) << "RenameTdd get result error, code:" << ret;
2856 return;
2857 }
2858 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
2859 g_num++;
2860 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_RenameTdd";
2861 }
2862
2863 /**
2864 * @tc.number: user_file_service_external_file_access_Rename_0006
2865 * @tc.name: external_file_access_Rename_0006
2866 * @tc.desc: Test function of Rename interface for SUCCESS which Concurrent.
2867 * @tc.size: MEDIUM
2868 * @tc.type: FUNC
2869 * @tc.level Level 1
2870 * @tc.require: SR000H0386
2871 */
2872 HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0006, testing::ext::TestSize.Level1)
2873 {
2874 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0006";
2875 try {
2876 vector<RootInfo> info;
2877 int result = g_fah->GetRoots(info);
2878 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2879 for (size_t i = 0; i < info.size(); i++) {
2880 Uri parentUri(info[i].uri);
2881 Uri newDirUriTest("");
2882 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
2883 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2884 Uri testUri("");
2885 std::string displayName1 = "test1.txt";
2886 std::string displayName2 = "test2.txt";
2887 Uri renameUri("");
2888 result = g_fah->CreateFile(newDirUriTest, displayName1, testUri);
2889 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2890 g_num = 0;
2891 for (int j = 0; j < INIT_THREADS_NUMBER; j++) {
2892 std::thread execthread(RenameTdd, g_fah, testUri, displayName2, renameUri);
2893 execthread.join();
2894 }
2895 EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER);
2896 result = g_fah->Delete(newDirUriTest);
2897 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2898 }
2899 } catch (...) {
2900 GTEST_LOG_(ERROR) << "external_file_access_Rename_0006 occurs an exception.";
2901 }
2902 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0006";
2903 }
2904
2905 /**
2906 * @tc.number: user_file_service_external_file_access_Rename_0007
2907 * @tc.name: external_file_access_Rename_0007
2908 * @tc.desc: Test function of Rename interface for ERROR because of GetProxyByUri failed.
2909 * @tc.size: MEDIUM
2910 * @tc.type: FUNC
2911 * @tc.level Level 1
2912 * @tc.require: SR000H0387
2913 */
2914 HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0007, testing::ext::TestSize.Level1)
2915 {
2916 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0007";
2917 try {
2918 vector<RootInfo> info;
2919 int result = g_fah->GetRoots(info);
2920 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2921 for (size_t i = 0; i < info.size(); i++) {
2922 Uri parentUri(info[i].uri);
2923 Uri newDirUriTest("");
2924 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
2925 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2926
2927 std::string str = newDirUriTest.ToString();
2928 if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) {
2929 GTEST_LOG_(ERROR) << "replace BundleName failed.";
2930 EXPECT_TRUE(false);
2931 }
2932 Uri testUri(str);
2933 Uri renameUri("");
2934 result = g_fah->Rename(testUri, "test.txt", renameUri);
2935 EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS);
2936 GTEST_LOG_(INFO) << "Rename_0007 result:" << result;
2937 result = g_fah->Delete(newDirUriTest);
2938 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2939 }
2940 } catch (...) {
2941 GTEST_LOG_(ERROR) << "external_file_access_Rename_0007 occurs an exception.";
2942 }
2943 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0007";
2944 }
2945
2946 /**
2947 * @tc.number: user_file_service_external_file_access_Rename_0008
2948 * @tc.name: external_file_access_Rename_0008
2949 * @tc.desc: Test function of Rename interface for SUCCESS which rename file, the display name is chinese.
2950 * @tc.size: MEDIUM
2951 * @tc.type: FUNC
2952 * @tc.level Level 1
2953 * @tc.require: I70SX9
2954 */
2955 HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0008, testing::ext::TestSize.Level1)
2956 {
2957 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0008";
2958 try {
2959 vector<RootInfo> info;
2960 int result = g_fah->GetRoots(info);
2961 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2962 for (size_t i = 0; i < info.size(); i++) {
2963 Uri parentUri(info[i].uri);
2964 Uri newDirUriTest("");
2965 result = g_fah->Mkdir(parentUri, "测试目录", newDirUriTest);
2966 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2967 EXPECT_EQ(newDirUriTest.ToString().find("测试目录"), std::string::npos);
2968 Uri testUri("");
2969 result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri);
2970 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2971 Uri renameUri("");
2972 result = g_fah->Rename(testUri, "测试文件.txt", renameUri);
2973 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2974 EXPECT_EQ(renameUri.ToString().find("测试文件.txt"), std::string::npos);
2975 GTEST_LOG_(INFO) << "Rename_0008 result:" << result;
2976 result = g_fah->Delete(newDirUriTest);
2977 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
2978 }
2979 } catch (...) {
2980 GTEST_LOG_(ERROR) << "external_file_access_Rename_0008 occurs an exception.";
2981 }
2982 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0008";
2983 }
2984
2985 /**
2986 * @tc.number: user_file_service_external_file_access_Rename_0009
2987 * @tc.name: external_file_access_Rename_0009
2988 * @tc.desc: Test function of Rename interface for SUCCESS which rename folder, the display name is chinese.
2989 * @tc.size: MEDIUM
2990 * @tc.type: FUNC
2991 * @tc.level Level 1
2992 * @tc.require: I70SX9
2993 */
2994 HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0009, testing::ext::TestSize.Level1)
2995 {
2996 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0009";
2997 try {
2998 vector<RootInfo> info;
2999 int result = g_fah->GetRoots(info);
3000 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3001 for (size_t i = 0; i < info.size(); i++) {
3002 Uri parentUri(info[i].uri);
3003 Uri newDirUriTest("");
3004 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
3005 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3006 Uri testUri("");
3007 result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri);
3008 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3009 Uri renameUri("");
3010 result = g_fah->Rename(newDirUriTest, "重命名目录", renameUri);
3011 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3012 EXPECT_EQ(renameUri.ToString().find("重命名目录"), std::string::npos);
3013 GTEST_LOG_(INFO) << "Rename_0009 result:" << result;
3014 result = g_fah->Delete(renameUri);
3015 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3016 }
3017 } catch (...) {
3018 GTEST_LOG_(ERROR) << "external_file_access_Rename_0009 occurs an exception.";
3019 }
3020 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0009";
3021 }
3022
3023 /**
3024 * @tc.number: user_file_service_external_file_access_ListFile_0000
3025 * @tc.name: external_file_access_ListFile_0000
3026 * @tc.desc: Test function of ListFile interface for SUCCESS.
3027 * @tc.size: MEDIUM
3028 * @tc.type: FUNC
3029 * @tc.level Level 1
3030 * @tc.require: SR000H0387
3031 */
3032 HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0000, testing::ext::TestSize.Level1)
3033 {
3034 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0000";
3035 try {
3036 vector<RootInfo> info;
3037 int result = g_fah->GetRoots(info);
3038 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3039 for (size_t i = 0; i < info.size(); i++) {
3040 Uri parentUri(info[i].uri);
3041 Uri newDirUriTest("");
3042 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
3043 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3044 Uri testUri("");
3045 result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_0000.txt", testUri);
3046 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3047 FileInfo fileInfo;
3048 fileInfo.uri = newDirUriTest.ToString();
3049 int64_t offset = 0;
3050 int64_t maxCount = 1000;
3051 std::vector<FileInfo> fileInfoVec;
3052 FileFilter filter;
3053 result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3054 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3055 EXPECT_GT(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK);
3056 result = g_fah->Delete(newDirUriTest);
3057 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3058 }
3059 } catch (...) {
3060 GTEST_LOG_(ERROR) << "external_file_access_ListFile_0000 occurs an exception.";
3061 }
3062 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0000";
3063 }
3064
3065 /**
3066 * @tc.number: user_file_service_external_file_access_ListFile_0001
3067 * @tc.name: external_file_access_ListFile_0001
3068 * @tc.desc: Test function of ListFile interface for ERROR which Uri is nullptr.
3069 * @tc.size: MEDIUM
3070 * @tc.type: FUNC
3071 * @tc.level Level 1
3072 * @tc.require: SR000H0387
3073 */
3074 HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0001, testing::ext::TestSize.Level1)
3075 {
3076 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0001";
3077 try {
3078 Uri sourceFileUri("");
3079 FileInfo fileInfo;
3080 fileInfo.uri = sourceFileUri.ToString();
3081 int64_t offset = 0;
3082 int64_t maxCount = 1000;
3083 std::vector<FileInfo> fileInfoVec;
3084 FileFilter filter;
3085 int result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3086 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
3087 EXPECT_EQ(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK);
3088 } catch (...) {
3089 GTEST_LOG_(ERROR) << "external_file_access_ListFile_0001 occurs an exception.";
3090 }
3091 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0001";
3092 }
3093
3094 /**
3095 * @tc.number: user_file_service_external_file_access_ListFile_0002
3096 * @tc.name: external_file_access_ListFile_0002
3097 * @tc.desc: Test function of ListFile interface for ERROR which sourceFileUri is absolute path.
3098 * @tc.size: MEDIUM
3099 * @tc.type: FUNC
3100 * @tc.level Level 1
3101 * @tc.require: SR000H0387
3102 */
3103 HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0002, testing::ext::TestSize.Level1)
3104 {
3105 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0002";
3106 try {
3107 vector<RootInfo> info;
3108 int result = g_fah->GetRoots(info);
3109 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3110 for (size_t i = 0; i < info.size(); i++) {
3111 Uri parentUri(info[i].uri);
3112 Uri newDirUriTest("");
3113 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
3114 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3115 Uri testUri("");
3116 result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri);
3117 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3118 Uri sourceFileUri("storage/media/100/local/files/Download/test/test.txt");
3119 FileInfo fileInfo;
3120 fileInfo.uri = sourceFileUri.ToString();
3121 Uri sourceFile(fileInfo.uri);
3122 int64_t offset = 0;
3123 int64_t maxCount = 1000;
3124 std::vector<FileInfo> fileInfoVec;
3125 FileFilter filter;
3126 result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3127 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
3128 EXPECT_EQ(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK);
3129 result = g_fah->Delete(newDirUriTest);
3130 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3131 }
3132 } catch (...) {
3133 GTEST_LOG_(ERROR) << "external_file_access_ListFile_0002 occurs an exception.";
3134 }
3135 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0002";
3136 }
3137
3138 /**
3139 * @tc.number: user_file_service_external_file_access_ListFile_0003
3140 * @tc.name: external_file_access_ListFile_0003
3141 * @tc.desc: Test function of ListFile interface for ERROR which sourceFileUri is special symbols.
3142 * @tc.size: MEDIUM
3143 * @tc.type: FUNC
3144 * @tc.level Level 1
3145 * @tc.require: SR000H0387
3146 */
3147 HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0003, testing::ext::TestSize.Level1)
3148 {
3149 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0003";
3150 try {
3151 Uri sourceFileUri("~!@#$%^&*()_");
3152 FileInfo fileInfo;
3153 fileInfo.uri = sourceFileUri.ToString();
3154 Uri sourceFile(fileInfo.uri);
3155 int64_t offset = 0;
3156 int64_t maxCount = 1000;
3157 std::vector<FileInfo> fileInfoVec;
3158 FileFilter filter;
3159 int result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3160 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
3161 EXPECT_EQ(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK);
3162 } catch (...) {
3163 GTEST_LOG_(ERROR) << "external_file_access_ListFile_0003 occurs an exception.";
3164 }
3165 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0003";
3166 }
3167
ListFileTdd(FileInfo fileInfo,int offset,int maxCount,FileFilter filter,std::vector<FileInfo> fileInfoVec)3168 static void ListFileTdd(FileInfo fileInfo, int offset, int maxCount, FileFilter filter,
3169 std::vector<FileInfo> fileInfoVec)
3170 {
3171 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFileTdd";
3172 int ret = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3173 if (ret != OHOS::FileAccessFwk::ERR_OK) {
3174 GTEST_LOG_(ERROR) << "ListFile get result error, code:" << ret;
3175 return;
3176 }
3177 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
3178 g_num++;
3179 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFileTdd";
3180 }
3181
3182 /**
3183 * @tc.number: user_file_service_external_file_access_ListFile_0004
3184 * @tc.name: external_file_access_ListFile_0004
3185 * @tc.desc: Test function of ListFile interface for SUCCESS which Concurrent.
3186 * @tc.size: MEDIUM
3187 * @tc.type: FUNC
3188 * @tc.level Level 1
3189 * @tc.require: SR000H0386
3190 */
3191 HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0004, testing::ext::TestSize.Level1)
3192 {
3193 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0004";
3194 try {
3195 vector<RootInfo> info;
3196 int result = g_fah->GetRoots(info);
3197 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3198 for (size_t i = 0; i < info.size(); i++) {
3199 Uri parentUri(info[i].uri);
3200 Uri newDirUriTest("");
3201 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
3202 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3203 Uri testUri("");
3204 result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_0004.txt", testUri);
3205 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3206 FileInfo fileInfo;
3207 fileInfo.uri = newDirUriTest.ToString();
3208 int offset = 0;
3209 int maxCount = 1000;
3210 std::vector<FileInfo> fileInfoVec;
3211 FileFilter filter;
3212 g_num = 0;
3213 for (int j = 0; j < INIT_THREADS_NUMBER; j++) {
3214 std::thread execthread(ListFileTdd, fileInfo, offset, maxCount, filter, fileInfoVec);
3215 execthread.join();
3216 }
3217 EXPECT_EQ(g_num, INIT_THREADS_NUMBER);
3218 result = g_fah->Delete(newDirUriTest);
3219 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3220 }
3221 } catch (...) {
3222 GTEST_LOG_(ERROR) << "external_file_access_ListFile_0004 occurs an exception.";
3223 }
3224 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0004";
3225 }
3226
3227 /**
3228 * @tc.number: user_file_service_external_file_access_ListFile_0005
3229 * @tc.name: external_file_access_ListFile_0005
3230 * @tc.desc: Test function of ListFile interface for ERROR because of GetProxyByUri failed.
3231 * @tc.size: MEDIUM
3232 * @tc.type: FUNC
3233 * @tc.level Level 1
3234 * @tc.require: SR000H0387
3235 */
3236 HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0005, testing::ext::TestSize.Level1)
3237 {
3238 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0005";
3239 try {
3240 vector<RootInfo> info;
3241 int result = g_fah->GetRoots(info);
3242 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3243 for (size_t i = 0; i < info.size(); i++) {
3244 Uri parentUri(info[i].uri);
3245 Uri newDirUriTest("");
3246 result = g_fah->Mkdir(parentUri, "test", newDirUriTest);
3247 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3248 Uri testUri("");
3249 result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri);
3250 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3251
3252 std::string str = testUri.ToString();
3253 if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) {
3254 GTEST_LOG_(ERROR) << "replace BundleName failed.";
3255 EXPECT_TRUE(false);
3256 }
3257 FileInfo fileInfo;
3258 fileInfo.uri = str;
3259 int64_t offset = 0;
3260 int64_t maxCount = 1000;
3261 std::vector<FileInfo> fileInfoVec;
3262 FileFilter filter;
3263 result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3264 EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS);
3265 result = g_fah->Delete(newDirUriTest);
3266 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3267 }
3268 } catch (...) {
3269 GTEST_LOG_(ERROR) << "external_file_access_ListFile_0005 occurs an exception.";
3270 }
3271 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0005";
3272 }
3273
3274 /**
3275 * @tc.number: user_file_service_external_file_access_ListFile_0006
3276 * @tc.name: external_file_access_ListFile_0006
3277 * @tc.desc: Test function of ListFile interface for SUCCESS, the folder and file name is chinese.
3278 * @tc.size: MEDIUM
3279 * @tc.type: FUNC
3280 * @tc.level Level 1
3281 * @tc.require: I70SX9
3282 */
3283 HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0006, testing::ext::TestSize.Level1)
3284 {
3285 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0006";
3286 try {
3287 vector<RootInfo> info;
3288 int result = g_fah->GetRoots(info);
3289 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3290 for (size_t i = 0; i < info.size(); i++) {
3291 Uri parentUri(info[i].uri);
3292 Uri newDirUriTest("");
3293 result = g_fah->Mkdir(parentUri, "测试目录", newDirUriTest);
3294 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3295 EXPECT_EQ(newDirUriTest.ToString().find("测试目录"), std::string::npos);
3296 Uri testUri("");
3297 result = g_fah->CreateFile(newDirUriTest, "测试文件.txt", testUri);
3298 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3299 EXPECT_EQ(testUri.ToString().find("测试文件.txt"), std::string::npos);
3300 FileInfo fileInfo;
3301 fileInfo.uri = newDirUriTest.ToString();
3302 int64_t offset = 0;
3303 int64_t maxCount = 1000;
3304 std::vector<FileInfo> fileInfoVec;
3305 FileFilter filter;
3306 result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3307 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3308 EXPECT_GT(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK);
3309 result = g_fah->Delete(newDirUriTest);
3310 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3311 }
3312 } catch (...) {
3313 GTEST_LOG_(ERROR) << "external_file_access_ListFile_0006 occurs an exception.";
3314 }
3315 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0006";
3316 }
3317
3318
WriteData(Uri & uri)3319 static void WriteData(Uri &uri)
3320 {
3321 int fd = -1;
3322 std::string buff = "extenal_file_access_test";
3323 int result = g_fah->OpenFile(uri, WRITE_READ, fd);
3324 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3325 ssize_t fileSize = write(fd, buff.c_str(), buff.size());
3326 close(fd);
3327 EXPECT_EQ(fileSize, buff.size());
3328 }
3329
GetTime()3330 static double GetTime()
3331 {
3332 struct timespec t{};
3333 t.tv_sec = 0;
3334 t.tv_nsec = 0;
3335 clock_gettime(CLOCK_REALTIME, &t);
3336 return static_cast<double>(t.tv_sec);
3337 }
3338
InitListFile(Uri newDirUriTest,const std::string & caseNumber,const bool & needSleep=false)3339 static double InitListFile(Uri newDirUriTest, const std::string &caseNumber, const bool &needSleep = false)
3340 {
3341 Uri testUri1("");
3342 int result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_" + caseNumber + ".txt", testUri1);
3343 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3344 Uri testUri2("");
3345 result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_" + caseNumber + ".docx", testUri2);
3346 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3347 Uri testUri3("");
3348 double time = GetTime();
3349 if (needSleep) {
3350 sleep(SLEEP_TIME);
3351 }
3352 result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_01_" + caseNumber + ".txt", testUri3);
3353 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3354 Uri testUri4("");
3355 result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_01_" + caseNumber + ".docx", testUri4);
3356 WriteData(testUri4);
3357 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3358 Uri testUri5("");
3359 result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_01_" + caseNumber + "_01.docx", testUri5);
3360 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3361 return time;
3362 }
3363
ListFileFilter7(Uri newDirUriTest)3364 static void ListFileFilter7(Uri newDirUriTest)
3365 {
3366 FileInfo fileInfo;
3367 fileInfo.uri = newDirUriTest.ToString();
3368 int64_t offset = 4;
3369 int64_t maxCount = 1;
3370 std::vector<FileInfo> fileInfoVec;
3371 FileFilter filter({".txt", ".docx"}, {}, {}, -1, -1, false, true);
3372 int result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3373 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3374 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_1);
3375 }
3376
3377 /**
3378 * @tc.number: user_file_service_external_file_access_ListFile_0007
3379 * @tc.name: external_file_access_ListFile_0007
3380 * @tc.desc: Test function of ListFile for Success, filter is File Extensions.
3381 * @tc.size: MEDIUM
3382 * @tc.type: FUNC
3383 * @tc.level Level 1
3384 * @tc.require: I79CSX
3385 */
3386 HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0007, testing::ext::TestSize.Level1)
3387 {
3388 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0007";
3389 try {
3390 vector<RootInfo> info;
3391 int result = g_fah->GetRoots(info);
3392 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3393 for (size_t i = 0; i < info.size(); i++) {
3394 Uri parentUri(info[i].uri);
3395 Uri newDirUriTest("");
3396 result = g_fah->Mkdir(parentUri, "listfile007", newDirUriTest);
3397 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3398 InitListFile(newDirUriTest, "0007");
3399 ListFileFilter7(newDirUriTest);
3400 result = g_fah->Delete(newDirUriTest);
3401 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3402 }
3403 } catch (...) {
3404 GTEST_LOG_(ERROR) << "external_file_access_ListFile_0007 occurs an exception.";
3405 }
3406 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0007";
3407 }
3408
InitListFileFolder(Uri newDirUriTest,const std::string & caseNumber,const bool & needSleep=false)3409 static double InitListFileFolder(Uri newDirUriTest, const std::string &caseNumber, const bool &needSleep = false)
3410 {
3411 double time = InitListFile(newDirUriTest, caseNumber, needSleep);
3412 Uri folderUri("");
3413 int result = g_fah->Mkdir(newDirUriTest, "test" + caseNumber, folderUri);
3414 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3415 Uri testUri6("");
3416 result = g_fah->CreateFile(folderUri, "external_file_access_ListFile_01_" + caseNumber + "_02.docx", testUri6);
3417 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3418 return time;
3419 }
3420
ShowInfo(const std::vector<FileInfo> & fileInfoVec,const std::string & caseNumber)3421 static void ShowInfo(const std::vector<FileInfo> &fileInfoVec, const std::string &caseNumber)
3422 {
3423 for (auto fileInfo : fileInfoVec) {
3424 GTEST_LOG_(INFO) << caseNumber << ", uri:" << fileInfo.uri << endl;
3425 }
3426 }
3427
ListFileFilter8(Uri newDirUriTest)3428 static void ListFileFilter8(Uri newDirUriTest)
3429 {
3430 FileInfo fileInfo;
3431 fileInfo.uri = newDirUriTest.ToString();
3432 int64_t offset = 0;
3433 int64_t maxCount = 1000;
3434 std::vector<FileInfo> fileInfoVec;
3435 FileFilter filter({}, {}, {}, -1, 0, false, true);
3436 int result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3437 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3438 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_6);
3439 ShowInfo(fileInfoVec, "external_file_access_ListFile_0008");
3440 }
3441
3442 /**
3443 * @tc.number: user_file_service_external_file_access_ListFile_0008
3444 * @tc.name: external_file_access_ListFile_0008
3445 * @tc.desc: Test function of ListFile for Success, filter is filesize >= 0
3446 * @tc.size: MEDIUM
3447 * @tc.type: FUNC
3448 * @tc.level Level 1
3449 * @tc.require: I79CSX
3450 */
3451 HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0008, testing::ext::TestSize.Level1)
3452 {
3453 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0008";
3454 try {
3455 vector<RootInfo> info;
3456 int result = g_fah->GetRoots(info);
3457 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3458 for (size_t i = 0; i < info.size(); i++) {
3459 Uri parentUri(info[i].uri);
3460 Uri newDirUriTest("");
3461 result = g_fah->Mkdir(parentUri, "listfile008", newDirUriTest);
3462 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3463 InitListFileFolder(newDirUriTest, "0008");
3464 ListFileFilter8(newDirUriTest);
3465 result = g_fah->Delete(newDirUriTest);
3466 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3467 }
3468 } catch (...) {
3469 GTEST_LOG_(ERROR) << "external_file_access_ListFile_0008 occurs an exception.";
3470 }
3471 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0008";
3472 }
3473
ListFileFilter9(Uri newDirUriTest)3474 static void ListFileFilter9(Uri newDirUriTest)
3475 {
3476 FileInfo fileInfo;
3477 fileInfo.uri = newDirUriTest.ToString();
3478 int64_t offset = 0;
3479 int64_t maxCount = 1000;
3480 std::vector<FileInfo> fileInfoVec;
3481 FileFilter filter;
3482 int result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3483 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3484 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_6);
3485 }
3486
3487 /**
3488 * @tc.number: user_file_service_external_file_access_ListFile_0009
3489 * @tc.name: external_file_access_ListFile_0009
3490 * @tc.desc: Test function of ListFile for Success, filter is offset from 0 and maxCount is 1000
3491 * @tc.size: MEDIUM
3492 * @tc.type: FUNC
3493 * @tc.level Level 1
3494 * @tc.require: I79CSX
3495 */
3496 HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0009, testing::ext::TestSize.Level1)
3497 {
3498 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0008";
3499 try {
3500 vector<RootInfo> info;
3501 int result = g_fah->GetRoots(info);
3502 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3503 for (size_t i = 0; i < info.size(); i++) {
3504 Uri parentUri(info[i].uri);
3505 Uri newDirUriTest("");
3506 result = g_fah->Mkdir(parentUri, "listfile009", newDirUriTest);
3507 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3508 InitListFileFolder(newDirUriTest, "0009");
3509 ListFileFilter9(newDirUriTest);
3510 result = g_fah->Delete(newDirUriTest);
3511 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3512 }
3513 } catch (...) {
3514 GTEST_LOG_(ERROR) << "external_file_access_ListFile_0009 occurs an exception.";
3515 }
3516 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0009";
3517 }
3518
ListFileFilter10(Uri newDirUriTest,const double & time)3519 static void ListFileFilter10(Uri newDirUriTest, const double &time)
3520 {
3521 FileInfo fileInfo;
3522 fileInfo.uri = newDirUriTest.ToString();
3523 int64_t offset = 0;
3524 int64_t maxCount = 1000;
3525 std::vector<FileInfo> fileInfoVec;
3526 FileFilter filter({".txt", ".docx"}, {}, {}, -1, -1, false, true);
3527 int result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3528 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3529 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_5);
3530
3531 FileFilter filter1({".txt", ".docx"}, {"0010.txt", "0010.docx"}, {}, -1, -1, false, true);
3532 result = g_fah->ListFile(fileInfo, offset, maxCount, filter1, fileInfoVec);
3533 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3534 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_4);
3535
3536 FileFilter filter2({".txt", ".docx"}, {"0010.txt", "0010.docx"}, {}, 0, 0, false, true);
3537 result = g_fah->ListFile(fileInfo, offset, maxCount, filter2, fileInfoVec);
3538 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3539 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_1);
3540
3541 FileFilter filter3({".txt", ".docx"}, {"0010.txt", "0010.docx"}, {}, -1, time, false, true);
3542 result = g_fah->ListFile(fileInfo, offset, maxCount, filter3, fileInfoVec);
3543 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3544 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_2);
3545
3546 double nowTime = GetTime();
3547 FileFilter filter4({".txt", ".docx"}, {"0010.txt", "0010.docx"}, {}, -1, nowTime, false, true);
3548 result = g_fah->ListFile(fileInfo, offset, maxCount, filter4, fileInfoVec);
3549 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3550 EXPECT_EQ(fileInfoVec.size(), 0);
3551 }
3552
3553 /**
3554 * @tc.number: user_file_service_external_file_access_ListFile_0010
3555 * @tc.name: external_file_access_ListFile_0010
3556 * @tc.desc: Test function of ListFile interface for SUCCESS, filter is filename, extension, file size, modify time
3557 * @tc.size: MEDIUM
3558 * @tc.type: FUNC
3559 * @tc.level Level 1
3560 * @tc.require: I79CSX
3561 */
3562 HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0010, testing::ext::TestSize.Level1)
3563 {
3564 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0010";
3565 try {
3566 vector<RootInfo> info;
3567 int result = g_fah->GetRoots(info);
3568 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3569 for (size_t i = 0; i < info.size(); i++) {
3570 Uri parentUri(info[i].uri);
3571 Uri newDirUriTest("");
3572 result = g_fah->Mkdir(parentUri, "listfile0010", newDirUriTest);
3573 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3574 double time = InitListFile(newDirUriTest, "0010", true);
3575 ListFileFilter10(newDirUriTest, time);
3576 result = g_fah->Delete(newDirUriTest);
3577 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3578 }
3579 } catch (...) {
3580 GTEST_LOG_(ERROR) << "external_file_access_ListFile_0010 occurs an exception.";
3581 }
3582 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0010";
3583 }
3584
ListFileFilter11(Uri newDirUriTest,const double & time)3585 static void ListFileFilter11(Uri newDirUriTest, const double &time)
3586 {
3587 FileInfo fileInfo;
3588 fileInfo.uri = newDirUriTest.ToString();
3589 int64_t offset = 0;
3590 int64_t maxCount = 1000;
3591 std::vector<FileInfo> fileInfoVec;
3592 FileFilter filter({".txt", ".docx"}, {}, {}, -1, -1, false, true);
3593 int result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3594 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3595 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_6);
3596
3597 FileFilter filter1({".txt", ".docx"}, {"测试.txt", "测试.docx"}, {}, -1, -1, false, true);
3598 result = g_fah->ListFile(fileInfo, offset, maxCount, filter1, fileInfoVec);
3599 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3600 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_4);
3601
3602 FileFilter filter2({".txt", ".docx"}, {"测试.txt", "测试.docx"}, {}, 0, 0, false, true);
3603 result = g_fah->ListFile(fileInfo, offset, maxCount, filter2, fileInfoVec);
3604 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3605 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_1);
3606
3607 FileFilter filter3({".txt", ".docx"}, {"测试.txt", "测试.docx"}, {}, -1, time, false, true);
3608 result = g_fah->ListFile(fileInfo, offset, maxCount, filter3, fileInfoVec);
3609 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3610 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_2);
3611
3612 double nowTime = GetTime();
3613 FileFilter filter4({".txt", ".docx"}, {"测试.txt", "测试.docx"}, {}, -1, nowTime, false, true);
3614 result = g_fah->ListFile(fileInfo, offset, maxCount, filter4, fileInfoVec);
3615 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3616 EXPECT_EQ(fileInfoVec.size(), 0);
3617 }
3618
3619 /**
3620 * @tc.number: user_file_service_external_file_access_ListFile_0011
3621 * @tc.name: external_file_access_ListFile_0011
3622 * @tc.desc: Test function of ListFile interface for SUCCESS, for filename is Chinese
3623 * @tc.size: MEDIUM
3624 * @tc.type: FUNC
3625 * @tc.level Level 1
3626 * @tc.require: I79CSX
3627 */
3628 HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0011, testing::ext::TestSize.Level1)
3629 {
3630 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0011";
3631 try {
3632 vector<RootInfo> info;
3633 int result = g_fah->GetRoots(info);
3634 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3635 for (size_t i = 0; i < info.size(); i++) {
3636 Uri parentUri(info[i].uri);
3637 Uri newDirUriTest("");
3638 result = g_fah->Mkdir(parentUri, "listfile测试", newDirUriTest);
3639 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3640 double time = InitListFileFolder(newDirUriTest, "测试", true);
3641 ListFileFilter11(newDirUriTest, time);
3642 result = g_fah->Delete(newDirUriTest);
3643 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3644 }
3645 } catch (...) {
3646 GTEST_LOG_(ERROR) << "external_file_access_ListFile_0011 occurs an exception.";
3647 }
3648 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0011";
3649 }
3650
InitScanFile(Uri newDirUriTest,const std::string & caseNumber,const bool & needSleep=false)3651 static double InitScanFile(Uri newDirUriTest, const std::string &caseNumber, const bool &needSleep = false)
3652 {
3653 Uri forlderUriTest("");
3654 int result = g_fah->Mkdir(newDirUriTest, "test" + caseNumber, forlderUriTest);
3655 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3656
3657 Uri testUri1("");
3658 result = g_fah->CreateFile(newDirUriTest, "external_file_access_ScanFile_" + caseNumber + ".txt", testUri1);
3659 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3660 Uri testUri2("");
3661 result = g_fah->CreateFile(newDirUriTest, "external_file_access_ScanFile_" + caseNumber + ".docx", testUri2);
3662 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3663 double time = GetTime();
3664 if (needSleep) {
3665 sleep(SLEEP_TIME);
3666 }
3667 Uri testUri3("");
3668 result = g_fah->CreateFile(forlderUriTest, "external_file_access_ScanFile_01_" + caseNumber + ".txt", testUri3);
3669 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3670 Uri testUri4("");
3671 result = g_fah->CreateFile(forlderUriTest, "external_file_access_ScanFile_01_" + caseNumber + ".docx", testUri4);
3672 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3673 WriteData(testUri4);
3674 Uri testUri5("");
3675 result = g_fah->CreateFile(forlderUriTest, "external_file_access_ScanFile_01_" + caseNumber + "_01.docx", testUri5);
3676 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3677 return time;
3678 }
3679
ScanFileFilter0(Uri newDirUriTest,const double & time)3680 static void ScanFileFilter0(Uri newDirUriTest, const double &time)
3681 {
3682 FileInfo fileInfo;
3683 fileInfo.uri = newDirUriTest.ToString();
3684 int64_t offset = 0;
3685 int64_t maxCount = 1000;
3686 std::vector<FileInfo> fileInfoVec;
3687 FileFilter filter({".txt", ".docx"}, {}, {}, -1, -1, false, true);
3688 int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3689 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3690 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_5);
3691
3692 FileFilter filter1({".txt", ".docx"}, {"0000.txt", "0000.docx"}, {}, -1, -1, false, true);
3693 result = g_fah->ScanFile(fileInfo, offset, maxCount, filter1, fileInfoVec);
3694 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3695 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_4);
3696
3697 FileFilter filter2({".txt", ".docx"}, {"0000.txt", "0000.docx"}, {}, 0, 0, false, true);
3698 result = g_fah->ScanFile(fileInfo, offset, maxCount, filter2, fileInfoVec);
3699 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3700 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_1);
3701
3702 FileFilter filter3({".txt", ".docx"}, {"0000.txt", "0000.docx"}, {}, -1, time, false, true);
3703 result = g_fah->ScanFile(fileInfo, offset, maxCount, filter3, fileInfoVec);
3704 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3705 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_2);
3706
3707 double nowTime = GetTime();
3708 FileFilter filter4({".txt", ".docx"}, {"0000.txt", "0000.docx"}, {}, -1, nowTime, false, true);
3709 result = g_fah->ScanFile(fileInfo, offset, maxCount, filter4, fileInfoVec);
3710 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3711 EXPECT_EQ(fileInfoVec.size(), 0);
3712 }
3713
3714 /**
3715 * @tc.number: user_file_service_external_file_access_ScanFile_0000
3716 * @tc.name: external_file_access_ScanFile_0000
3717 * @tc.desc: Test function of ScanFile interface for SUCCESS, filter is filename, extension, file size, modify time
3718 * @tc.size: MEDIUM
3719 * @tc.type: FUNC
3720 * @tc.level Level 1
3721 * @tc.require: I79CSX
3722 */
3723 HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0000, testing::ext::TestSize.Level1)
3724 {
3725 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ScanFile_0000";
3726 try {
3727 vector<RootInfo> info;
3728 int result = g_fah->GetRoots(info);
3729 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3730 for (size_t i = 0; i < info.size(); i++) {
3731 Uri parentUri(info[i].uri);
3732 Uri newDirUriTest("");
3733 result = g_fah->Mkdir(parentUri, "scanfile0000", newDirUriTest);
3734 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3735 double time = InitScanFile(newDirUriTest, "0000", true);
3736 ScanFileFilter0(newDirUriTest, time);
3737 result = g_fah->Delete(newDirUriTest);
3738 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3739 }
3740 } catch (...) {
3741 GTEST_LOG_(ERROR) << "external_file_access_ScanFile_0000 occurs an exception.";
3742 }
3743 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ScanFile_0000";
3744 }
3745
ScanFileFilter1(Uri newDirUriTest)3746 static void ScanFileFilter1(Uri newDirUriTest)
3747 {
3748 FileInfo fileInfo;
3749 fileInfo.uri = newDirUriTest.ToString();
3750 int64_t offset = 0;
3751 int64_t maxCount = 1000;
3752 std::vector<FileInfo> fileInfoVec;
3753 FileFilter filter;
3754 int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3755 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3756 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_5);
3757 }
3758
3759 /**
3760 * @tc.number: user_file_service_external_file_access_ScanFile_0001
3761 * @tc.name: external_file_access_ScanFile_0001
3762 * @tc.desc: Test function of ScanFile interface for SUCCESS, the filter is offset from 0 to maxcount
3763 * @tc.size: MEDIUM
3764 * @tc.type: FUNC
3765 * @tc.level Level 1
3766 * @tc.require: I79CSX
3767 */
3768 HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0001, testing::ext::TestSize.Level1)
3769 {
3770 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ScanFile_0001";
3771 try {
3772 vector<RootInfo> info;
3773 int result = g_fah->GetRoots(info);
3774 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3775 for (size_t i = 0; i < info.size(); i++) {
3776 Uri parentUri(info[i].uri);
3777 Uri newDirUriTest("");
3778 result = g_fah->Mkdir(parentUri, "scanfile0001", newDirUriTest);
3779 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3780 InitScanFile(newDirUriTest, "0001");
3781 ScanFileFilter1(newDirUriTest);
3782 result = g_fah->Delete(newDirUriTest);
3783 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3784 }
3785 } catch (...) {
3786 GTEST_LOG_(ERROR) << "external_file_access_ScanFile_0001 occurs an exception.";
3787 }
3788 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ScanFile_0001";
3789 }
3790
ScanFileFilter2(Uri newDirUriTest)3791 static void ScanFileFilter2(Uri newDirUriTest)
3792 {
3793 FileInfo fileInfo;
3794 fileInfo.uri = newDirUriTest.ToString();
3795 int64_t offset = 3;
3796 int64_t maxCount = 3;
3797 std::vector<FileInfo> fileInfoVec;
3798 FileFilter filter({".txt", ".docx"}, {}, {}, -1, -1, false, true);
3799 int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3800 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3801 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_2);
3802 }
3803
3804 /**
3805 * @tc.number: user_file_service_external_file_access_ScanFile_0002
3806 * @tc.name: external_file_access_ScanFile_0002
3807 * @tc.desc: Test function of ScanFile interface for SUCCESS, the filter is extenstion offset maxCount
3808 * @tc.size: MEDIUM
3809 * @tc.type: FUNC
3810 * @tc.level Level 1
3811 * @tc.require: I79CSX
3812 */
3813 HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0002, testing::ext::TestSize.Level1)
3814 {
3815 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ScanFile_0002";
3816 try {
3817 vector<RootInfo> info;
3818 int result = g_fah->GetRoots(info);
3819 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3820 for (size_t i = 0; i < info.size(); i++) {
3821 Uri parentUri(info[i].uri);
3822 Uri newDirUriTest("");
3823 result = g_fah->Mkdir(parentUri, "scanfile0002", newDirUriTest);
3824 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3825 InitScanFile(newDirUriTest, "0002");
3826 ScanFileFilter2(newDirUriTest);
3827 result = g_fah->Delete(newDirUriTest);
3828 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3829 }
3830 } catch (...) {
3831 GTEST_LOG_(ERROR) << "external_file_access_ScanFile_0002 occurs an exception.";
3832 }
3833 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ScanFile_0002";
3834 }
3835
ScanFileFilter3(Uri newDirUriTest,const double & time)3836 static void ScanFileFilter3(Uri newDirUriTest, const double &time)
3837 {
3838 FileInfo fileInfo;
3839 fileInfo.uri = newDirUriTest.ToString();
3840 int64_t offset = 0;
3841 int64_t maxCount = 1000;
3842 std::vector<FileInfo> fileInfoVec;
3843 FileFilter filter({}, {}, {}, -1, time, false, true);
3844 int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3845 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3846 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_3);
3847 }
3848
3849 /**
3850 * @tc.number: user_file_service_external_file_access_ScanFile_0003
3851 * @tc.name: external_file_access_ScanFile_0003
3852 * @tc.desc: Test function of ScanFile interface for SUCCESS, the filter is modify time
3853 * @tc.size: MEDIUM
3854 * @tc.type: FUNC
3855 * @tc.level Level 1
3856 * @tc.require: I79CSX
3857 */
3858 HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0003, testing::ext::TestSize.Level1)
3859 {
3860 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ScanFile_0003";
3861 try {
3862 vector<RootInfo> info;
3863 int result = g_fah->GetRoots(info);
3864 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3865 for (size_t i = 0; i < info.size(); i++) {
3866 Uri parentUri(info[i].uri);
3867 Uri newDirUriTest("");
3868 result = g_fah->Mkdir(parentUri, "scanfile0003", newDirUriTest);
3869 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3870 double time = InitScanFile(newDirUriTest, "0003", true);
3871 ScanFileFilter3(newDirUriTest, time);
3872 result = g_fah->Delete(newDirUriTest);
3873 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3874 }
3875 } catch (...) {
3876 GTEST_LOG_(ERROR) << "external_file_access_ScanFile_0003 occurs an exception.";
3877 }
3878 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ScanFile_0003";
3879 }
3880
ScanFileFilter4(Uri newDirUriTest)3881 static void ScanFileFilter4(Uri newDirUriTest)
3882 {
3883 FileInfo fileInfo;
3884 fileInfo.uri = newDirUriTest.ToString();
3885 int64_t offset = 0;
3886 int64_t maxCount = 1000;
3887 std::vector<FileInfo> fileInfoVec;
3888 FileFilter filter;
3889 int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3890 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3891 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_5);
3892 }
3893
3894 /**
3895 * @tc.number: user_file_service_external_file_access_ScanFile_0004
3896 * @tc.name: external_file_access_ScanFile_0004
3897 * @tc.desc: Test function of ScanFile interface for SUCCESS, the filter is offset from 0 to maxCount
3898 * @tc.size: MEDIUM
3899 * @tc.type: FUNC
3900 * @tc.level Level 1
3901 * @tc.require: I79CSX
3902 */
3903 HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0004, testing::ext::TestSize.Level1)
3904 {
3905 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin user_file_service_external_file_access_ScanFile_0004";
3906 try {
3907 vector<RootInfo> info;
3908 int result = g_fah->GetRoots(info);
3909 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3910 for (size_t i = 0; i < info.size(); i++) {
3911 Uri parentUri(info[i].uri);
3912 Uri newDirUriTest("");
3913 result = g_fah->Mkdir(parentUri, "scanfile0004", newDirUriTest);
3914 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3915 InitScanFile(newDirUriTest, "0004");
3916 ScanFileFilter4(newDirUriTest);
3917 result = g_fah->Delete(newDirUriTest);
3918 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3919 }
3920 } catch (...) {
3921 GTEST_LOG_(ERROR) << "user_file_service_external_file_access_ScanFile_0004 occurs an exception.";
3922 }
3923 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end user_file_service_external_file_access_ScanFile_0004";
3924 }
3925
ScanFileFilter5(Uri newDirUriTest)3926 static void ScanFileFilter5(Uri newDirUriTest)
3927 {
3928 FileInfo fileInfo;
3929 fileInfo.uri = newDirUriTest.ToString();
3930 int64_t offset = 0;
3931 int64_t maxCount = 1000;
3932 std::vector<FileInfo> fileInfoVec;
3933 FileFilter filter({".txt", ".docx"}, {"测试.txt", "测试.docx"}, {}, -1, -1, false, true);
3934 int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec);
3935 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3936 EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_4);
3937 }
3938
3939 /**
3940 * @tc.number: user_file_service_external_file_access_ScanFile_0005
3941 * @tc.name: external_file_access_ScanFile_0005
3942 * @tc.desc: Test function of ScanFile interface for SUCCESS, the filter is Chinese filename
3943 * @tc.size: MEDIUM
3944 * @tc.type: FUNC
3945 * @tc.level Level 1
3946 * @tc.require: I79CSX
3947 */
3948 HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0005, testing::ext::TestSize.Level1)
3949 {
3950 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin user_file_service_external_file_access_ScanFile_0005";
3951 try {
3952 vector<RootInfo> info;
3953 int result = g_fah->GetRoots(info);
3954 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3955 for (size_t i = 0; i < info.size(); i++) {
3956 Uri parentUri(info[i].uri);
3957 Uri newDirUriTest("");
3958 result = g_fah->Mkdir(parentUri, "scanfile测试", newDirUriTest);
3959 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3960 InitScanFile(newDirUriTest, "测试");
3961 ScanFileFilter5(newDirUriTest);
3962 result = g_fah->Delete(newDirUriTest);
3963 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3964 }
3965 } catch (...) {
3966 GTEST_LOG_(ERROR) << "user_file_service_external_file_access_ScanFile_0005 occurs an exception.";
3967 }
3968 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end user_file_service_external_file_access_ScanFile_0005";
3969 }
3970
3971 /**
3972 * @tc.number: user_file_service_external_file_access_GetRoots_0000
3973 * @tc.name: external_file_access_GetRoots_0000
3974 * @tc.desc: Test function of GetRoots interface for SUCCESS.
3975 * @tc.size: MEDIUM
3976 * @tc.type: FUNC
3977 * @tc.level Level 1
3978 * @tc.require: SR000H0387
3979 */
3980 HWTEST_F(FileExtensionHelperTest, external_file_access_GetRoots_0000, testing::ext::TestSize.Level1)
3981 {
3982 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetRoots_0000";
3983 try {
3984 vector<RootInfo> info;
3985 int result = g_fah->GetRoots(info);
3986 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
3987 EXPECT_GT(info.size(), OHOS::FileAccessFwk::ERR_OK);
3988 GTEST_LOG_(INFO) << "GetRoots_0000 result:" << info.size() << endl;
3989 for (size_t i = 0; i < info.size(); i++) {
3990 GTEST_LOG_(INFO) << info[i].uri;
3991 GTEST_LOG_(INFO) << info[i].displayName;
3992 GTEST_LOG_(INFO) << info[i].deviceFlags;
3993 GTEST_LOG_(INFO) << info[i].deviceType;
3994 GTEST_LOG_(INFO) << info[i].relativePath;
3995 }
3996 EXPECT_GE(info.size(), 2);
3997 } catch (...) {
3998 GTEST_LOG_(ERROR) << "external_file_access_GetRoots_0000 occurs an exception.";
3999 }
4000 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetRoots_0000";
4001 }
4002
4003 /**
4004 * @tc.number: user_file_service_external_file_access_Access_0000
4005 * @tc.name: external_file_access_Access_0000
4006 * @tc.desc: Test function of Access interface for SUCCESS.
4007 * @tc.size: MEDIUM
4008 * @tc.type: FUNC
4009 * @tc.level Level 1
4010 * @tc.require: SR000H0386
4011 */
4012 HWTEST_F(FileExtensionHelperTest, external_file_access_Access_0000, testing::ext::TestSize.Level1)
4013 {
4014 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Access_0000";
4015 try {
4016 vector<RootInfo> info;
4017 int result = g_fah->GetRoots(info);
4018 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4019 for (size_t i = 0; i < info.size(); i++) {
4020 Uri parentUri(info[i].uri);
4021 GTEST_LOG_(INFO) << parentUri.ToString();
4022 Uri newDirUriTest("");
4023 result = g_fah->Mkdir(parentUri, "test1", newDirUriTest);
4024 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4025 Uri newFileUri("");
4026 result = g_fah->CreateFile(newDirUriTest, "external_file_access_Access_0000.txt", newFileUri);
4027 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4028 bool isExist = false;
4029 result = g_fah->Access(newDirUriTest, isExist);
4030 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4031 EXPECT_TRUE(isExist);
4032 result = g_fah->Access(newFileUri, isExist);
4033 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4034 EXPECT_TRUE(isExist);
4035 result = g_fah->Delete(newDirUriTest);
4036 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4037 result = g_fah->Access(newDirUriTest, isExist);
4038 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4039 EXPECT_FALSE(isExist);
4040 }
4041 } catch (...) {
4042 GTEST_LOG_(ERROR) << "external_file_access_Access_0000 occurs an exception.";
4043 }
4044 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Access_0000";
4045 }
4046
4047 /**
4048 * @tc.number: user_file_service_external_file_access_Access_0001
4049 * @tc.name: external_file_access_Access_0001
4050 * @tc.desc: Test function of Access interface FAILED because of GetProxyByUri failed.
4051 * @tc.size: MEDIUM
4052 * @tc.type: FUNC
4053 * @tc.level Level 1
4054 * @tc.require: SR000H0386
4055 */
4056 HWTEST_F(FileExtensionHelperTest, external_file_access_Access_0001, testing::ext::TestSize.Level1)
4057 {
4058 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Access_0001";
4059 try {
4060 vector<RootInfo> info;
4061 int result = g_fah->GetRoots(info);
4062 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4063 for (size_t i = 0; i < info.size(); i++) {
4064 std::string str = info[i].uri;
4065 if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) {
4066 GTEST_LOG_(ERROR) << "replace BundleName failed.";
4067 EXPECT_TRUE(false);
4068 }
4069 Uri newDirUriTest(str + "/test.txt");
4070 bool isExist = false;
4071 result = g_fah->Access(newDirUriTest, isExist);
4072 EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS);
4073 EXPECT_FALSE(isExist);
4074 }
4075 } catch (...) {
4076 GTEST_LOG_(ERROR) << "external_file_access_Access_0001 occurs an exception.";
4077 }
4078 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Access_0001";
4079 }
4080
4081 /**
4082 * @tc.number: user_file_service_external_file_access_Access_0002
4083 * @tc.name: external_file_access_Access_0002
4084 * @tc.desc: Test function of Access interface for SUCCESS, the file and folder name is chinese.
4085 * @tc.size: MEDIUM
4086 * @tc.type: FUNC
4087 * @tc.level Level 1
4088 * @tc.require: I70SX9
4089 */
4090 HWTEST_F(FileExtensionHelperTest, external_file_access_Access_0002, testing::ext::TestSize.Level1)
4091 {
4092 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Access_0002";
4093 try {
4094 vector<RootInfo> info;
4095 int result = g_fah->GetRoots(info);
4096 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4097 for (size_t i = 0; i < info.size(); i++) {
4098 Uri parentUri(info[i].uri);
4099 GTEST_LOG_(INFO) << parentUri.ToString();
4100 Uri newDirUriTest("");
4101 result = g_fah->Mkdir(parentUri, "访问目录", newDirUriTest);
4102 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4103 EXPECT_EQ(newDirUriTest.ToString().find("访问目录"), std::string::npos);
4104 Uri newFileUri("");
4105 result = g_fah->CreateFile(newDirUriTest, "访问文件.txt", newFileUri);
4106 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4107 EXPECT_EQ(newFileUri.ToString().find("访问文件.txt"), std::string::npos);
4108 bool isExist = false;
4109 result = g_fah->Access(newDirUriTest, isExist);
4110 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4111 EXPECT_TRUE(isExist);
4112 result = g_fah->Access(newFileUri, isExist);
4113 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4114 EXPECT_TRUE(isExist);
4115 result = g_fah->Delete(newDirUriTest);
4116 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4117 result = g_fah->Access(newDirUriTest, isExist);
4118 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4119 EXPECT_FALSE(isExist);
4120 }
4121 } catch (...) {
4122 GTEST_LOG_(ERROR) << "external_file_access_Access_0002 occurs an exception.";
4123 }
4124 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Access_0002";
4125 }
4126
4127 /**
4128 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0000
4129 * @tc.name: external_file_access_GetFileInfoFromUri_0000
4130 * @tc.desc: Test function of GetFileInfoFromUri interface.
4131 * @tc.desc: convert the root directory uri to fileinfo and call listfile for SUCCESS.
4132 * @tc.size: MEDIUM
4133 * @tc.type: FUNC
4134 * @tc.level Level 1
4135 * @tc.require: SR000H0386
4136 */
4137 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0000, testing::ext::TestSize.Level1)
4138 {
4139 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0000";
4140 try {
4141 vector<RootInfo> info;
4142 int result = g_fah->GetRoots(info);
4143 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4144 for (size_t i = 0; i < info.size(); i++) {
4145 Uri parentUri(info[i].uri);
4146 FileInfo fileinfo;
4147 result = g_fah->GetFileInfoFromUri(parentUri, fileinfo);
4148 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4149
4150 int64_t offset = 0;
4151 int64_t maxCount = 1000;
4152 FileFilter filter;
4153 std::vector<FileInfo> fileInfoVecTemp;
4154 result = g_fah->ListFile(fileinfo, offset, maxCount, filter, fileInfoVecTemp);
4155 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4156 EXPECT_GE(fileInfoVecTemp.size(), OHOS::FileAccessFwk::ERR_OK);
4157 }
4158 } catch (...) {
4159 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0000 occurs an exception.";
4160 }
4161 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0000";
4162 }
4163
4164 /**
4165 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0001
4166 * @tc.name: external_file_access_GetFileInfoFromUri_0001
4167 * @tc.desc: Test function of GetFileInfoFromUri interface.
4168 * @tc.desc: convert the general directory uri to fileinfo and call listfile for SUCCESS.
4169 * @tc.size: MEDIUM
4170 * @tc.type: FUNC
4171 * @tc.level Level 1
4172 * @tc.require: SR000H0386
4173 */
4174 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0001, testing::ext::TestSize.Level1)
4175 {
4176 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0001";
4177 try {
4178 vector<RootInfo> info;
4179 int result = g_fah->GetRoots(info);
4180 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4181 for (size_t i = 0; i < info.size(); i++) {
4182 Uri parentUri(info[i].uri);
4183 Uri newDirUriTest("");
4184 result = g_fah->Mkdir(parentUri, "testDir", newDirUriTest);
4185 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4186
4187 FileInfo dirInfo;
4188 result = g_fah->GetFileInfoFromUri(newDirUriTest, dirInfo);
4189 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4190
4191 int64_t offset = 0;
4192 int64_t maxCount = 1000;
4193 FileFilter filter;
4194 std::vector<FileInfo> fileInfoVec;
4195 result = g_fah->ListFile(dirInfo, offset, maxCount, filter, fileInfoVec);
4196 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4197 EXPECT_GE(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK);
4198
4199 result = g_fah->Delete(newDirUriTest);
4200 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4201 }
4202 } catch (...) {
4203 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0001 occurs an exception.";
4204 }
4205 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0001";
4206 }
4207
4208 /**
4209 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0002
4210 * @tc.name: external_file_access_GetFileInfoFromUri_0002
4211 * @tc.desc: Test function of GetFileInfoFromUri interface.
4212 * @tc.desc: convert the general filepath uri to fileinfo and call listfile for ERROR.
4213 * @tc.size: MEDIUM
4214 * @tc.type: FUNC
4215 * @tc.level Level 1
4216 * @tc.require: SR000H0386
4217 */
4218 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0002, testing::ext::TestSize.Level1)
4219 {
4220 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0002";
4221 try {
4222 vector<RootInfo> info;
4223 int result = g_fah->GetRoots(info);
4224 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4225 for (size_t i = 0; i < info.size(); i++) {
4226 Uri parentUri(info[i].uri);
4227 Uri newDirUriTest("");
4228 result = g_fah->Mkdir(parentUri, "testDir", newDirUriTest);
4229 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4230 Uri newFileUri("");
4231 result = g_fah->CreateFile(newDirUriTest, "external_file_access_GetFileInfoFromUri_0002.txt", newFileUri);
4232 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4233
4234 FileInfo fileinfo;
4235 result = g_fah->GetFileInfoFromUri(newFileUri, fileinfo);
4236 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4237
4238 int64_t offset = 0;
4239 int64_t maxCount = 1000;
4240 FileFilter filter;
4241 std::vector<FileInfo> fileInfoVecTemp;
4242 result = g_fah->ListFile(fileinfo, offset, maxCount, filter, fileInfoVecTemp);
4243 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
4244 EXPECT_EQ(fileInfoVecTemp.size(), OHOS::FileAccessFwk::ERR_OK);
4245
4246 result = g_fah->Delete(newDirUriTest);
4247 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4248 }
4249 } catch (...) {
4250 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0002 occurs an exception.";
4251 }
4252 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0002";
4253 }
4254
4255 /**
4256 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0003
4257 * @tc.name: external_file_access_GetFileInfoFromUri_0003
4258 * @tc.desc: Test function of GetFileInfoFromUri interface.
4259 * @tc.desc: convert the root directory uri to fileinfo for CheckUri failed.
4260 * @tc.size: MEDIUM
4261 * @tc.type: FUNC
4262 * @tc.level Level 1
4263 * @tc.require: SR000H0386
4264 */
4265 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0003, testing::ext::TestSize.Level1)
4266 {
4267 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0003";
4268 try {
4269 vector<RootInfo> info;
4270 int result = g_fah->GetRoots(info);
4271 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4272 for (size_t i = 0; i < info.size(); i++) {
4273 Uri parentUri(std::string("\?\?\?\?/") + info[i].uri);
4274 FileInfo fileinfo;
4275 result = g_fah->GetFileInfoFromUri(parentUri, fileinfo);
4276 EXPECT_EQ(result, OHOS::FileAccessFwk::E_URIS);
4277 }
4278 } catch (...) {
4279 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0003 occurs an exception.";
4280 }
4281 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0003";
4282 }
4283
4284 /**
4285 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0004
4286 * @tc.name: external_file_access_GetFileInfoFromUri_0004
4287 * @tc.desc: Test function of GetFileInfoFromUri interface.
4288 * @tc.desc: convert the root directory uri to fileinfo failed because of GetProxyByUri failed.
4289 * @tc.size: MEDIUM
4290 * @tc.type: FUNC
4291 * @tc.level Level 1
4292 * @tc.require: SR000H0386
4293 */
4294 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0004, testing::ext::TestSize.Level1)
4295 {
4296 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0004";
4297 try {
4298 vector<RootInfo> info;
4299 int result = g_fah->GetRoots(info);
4300 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4301 for (size_t i = 0; i < info.size(); i++) {
4302 std::string str = info[i].uri;
4303 if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) {
4304 GTEST_LOG_(ERROR) << "replace BundleName failed.";
4305 EXPECT_TRUE(false);
4306 }
4307 Uri parentUri(str);
4308 FileInfo fileinfo;
4309 result = g_fah->GetFileInfoFromUri(parentUri, fileinfo);
4310 EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS);
4311 }
4312 } catch (...) {
4313 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0004 occurs an exception.";
4314 }
4315 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0004";
4316 }
4317
4318 /**
4319 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0005
4320 * @tc.name: external_file_access_GetFileInfoFromUri_0005
4321 * @tc.desc: Test function of GetFileInfoFromUri interface.
4322 * @tc.desc: convert the invalid uri to fileinfo failed.
4323 * @tc.size: MEDIUM
4324 * @tc.type: FUNC
4325 * @tc.level Level 1
4326 * @tc.require: SR000H0386
4327 */
4328 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0005, testing::ext::TestSize.Level1)
4329 {
4330 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0005";
4331 try {
4332 Uri uri("~!@#$%^&*()_");
4333 FileInfo fileInfo;
4334 int result = g_fah->GetFileInfoFromUri(uri, fileInfo);
4335 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
4336
4337 uri = Uri("/");
4338 result = g_fah->GetFileInfoFromUri(uri, fileInfo);
4339 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
4340
4341 uri = Uri("");
4342 result = g_fah->GetFileInfoFromUri(uri, fileInfo);
4343 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
4344 } catch (...) {
4345 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0005 occurs an exception.";
4346 }
4347 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0005";
4348 }
4349
4350 /**
4351 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0006
4352 * @tc.name: external_file_access_GetFileInfoFromUri_0006
4353 * @tc.desc: Test function of GetFileInfoFromUri interface.
4354 * @tc.desc: convert the general directory uri to fileinfo and call listfile for SUCCESS, the folder name is chinese.
4355 * @tc.size: MEDIUM
4356 * @tc.type: FUNC
4357 * @tc.level Level 1
4358 * @tc.require: I70SX9
4359 */
4360 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0006, testing::ext::TestSize.Level1)
4361 {
4362 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0006";
4363 try {
4364 vector<RootInfo> info;
4365 int result = g_fah->GetRoots(info);
4366 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4367 for (size_t i = 0; i < info.size(); i++) {
4368 Uri parentUri(info[i].uri);
4369 Uri newDirUriTest("");
4370 result = g_fah->Mkdir(parentUri, "测试目录", newDirUriTest);
4371 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4372 EXPECT_EQ(newDirUriTest.ToString().find("测试目录"), std::string::npos);
4373
4374 FileInfo dirInfo;
4375 result = g_fah->GetFileInfoFromUri(newDirUriTest, dirInfo);
4376 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4377
4378 int64_t offset = 0;
4379 int64_t maxCount = 1000;
4380 FileFilter filter;
4381 std::vector<FileInfo> fileInfoVec;
4382 result = g_fah->ListFile(dirInfo, offset, maxCount, filter, fileInfoVec);
4383 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4384 EXPECT_GE(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK);
4385
4386 result = g_fah->Delete(newDirUriTest);
4387 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4388 }
4389 } catch (...) {
4390 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0006 occurs an exception.";
4391 }
4392 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0006";
4393 }
4394
4395 /**
4396 * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0007
4397 * @tc.name: external_file_access_GetFileInfoFromUri_0007
4398 * @tc.desc: Test function of GetFileInfoFromUri interface.
4399 * @tc.desc: convert the general filepath uri to fileinfo and call listfile for ERROR, the file name is chinese.
4400 * @tc.size: MEDIUM
4401 * @tc.type: FUNC
4402 * @tc.level Level 1
4403 * @tc.require: I70SX9
4404 */
4405 HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0007, testing::ext::TestSize.Level1)
4406 {
4407 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0007";
4408 try {
4409 vector<RootInfo> info;
4410 int result = g_fah->GetRoots(info);
4411 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4412 for (size_t i = 0; i < info.size(); i++) {
4413 Uri parentUri(info[i].uri);
4414 Uri newDirUriTest("");
4415 result = g_fah->Mkdir(parentUri, "测试目录", newDirUriTest);
4416 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4417 EXPECT_EQ(newDirUriTest.ToString().find("测试目录"), std::string::npos);
4418 Uri newFileUri("");
4419 result = g_fah->CreateFile(newDirUriTest, "测试文件.txt", newFileUri);
4420 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4421 EXPECT_EQ(newFileUri.ToString().find("测试文件.txt"), std::string::npos);
4422
4423 FileInfo fileinfo;
4424 result = g_fah->GetFileInfoFromUri(newFileUri, fileinfo);
4425 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4426
4427 int64_t offset = 0;
4428 int64_t maxCount = 1000;
4429 FileFilter filter;
4430 std::vector<FileInfo> fileInfoVecTemp;
4431 result = g_fah->ListFile(fileinfo, offset, maxCount, filter, fileInfoVecTemp);
4432 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
4433 EXPECT_EQ(fileInfoVecTemp.size(), OHOS::FileAccessFwk::ERR_OK);
4434
4435 result = g_fah->Delete(newDirUriTest);
4436 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4437 }
4438 } catch (...) {
4439 GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0007 occurs an exception.";
4440 }
4441 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0007";
4442 }
4443
4444 /**
4445 * @tc.number: user_file_service_external_file_access_creator_0000
4446 * @tc.name: external_file_access_creator_0000
4447 * @tc.desc: Test function of creator interface.
4448 * @tc.desc: create file access helper for SUCCESS.
4449 * @tc.size: MEDIUM
4450 * @tc.type: FUNC
4451 * @tc.level Level 1
4452 * @tc.require: SR000H0386
4453 */
4454 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0000, testing::ext::TestSize.Level1)
4455 {
4456 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0000";
4457 try {
4458 setuid(UID_TRANSFORM_TMP);
4459 std::pair<shared_ptr<FileAccessHelper>, int> helper = FileAccessHelper::Creator(g_context);
4460 setuid(UID_DEFAULT);
4461 ASSERT_TRUE(helper.first != nullptr);
4462 bool succ = helper.first->Release();
4463 EXPECT_TRUE(succ);
4464 } catch (...) {
4465 GTEST_LOG_(ERROR) << "external_file_access_creator_0000 occurs an exception.";
4466 }
4467 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0000";
4468 }
4469
4470 /**
4471 * @tc.number: user_file_service_external_file_access_creator_0001
4472 * @tc.name: external_file_access_creator_0001
4473 * @tc.desc: Test function of creator interface.
4474 * @tc.desc: create file access helper for SUCCESS.
4475 * @tc.size: MEDIUM
4476 * @tc.type: FUNC
4477 * @tc.level Level 1
4478 * @tc.require: SR000H0386
4479 */
4480 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0001, testing::ext::TestSize.Level1)
4481 {
4482 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0001";
4483 try {
4484 AAFwk::Want want;
4485 vector<AAFwk::Want> wantVec;
4486 setuid(UID_TRANSFORM_TMP);
4487 int ret = FileAccessHelper::GetRegisteredFileAccessExtAbilityInfo(wantVec);
4488 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK);
4489 bool sus = false;
4490 for (size_t i = 0; i < wantVec.size(); i++) {
4491 auto element = wantVec[i].GetElement();
4492 if (element.GetBundleName() == "com.ohos.UserFile.ExternalFileManager" &&
4493 element.GetAbilityName() == "FileExtensionAbility") {
4494 want = wantVec[i];
4495 sus = true;
4496 break;
4497 }
4498 }
4499 EXPECT_TRUE(sus);
4500 vector<AAFwk::Want> wants{want};
4501 std::pair<shared_ptr<FileAccessHelper>, int> helper = FileAccessHelper::Creator(g_context, wants);
4502 setuid(UID_DEFAULT);
4503 ASSERT_TRUE(helper.first != nullptr);
4504 bool succ = helper.first->Release();
4505 EXPECT_TRUE(succ);
4506 } catch (...) {
4507 GTEST_LOG_(ERROR) << "external_file_access_creator_0001 occurs an exception.";
4508 }
4509 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0001";
4510 }
4511
4512 /**
4513 * @tc.number: user_file_service_external_file_access_creator_0002
4514 * @tc.name: external_file_access_creator_0002
4515 * @tc.desc: Test function of creator interface.
4516 * @tc.desc: create file access helper for FAILED.
4517 * @tc.size: MEDIUM
4518 * @tc.type: FUNC
4519 * @tc.level Level 1
4520 * @tc.require: SR000H0386
4521 */
4522 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0002, testing::ext::TestSize.Level1)
4523 {
4524 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0002";
4525 try {
4526 std::shared_ptr<OHOS::AbilityRuntime::Context> context = nullptr;
4527 std::pair<shared_ptr<FileAccessHelper>, int> helper = FileAccessHelper::Creator(context);
4528 ASSERT_TRUE(helper.first == nullptr);
4529 } catch (...) {
4530 GTEST_LOG_(ERROR) << "external_file_access_creator_0002 occurs an exception.";
4531 }
4532 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0002";
4533 }
4534
4535 /**
4536 * @tc.number: user_file_service_external_file_access_creator_0003
4537 * @tc.name: external_file_access_creator_0003
4538 * @tc.desc: Test function of creator interface.
4539 * @tc.desc: create file access helper for FAILED.
4540 * @tc.size: MEDIUM
4541 * @tc.type: FUNC
4542 * @tc.level Level 1
4543 * @tc.require: SR000H0386
4544 */
4545 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0003, testing::ext::TestSize.Level1)
4546 {
4547 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0003";
4548 try {
4549 std::vector<AAFwk::Want> wants;
4550 std::shared_ptr<OHOS::AbilityRuntime::Context> context = nullptr;
4551 std::pair<shared_ptr<FileAccessHelper>, int> helper = FileAccessHelper::Creator(context, wants);
4552 ASSERT_TRUE(helper.first == nullptr);
4553 } catch (...) {
4554 GTEST_LOG_(ERROR) << "external_file_access_creator_0003 occurs an exception.";
4555 }
4556 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0003";
4557 }
4558
4559 /**
4560 * @tc.number: user_file_service_external_file_access_creator_0004
4561 * @tc.name: external_file_access_creator_0004
4562 * @tc.desc: Test function of creator interface.
4563 * @tc.desc: create file access helper for FAILED.
4564 * @tc.size: MEDIUM
4565 * @tc.type: FUNC
4566 * @tc.level Level 1
4567 * @tc.require: SR000H0386
4568 */
4569 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0004, testing::ext::TestSize.Level1)
4570 {
4571 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0004";
4572 try {
4573 std::vector<AAFwk::Want> wants;
4574 std::pair<shared_ptr<FileAccessHelper>, int> helper = FileAccessHelper::Creator(g_context, wants);
4575 ASSERT_TRUE(helper.first == nullptr);
4576 } catch (...) {
4577 GTEST_LOG_(ERROR) << "external_file_access_creator_0004 occurs an exception.";
4578 }
4579 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0004";
4580 }
4581
4582 /**
4583 * @tc.number: user_file_service_external_file_access_creator_0005
4584 * @tc.name: external_file_access_creator_0005
4585 * @tc.desc: Test function of creator interface.
4586 * @tc.desc: create file access helper for FAILED.
4587 * @tc.size: MEDIUM
4588 * @tc.type: FUNC
4589 * @tc.level Level 1
4590 * @tc.require: SR000H0386
4591 */
4592 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0005, testing::ext::TestSize.Level1)
4593 {
4594 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0005";
4595 try {
4596 AAFwk::Want want;
4597 want.SetElementName("NotExistBundleName", "NotExistAbilityName");
4598 std::vector<AAFwk::Want> wants{want};
4599 std::pair<shared_ptr<FileAccessHelper>, int> helper = FileAccessHelper::Creator(g_context, wants);
4600 ASSERT_TRUE(helper.first == nullptr);
4601 } catch (...) {
4602 GTEST_LOG_(ERROR) << "external_file_access_creator_0005 occurs an exception.";
4603 }
4604 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0005";
4605 }
4606
4607 /**
4608 * @tc.number: user_file_service_external_file_access_creator_0006
4609 * @tc.name: external_file_access_creator_0006
4610 * @tc.desc: Test function of creator interface.
4611 * @tc.desc: create file access helper for FAILED.
4612 * @tc.size: MEDIUM
4613 * @tc.type: FUNC
4614 * @tc.level Level 1
4615 * @tc.require: SR000H0386
4616 */
4617 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0006, testing::ext::TestSize.Level1)
4618 {
4619 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0006";
4620 try {
4621 std::vector<AAFwk::Want> wants;
4622 std::shared_ptr<OHOS::AbilityRuntime::Context> context = nullptr;
4623 std::pair<shared_ptr<FileAccessHelper>, int> helper = FileAccessHelper::Creator(context, wants);
4624 ASSERT_TRUE(helper.first == nullptr);
4625 } catch (...) {
4626 GTEST_LOG_(ERROR) << "external_file_access_creator_0006 occurs an exception.";
4627 }
4628 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0006";
4629 }
4630
4631 /**
4632 * @tc.number: user_file_service_external_file_access_creator_0007
4633 * @tc.name: external_file_access_creator_0007
4634 * @tc.desc: Test function of creator interface.
4635 * @tc.desc: create file access helper for FAILED.
4636 * @tc.size: MEDIUM
4637 * @tc.type: FUNC
4638 * @tc.level Level 1
4639 * @tc.require: SR000H0386
4640 */
4641 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0007, testing::ext::TestSize.Level1)
4642 {
4643 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0007";
4644 try {
4645 std::vector<AAFwk::Want> wants;
4646 shared_ptr<FileAccessHelper> helper = FileAccessHelper::Creator(g_context->GetToken(), wants);
4647 ASSERT_TRUE(helper == nullptr);
4648 } catch (...) {
4649 GTEST_LOG_(ERROR) << "external_file_access_creator_0007 occurs an exception.";
4650 }
4651 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0007";
4652 }
4653
4654 /**
4655 * @tc.number: user_file_service_external_file_access_creator_0008
4656 * @tc.name: external_file_access_creator_0008
4657 * @tc.desc: Test function of creator interface.
4658 * @tc.desc: create file access helper for FAILED.
4659 * @tc.size: MEDIUM
4660 * @tc.type: FUNC
4661 * @tc.level Level 1
4662 * @tc.require: SR000H0386
4663 */
4664 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0008, testing::ext::TestSize.Level1)
4665 {
4666 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0008";
4667 try {
4668 AAFwk::Want want;
4669 want.SetElementName("NotExistBundleName", "NotExistAbilityName");
4670 std::vector<AAFwk::Want> wants{want};
4671 shared_ptr<FileAccessHelper> helper = FileAccessHelper::Creator(g_context->GetToken(), wants);
4672 ASSERT_TRUE(helper == nullptr);
4673 } catch (...) {
4674 GTEST_LOG_(ERROR) << "external_file_access_creator_0008 occurs an exception.";
4675 }
4676 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0008";
4677 }
4678
4679 /**
4680 * @tc.number: user_file_service_external_file_access_GetConnectInfo_0000
4681 * @tc.name: external_file_access_GetConnectInfo_0000
4682 * @tc.desc: Test function of GetConnectInfo interface.
4683 * @tc.desc: helper invoke GetConnectInfo for FAILED.
4684 * @tc.size: MEDIUM
4685 * @tc.type: FUNC
4686 * @tc.level Level 1
4687 * @tc.require: SR000H0386
4688 */
4689 HWTEST_F(FileExtensionHelperTest, external_file_access_GetConnectInfo_0000, testing::ext::TestSize.Level1)
4690 {
4691 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetConnectInfo_0000";
4692 try {
4693 std::shared_ptr<ConnectInfo> connectInfo = g_fah->GetConnectInfo("NotExistBundleName");
4694 ASSERT_TRUE(connectInfo == nullptr);
4695 } catch (...) {
4696 GTEST_LOG_(ERROR) << "external_file_access_GetConnectInfo_0000 occurs an exception.";
4697 }
4698 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetConnectInfo_0000";
4699 }
4700
4701 /**
4702 * @tc.number: user_file_service_external_file_access_GetKeyOfWants_0000
4703 * @tc.name: external_file_access_GetKeyOfWants_0000
4704 * @tc.desc: Test function of GetKeyOfWants interface.
4705 * @tc.desc: helper invoke GetKeyOfWants for FAILED.
4706 * @tc.size: MEDIUM
4707 * @tc.type: FUNC
4708 * @tc.level Level 1
4709 * @tc.require: SR000H0386
4710 */
4711 HWTEST_F(FileExtensionHelperTest, external_file_access_GetKeyOfWants_0000, testing::ext::TestSize.Level1)
4712 {
4713 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetKeyOfWants_0000";
4714 try {
4715 AAFwk::Want want;
4716 want.SetElementName("NotExistBundleName", "NotExistAbilityName");
4717 std::string key = g_fah->GetKeyOfWants(want);
4718 ASSERT_TRUE(key.empty());
4719 } catch (...) {
4720 GTEST_LOG_(ERROR) << "external_file_access_GetKeyOfWants_0000 occurs an exception.";
4721 }
4722 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetKeyOfWants_0000";
4723 }
4724
4725 /**
4726 * @tc.number: user_file_service_external_file_access_GetProxyByUri_0000
4727 * @tc.name: external_file_access_GetProxyByUri_0000
4728 * @tc.desc: Test function of GetProxyByUri interface.
4729 * @tc.desc: helper invoke GetProxyByUri for FAILED.
4730 * @tc.size: MEDIUM
4731 * @tc.type: FUNC
4732 * @tc.level Level 1
4733 * @tc.require: SR000H0386
4734 */
4735 HWTEST_F(FileExtensionHelperTest, external_file_access_GetProxyByUri_0000, testing::ext::TestSize.Level1)
4736 {
4737 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetProxyByUri_0000";
4738 try {
4739 Uri uri("");
4740 sptr<IFileAccessExtBase> proxy = g_fah->GetProxyByUri(uri);
4741 ASSERT_TRUE(proxy == nullptr);
4742 } catch (...) {
4743 GTEST_LOG_(ERROR) << "external_file_access_GetProxyByUri_0000 occurs an exception.";
4744 }
4745 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetProxyByUri_0000";
4746 }
4747
4748 /**
4749 * @tc.number: user_file_service_external_file_access_GetProxyByUri_0001
4750 * @tc.name: external_file_access_GetProxyByUri_0001
4751 * @tc.desc: Test function of GetProxyByUri interface.
4752 * @tc.desc: helper invoke GetProxyByUri for FAILED.
4753 * @tc.size: MEDIUM
4754 * @tc.type: FUNC
4755 * @tc.level Level 1
4756 * @tc.require: SR000H0386
4757 */
4758 HWTEST_F(FileExtensionHelperTest, external_file_access_GetProxyByUri_0001, testing::ext::TestSize.Level1)
4759 {
4760 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetProxyByUri_0001";
4761 try {
4762 Uri uri("file://com.ohos.UserFile.NotExistBundleName/data/storage/el1/bundle/storage_daemon");
4763 sptr<IFileAccessExtBase> proxy = g_fah->GetProxyByUri(uri);
4764 ASSERT_TRUE(proxy == nullptr);
4765 } catch (...) {
4766 GTEST_LOG_(ERROR) << "external_file_access_GetProxyByUri_0001 occurs an exception.";
4767 }
4768 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetProxyByUri_0001";
4769 }
4770
4771 /**
4772 * @tc.number: user_file_service_external_file_access_Query_0000
4773 * @tc.name: external_file_access_Query_0000
4774 * @tc.desc: Test function of Query directory for SUCCESS.
4775 * @tc.size: MEDIUM
4776 * @tc.type: FUNC
4777 * @tc.level Level 1
4778 * @tc.require: I6S4VV
4779 */
4780 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0000, testing::ext::TestSize.Level1)
4781 {
4782 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0000";
4783 try {
4784 vector<RootInfo> info;
4785 int result = g_fah->GetRoots(info);
4786 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4787 Uri parentUri(info[0].uri);
4788 GTEST_LOG_(INFO) << parentUri.ToString();
4789 Uri newDirUriTest1("");
4790 Uri newDirUriTest2("");
4791 std::string displayName = "QueryTest1";
4792 std::string relativePath = "/storage/Users/currentUser/QueryTest1";
4793 result = g_fah->Mkdir(parentUri, "QueryTest1", newDirUriTest1);
4794 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4795 result = g_fah->Mkdir(newDirUriTest1, "QueryTest2", newDirUriTest2);
4796 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4797 Uri newFileUri1("");
4798 Uri newFileUri2("");
4799 std::string fileName = "external_file_access_Query_00001.txt";
4800 result = g_fah->CreateFile(newDirUriTest1, fileName, newFileUri1);
4801 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4802 result = g_fah->CreateFile(newDirUriTest2, fileName, newFileUri2);
4803 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4804 int fd = -1;
4805 std::string buff = "query test";
4806 result = g_fah->OpenFile(newFileUri1, WRITE_READ, fd);
4807 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4808 ssize_t fileSize = write(fd, buff.c_str(), buff.size());
4809 close(fd);
4810 EXPECT_EQ(fileSize, buff.size());
4811 result = g_fah->OpenFile(newFileUri2, WRITE_READ, fd);
4812 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4813 fileSize = write(fd, buff.c_str(), buff.size());
4814 close(fd);
4815 EXPECT_EQ(fileSize, buff.size());
4816 json testJson = {
4817 {RELATIVE_PATH, " "},
4818 {DISPLAY_NAME, " "},
4819 {FILE_SIZE, " "},
4820 {DATE_MODIFIED, " "},
4821 {DATE_ADDED, " "},
4822 {HEIGHT, " "},
4823 {WIDTH, " "},
4824 {DURATION, " "}
4825 };
4826 auto testJsonString = testJson.dump();
4827 result = g_fah->Query(newDirUriTest1, testJsonString);
4828 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4829 auto jsonObject = json::parse(testJsonString);
4830 EXPECT_EQ(jsonObject.at(DISPLAY_NAME), displayName);
4831 EXPECT_EQ(jsonObject.at(FILE_SIZE), buff.size() * 2);
4832 EXPECT_EQ(jsonObject.at(RELATIVE_PATH), relativePath);
4833 ASSERT_TRUE(jsonObject.at(DATE_MODIFIED) > 0);
4834 ASSERT_TRUE(jsonObject.at(DATE_ADDED) > 0);
4835 GTEST_LOG_(INFO) << " result" << testJsonString;
4836 result = g_fah->Delete(newDirUriTest1);
4837 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4838 } catch (...) {
4839 GTEST_LOG_(ERROR) << "external_file_access_Query_0000 occurs an exception.";
4840 }
4841 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0000";
4842 }
4843
4844 /**
4845 * @tc.number: user_file_service_external_file_access_Query_0001
4846 * @tc.name: external_file_access_Query_0001
4847 * @tc.desc: Test function of Query file for SUCCESS.
4848 * @tc.size: MEDIUM
4849 * @tc.type: FUNC
4850 * @tc.level Level 1
4851 * @tc.require: I6S4VV
4852 */
4853 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0001, testing::ext::TestSize.Level1)
4854 {
4855 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0001";
4856 try {
4857 vector<RootInfo> info;
4858 int result = g_fah->GetRoots(info);
4859 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4860 Uri parentUri(info[0].uri);
4861 GTEST_LOG_(INFO) << parentUri.ToString();
4862 Uri newDirUriTest("");
4863 result = g_fah->Mkdir(parentUri, "QueryTest3", newDirUriTest);
4864 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4865 Uri newFileUri("");
4866 std::string displayName = "external_file_access_Query_0001.txt";
4867 std::string relativePath = "/storage/Users/currentUser/QueryTest3/external_file_access_Query_0001.txt";
4868 result = g_fah->CreateFile(newDirUriTest, displayName, newFileUri);
4869 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4870 int fd = -1;
4871 result = g_fah->OpenFile(newFileUri, WRITE_READ, fd);
4872 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4873 std::string buff = "query test";
4874 ssize_t fileSize = write(fd, buff.c_str(), buff.size());
4875 close(fd);
4876 EXPECT_EQ(fileSize, buff.size());
4877 json testJson = {
4878 {RELATIVE_PATH, " "},
4879 {DISPLAY_NAME, " "},
4880 {FILE_SIZE, " "},
4881 {DATE_MODIFIED, " "},
4882 {DATE_ADDED, " "},
4883 {HEIGHT, " "},
4884 {WIDTH, " "},
4885 {DURATION, " "}
4886 };
4887 auto testJsonString = testJson.dump();
4888 result = g_fah->Query(newFileUri, testJsonString);
4889 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4890 auto jsonObject = json::parse(testJsonString);
4891 EXPECT_EQ(jsonObject.at(DISPLAY_NAME), displayName);
4892 EXPECT_EQ(jsonObject.at(FILE_SIZE), buff.size());
4893 EXPECT_EQ(jsonObject.at(RELATIVE_PATH), relativePath);
4894 ASSERT_TRUE(jsonObject.at(DATE_MODIFIED) > 0);
4895 ASSERT_TRUE(jsonObject.at(DATE_ADDED) > 0);
4896 GTEST_LOG_(INFO) << " result" << testJsonString;
4897 result = g_fah->Delete(newDirUriTest);
4898 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4899 } catch (...) {
4900 GTEST_LOG_(ERROR) << "external_file_access_Query_0001 occurs an exception.";
4901 }
4902 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0001";
4903 }
4904
4905 /**
4906 * @tc.number: user_file_service_external_file_access_Query_0002
4907 * @tc.name: external_file_access_Query_0002
4908 * @tc.desc: Test function of Query directory for SUCCESS.
4909 * @tc.size: MEDIUM
4910 * @tc.type: FUNC
4911 * @tc.level Level 1
4912 * @tc.require: I6S4VV
4913 */
4914 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0002, testing::ext::TestSize.Level1)
4915 {
4916 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0002";
4917 try {
4918 vector<RootInfo> info;
4919 int result = g_fah->GetRoots(info);
4920 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4921 Uri parentUri(info[0].uri);
4922 GTEST_LOG_(INFO) << parentUri.ToString();
4923 Uri newDirUriTest1("");
4924 Uri newDirUriTest2("");
4925 result = g_fah->Mkdir(parentUri, "QueryTest4", newDirUriTest1);
4926 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4927 result = g_fah->Mkdir(newDirUriTest1, "QueryTest5", newDirUriTest2);
4928 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4929 Uri newFileUri1("");
4930 Uri newFileUri2("");
4931 std::string fileName = "external_file_access_Query_00001.txt";
4932 result = g_fah->CreateFile(newDirUriTest1, fileName, newFileUri1);
4933 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4934 result = g_fah->CreateFile(newDirUriTest2, fileName, newFileUri2);
4935 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4936 int fd = -1;
4937 std::string buff = "query test";
4938 result = g_fah->OpenFile(newFileUri1, WRITE_READ, fd);
4939 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4940 ssize_t fileSize = write(fd, buff.c_str(), buff.size());
4941 close(fd);
4942 EXPECT_EQ(fileSize, buff.size());
4943 result = g_fah->OpenFile(newFileUri2, WRITE_READ, fd);
4944 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4945 fileSize = write(fd, buff.c_str(), buff.size());
4946 close(fd);
4947 EXPECT_EQ(fileSize, buff.size());
4948 json testJson = {
4949 {FILE_SIZE, " "}
4950 };
4951 auto testJsonString = testJson.dump();
4952 result = g_fah->Query(newDirUriTest1, testJsonString);
4953 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4954 auto jsonObject = json::parse(testJsonString);
4955 EXPECT_EQ(jsonObject.at(FILE_SIZE), buff.size() * 2);
4956 GTEST_LOG_(INFO) << " result" << testJsonString;
4957 result = g_fah->Delete(newDirUriTest1);
4958 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
4959 } catch (...) {
4960 GTEST_LOG_(ERROR) << "external_file_access_Query_0002 occurs an exception.";
4961 }
4962 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0002";
4963 }
4964
4965 /**
4966 * @tc.number: user_file_service_external_file_access_Query_0003
4967 * @tc.name: external_file_access_Query_0003
4968 * @tc.desc: Test function of Query interface for which is unreadable code.
4969 * @tc.size: MEDIUM
4970 * @tc.type: FUNC
4971 * @tc.level Level 1
4972 * @tc.require: I6S4VV
4973 */
4974 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0003, testing::ext::TestSize.Level1)
4975 {
4976 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0003";
4977 try {
4978 Uri testUri("&*()*/?");
4979 json testJson = {
4980 {RELATIVE_PATH, " "},
4981 {DISPLAY_NAME, " "}
4982 };
4983 auto testJsonString = testJson.dump();
4984 int result = g_fah->Query(testUri, testJsonString);
4985 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
4986 GTEST_LOG_(INFO) << " result" << testJsonString;
4987 } catch (...) {
4988 GTEST_LOG_(ERROR) << "external_file_access_Query_0003 occurs an exception.";
4989 }
4990 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0003";
4991 }
4992
4993 /**
4994 * @tc.number: user_file_service_external_file_access_Query_0004
4995 * @tc.name: external_file_access_Query_0004
4996 * @tc.desc: Test function of Query interface for which all column nonexistence.
4997 * @tc.size: MEDIUM
4998 * @tc.type: FUNC
4999 * @tc.level Level 1
5000 * @tc.require: I6S4VV
5001 */
5002 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0004, testing::ext::TestSize.Level1)
5003 {
5004 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0004";
5005 try {
5006 vector<RootInfo> info;
5007 int result = g_fah->GetRoots(info);
5008 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5009 Uri parentUri(info[0].uri);
5010 GTEST_LOG_(INFO) << parentUri.ToString();
5011 Uri newDirUriTest("");
5012 result = g_fah->Mkdir(parentUri, "QueryTest6", newDirUriTest);
5013 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5014 json testJson = {
5015 {"001", " "},
5016 {"#", " "},
5017 {"test", " "},
5018 {"target", " "}
5019 };
5020 auto testJsonString = testJson.dump();
5021 result = g_fah->Query(newDirUriTest, testJsonString);
5022 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
5023 GTEST_LOG_(INFO) << " result" << testJsonString;
5024 result = g_fah->Delete(newDirUriTest);
5025 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5026 } catch (...) {
5027 GTEST_LOG_(ERROR) << "external_file_access_Query_0004 occurs an exception.";
5028 }
5029 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0004";
5030 }
5031
5032 /**
5033 * @tc.number: user_file_service_external_file_access_Query_0005
5034 * @tc.name: external_file_access_Query_0005
5035 * @tc.desc: Test function of Query interface for which part of column nonexistence.
5036 * @tc.size: MEDIUM
5037 * @tc.type: FUNC
5038 * @tc.level Level 1
5039 * @tc.require: I6S4VV
5040 */
5041 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0005, testing::ext::TestSize.Level1)
5042 {
5043 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0005";
5044 try {
5045 vector<RootInfo> info;
5046 int result = g_fah->GetRoots(info);
5047 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5048 Uri parentUri(info[0].uri);
5049 GTEST_LOG_(INFO) << parentUri.ToString();
5050 Uri newDirUriTest("");
5051 result = g_fah->Mkdir(parentUri, "QueryTest7", newDirUriTest);
5052 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5053 json testJson = {
5054 {RELATIVE_PATH, " "},
5055 {DISPLAY_NAME, " "},
5056 {"test", " "}
5057 };
5058 auto testJsonString = testJson.dump();
5059 result = g_fah->Query(newDirUriTest, testJsonString);
5060 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
5061 GTEST_LOG_(INFO) << " result" << testJsonString;
5062 result = g_fah->Delete(newDirUriTest);
5063 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5064 } catch (...) {
5065 GTEST_LOG_(ERROR) << "external_file_access_Query_0005 occurs an exception.";
5066 }
5067 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0005";
5068 }
5069
5070 /**
5071 * @tc.number: user_file_service_external_file_access_Query_0006
5072 * @tc.name: external_file_access_Query_0006
5073 * @tc.desc: Test function of Query interface for which column is null.
5074 * @tc.size: MEDIUM
5075 * @tc.type: FUNC
5076 * @tc.level Level 1
5077 * @tc.require: I6S4VV
5078 */
5079 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0006, testing::ext::TestSize.Level1)
5080 {
5081 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0006";
5082 try {
5083 vector<RootInfo> info;
5084 int result = g_fah->GetRoots(info);
5085 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5086 Uri parentUri(info[0].uri);
5087 GTEST_LOG_(INFO) << parentUri.ToString();
5088 Uri newDirUriTest("");
5089 result = g_fah->Mkdir(parentUri, "QueryTest8", newDirUriTest);
5090 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5091 json testJson;
5092 auto testJsonString = testJson.dump();
5093 result = g_fah->Query(newDirUriTest, testJsonString);
5094 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK);
5095 GTEST_LOG_(INFO) << " result" << testJsonString;
5096 result = g_fah->Delete(newDirUriTest);
5097 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5098 } catch (...) {
5099 GTEST_LOG_(ERROR) << "external_file_access_Query_0006 occurs an exception.";
5100 }
5101 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0006";
5102 }
5103
5104 /**
5105 * @tc.number: user_file_service_external_file_access_Query_0007
5106 * @tc.name: external_file_access_Query_0007
5107 * @tc.desc: Test function of Query directory for SUCCESS, the folder and file name is chinese.
5108 * @tc.size: MEDIUM
5109 * @tc.type: FUNC
5110 * @tc.level Level 1
5111 * @tc.require: I70SX9
5112 */
5113 HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0007, testing::ext::TestSize.Level1)
5114 {
5115 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0007";
5116 try {
5117 vector<RootInfo> info;
5118 int result = g_fah->GetRoots(info);
5119 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5120 Uri parentUri(info[0].uri);
5121 GTEST_LOG_(INFO) << parentUri.ToString();
5122 Uri newDirUriTest1("");
5123 Uri newDirUriTest2("");
5124 std::string displayName = "查询目录1";
5125 std::string relativePath = "/storage/Users/currentUser/查询目录1";
5126 result = g_fah->Mkdir(parentUri, displayName, newDirUriTest1);
5127 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5128 EXPECT_EQ(newDirUriTest1.ToString().find(displayName), std::string::npos);
5129 result = g_fah->Mkdir(newDirUriTest1, "查询目录2", newDirUriTest2);
5130 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5131 EXPECT_EQ(newDirUriTest2.ToString().find("查询目录2"), std::string::npos);
5132 Uri newFileUri1("");
5133 Uri newFileUri2("");
5134 std::string fileName = "查询文件.txt";
5135 result = g_fah->CreateFile(newDirUriTest1, fileName, newFileUri1);
5136 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5137 EXPECT_EQ(newFileUri1.ToString().find(fileName), std::string::npos);
5138 result = g_fah->CreateFile(newDirUriTest2, fileName, newFileUri2);
5139 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5140 EXPECT_EQ(newFileUri2.ToString().find(fileName), std::string::npos);
5141 int fd = -1;
5142 std::string buff = "query test";
5143 result = g_fah->OpenFile(newFileUri1, WRITE_READ, fd);
5144 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5145 ssize_t fileSize = write(fd, buff.c_str(), buff.size());
5146 close(fd);
5147 EXPECT_EQ(fileSize, buff.size());
5148 result = g_fah->OpenFile(newFileUri2, WRITE_READ, fd);
5149 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5150 fileSize = write(fd, buff.c_str(), buff.size());
5151 close(fd);
5152 EXPECT_EQ(fileSize, buff.size());
5153 json testJson = {
5154 {RELATIVE_PATH, " "},
5155 {DISPLAY_NAME, " "},
5156 {FILE_SIZE, " "},
5157 {DATE_MODIFIED, " "},
5158 {DATE_ADDED, " "},
5159 {HEIGHT, " "},
5160 {WIDTH, " "},
5161 {DURATION, " "}
5162 };
5163 auto testJsonString = testJson.dump();
5164 result = g_fah->Query(newDirUriTest1, testJsonString);
5165 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5166 auto jsonObject = json::parse(testJsonString);
5167 EXPECT_EQ(jsonObject.at(DISPLAY_NAME), displayName);
5168 EXPECT_EQ(jsonObject.at(FILE_SIZE), buff.size() * 2);
5169 EXPECT_EQ(jsonObject.at(RELATIVE_PATH), relativePath);
5170 ASSERT_TRUE(jsonObject.at(DATE_MODIFIED) > 0);
5171 ASSERT_TRUE(jsonObject.at(DATE_ADDED) > 0);
5172 GTEST_LOG_(INFO) << " result" << testJsonString;
5173 result = g_fah->Delete(newDirUriTest1);
5174 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
5175 } catch (...) {
5176 GTEST_LOG_(ERROR) << "external_file_access_Query_0007 occurs an exception.";
5177 }
5178 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0007";
5179 }
5180 } // namespace
5181