1 /* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include <cstdio> 17 #include <thread> 18 #include <unistd.h> 19 20 #include <gtest/gtest.h> 21 #include <nlohmann/json.hpp> 22 23 #include "external_file_access_test.h" 24 #include "accesstoken_kit.h" 25 #include "context_impl.h" 26 #include "file_access_framework_errno.h" 27 #include "file_info_shared_memory.h" 28 #include "iservice_registry.h" 29 #include "nativetoken_kit.h" 30 #include "token_setproc.h" 31 32 namespace OHOS::FileAccessFwk { 33 static int g_num = 0; 34 35 /** 36 * @tc.number: user_file_service_external_file_access_OpenFile_0000 37 * @tc.name: external_file_access_OpenFile_0000 38 * @tc.desc: Test function of OpenFile interface for SUCCESS. 39 * @tc.size: MEDIUM 40 * @tc.type: FUNC 41 * @tc.level Level 1 42 * @tc.require: SR000H0386 43 */ 44 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0000, testing::ext::TestSize.Level1) 45 { 46 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0000"; 47 try { 48 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 49 vector<RootInfo> info; 50 EXPECT_NE(fileAccessHelper, nullptr); 51 int result = fileAccessHelper->GetRoots(info); 52 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 53 for (size_t i = 0; i < info.size(); i++) { 54 Uri parentUri(info[i].uri); 55 GTEST_LOG_(INFO) << parentUri.ToString(); 56 Uri newDirUriTest1(""); 57 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1); 58 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 59 Uri newFileUri(""); 60 result = fileAccessHelper->CreateFile(newDirUriTest1, "external_file_access_OpenFile_0000.txt", newFileUri); 61 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 62 int fd; 63 result = fileAccessHelper->OpenFile(newFileUri, WRITE_READ, fd); 64 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 65 GTEST_LOG_(INFO) << "OpenFile_0000 result:" << result; 66 close(fd); 67 result = fileAccessHelper->Delete(newDirUriTest1); 68 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 69 } 70 } catch (...) { 71 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0000 occurs an exception."; 72 } 73 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0000"; 74 } 75 76 /** 77 * @tc.number: user_file_service_external_file_access_OpenFile_0001 78 * @tc.name: external_file_access_OpenFile_0001 79 * @tc.desc: Test function of OpenFile interface for ERROR which Uri is null. 80 * @tc.size: MEDIUM 81 * @tc.type: FUNC 82 * @tc.level Level 1 83 * @tc.require: SR000H0386 84 */ 85 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0001, testing::ext::TestSize.Level1) 86 { 87 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0001"; 88 try { 89 Uri uri(""); 90 int fd; 91 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 92 EXPECT_NE(fileAccessHelper, nullptr); 93 int result = fileAccessHelper->OpenFile(uri, WRITE_READ, fd); 94 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); 95 GTEST_LOG_(INFO) << "OpenFile_0001 result:" << result; 96 } catch (...) { 97 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0001 occurs an exception."; 98 } 99 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0001"; 100 } 101 102 /** 103 * @tc.number: user_file_service_external_file_access_OpenFile_0002 104 * @tc.name: external_file_access_OpenFile_0002 105 * @tc.desc: Test function of OpenFile interface for ERROR which Uri is absolute path. 106 * @tc.size: MEDIUM 107 * @tc.type: FUNC 108 * @tc.level Level 1 109 * @tc.require: SR000H0386 110 */ 111 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0002, testing::ext::TestSize.Level1) 112 { 113 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0002"; 114 try { 115 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 116 vector<RootInfo> info; 117 EXPECT_NE(fileAccessHelper, nullptr); 118 int result = fileAccessHelper->GetRoots(info); 119 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 120 for (size_t i = 0; i < info.size(); i++) { 121 Uri parentUri(info[i].uri); 122 Uri newFileUri(""); 123 result = fileAccessHelper->CreateFile(parentUri, "external_file_access_OpenFile_0002.txt", newFileUri); 124 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 125 Uri uri("storage/media/100/local/files/Download/external_file_access_OpenFile_0002.txt"); 126 int fd; 127 result = fileAccessHelper->OpenFile(uri, WRITE_READ, fd); 128 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); 129 GTEST_LOG_(INFO) << "OpenFile_0002 result:" << result; 130 result = fileAccessHelper->Delete(newFileUri); 131 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 132 } 133 } catch (...) { 134 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0002 occurs an exception."; 135 } 136 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0002"; 137 } 138 139 /** 140 * @tc.number: user_file_service_external_file_access_OpenFile_0003 141 * @tc.name: external_file_access_OpenFile_0003 142 * @tc.desc: Test function of OpenFile interface for ERROR which Uri is special symbols. 143 * @tc.size: MEDIUM 144 * @tc.type: FUNC 145 * @tc.level Level 1 146 * @tc.require: SR000H0386 147 */ 148 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0003, testing::ext::TestSize.Level1) 149 { 150 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0003"; 151 try { 152 Uri uri("~!@#$%^&*()_"); 153 int fd; 154 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 155 EXPECT_NE(fileAccessHelper, nullptr); 156 int result = fileAccessHelper->OpenFile(uri, WRITE_READ, fd); 157 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); 158 GTEST_LOG_(INFO) << "OpenFile_0003 result:" << result; 159 } catch (...) { 160 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0003 occurs an exception."; 161 } 162 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0003"; 163 } 164 165 /** 166 * @tc.number: user_file_service_external_file_access_OpenFile_0004 167 * @tc.name: external_file_access_OpenFile_0004 168 * @tc.desc: Test function of OpenFile interface for ERROR which flag is -1. 169 * @tc.size: MEDIUM 170 * @tc.type: FUNC 171 * @tc.level Level 1 172 * @tc.require: SR000H0386 173 */ 174 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0004, testing::ext::TestSize.Level1) 175 { 176 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0004"; 177 try { 178 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 179 EXPECT_NE(fileAccessHelper, nullptr); 180 vector<RootInfo> info; 181 int result = fileAccessHelper->GetRoots(info); 182 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 183 for (size_t i = 0; i < info.size(); i++) { 184 Uri parentUri(info[i].uri); 185 Uri newFileUri(""); 186 result = fileAccessHelper->CreateFile(parentUri, "external_file_access_OpenFile_0004.txt", newFileUri); 187 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 188 int fd; 189 int flag = -1; 190 result = fileAccessHelper->OpenFile(newFileUri, flag, fd); 191 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); 192 GTEST_LOG_(INFO) << "OpenFile_0004 result:" << result; 193 result = fileAccessHelper->Delete(newFileUri); 194 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 195 } 196 } catch (...) { 197 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0004 occurs an exception."; 198 } 199 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0004"; 200 } 201 202 /** 203 * @tc.number: user_file_service_external_file_access_OpenFile_0005 204 * @tc.name: external_file_access_OpenFile_0005 205 * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 0. 206 * @tc.size: MEDIUM 207 * @tc.type: FUNC 208 * @tc.level Level 1 209 * @tc.require: SR000H0386 210 */ 211 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0005, testing::ext::TestSize.Level1) 212 { 213 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0005"; 214 try { 215 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 216 EXPECT_NE(fileAccessHelper, nullptr); 217 vector<RootInfo> info; 218 int result = fileAccessHelper->GetRoots(info); 219 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 220 for (size_t i = 0; i < info.size(); i++) { 221 Uri parentUri(info[i].uri); 222 Uri newFileUri(""); 223 result = fileAccessHelper->CreateFile(parentUri, "external_file_access_OpenFile_0005.txt", newFileUri); 224 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 225 int fd; 226 result = fileAccessHelper->OpenFile(newFileUri, READ, fd); 227 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 228 GTEST_LOG_(INFO) << "OpenFile_0005 result:" << result; 229 close(fd); 230 result = fileAccessHelper->Delete(newFileUri); 231 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 232 } 233 } catch (...) { 234 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0005 occurs an exception."; 235 } 236 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0005"; 237 } 238 239 /** 240 * @tc.number: user_file_service_external_file_access_OpenFile_0006 241 * @tc.name: external_file_access_OpenFile_0006 242 * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 1. 243 * @tc.size: MEDIUM 244 * @tc.type: FUNC 245 * @tc.level Level 1 246 * @tc.require: SR000H0386 247 */ 248 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0006, testing::ext::TestSize.Level1) 249 { 250 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0006"; 251 try { 252 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 253 EXPECT_NE(fileAccessHelper, nullptr); 254 vector<RootInfo> info; 255 int result = fileAccessHelper->GetRoots(info); 256 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 257 for (size_t i = 0; i < info.size(); i++) { 258 Uri parentUri(info[i].uri); 259 Uri newFileUri(""); 260 result = fileAccessHelper->CreateFile(parentUri, "external_file_access_OpenFile_0006.txt", newFileUri); 261 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 262 int fd; 263 result = fileAccessHelper->OpenFile(newFileUri, WRITE, fd); 264 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 265 GTEST_LOG_(INFO) << "OpenFile_0006 result:" << result; 266 close(fd); 267 result = fileAccessHelper->Delete(newFileUri); 268 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 269 } 270 } catch (...) { 271 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0006 occurs an exception."; 272 } 273 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0006"; 274 } 275 276 /** 277 * @tc.number: user_file_service_external_file_access_OpenFile_0007 278 * @tc.name: external_file_access_OpenFile_0007 279 * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 2. 280 * @tc.size: MEDIUM 281 * @tc.type: FUNC 282 * @tc.level Level 1 283 * @tc.require: SR000H0386 284 */ 285 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0007, testing::ext::TestSize.Level1) 286 { 287 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0007"; 288 try { 289 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 290 EXPECT_NE(fileAccessHelper, nullptr); 291 vector<RootInfo> info; 292 int result = fileAccessHelper->GetRoots(info); 293 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 294 for (size_t i = 0; i < info.size(); i++) { 295 Uri parentUri(info[i].uri); 296 Uri newFileUri(""); 297 result = fileAccessHelper->CreateFile(parentUri, "external_file_access_OpenFile_0007.txt", newFileUri); 298 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 299 int fd; 300 result = fileAccessHelper->OpenFile(newFileUri, WRITE_READ, fd); 301 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 302 GTEST_LOG_(INFO) << "OpenFile_0007 result:" << result; 303 close(fd); 304 result = fileAccessHelper->Delete(newFileUri); 305 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 306 } 307 } catch (...) { 308 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0007 occurs an exception."; 309 } 310 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0007"; 311 } 312 OpenFileTdd(shared_ptr<FileAccessHelper> fahs,Uri uri,int flag,int fd)313 static void OpenFileTdd(shared_ptr<FileAccessHelper> fahs, Uri uri, int flag, int fd) 314 { 315 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFileTdd"; 316 int ret = fahs->OpenFile(uri, flag, fd); 317 if (ret != OHOS::FileAccessFwk::ERR_OK) { 318 GTEST_LOG_(ERROR) << "OpenFile get result error, code:" << ret; 319 return; 320 } 321 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); 322 EXPECT_GE(fd, OHOS::FileAccessFwk::ERR_OK); 323 g_num++; 324 close(fd); 325 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFileTdd"; 326 } 327 328 /** 329 * @tc.number: user_file_service_external_file_access_OpenFile_0008 330 * @tc.name: external_file_access_OpenFile_0008 331 * @tc.desc: Test function of OpenFile interface for SUCCESS which Concurrent. 332 * @tc.size: MEDIUM 333 * @tc.type: FUNC 334 * @tc.level Level 1 335 * @tc.require: SR000H0386 336 */ 337 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0008, testing::ext::TestSize.Level1) 338 { 339 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0008"; 340 try { 341 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 342 EXPECT_NE(fileAccessHelper, nullptr); 343 vector<RootInfo> info; 344 int result = fileAccessHelper->GetRoots(info); 345 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 346 for (size_t i = 0; i < info.size(); i++) { 347 Uri parentUri(info[i].uri); 348 Uri newFileUri(""); 349 int fd; 350 std::string displayName = "test1.txt"; 351 g_num = 0; 352 result = fileAccessHelper->CreateFile(parentUri, displayName, newFileUri); 353 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 354 for (size_t j = 0; j < INIT_THREADS_NUMBER; j++) { 355 std::thread execthread(OpenFileTdd, fileAccessHelper, newFileUri, WRITE_READ, fd); 356 execthread.join(); 357 } 358 EXPECT_EQ(g_num, INIT_THREADS_NUMBER); 359 result = fileAccessHelper->Delete(newFileUri); 360 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 361 } 362 } catch (...) { 363 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0008 occurs an exception."; 364 } 365 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0008"; 366 } 367 368 /** 369 * @tc.number: user_file_service_external_file_access_OpenFile_0009 370 * @tc.name: external_file_access_OpenFile_0009 371 * @tc.desc: Test function of OpenFile interface for FAILED because of GetProxyByUri failed. 372 * @tc.size: MEDIUM 373 * @tc.type: FUNC 374 * @tc.level Level 1 375 * @tc.require: SR000H0386 376 */ 377 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0009, testing::ext::TestSize.Level1) 378 { 379 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0009"; 380 try { 381 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 382 EXPECT_NE(fileAccessHelper, nullptr); 383 vector<RootInfo> info; 384 int result = fileAccessHelper->GetRoots(info); 385 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 386 for (size_t i = 0; i < info.size(); i++) { 387 std::string str = info[i].uri; 388 if (ReplaceBundleName(str, "ohos.com.NotExistBundleName")) { 389 int fd; 390 Uri newFileUri(str + "/NotExistFile.txt"); 391 result = fileAccessHelper->OpenFile(newFileUri, WRITE_READ, fd); 392 EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); 393 GTEST_LOG_(INFO) << "OpenFile_0009 result:" << result; 394 } else { 395 EXPECT_TRUE(false); 396 } 397 } 398 } catch (...) { 399 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0009 occurs an exception."; 400 } 401 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0009"; 402 } 403 404 /** 405 * @tc.number: user_file_service_external_file_access_OpenFile_0010 406 * @tc.name: external_file_access_OpenFile_0010 407 * @tc.desc: Test function of OpenFile interface for SUCCESS, the file name is chinese. 408 * @tc.size: MEDIUM 409 * @tc.type: FUNC 410 * @tc.level Level 1 411 * @tc.require: I70SX9 412 */ 413 HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0010, testing::ext::TestSize.Level1) 414 { 415 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0010"; 416 try { 417 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 418 EXPECT_NE(fileAccessHelper, nullptr); 419 vector<RootInfo> info; 420 int result = fileAccessHelper->GetRoots(info); 421 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 422 for (size_t i = 0; i < info.size(); i++) { 423 Uri parentUri(info[i].uri); 424 GTEST_LOG_(INFO) << parentUri.ToString(); 425 Uri newDirUriTest1(""); 426 result = fileAccessHelper->Mkdir(parentUri, "测试目录", newDirUriTest1); 427 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 428 EXPECT_EQ(newDirUriTest1.ToString().find("测试目录"), std::string::npos); 429 Uri newFileUri(""); 430 result = fileAccessHelper->CreateFile(newDirUriTest1, "打开文件.txt", newFileUri); 431 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 432 EXPECT_EQ(newFileUri.ToString().find("打开文件.txt"), std::string::npos); 433 int fd; 434 result = fileAccessHelper->OpenFile(newFileUri, WRITE_READ, fd); 435 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 436 GTEST_LOG_(INFO) << "OpenFile_0010 result:" << result; 437 close(fd); 438 result = fileAccessHelper->Delete(newDirUriTest1); 439 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 440 } 441 } catch (...) { 442 GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0010 occurs an exception."; 443 } 444 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0010"; 445 } 446 447 /** 448 * @tc.number: user_file_service_external_file_access_Delete_0000 449 * @tc.name: external_file_access_Delete_0000 450 * @tc.desc: Test function of Delete interface for SUCCESS which delete file. 451 * @tc.size: MEDIUM 452 * @tc.type: FUNC 453 * @tc.level Level 1 454 * @tc.require: SR000H0386 455 */ 456 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0000, testing::ext::TestSize.Level1) 457 { 458 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0000"; 459 try { 460 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 461 EXPECT_NE(fileAccessHelper, nullptr); 462 vector<RootInfo> info; 463 int result = fileAccessHelper->GetRoots(info); 464 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 465 for (size_t i = 0; i < info.size(); i++) { 466 Uri parentUri(info[i].uri); 467 Uri newDirUriTest(""); 468 result = fileAccessHelper->Mkdir(parentUri, "test", newDirUriTest); 469 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 470 Uri newFileUri(""); 471 result = fileAccessHelper->CreateFile(newDirUriTest, "external_file_access_Delete_0000.txt", newFileUri); 472 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 473 result = fileAccessHelper->Delete(newFileUri); 474 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 475 GTEST_LOG_(INFO) << "Delete_0000 result:" << result; 476 result = fileAccessHelper->Delete(newDirUriTest); 477 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 478 } 479 } catch (...) { 480 GTEST_LOG_(ERROR) << "external_file_access_Delete_0000 occurs an exception."; 481 } 482 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0000"; 483 } 484 485 /** 486 * @tc.number: user_file_service_external_file_access_Delete_0001 487 * @tc.name: external_file_access_Delete_0001 488 * @tc.desc: Test function of Delete interface for SUCCESS which delete folder. 489 * @tc.size: MEDIUM 490 * @tc.type: FUNC 491 * @tc.level Level 1 492 * @tc.require: SR000H0386 493 */ 494 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0001, testing::ext::TestSize.Level1) 495 { 496 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0001"; 497 try { 498 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 499 EXPECT_NE(fileAccessHelper, nullptr); 500 vector<RootInfo> info; 501 int result = fileAccessHelper->GetRoots(info); 502 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 503 for (size_t i = 0; i < info.size(); i++) { 504 Uri parentUri(info[i].uri); 505 Uri newDirUriTest(""); 506 result = fileAccessHelper->Mkdir(parentUri, "test", newDirUriTest); 507 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 508 result = fileAccessHelper->Delete(newDirUriTest); 509 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 510 GTEST_LOG_(INFO) << "Delete_0001 result:" << result; 511 } 512 } catch (...) { 513 GTEST_LOG_(ERROR) << "external_file_access_Delete_0001 occurs an exception."; 514 } 515 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0001"; 516 } 517 518 /** 519 * @tc.number: user_file_service_external_file_access_Delete_0002 520 * @tc.name: external_file_access_Delete_0002 521 * @tc.desc: Test function of Delete interface for ERROR which selectFileUri is null. 522 * @tc.size: MEDIUM 523 * @tc.type: FUNC 524 * @tc.level Level 1 525 * @tc.require: SR000H0386 526 */ 527 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0002, testing::ext::TestSize.Level1) 528 { 529 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0002"; 530 try { 531 Uri selectFileUri(""); 532 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 533 EXPECT_NE(fileAccessHelper, nullptr); 534 int result = fileAccessHelper->Delete(selectFileUri); 535 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); 536 GTEST_LOG_(INFO) << "Delete_0002 result:" << result; 537 } catch (...) { 538 GTEST_LOG_(ERROR) << "external_file_access_Delete_0002 occurs an exception."; 539 } 540 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0002"; 541 } 542 543 /** 544 * @tc.number: user_file_service_external_file_access_Delete_0003 545 * @tc.name: external_file_access_Delete_0003 546 * @tc.desc: Test function of Delete interface for ERROR which selectFileUri is absolute path. 547 * @tc.size: MEDIUM 548 * @tc.type: FUNC 549 * @tc.level Level 1 550 * @tc.require: SR000H0386 551 */ 552 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0003, testing::ext::TestSize.Level1) 553 { 554 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0003"; 555 try { 556 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 557 EXPECT_NE(fileAccessHelper, nullptr); 558 vector<RootInfo> info; 559 int result = fileAccessHelper->GetRoots(info); 560 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 561 for (size_t i = 0; i < info.size(); i++) { 562 Uri parentUri(info[i].uri); 563 Uri newDirUriTest(""); 564 result = fileAccessHelper->Mkdir(parentUri, "test", newDirUriTest); 565 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 566 Uri selectFileUri("storage/media/100/local/files/Download/test"); 567 result = fileAccessHelper->Delete(selectFileUri); 568 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); 569 result = fileAccessHelper->Delete(newDirUriTest); 570 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 571 GTEST_LOG_(INFO) << "Delete_0003 result:" << result; 572 } 573 } catch (...) { 574 GTEST_LOG_(ERROR) << "external_file_access_Delete_0003 occurs an exception."; 575 } 576 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0003"; 577 } 578 579 /** 580 * @tc.number: user_file_service_external_file_access_Delete_0004 581 * @tc.name: external_file_access_Delete_0004 582 * @tc.desc: Test function of Delete interface for ERROR which selectFileUri is special symbols. 583 * @tc.size: MEDIUM 584 * @tc.type: FUNC 585 * @tc.level Level 1 586 * @tc.require: SR000H0386 587 */ 588 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0004, testing::ext::TestSize.Level1) 589 { 590 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0004"; 591 try { 592 Uri selectFileUri("!@#$%^&*()"); 593 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 594 EXPECT_NE(fileAccessHelper, nullptr); 595 int result = fileAccessHelper->Delete(selectFileUri); 596 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); 597 GTEST_LOG_(INFO) << "Delete_0004 result:" << result; 598 } catch (...) { 599 GTEST_LOG_(ERROR) << "external_file_access_Delete_0004 occurs an exception."; 600 } 601 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0004"; 602 } 603 DeleteTdd(shared_ptr<FileAccessHelper> fahs,Uri selectFile)604 static void DeleteTdd(shared_ptr<FileAccessHelper> fahs, Uri selectFile) 605 { 606 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_DeleteTdd"; 607 int ret = fahs->Delete(selectFile); 608 if (ret != OHOS::FileAccessFwk::ERR_OK) { 609 GTEST_LOG_(ERROR) << "DeleteTdd get result error, code:" << ret; 610 return; 611 } 612 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); 613 g_num++; 614 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_DeleteTdd"; 615 } 616 617 /** 618 * @tc.number: user_file_service_external_file_access_Delete_0005 619 * @tc.name: external_file_access_Delete_0005 620 * @tc.desc: Test function of Delete interface for SUCCESS which Concurrent. 621 * @tc.size: MEDIUM 622 * @tc.type: FUNC 623 * @tc.level Level 1 624 * @tc.require: SR000H0386 625 */ 626 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0005, testing::ext::TestSize.Level1) 627 { 628 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0005"; 629 try { 630 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 631 EXPECT_NE(fileAccessHelper, nullptr); 632 vector<RootInfo> info; 633 int result = fileAccessHelper->GetRoots(info); 634 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 635 for (size_t i = 0; i < info.size(); i++) { 636 Uri parentUri(info[i].uri); 637 Uri newDirUriTest(""); 638 result = fileAccessHelper->Mkdir(parentUri, "test", newDirUriTest); 639 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 640 Uri newFileUri(""); 641 std::string displayName = "test1.txt"; 642 result = fileAccessHelper->CreateFile(newDirUriTest, displayName, newFileUri); 643 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 644 g_num = 0; 645 for (int j = 0; j < INIT_THREADS_NUMBER; j++) { 646 std::thread execthread(DeleteTdd, fileAccessHelper, newFileUri); 647 execthread.join(); 648 } 649 EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); 650 result = fileAccessHelper->Delete(newDirUriTest); 651 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 652 } 653 } catch (...) { 654 GTEST_LOG_(ERROR) << "external_file_access_Delete_0005 occurs an exception."; 655 } 656 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0005"; 657 } 658 659 /** 660 * @tc.number: user_file_service_external_file_access_Delete_0006 661 * @tc.name: external_file_access_Delete_0006 662 * @tc.desc: Test function of Delete interface for ERROR because of GetProxyByUri failed. 663 * @tc.size: MEDIUM 664 * @tc.type: FUNC 665 * @tc.level Level 1 666 * @tc.require: SR000H0386 667 */ 668 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0006, testing::ext::TestSize.Level1) 669 { 670 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0006"; 671 try { 672 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 673 EXPECT_NE(fileAccessHelper, nullptr); 674 vector<RootInfo> info; 675 int result = fileAccessHelper->GetRoots(info); 676 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 677 for (size_t i = 0; i < info.size(); i++) { 678 std::string str = info[i].uri; 679 if (ReplaceBundleName(str, "ohos.com.NotExistBundleName")) { 680 Uri selectFileUri(str); 681 int result = fileAccessHelper->Delete(selectFileUri); 682 EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); 683 GTEST_LOG_(INFO) << "Delete_0006 result:" << result; 684 } else { 685 EXPECT_TRUE(false); 686 } 687 } 688 } catch (...) { 689 GTEST_LOG_(ERROR) << "external_file_access_Delete_0006 occurs an exception."; 690 } 691 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0006"; 692 } 693 694 /** 695 * @tc.number: user_file_service_external_file_access_Delete_0007 696 * @tc.name: external_file_access_Delete_0007 697 * @tc.desc: Test function of Delete interface for SUCCESS which delete file, the file name is chinese. 698 * @tc.size: MEDIUM 699 * @tc.type: FUNC 700 * @tc.level Level 1 701 * @tc.require: I70SX9 702 */ 703 HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0007, testing::ext::TestSize.Level1) 704 { 705 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0007"; 706 try { 707 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 708 EXPECT_NE(fileAccessHelper, nullptr); 709 vector<RootInfo> info; 710 int result = fileAccessHelper->GetRoots(info); 711 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 712 for (size_t i = 0; i < info.size(); i++) { 713 Uri parentUri(info[i].uri); 714 Uri newDirUriTest(""); 715 result = fileAccessHelper->Mkdir(parentUri, "测试目录", newDirUriTest); 716 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 717 EXPECT_EQ(newDirUriTest.ToString().find("测试目录"), std::string::npos); 718 Uri newFileUri(""); 719 result = fileAccessHelper->CreateFile(newDirUriTest, "删除文件.txt", newFileUri); 720 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 721 EXPECT_EQ(newFileUri.ToString().find("删除文件.txt"), std::string::npos); 722 result = fileAccessHelper->Delete(newFileUri); 723 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 724 GTEST_LOG_(INFO) << "Delete_0007 result:" << result; 725 result = fileAccessHelper->Delete(newDirUriTest); 726 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 727 } 728 } catch (...) { 729 GTEST_LOG_(ERROR) << "external_file_access_Delete_0007 occurs an exception."; 730 } 731 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0007"; 732 } 733 734 /** 735 * @tc.number: user_file_service_external_file_access_Move_0000 736 * @tc.name: external_file_access_Move_0000 737 * @tc.desc: Test function of Move interface for SUCCESS which move file. 738 * @tc.size: MEDIUM 739 * @tc.type: FUNC 740 * @tc.level Level 1 741 * @tc.require: SR000H0387 742 */ 743 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0000, testing::ext::TestSize.Level1) 744 { 745 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0000"; 746 try { 747 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 748 EXPECT_NE(fileAccessHelper, nullptr); 749 vector<RootInfo> info; 750 int result = fileAccessHelper->GetRoots(info); 751 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 752 for (size_t i = 0; i < info.size(); i++) { 753 Uri parentUri(info[i].uri); 754 Uri newDirUriTest1(""); 755 Uri newDirUriTest2(""); 756 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1); 757 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 758 result = fileAccessHelper->Mkdir(parentUri, "test2", newDirUriTest2); 759 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 760 Uri testUri(""); 761 result = fileAccessHelper->CreateFile(newDirUriTest1, "test.txt", testUri); 762 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 763 Uri testUri2(""); 764 result = fileAccessHelper->Move(testUri, newDirUriTest2, testUri2); 765 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 766 GTEST_LOG_(INFO) << "Move_0000 result:" << result; 767 result = fileAccessHelper->Delete(newDirUriTest1); 768 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 769 result = fileAccessHelper->Delete(newDirUriTest2); 770 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 771 } 772 } catch (...) { 773 GTEST_LOG_(ERROR) << "external_file_access_Move_0000 occurs an exception."; 774 } 775 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0000"; 776 } 777 778 /** 779 * @tc.number: user_file_service_external_file_access_Move_0001 780 * @tc.name: external_file_access_Move_0001 781 * @tc.desc: Test function of Move interface for SUCCESS which move folder. 782 * @tc.size: MEDIUM 783 * @tc.type: FUNC 784 * @tc.level Level 1 785 * @tc.require: SR000H0387 786 */ 787 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0001, testing::ext::TestSize.Level1) 788 { 789 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0001"; 790 try { 791 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 792 EXPECT_NE(fileAccessHelper, nullptr); 793 vector<RootInfo> info; 794 int result = fileAccessHelper->GetRoots(info); 795 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 796 for (size_t i = 0; i < info.size(); i++) { 797 Uri parentUri(info[i].uri); 798 Uri newDirUriTest1(""); 799 Uri newDirUriTest2(""); 800 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1); 801 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 802 result = fileAccessHelper->Mkdir(parentUri, "test2", newDirUriTest2); 803 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 804 Uri testUri(""); 805 result = fileAccessHelper->CreateFile(newDirUriTest1, "test.txt", testUri); 806 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 807 Uri testUri2(""); 808 result = fileAccessHelper->Move(newDirUriTest1, newDirUriTest2, testUri2); 809 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 810 GTEST_LOG_(INFO) << "Move_0001 result:" << result; 811 result = fileAccessHelper->Delete(newDirUriTest2); 812 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 813 } 814 } catch (...) { 815 GTEST_LOG_(ERROR) << "external_file_access_Move_0001 occurs an exception."; 816 } 817 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0001"; 818 } 819 820 /** 821 * @tc.number: user_file_service_external_file_access_Move_0002 822 * @tc.name: external_file_access_Move_0002 823 * @tc.desc: Test function of Move interface for ERROR which sourceFileUri is null. 824 * @tc.size: MEDIUM 825 * @tc.type: FUNC 826 * @tc.level Level 1 827 * @tc.require: SR000H0387 828 */ 829 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0002, testing::ext::TestSize.Level1) 830 { 831 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0002"; 832 try { 833 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 834 EXPECT_NE(fileAccessHelper, nullptr); 835 vector<RootInfo> info; 836 int result = fileAccessHelper->GetRoots(info); 837 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 838 for (size_t i = 0; i < info.size(); i++) { 839 Uri parentUri(info[i].uri); 840 Uri newDirUriTest(""); 841 result = fileAccessHelper->Mkdir(parentUri, "test", newDirUriTest); 842 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 843 Uri testUri(""); 844 Uri sourceFileUri(""); 845 result = fileAccessHelper->Move(sourceFileUri, newDirUriTest, testUri); 846 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); 847 GTEST_LOG_(INFO) << "Move_0002 result:" << result; 848 result = fileAccessHelper->Delete(newDirUriTest); 849 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 850 } 851 } catch (...) { 852 GTEST_LOG_(ERROR) << "external_file_access_Move_0002 occurs an exception."; 853 } 854 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0002"; 855 } 856 857 /** 858 * @tc.number: user_file_service_external_file_access_Move_0003 859 * @tc.name: external_file_access_Move_0003 860 * @tc.desc: Test function of Move interface for ERROR which sourceFileUri is absolute path. 861 * @tc.size: MEDIUM 862 * @tc.type: FUNC 863 * @tc.level Level 1 864 * @tc.require: SR000H0386 865 */ 866 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0003, testing::ext::TestSize.Level1) 867 { 868 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0003"; 869 try { 870 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 871 EXPECT_NE(fileAccessHelper, nullptr); 872 vector<RootInfo> info; 873 int result = fileAccessHelper->GetRoots(info); 874 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 875 for (size_t i = 0; i < info.size(); i++) { 876 Uri parentUri(info[i].uri); 877 Uri newDirUriTest1(""); 878 Uri newDirUriTest2(""); 879 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1); 880 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 881 result = fileAccessHelper->Mkdir(parentUri, "test2", newDirUriTest2); 882 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 883 Uri testUri(""); 884 result = fileAccessHelper->CreateFile(newDirUriTest1, "test.txt", testUri); 885 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 886 Uri testUri2(""); 887 Uri sourceFileUri("storage/media/100/local/files/Download/test1/test.txt"); 888 result = fileAccessHelper->Move(sourceFileUri, newDirUriTest2, testUri2); 889 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); 890 GTEST_LOG_(INFO) << "Move_0003 result:" << result; 891 result = fileAccessHelper->Delete(newDirUriTest1); 892 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 893 result = fileAccessHelper->Delete(newDirUriTest2); 894 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 895 } 896 } catch (...) { 897 GTEST_LOG_(ERROR) << "external_file_access_Move_0003 occurs an exception."; 898 } 899 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0003"; 900 } 901 902 /** 903 * @tc.number: user_file_service_external_file_access_Move_0004 904 * @tc.name: external_file_access_Move_0004 905 * @tc.desc: Test function of Move interface for ERROR which sourceFileUri is special symbols. 906 * @tc.size: MEDIUM 907 * @tc.type: FUNC 908 * @tc.level Level 1 909 * @tc.require: SR000H0387 910 */ 911 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0004, testing::ext::TestSize.Level1) 912 { 913 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0004"; 914 try { 915 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 916 EXPECT_NE(fileAccessHelper, nullptr); 917 vector<RootInfo> info; 918 int result = fileAccessHelper->GetRoots(info); 919 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 920 for (size_t i = 0; i < info.size(); i++) { 921 Uri parentUri(info[i].uri); 922 Uri newDirUriTest(""); 923 result = fileAccessHelper->Mkdir(parentUri, "test", newDirUriTest); 924 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 925 Uri testUri(""); 926 Uri sourceFileUri("~!@#$%^&*()_"); 927 result = fileAccessHelper->Move(sourceFileUri, newDirUriTest, testUri); 928 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); 929 GTEST_LOG_(INFO) << "Move_0004 result:" << result; 930 result = fileAccessHelper->Delete(newDirUriTest); 931 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 932 } 933 } catch (...) { 934 GTEST_LOG_(ERROR) << "external_file_access_Move_0004 occurs an exception."; 935 } 936 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0004"; 937 } 938 939 /** 940 * @tc.number: user_file_service_external_file_access_Move_0005 941 * @tc.name: external_file_access_Move_0005 942 * @tc.desc: Test function of Move interface for ERROR which targetParentUri is null. 943 * @tc.size: MEDIUM 944 * @tc.type: FUNC 945 * @tc.level Level 1 946 * @tc.require: SR000H0387 947 */ 948 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0005, testing::ext::TestSize.Level1) 949 { 950 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0005"; 951 try { 952 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 953 EXPECT_NE(fileAccessHelper, nullptr); 954 vector<RootInfo> info; 955 int result = fileAccessHelper->GetRoots(info); 956 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 957 for (size_t i = 0; i < info.size(); i++) { 958 Uri parentUri(info[i].uri); 959 Uri newDirUriTest(""); 960 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest); 961 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 962 Uri testUri(""); 963 result = fileAccessHelper->CreateFile(newDirUriTest, "test.txt", testUri); 964 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 965 Uri testUri2(""); 966 Uri targetParentUri(""); 967 result = fileAccessHelper->Move(testUri, targetParentUri, testUri2); 968 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); 969 GTEST_LOG_(INFO) << "Move_0005 result:" << result; 970 result = fileAccessHelper->Delete(newDirUriTest); 971 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 972 } 973 } catch (...) { 974 GTEST_LOG_(ERROR) << "external_file_access_Move_0005 occurs an exception."; 975 } 976 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0005"; 977 } 978 979 /** 980 * @tc.number: user_file_service_external_file_access_Move_0006 981 * @tc.name: external_file_access_Move_0006 982 * @tc.desc: Test function of Move interface for ERROR which targetParentUri is absolute path. 983 * @tc.size: MEDIUM 984 * @tc.type: FUNC 985 * @tc.level Level 1 986 * @tc.require: SR000H0387 987 */ 988 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0006, testing::ext::TestSize.Level1) 989 { 990 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0006"; 991 try { 992 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 993 EXPECT_NE(fileAccessHelper, nullptr); 994 vector<RootInfo> info; 995 int result = fileAccessHelper->GetRoots(info); 996 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 997 for (size_t i = 0; i < info.size(); i++) { 998 Uri parentUri(info[i].uri); 999 Uri newDirUriTest1(""); 1000 Uri newDirUriTest2(""); 1001 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1); 1002 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1003 result = fileAccessHelper->Mkdir(parentUri, "test2", newDirUriTest2); 1004 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1005 Uri testUri(""); 1006 result = fileAccessHelper->CreateFile(newDirUriTest1, "test.txt", testUri); 1007 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1008 Uri testUri2(""); 1009 Uri targetParentUri("storage/media/100/local/files/Download/test2"); 1010 result = fileAccessHelper->Move(testUri, targetParentUri, testUri2); 1011 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); 1012 GTEST_LOG_(INFO) << "Move_0006 result:" << result; 1013 result = fileAccessHelper->Delete(newDirUriTest1); 1014 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1015 result = fileAccessHelper->Delete(newDirUriTest2); 1016 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1017 } 1018 } catch (...) { 1019 GTEST_LOG_(ERROR) << "external_file_access_Move_0006 occurs an exception."; 1020 } 1021 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0006"; 1022 } 1023 1024 /** 1025 * @tc.number: user_file_service_external_file_access_Move_0007 1026 * @tc.name: external_file_access_Move_0007 1027 * @tc.desc: Test function of Move interface for ERROR which targetParentUri is special symbols. 1028 * @tc.size: MEDIUM 1029 * @tc.type: FUNC 1030 * @tc.level Level 1 1031 * @tc.require: SR000H0387 1032 */ 1033 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0007, testing::ext::TestSize.Level1) 1034 { 1035 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0007"; 1036 try { 1037 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 1038 EXPECT_NE(fileAccessHelper, nullptr); 1039 vector<RootInfo> info; 1040 int result = fileAccessHelper->GetRoots(info); 1041 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1042 for (size_t i = 0; i < info.size(); i++) { 1043 Uri parentUri(info[i].uri); 1044 Uri newDirUriTest1(""); 1045 Uri newDirUriTest2(""); 1046 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1); 1047 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1048 result = fileAccessHelper->Mkdir(parentUri, "test2", newDirUriTest2); 1049 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1050 Uri testUri(""); 1051 result = fileAccessHelper->CreateFile(newDirUriTest1, "test.txt", testUri); 1052 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1053 Uri testUri2(""); 1054 Uri targetParentUri("~!@#$^%&*()_"); 1055 result = fileAccessHelper->Move(testUri, targetParentUri, testUri2); 1056 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); 1057 GTEST_LOG_(INFO) << "Move_0007 result:" << result; 1058 result = fileAccessHelper->Delete(newDirUriTest1); 1059 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1060 result = fileAccessHelper->Delete(newDirUriTest2); 1061 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1062 } 1063 } catch (...) { 1064 GTEST_LOG_(ERROR) << "external_file_access_Move_0007 occurs an exception."; 1065 } 1066 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0007"; 1067 } 1068 1069 /** 1070 * @tc.number: user_file_service_external_file_access_Move_0008 1071 * @tc.name: external_file_access_Move_0008 1072 * @tc.desc: Test function of Move interface for SUCCESS which move empty folder. 1073 * @tc.size: MEDIUM 1074 * @tc.type: FUNC 1075 * @tc.level Level 1 1076 * @tc.require: SR000H0387 1077 */ 1078 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0008, testing::ext::TestSize.Level1) 1079 { 1080 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0008"; 1081 try { 1082 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 1083 EXPECT_NE(fileAccessHelper, nullptr); 1084 vector<RootInfo> info; 1085 int result = fileAccessHelper->GetRoots(info); 1086 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1087 for (size_t i = 0; i < info.size(); i++) { 1088 Uri parentUri(info[i].uri); 1089 Uri newDirUriTest1(""); 1090 Uri newDirUriTest2(""); 1091 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1); 1092 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1093 result = fileAccessHelper->Mkdir(parentUri, "test2", newDirUriTest2); 1094 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1095 Uri testUri(""); 1096 result = fileAccessHelper->Move(newDirUriTest1, newDirUriTest2, testUri); 1097 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1098 GTEST_LOG_(INFO) << "Move_0008 result:" << result; 1099 result = fileAccessHelper->Delete(newDirUriTest2); 1100 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1101 } 1102 } catch (...) { 1103 GTEST_LOG_(ERROR) << "external_file_access_Move_0008 occurs an exception."; 1104 } 1105 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0008"; 1106 } 1107 1108 /** 1109 * @tc.number: user_file_service_external_file_access_Move_0009 1110 * @tc.name: external_file_access_Move_0009 1111 * @tc.desc: Test function of Move interface for SUCCESS which move more file in folder. 1112 * @tc.size: MEDIUM 1113 * @tc.type: FUNC 1114 * @tc.level Level 1 1115 * @tc.require: SR000H0387 1116 */ 1117 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0009, testing::ext::TestSize.Level1) 1118 { 1119 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0009"; 1120 try { 1121 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 1122 EXPECT_NE(fileAccessHelper, nullptr); 1123 vector<RootInfo> info; 1124 int result = fileAccessHelper->GetRoots(info); 1125 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1126 for (size_t i = 0; i < info.size(); i++) { 1127 Uri parentUri(info[i].uri); 1128 Uri newDirUriTest1(""); 1129 Uri newDirUriTest2(""); 1130 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1); 1131 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1132 result = fileAccessHelper->Mkdir(parentUri, "test2", newDirUriTest2); 1133 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1134 Uri testUri(""); 1135 size_t fileNumbers = 2000; 1136 for (size_t j = 0; j < fileNumbers; j++) { 1137 string fileName = "test" + ToString(j) + ".txt"; 1138 result = fileAccessHelper->CreateFile(newDirUriTest1, fileName, testUri); 1139 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1140 } 1141 Uri testUri2(""); 1142 result = fileAccessHelper->Move(newDirUriTest1, newDirUriTest2, testUri2); 1143 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1144 GTEST_LOG_(INFO) << "Move_0009 result:" << result; 1145 result = fileAccessHelper->Delete(newDirUriTest2); 1146 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1147 } 1148 } catch (...) { 1149 GTEST_LOG_(ERROR) << "external_file_access_Move_0009 occurs an exception."; 1150 } 1151 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0009"; 1152 } 1153 1154 /** 1155 * @tc.number: user_file_service_external_file_access_Move_0010 1156 * @tc.name: external_file_access_Move_0010 1157 * @tc.desc: Test function of Move interface for SUCCESS which move Multilevel directory folder. 1158 * @tc.size: MEDIUM 1159 * @tc.type: FUNC 1160 * @tc.level Level 1 1161 * @tc.require: SR000H0387 1162 */ 1163 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0010, testing::ext::TestSize.Level1) 1164 { 1165 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0010"; 1166 try { 1167 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 1168 EXPECT_NE(fileAccessHelper, nullptr); 1169 vector<RootInfo> info; 1170 int result = fileAccessHelper->GetRoots(info); 1171 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1172 for (size_t i = 0; i < info.size(); i++) { 1173 Uri parentUri(info[i].uri); 1174 Uri newDirUriTest1(""); 1175 Uri newDirUriTest2(""); 1176 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1); 1177 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1178 result = fileAccessHelper->Mkdir(parentUri, "test2", newDirUriTest2); 1179 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1180 Uri testUri(""); 1181 result = fileAccessHelper->Mkdir(newDirUriTest1, "test", testUri); 1182 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1183 size_t directoryNumbers = 64; 1184 for (size_t j = 0; j < directoryNumbers; j++) { 1185 result = fileAccessHelper->Mkdir(testUri, "test", testUri); 1186 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1187 } 1188 Uri testUri2(""); 1189 result = fileAccessHelper->Move(newDirUriTest1, newDirUriTest2, testUri2); 1190 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1191 GTEST_LOG_(INFO) << "Move_0010 result:" << result; 1192 result = fileAccessHelper->Delete(newDirUriTest2); 1193 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1194 } 1195 } catch (...) { 1196 GTEST_LOG_(ERROR) << "external_file_access_Move_0010 occurs an exception."; 1197 } 1198 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0010"; 1199 } 1200 1201 /** 1202 * @tc.number: user_file_service_external_file_access_Move_0011 1203 * @tc.name: external_file_access_Move_0011 1204 * @tc.desc: Test function of Move interface for SUCCESS which move other equipment file. 1205 * @tc.size: MEDIUM 1206 * @tc.type: FUNC 1207 * @tc.level Level 1 1208 * @tc.require: SR000H0387 1209 */ 1210 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0011, testing::ext::TestSize.Level1) 1211 { 1212 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0011"; 1213 try { 1214 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 1215 EXPECT_NE(fileAccessHelper, nullptr); 1216 vector<RootInfo> info; 1217 int result = fileAccessHelper->GetRoots(info); 1218 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1219 for (size_t i = 0; i < info.size(); i++) { 1220 Uri parentUri(info[i].uri); 1221 Uri newDirUriTest1(""); 1222 Uri newDirUriTest2(""); 1223 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1); 1224 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1225 Uri testUri(""); 1226 result = fileAccessHelper->CreateFile(newDirUriTest1, "test.txt", testUri); 1227 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1228 for (size_t j = i + 1; j < info.size(); j++) { 1229 Uri otherUri(info[j].uri); 1230 result = fileAccessHelper->Mkdir(otherUri, "test2", newDirUriTest2); 1231 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1232 result = fileAccessHelper->Move(testUri, newDirUriTest2, testUri); 1233 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1234 result = fileAccessHelper->Move(testUri, newDirUriTest1, testUri); 1235 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1236 GTEST_LOG_(INFO) << "Move_0011 result:" << result; 1237 result = fileAccessHelper->Delete(newDirUriTest2); 1238 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1239 } 1240 result = fileAccessHelper->Delete(newDirUriTest1); 1241 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1242 } 1243 } catch (...) { 1244 GTEST_LOG_(ERROR) << "external_file_access_Move_0011 occurs an exception."; 1245 } 1246 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0011"; 1247 } 1248 MoveTdd(shared_ptr<FileAccessHelper> fahs,Uri sourceFile,Uri targetParent,Uri newFile)1249 static void MoveTdd(shared_ptr<FileAccessHelper> fahs, Uri sourceFile, Uri targetParent, Uri newFile) 1250 { 1251 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_MoveTdd"; 1252 int ret = fahs->Move(sourceFile, targetParent, newFile); 1253 if (ret != OHOS::FileAccessFwk::ERR_OK) { 1254 GTEST_LOG_(ERROR) << "MoveTdd get result error, code:" << ret; 1255 return; 1256 } 1257 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); 1258 g_num++; 1259 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_MoveTdd"; 1260 } 1261 1262 /** 1263 * @tc.number: user_file_service_external_file_access_Move_0012 1264 * @tc.name: external_file_access_Move_0012 1265 * @tc.desc: Test function of Move interface for SUCCESS which Concurrent. 1266 * @tc.size: MEDIUM 1267 * @tc.type: FUNC 1268 * @tc.level Level 1 1269 * @tc.require: SR000H0386 1270 */ 1271 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0012, testing::ext::TestSize.Level1) 1272 { 1273 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0012"; 1274 try { 1275 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 1276 EXPECT_NE(fileAccessHelper, nullptr); 1277 vector<RootInfo> info; 1278 int result = fileAccessHelper->GetRoots(info); 1279 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1280 for (size_t i = 0; i < info.size(); i++) { 1281 Uri parentUri(info[i].uri); 1282 Uri newDirUriTest1(""); 1283 Uri newDirUriTest2(""); 1284 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1); 1285 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1286 result = fileAccessHelper->Mkdir(parentUri, "test2", newDirUriTest2); 1287 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1288 Uri testUri(""); 1289 std::string displayName = "test3.txt"; 1290 result = fileAccessHelper->CreateFile(newDirUriTest1, displayName, testUri); 1291 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1292 Uri testUri2(""); 1293 g_num = 0; 1294 for (int j = 0; j < INIT_THREADS_NUMBER; j++) { 1295 std::thread execthread(MoveTdd, fileAccessHelper, testUri, newDirUriTest2, testUri2); 1296 execthread.join(); 1297 } 1298 EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); 1299 result = fileAccessHelper->Delete(newDirUriTest1); 1300 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1301 result = fileAccessHelper->Delete(newDirUriTest2); 1302 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1303 } 1304 } catch (...) { 1305 GTEST_LOG_(ERROR) << "external_file_access_Move_0012 occurs an exception."; 1306 } 1307 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0012"; 1308 } 1309 1310 /** 1311 * @tc.number: user_file_service_external_file_access_Move_0013 1312 * @tc.name: external_file_access_Move_0013 1313 * @tc.desc: Test function of Move interface for FAILED because of GetProxyByUri failed. 1314 * @tc.size: MEDIUM 1315 * @tc.type: FUNC 1316 * @tc.level Level 1 1317 * @tc.require: SR000H0387 1318 */ 1319 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0013, testing::ext::TestSize.Level1) 1320 { 1321 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0013"; 1322 try { 1323 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 1324 EXPECT_NE(fileAccessHelper, nullptr); 1325 vector<RootInfo> info; 1326 int result = fileAccessHelper->GetRoots(info); 1327 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1328 Uri parentUri(info[0].uri); 1329 Uri newDirUriTest1(""); 1330 Uri newDirUriTest2(""); 1331 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1); 1332 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1333 result = fileAccessHelper->Mkdir(parentUri, "test2", newDirUriTest2); 1334 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1335 Uri testUri(""); 1336 result = fileAccessHelper->Mkdir(newDirUriTest1, "test", testUri); 1337 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1338 std::string str = newDirUriTest1.ToString(); 1339 if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { 1340 GTEST_LOG_(ERROR) << "replace BundleName failed."; 1341 EXPECT_TRUE(false); 1342 } 1343 Uri uri(str); 1344 Uri testUri2(""); 1345 result = fileAccessHelper->Move(uri, newDirUriTest2, testUri2); 1346 EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); 1347 GTEST_LOG_(INFO) << "Move_0013 result:" << result; 1348 result = fileAccessHelper->Delete(newDirUriTest1); 1349 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1350 result = fileAccessHelper->Delete(newDirUriTest2); 1351 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1352 } catch (...) { 1353 GTEST_LOG_(ERROR) << "external_file_access_Move_0013 occurs an exception."; 1354 } 1355 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0013"; 1356 } 1357 1358 /** 1359 * @tc.number: user_file_service_external_file_access_Move_0014 1360 * @tc.name: external_file_access_Move_0014 1361 * @tc.desc: Test function of Move interface for SUCCESS which move file, the file name is chinese. 1362 * @tc.size: MEDIUM 1363 * @tc.type: FUNC 1364 * @tc.level Level 1 1365 * @tc.require: I70SX9 1366 */ 1367 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0014, testing::ext::TestSize.Level1) 1368 { 1369 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0014"; 1370 try { 1371 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 1372 EXPECT_NE(fileAccessHelper, nullptr); 1373 vector<RootInfo> info; 1374 int result = fileAccessHelper->GetRoots(info); 1375 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1376 for (size_t i = 0; i < info.size(); i++) { 1377 Uri parentUri(info[i].uri); 1378 Uri newDirUriTest1(""); 1379 Uri newDirUriTest2(""); 1380 result = fileAccessHelper->Mkdir(parentUri, "测试目录1", newDirUriTest1); 1381 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1382 EXPECT_EQ(newDirUriTest1.ToString().find("测试目录1"), std::string::npos); 1383 result = fileAccessHelper->Mkdir(parentUri, "测试目录2", newDirUriTest2); 1384 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1385 EXPECT_EQ(newDirUriTest2.ToString().find("测试目录2"), std::string::npos); 1386 Uri testUri(""); 1387 result = fileAccessHelper->CreateFile(newDirUriTest1, "移动文件.txt", testUri); 1388 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1389 EXPECT_EQ(testUri.ToString().find("移动文件.txt"), std::string::npos); 1390 Uri testUri2(""); 1391 result = fileAccessHelper->Move(testUri, newDirUriTest2, testUri2); 1392 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1393 GTEST_LOG_(INFO) << "Move_0014 result:" << result; 1394 result = fileAccessHelper->Delete(newDirUriTest1); 1395 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1396 result = fileAccessHelper->Delete(newDirUriTest2); 1397 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1398 } 1399 } catch (...) { 1400 GTEST_LOG_(ERROR) << "external_file_access_Move_0014 occurs an exception."; 1401 } 1402 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0014"; 1403 } 1404 1405 /** 1406 * @tc.number: user_file_service_external_file_access_Move_0015 1407 * @tc.name: external_file_access_Move_0015 1408 * @tc.desc: Test function of Move interface for SUCCESS which move Multilevel directory folder, 1409 * the folder name is chinese. 1410 * @tc.size: MEDIUM 1411 * @tc.type: FUNC 1412 * @tc.level Level 1 1413 * @tc.require: I70SX9 1414 */ 1415 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0015, testing::ext::TestSize.Level1) 1416 { 1417 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0015"; 1418 try { 1419 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 1420 EXPECT_NE(fileAccessHelper, nullptr); 1421 vector<RootInfo> info; 1422 int result = fileAccessHelper->GetRoots(info); 1423 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1424 for (size_t i = 0; i < info.size(); i++) { 1425 Uri parentUri(info[i].uri); 1426 Uri newDirUriTest1(""); 1427 Uri newDirUriTest2(""); 1428 result = fileAccessHelper->Mkdir(parentUri, "移动目录", newDirUriTest1); 1429 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1430 EXPECT_EQ(newDirUriTest1.ToString().find("移动目录"), std::string::npos); 1431 result = fileAccessHelper->Mkdir(parentUri, "test2", newDirUriTest2); 1432 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1433 Uri testUri2(""); 1434 result = fileAccessHelper->Move(newDirUriTest1, newDirUriTest2, testUri2); 1435 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1436 GTEST_LOG_(INFO) << "Move_0015 result:" << result; 1437 result = fileAccessHelper->Delete(newDirUriTest2); 1438 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1439 } 1440 } catch (...) { 1441 GTEST_LOG_(ERROR) << "external_file_access_Move_0015 occurs an exception."; 1442 } 1443 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0015"; 1444 } 1445 1446 /** 1447 * @tc.number: user_file_service_external_file_access_Move_0016 1448 * @tc.name: external_file_access_Move_0016 1449 * @tc.desc: Test function of Move interface for SUCCESS which move Multilevel directory folder, 1450 * the folder name is chinese. 1451 * @tc.size: MEDIUM 1452 * @tc.type: FUNC 1453 * @tc.level Level 1 1454 * @tc.require: I70SX9 1455 */ 1456 HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0016, testing::ext::TestSize.Level1) 1457 { 1458 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0016"; 1459 try { 1460 shared_ptr<FileAccessHelper> fileAccessHelper = FileExtensionHelperTest::GetFileAccessHelper(); 1461 EXPECT_NE(fileAccessHelper, nullptr); 1462 vector<RootInfo> info; 1463 int result = fileAccessHelper->GetRoots(info); 1464 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1465 for (size_t i = 0; i < info.size(); i++) { 1466 Uri parentUri(info[i].uri); 1467 Uri newDirUriTest1(""); 1468 Uri newDirUriTest2(""); 1469 result = fileAccessHelper->Mkdir(parentUri, "test1", newDirUriTest1); 1470 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1471 result = fileAccessHelper->Mkdir(parentUri, "移动目录", newDirUriTest2); 1472 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1473 Uri testUri2(""); 1474 result = fileAccessHelper->Move(newDirUriTest1, newDirUriTest2, testUri2); 1475 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1476 GTEST_LOG_(INFO) << "Move_0016 result:" << result; 1477 result = fileAccessHelper->Delete(newDirUriTest2); 1478 EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); 1479 } 1480 } catch (...) { 1481 GTEST_LOG_(ERROR) << "external_file_access_Move_0016 occurs an exception."; 1482 } 1483 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0016"; 1484 } 1485 1486 /** 1487 * @tc.number: user_file_service_external_file_access_creator_0000 1488 * @tc.name: external_file_access_creator_0000 1489 * @tc.desc: Test function of creator interface. 1490 * @tc.desc: create file access helper for SUCCESS. 1491 * @tc.size: MEDIUM 1492 * @tc.type: FUNC 1493 * @tc.level Level 1 1494 * @tc.require: SR000H0386 1495 */ 1496 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0000, testing::ext::TestSize.Level1) 1497 { 1498 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0000"; 1499 try { 1500 setuid(UID_TRANSFORM_TMP); 1501 std::pair<shared_ptr<FileAccessHelper>, int> helper = 1502 FileAccessHelper::Creator(FileExtensionHelperTest::GetContext()); 1503 setuid(UID_DEFAULT); 1504 ASSERT_TRUE(helper.first != nullptr); 1505 bool succ = helper.first->Release(); 1506 EXPECT_TRUE(succ); 1507 } catch (...) { 1508 GTEST_LOG_(ERROR) << "external_file_access_creator_0000 occurs an exception."; 1509 } 1510 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0000"; 1511 } 1512 1513 /** 1514 * @tc.number: user_file_service_external_file_access_creator_0001 1515 * @tc.name: external_file_access_creator_0001 1516 * @tc.desc: Test function of creator interface. 1517 * @tc.desc: create file access helper for SUCCESS. 1518 * @tc.size: MEDIUM 1519 * @tc.type: FUNC 1520 * @tc.level Level 1 1521 * @tc.require: SR000H0386 1522 */ 1523 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0001, testing::ext::TestSize.Level1) 1524 { 1525 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0001"; 1526 try { 1527 AAFwk::Want want; 1528 vector<AAFwk::Want> wantVec; 1529 setuid(UID_TRANSFORM_TMP); 1530 int ret = FileAccessHelper::GetRegisteredFileAccessExtAbilityInfo(wantVec); 1531 EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); 1532 bool sus = false; 1533 for (size_t i = 0; i < wantVec.size(); i++) { 1534 auto element = wantVec[i].GetElement(); 1535 if (element.GetBundleName() == "com.ohos.UserFile.ExternalFileManager" && 1536 element.GetAbilityName() == "FileExtensionAbility") { 1537 want = wantVec[i]; 1538 sus = true; 1539 break; 1540 } 1541 } 1542 EXPECT_TRUE(sus); 1543 vector<AAFwk::Want> wants{want}; 1544 std::pair<shared_ptr<FileAccessHelper>, int> helper = 1545 FileAccessHelper::Creator(FileExtensionHelperTest::GetContext(), wants); 1546 setuid(UID_DEFAULT); 1547 ASSERT_TRUE(helper.first != nullptr); 1548 bool succ = helper.first->Release(); 1549 EXPECT_TRUE(succ); 1550 } catch (...) { 1551 GTEST_LOG_(ERROR) << "external_file_access_creator_0001 occurs an exception."; 1552 } 1553 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0001"; 1554 } 1555 1556 /** 1557 * @tc.number: user_file_service_external_file_access_creator_0002 1558 * @tc.name: external_file_access_creator_0002 1559 * @tc.desc: Test function of creator interface. 1560 * @tc.desc: create file access helper for FAILED. 1561 * @tc.size: MEDIUM 1562 * @tc.type: FUNC 1563 * @tc.level Level 1 1564 * @tc.require: SR000H0386 1565 */ 1566 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0002, testing::ext::TestSize.Level1) 1567 { 1568 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0002"; 1569 try { 1570 std::shared_ptr<OHOS::AbilityRuntime::Context> context = nullptr; 1571 std::pair<shared_ptr<FileAccessHelper>, int> helper = FileAccessHelper::Creator(context); 1572 ASSERT_TRUE(helper.first == nullptr); 1573 } catch (...) { 1574 GTEST_LOG_(ERROR) << "external_file_access_creator_0002 occurs an exception."; 1575 } 1576 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0002"; 1577 } 1578 1579 /** 1580 * @tc.number: user_file_service_external_file_access_creator_0003 1581 * @tc.name: external_file_access_creator_0003 1582 * @tc.desc: Test function of creator interface. 1583 * @tc.desc: create file access helper for FAILED. 1584 * @tc.size: MEDIUM 1585 * @tc.type: FUNC 1586 * @tc.level Level 1 1587 * @tc.require: SR000H0386 1588 */ 1589 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0003, testing::ext::TestSize.Level1) 1590 { 1591 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0003"; 1592 try { 1593 std::vector<AAFwk::Want> wants; 1594 std::shared_ptr<OHOS::AbilityRuntime::Context> context = nullptr; 1595 std::pair<shared_ptr<FileAccessHelper>, int> helper = FileAccessHelper::Creator(context, wants); 1596 ASSERT_TRUE(helper.first == nullptr); 1597 } catch (...) { 1598 GTEST_LOG_(ERROR) << "external_file_access_creator_0003 occurs an exception."; 1599 } 1600 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0003"; 1601 } 1602 1603 /** 1604 * @tc.number: user_file_service_external_file_access_creator_0004 1605 * @tc.name: external_file_access_creator_0004 1606 * @tc.desc: Test function of creator interface. 1607 * @tc.desc: create file access helper for FAILED. 1608 * @tc.size: MEDIUM 1609 * @tc.type: FUNC 1610 * @tc.level Level 1 1611 * @tc.require: SR000H0386 1612 */ 1613 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0004, testing::ext::TestSize.Level1) 1614 { 1615 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0004"; 1616 try { 1617 std::vector<AAFwk::Want> wants; 1618 std::pair<shared_ptr<FileAccessHelper>, int> helper = 1619 FileAccessHelper::Creator(FileExtensionHelperTest::GetContext(), wants); 1620 ASSERT_TRUE(helper.first == nullptr); 1621 } catch (...) { 1622 GTEST_LOG_(ERROR) << "external_file_access_creator_0004 occurs an exception."; 1623 } 1624 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0004"; 1625 } 1626 1627 /** 1628 * @tc.number: user_file_service_external_file_access_creator_0005 1629 * @tc.name: external_file_access_creator_0005 1630 * @tc.desc: Test function of creator interface. 1631 * @tc.desc: create file access helper for FAILED. 1632 * @tc.size: MEDIUM 1633 * @tc.type: FUNC 1634 * @tc.level Level 1 1635 * @tc.require: SR000H0386 1636 */ 1637 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0005, testing::ext::TestSize.Level1) 1638 { 1639 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0005"; 1640 try { 1641 AAFwk::Want want; 1642 want.SetElementName("NotExistBundleName", "NotExistAbilityName"); 1643 std::vector<AAFwk::Want> wants{want}; 1644 std::pair<shared_ptr<FileAccessHelper>, int> helper = 1645 FileAccessHelper::Creator(FileExtensionHelperTest::GetContext(), wants); 1646 ASSERT_TRUE(helper.first == nullptr); 1647 } catch (...) { 1648 GTEST_LOG_(ERROR) << "external_file_access_creator_0005 occurs an exception."; 1649 } 1650 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0005"; 1651 } 1652 1653 /** 1654 * @tc.number: user_file_service_external_file_access_creator_0006 1655 * @tc.name: external_file_access_creator_0006 1656 * @tc.desc: Test function of creator interface. 1657 * @tc.desc: create file access helper for FAILED. 1658 * @tc.size: MEDIUM 1659 * @tc.type: FUNC 1660 * @tc.level Level 1 1661 * @tc.require: SR000H0386 1662 */ 1663 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0006, testing::ext::TestSize.Level1) 1664 { 1665 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0006"; 1666 try { 1667 std::vector<AAFwk::Want> wants; 1668 std::shared_ptr<OHOS::AbilityRuntime::Context> context = nullptr; 1669 std::pair<shared_ptr<FileAccessHelper>, int> helper = FileAccessHelper::Creator(context, wants); 1670 ASSERT_TRUE(helper.first == nullptr); 1671 } catch (...) { 1672 GTEST_LOG_(ERROR) << "external_file_access_creator_0006 occurs an exception."; 1673 } 1674 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0006"; 1675 } 1676 1677 /** 1678 * @tc.number: user_file_service_external_file_access_creator_0007 1679 * @tc.name: external_file_access_creator_0007 1680 * @tc.desc: Test function of creator interface. 1681 * @tc.desc: create file access helper for FAILED. 1682 * @tc.size: MEDIUM 1683 * @tc.type: FUNC 1684 * @tc.level Level 1 1685 * @tc.require: SR000H0386 1686 */ 1687 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0007, testing::ext::TestSize.Level1) 1688 { 1689 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0007"; 1690 try { 1691 std::vector<AAFwk::Want> wants; 1692 shared_ptr<FileAccessHelper> helper = 1693 FileAccessHelper::Creator(FileExtensionHelperTest::GetContext()->GetToken(), wants); 1694 ASSERT_TRUE(helper == nullptr); 1695 } catch (...) { 1696 GTEST_LOG_(ERROR) << "external_file_access_creator_0007 occurs an exception."; 1697 } 1698 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0007"; 1699 } 1700 1701 /** 1702 * @tc.number: user_file_service_external_file_access_creator_0008 1703 * @tc.name: external_file_access_creator_0008 1704 * @tc.desc: Test function of creator interface. 1705 * @tc.desc: create file access helper for FAILED. 1706 * @tc.size: MEDIUM 1707 * @tc.type: FUNC 1708 * @tc.level Level 1 1709 * @tc.require: SR000H0386 1710 */ 1711 HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0008, testing::ext::TestSize.Level1) 1712 { 1713 GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0008"; 1714 try { 1715 AAFwk::Want want; 1716 want.SetElementName("NotExistBundleName", "NotExistAbilityName"); 1717 std::vector<AAFwk::Want> wants{want}; 1718 shared_ptr<FileAccessHelper> helper = 1719 FileAccessHelper::Creator(FileExtensionHelperTest::GetContext()->GetToken(), wants); 1720 ASSERT_TRUE(helper == nullptr); 1721 } catch (...) { 1722 GTEST_LOG_(ERROR) << "external_file_access_creator_0008 occurs an exception."; 1723 } 1724 GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0008"; 1725 } 1726 } 1727