From 6230ce4724528a06744d2b1f6ae9e32451a347b0 Mon Sep 17 00:00:00 2001 From: s30051537 Date: Wed, 20 Mar 2024 13:52:01 +0800 Subject: [PATCH] ufs clean code Signed-off-by: s30051537 --- .../file_access/src/file_access_helper.cpp | 9 +- interfaces/kits/js/src/common/file_filter.h | 78 +- .../external_file_access_fuzzer.cpp | 124 +- .../external_file_access_fuzzer.h | 2 +- .../externalfileaccessaccess_fuzzer.cpp | 4 +- .../externalfileaccesscreatefile_fuzzer.cpp | 4 +- .../externalfileaccessdelete_fuzzer.cpp | 4 +- ...cessgetfileinfofromrelativepath_fuzzer.cpp | 4 +- ...nalfileaccessgetfileinfofromuri_fuzzer.cpp | 4 +- .../externalfileaccessgetroots_fuzzer.cpp | 4 +- .../externalfileaccesslistfile_fuzzer.cpp | 4 +- .../externalfileaccessmkdir_fuzzer.cpp | 4 +- .../externalfileaccessmove_fuzzer.cpp | 6 +- .../externalfileaccessopenfile_fuzzer.cpp | 6 +- .../externalfileaccessrename_fuzzer.cpp | 6 +- .../externalfileaccessscanfile_fuzzer.cpp | 4 +- .../medialibrary_file_access_fuzzer.cpp | 100 +- .../medialibrary_file_access_fuzzer.h | 2 +- test/unittest/BUILD.gn | 10 +- test/unittest/abnormal_file_access_test.cpp | 16 +- test/unittest/external_file_access_test.cpp | 6509 ----------------- .../external_file_access_test_basic.cpp | 1765 +++++ .../external_file_access_test_basic.h | 53 + .../external_file_access_test_info.cpp | 1952 +++++ .../external_file_access_test_management.cpp | 977 +++ .../external_file_access_test_operations.cpp | 2028 +++++ test/unittest/external_notify_test.cpp | 485 +- .../js_file_access_ext_ability_test.cpp | 286 +- ...> medialibrary_file_access_test_basic.cpp} | 1753 +---- .../medialibrary_file_access_test_basic.h | 33 + .../medialibrary_file_access_test_info.cpp | 1605 ++++ utils/hilog_wrapper.h | 18 +- 32 files changed, 9067 insertions(+), 8792 deletions(-) delete mode 100644 test/unittest/external_file_access_test.cpp create mode 100644 test/unittest/external_file_access_test_basic.cpp create mode 100644 test/unittest/external_file_access_test_basic.h create mode 100644 test/unittest/external_file_access_test_info.cpp create mode 100644 test/unittest/external_file_access_test_management.cpp create mode 100644 test/unittest/external_file_access_test_operations.cpp rename test/unittest/{medialibrary_file_access_test.cpp => medialibrary_file_access_test_basic.cpp} (50%) create mode 100644 test/unittest/medialibrary_file_access_test_basic.h create mode 100644 test/unittest/medialibrary_file_access_test_info.cpp diff --git a/interfaces/inner_api/file_access/src/file_access_helper.cpp b/interfaces/inner_api/file_access/src/file_access_helper.cpp index c0ae7e6a..25735bf1 100644 --- a/interfaces/inner_api/file_access/src/file_access_helper.cpp +++ b/interfaces/inner_api/file_access/src/file_access_helper.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -110,6 +110,7 @@ sptr FileAccessHelper::GetBundleMgrProxy() FileAccessHelper::FileAccessHelper(const std::shared_ptr &context, const std::unordered_map> &cMap) { + HILOG_INFO("Create FileAccessHelper by context"); token_ = context->GetToken(); cMap_ = cMap; } @@ -117,10 +118,16 @@ FileAccessHelper::FileAccessHelper(const std::shared_ptr &token, const std::unordered_map> &cMap) { + HILOG_INFO("Create FileAccessHelper by token"); token_ = token; cMap_ = cMap; } +FileAccessHelper::~FileAccessHelper() +{ + Release(); +} + void FileAccessHelper::AddFileAccessDeathRecipient(const sptr &token) { std::lock_guard lock(deathRecipientMutex_); diff --git a/interfaces/kits/js/src/common/file_filter.h b/interfaces/kits/js/src/common/file_filter.h index 3fedfe3a..deabcabc 100644 --- a/interfaces/kits/js/src/common/file_filter.h +++ b/interfaces/kits/js/src/common/file_filter.h @@ -36,19 +36,14 @@ public: FileFilter(const FileFilter &filter) = default; FileFilter &operator=(const FileFilter& filter) = default; - void SetSuffix(const std::vector &suffix) - { - suffix_ = suffix; - } - std::vector GetSuffix() const { return suffix_; } - void SetDisplayName(const std::vector &displayName) + void SetSuffix(const std::vector &suffix) { - displayName_ = displayName; + suffix_ = suffix; } std::vector GetDisplayName() const @@ -56,14 +51,14 @@ public: return displayName_; } - void SetMimeType(const std::vector &mimeType) + void SetDisplayName(const std::vector &displayName) { - mimeType_ = mimeType; + displayName_ = displayName; } - std::vector GetMimeType() const + void SetMimeType(const std::vector &mimeType) { - return mimeType_; + mimeType_ = mimeType; } void SetFileSizeOver(const int64_t &fileSizeOver) @@ -71,9 +66,9 @@ public: fileSizeOver_ = fileSizeOver; } - int64_t GetFileSizeOver() const + std::vector GetMimeType() const { - return fileSizeOver_; + return mimeType_; } void SetLastModifiedAfter(const double &lastModifiedAfter) @@ -81,14 +76,14 @@ public: lastModifiedAfter_ = lastModifiedAfter; } - double GetLastModifiedAfter() const + int64_t GetFileSizeOver() const { - return lastModifiedAfter_; + return fileSizeOver_; } - void SetExcludeMedia(const bool &excludeMedia) + double GetLastModifiedAfter() const { - excludeMedia_ = excludeMedia; + return lastModifiedAfter_; } bool GetExcludeMedia() const @@ -96,9 +91,9 @@ public: return excludeMedia_; } - void SetHasFilter(const bool &hasFilter) + void SetExcludeMedia(const bool &excludeMedia) { - hasFilter_ = hasFilter; + excludeMedia_ = excludeMedia; } bool GetHasFilter() const @@ -106,60 +101,65 @@ public: return hasFilter_; } + void SetHasFilter(const bool &hasFilter) + { + hasFilter_ = hasFilter; + } + bool Marshalling(Parcel &parcel) const { - if (!parcel.WriteStringVector(suffix_)) { - return false; - } if (!parcel.WriteStringVector(displayName_)) { return false; } - if (!parcel.WriteStringVector(mimeType_)) { + if (!parcel.WriteStringVector(suffix_)) { return false; } if (!parcel.WriteInt64(fileSizeOver_)) { return false; } - if (!parcel.WriteDouble(lastModifiedAfter_)) { + if (!parcel.WriteStringVector(mimeType_)) { + return false; + } + if (!parcel.WriteBool(hasFilter_)) { return false; } if (!parcel.WriteBool(excludeMedia_)) { return false; } - if (!parcel.WriteBool(hasFilter_)) { + if (!parcel.WriteDouble(lastModifiedAfter_)) { return false; } return true; } - static FileFilter* Unmarshalling(Parcel &parcel) - { - auto obj = new (std::nothrow) FileFilter(); - if (obj != nullptr && !obj->ReadFromParcel(parcel)) { - delete obj; - obj = nullptr; - } - return obj; - } - bool ReadFromParcel(Parcel &parcel) { - if (!parcel.ReadStringVector(&suffix_)) { + if (!parcel.ReadStringVector(&displayName_)) { return false; } - if (!parcel.ReadStringVector(&displayName_)) { + if (!parcel.ReadStringVector(&suffix_)) { return false; } if (!parcel.ReadStringVector(&mimeType_)) { return false; } + hasFilter_ = parcel.ReadBool(); fileSizeOver_ = parcel.ReadInt64(); - lastModifiedAfter_ = parcel.ReadDouble(); excludeMedia_ = parcel.ReadBool(); - hasFilter_ = parcel.ReadBool(); + lastModifiedAfter_ = parcel.ReadDouble(); return true; } + static FileFilter* Unmarshalling(Parcel &parcel) + { + auto obj = new (std::nothrow) FileFilter(); + if (obj != nullptr && !obj->ReadFromParcel(parcel)) { + delete obj; + obj = nullptr; + } + return obj; + } + static const int32_t INVALID_SIZE = -1; static const int32_t INVALID_MODIFY_AFTER = -1; diff --git a/test/fuzztest/externalfileaccess_fuzzer/external_file_access_fuzzer.cpp b/test/fuzztest/externalfileaccess_fuzzer/external_file_access_fuzzer.cpp index 5ef6698b..16e81df0 100644 --- a/test/fuzztest/externalfileaccess_fuzzer/external_file_access_fuzzer.cpp +++ b/test/fuzztest/externalfileaccess_fuzzer/external_file_access_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -34,9 +34,9 @@ using namespace OHOS; using namespace FileAccessFwk; const int ABILITY_ID = 5003; -shared_ptr g_fah = nullptr; const int UID_TRANSFORM_TMP = 20000000; const int UID_DEFAULT = 0; +shared_ptr g_fah = nullptr; void SetNativeToken() { @@ -45,18 +45,18 @@ void SetNativeToken() perms[0] = "ohos.permission.FILE_ACCESS_MANAGER"; perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; NativeTokenInfoParams infoInstance = { + .acls = nullptr, .dcapsNum = 0, .permsNum = 2, .aclsNum = 0, .dcaps = nullptr, .perms = perms, - .acls = nullptr, .aplStr = "system_core", }; + const uint64_t systemAppMask = (static_cast(1) << 32); infoInstance.processName = "SetUpTestCase"; tokenId = GetAccessTokenId(&infoInstance); - const uint64_t systemAppMask = (static_cast(1) << 32); tokenId |= systemAppMask; SetSelfTokenID(tokenId); OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo(); @@ -79,17 +79,17 @@ shared_ptr GetFileAccessHelper() HILOG_ERROR("GetRegisteredFileAccessExtAbilityInfo failed."); return nullptr; } - bool sus = false; + bool isFound = false; for (size_t i = 0; i < wantVec.size(); i++) { auto element = wantVec[i].GetElement(); if (element.GetBundleName() == "com.ohos.UserFile.ExternalFileManager" && element.GetAbilityName() == "FileExtensionAbility") { want = wantVec[i]; - sus = true; + isFound = true; break; } } - if (!sus) { + if (!isFound) { HILOG_ERROR("not found bundleName."); return nullptr; } @@ -107,18 +107,18 @@ bool CreatorFuzzTest(const uint8_t* data, size_t size) { SetNativeToken(); if ((data == nullptr) || (size <= 0)) { - HILOG_ERROR("parameter data is nullptr or parameter size <= 0."); + HILOG_ERROR("Null pointer or invalid size for parameter data."); return false; } std::string bundleName(reinterpret_cast(data), size); auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); - auto remoteObj = saManager->GetSystemAbility(ABILITY_ID); + auto systemAbility = saManager->GetSystemAbility(ABILITY_ID); AAFwk::Want want; want.SetElementName(bundleName, "FileExtensionAbility"); vector wants {want}; setuid(UID_TRANSFORM_TMP); shared_ptr helper = nullptr; - helper = FileAccessHelper::Creator(remoteObj, wants); + helper = FileAccessHelper::Creator(systemAbility, wants); setuid(UID_DEFAULT); if (helper == nullptr) { HILOG_ERROR("creator return nullptr."); @@ -131,7 +131,7 @@ bool CreatorFuzzTest(const uint8_t* data, size_t size) bool AccessFuzzTest(const uint8_t* data, size_t size) { if ((data == nullptr) || (size <= 0)) { - HILOG_ERROR("parameter data is nullptr or parameter size <= 0."); + HILOG_ERROR("Parameter data is null or size is invalid size <= 0."); return false; } Uri uri(std::string(reinterpret_cast(data), size)); @@ -151,20 +151,20 @@ bool AccessFuzzTest(const uint8_t* data, size_t size) bool OpenFileFuzzTest(const uint8_t* data, size_t size) { if ((data == nullptr) || (size <= 0)) { - HILOG_ERROR("parameter data is nullptr or parameter size <= 0."); + HILOG_ERROR("parameter data is nullptr or size <= 0."); return false; } Uri uri(std::string(reinterpret_cast(data), size)); shared_ptr helper = GetFileAccessHelper(); if (helper == nullptr) { - HILOG_ERROR("GetFileAccessHelper return nullptr."); + HILOG_ERROR("Failed to create FileAccessHelper."); return false; } int fd = -1; int result = 0; result = helper->OpenFile(uri, WRITE_READ, fd); if (result != OHOS::FileAccessFwk::ERR_OK) { - HILOG_ERROR("OpenFile failed. ret : %{public}d", result); + HILOG_ERROR("Open file failed. ret : %{public}d", result); return false; } close(fd); @@ -174,7 +174,7 @@ bool OpenFileFuzzTest(const uint8_t* data, size_t size) bool CreateFileFuzzTest(const uint8_t* data, size_t size) { if ((data == nullptr) || (size <= 0)) { - HILOG_ERROR("parameter data is nullptr or parameter size <= 0."); + HILOG_ERROR("parameter data is null or size is invalid."); return false; } shared_ptr helper = GetFileAccessHelper(); @@ -214,14 +214,14 @@ bool MkdirFuzzTest(const uint8_t* data, size_t size) } shared_ptr helper = GetFileAccessHelper(); if (helper == nullptr) { - HILOG_ERROR("GetFileAccessHelper return nullptr."); + HILOG_ERROR("Failed to create FileAccessHelper."); return false; } vector info; int result = helper->GetRoots(info); if (result != OHOS::FileAccessFwk::ERR_OK) { - HILOG_ERROR("GetRoots failed. ret : %{public}d", result); + HILOG_ERROR("Failed to retrieve roots in GetRoots method. ret : %{public}d", result); return false; } for (size_t i = 0; i < info.size(); i++) { @@ -250,12 +250,51 @@ bool DeleteFuzzTest(const uint8_t* data, size_t size) Uri uri(std::string(reinterpret_cast(data), size)); shared_ptr helper = GetFileAccessHelper(); if (helper == nullptr) { - HILOG_ERROR("GetFileAccessHelper return nullptr."); + HILOG_ERROR("Unable to create FileAccessHelper."); return false; } int result = helper->Delete(uri); if (result != OHOS::FileAccessFwk::ERR_OK) { - HILOG_ERROR("Delete failed. ret : %{public}d", result); + HILOG_ERROR("Failed to delete file. ret : %{public}d", result); + return false; + } + return true; +} + +bool ProcessRoot(shared_ptr helper, Uri parentUri) +{ + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + int result = helper->Mkdir(parentUri, "test1", newDirUriTest1); + if (result != OHOS::FileAccessFwk::ERR_OK) { + HILOG_ERROR("Mkdir file failed. ret : %{public}d", result); + return false; + } + result = helper->Mkdir(parentUri, "test2", newDirUriTest2); + if (result != OHOS::FileAccessFwk::ERR_OK) { + HILOG_ERROR("Mkdir file failed. ret : %{public}d", result); + return false; + } + Uri testUri(""); + result = helper->CreateFile(newDirUriTest1, "test.txt", testUri); + if (result != OHOS::FileAccessFwk::ERR_OK) { + HILOG_ERROR("CreateFile file failed. ret : %{public}d", result); + return false; + } + Uri testUri2(""); + result = helper->Move(testUri, newDirUriTest2, testUri2); + if (result != OHOS::FileAccessFwk::ERR_OK) { + HILOG_ERROR("Move file failed. ret : %{public}d", result); + return false; + } + result = helper->Delete(newDirUriTest1); + if (result != OHOS::FileAccessFwk::ERR_OK) { + HILOG_ERROR("Delete file failed. ret : %{public}d", result); + return false; + } + result = helper->Delete(newDirUriTest2); + if (result != OHOS::FileAccessFwk::ERR_OK) { + HILOG_ERROR("Delete file failed. ret : %{public}d", result); return false; } return true; @@ -264,12 +303,12 @@ bool DeleteFuzzTest(const uint8_t* data, size_t size) bool MoveFuzzTest(const uint8_t* data, size_t size) { if ((data == nullptr) || (size <= 0)) { - HILOG_ERROR("parameter data is nullptr or parameter size <= 0."); + HILOG_ERROR("parameter data is nullptr or size <= 0."); return false; } shared_ptr helper = GetFileAccessHelper(); if (helper == nullptr) { - HILOG_ERROR("GetFileAccessHelper return nullptr."); + HILOG_ERROR("Unable to create FileAccessHelper."); return false; } vector info; @@ -279,38 +318,7 @@ bool MoveFuzzTest(const uint8_t* data, size_t size) } for (size_t i = 0; i < info.size(); i++) { Uri parentUri(info[i].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = helper->Mkdir(parentUri, "test1", newDirUriTest1); - if (result != OHOS::FileAccessFwk::ERR_OK) { - HILOG_ERROR("Mkdir failed. ret : %{public}d", result); - return false; - } - result = helper->Mkdir(parentUri, "test2", newDirUriTest2); - if (result != OHOS::FileAccessFwk::ERR_OK) { - HILOG_ERROR("Mkdir failed. ret : %{public}d", result); - return false; - } - Uri testUri(""); - result = helper->CreateFile(newDirUriTest1, "test.txt", testUri); - if (result != OHOS::FileAccessFwk::ERR_OK) { - HILOG_ERROR("CreateFile failed. ret : %{public}d", result); - return false; - } - Uri testUri2(""); - result = helper->Move(testUri, newDirUriTest2, testUri2); - if (result != OHOS::FileAccessFwk::ERR_OK) { - HILOG_ERROR("Move failed. ret : %{public}d", result); - return false; - } - result = helper->Delete(newDirUriTest1); - if (result != OHOS::FileAccessFwk::ERR_OK) { - HILOG_ERROR("Delete failed. ret : %{public}d", result); - return false; - } - result = helper->Delete(newDirUriTest2); - if (result != OHOS::FileAccessFwk::ERR_OK) { - HILOG_ERROR("Delete failed. ret : %{public}d", result); + if (!ProcessRoot(helper, parentUri)) { return false; } } @@ -325,13 +333,13 @@ bool RenameFuzzTest(const uint8_t* data, size_t size) } shared_ptr helper = GetFileAccessHelper(); if (helper == nullptr) { - HILOG_ERROR("GetFileAccessHelper return nullptr."); + HILOG_ERROR("GetFileAccessHelper failed."); return false; } vector info; int result = helper->GetRoots(info); if (result != OHOS::FileAccessFwk::ERR_OK) { - HILOG_ERROR("GetRoots failed. ret : %{public}d", result); + HILOG_ERROR("Failed to obtain roots data in GetRoots method. ret : %{public}d", result); return false; } for (size_t i = 0; i < info.size(); i++) { @@ -360,12 +368,12 @@ bool RenameFuzzTest(const uint8_t* data, size_t size) bool ListFileFuzzTest(const uint8_t* data, size_t size) { if ((data == nullptr) || (size == 0)) { - HILOG_ERROR("parameter data is nullptr or parameter size <= 0."); + HILOG_ERROR("parameter data is nullptr or invalid size."); return false; } shared_ptr helper = GetFileAccessHelper(); if (helper == nullptr) { - HILOG_ERROR("GetFileAccessHelper return nullptr."); + HILOG_ERROR("Failed to create FileAccessHelper."); return false; } @@ -405,7 +413,7 @@ bool ScanFileFuzzTest(const uint8_t* data, size_t size) FileFilter filter; int result = helper->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); if (result != OHOS::FileAccessFwk::ERR_OK) { - HILOG_ERROR("ScanFile failed. ret : %{public}d", result); + HILOG_ERROR("ScanFile operation failed. ret : %{public}d", result); return false; } return true; diff --git a/test/fuzztest/externalfileaccess_fuzzer/external_file_access_fuzzer.h b/test/fuzztest/externalfileaccess_fuzzer/external_file_access_fuzzer.h index 8b72c9da..a1d1af38 100644 --- a/test/fuzztest/externalfileaccess_fuzzer/external_file_access_fuzzer.h +++ b/test/fuzztest/externalfileaccess_fuzzer/external_file_access_fuzzer.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/test/fuzztest/externalfileaccessaccess_fuzzer/externalfileaccessaccess_fuzzer.cpp b/test/fuzztest/externalfileaccessaccess_fuzzer/externalfileaccessaccess_fuzzer.cpp index fa7893bb..4fe7af29 100644 --- a/test/fuzztest/externalfileaccessaccess_fuzzer/externalfileaccessaccess_fuzzer.cpp +++ b/test/fuzztest/externalfileaccessaccess_fuzzer/externalfileaccessaccess_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -52,9 +52,9 @@ void SetNativeToken() perms[0] = "ohos.permission.FILE_ACCESS_MANAGER"; perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; NativeTokenInfoParams infoInstance = { + .aclsNum = 0, .dcapsNum = 0, .permsNum = 2, - .aclsNum = 0, .dcaps = nullptr, .perms = perms, .acls = nullptr, diff --git a/test/fuzztest/externalfileaccesscreatefile_fuzzer/externalfileaccesscreatefile_fuzzer.cpp b/test/fuzztest/externalfileaccesscreatefile_fuzzer/externalfileaccesscreatefile_fuzzer.cpp index 77ffd6b4..151f87f6 100644 --- a/test/fuzztest/externalfileaccesscreatefile_fuzzer/externalfileaccesscreatefile_fuzzer.cpp +++ b/test/fuzztest/externalfileaccesscreatefile_fuzzer/externalfileaccesscreatefile_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -52,8 +52,8 @@ void SetNativeToken() perms[0] = "ohos.permission.FILE_ACCESS_MANAGER"; perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; NativeTokenInfoParams infoInstance = { - .dcapsNum = 0, .permsNum = 2, + .dcapsNum = 0, .aclsNum = 0, .dcaps = nullptr, .perms = perms, diff --git a/test/fuzztest/externalfileaccessdelete_fuzzer/externalfileaccessdelete_fuzzer.cpp b/test/fuzztest/externalfileaccessdelete_fuzzer/externalfileaccessdelete_fuzzer.cpp index b8cafecd..a7875d6b 100644 --- a/test/fuzztest/externalfileaccessdelete_fuzzer/externalfileaccessdelete_fuzzer.cpp +++ b/test/fuzztest/externalfileaccessdelete_fuzzer/externalfileaccessdelete_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -52,12 +52,12 @@ void SetNativeToken() perms[0] = "ohos.permission.FILE_ACCESS_MANAGER"; perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; NativeTokenInfoParams infoInstance = { - .dcapsNum = 0, .permsNum = 2, .aclsNum = 0, .dcaps = nullptr, .perms = perms, .acls = nullptr, + .dcapsNum = 0, .aplStr = "system_core", }; diff --git a/test/fuzztest/externalfileaccessgetfileinfofromrelativepath_fuzzer/externalfileaccessgetfileinfofromrelativepath_fuzzer.cpp b/test/fuzztest/externalfileaccessgetfileinfofromrelativepath_fuzzer/externalfileaccessgetfileinfofromrelativepath_fuzzer.cpp index e2f3e464..539500e9 100644 --- a/test/fuzztest/externalfileaccessgetfileinfofromrelativepath_fuzzer/externalfileaccessgetfileinfofromrelativepath_fuzzer.cpp +++ b/test/fuzztest/externalfileaccessgetfileinfofromrelativepath_fuzzer/externalfileaccessgetfileinfofromrelativepath_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -53,11 +53,11 @@ void SetNativeToken() perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; NativeTokenInfoParams infoInstance = { .dcapsNum = 0, - .permsNum = 2, .aclsNum = 0, .dcaps = nullptr, .perms = perms, .acls = nullptr, + .permsNum = 2, .aplStr = "system_core", }; diff --git a/test/fuzztest/externalfileaccessgetfileinfofromuri_fuzzer/externalfileaccessgetfileinfofromuri_fuzzer.cpp b/test/fuzztest/externalfileaccessgetfileinfofromuri_fuzzer/externalfileaccessgetfileinfofromuri_fuzzer.cpp index b383fb52..5d9e7750 100644 --- a/test/fuzztest/externalfileaccessgetfileinfofromuri_fuzzer/externalfileaccessgetfileinfofromuri_fuzzer.cpp +++ b/test/fuzztest/externalfileaccessgetfileinfofromuri_fuzzer/externalfileaccessgetfileinfofromuri_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -54,10 +54,10 @@ void SetNativeToken() NativeTokenInfoParams infoInstance = { .dcapsNum = 0, .permsNum = 2, - .aclsNum = 0, .dcaps = nullptr, .perms = perms, .acls = nullptr, + .aclsNum = 0, .aplStr = "system_core", }; diff --git a/test/fuzztest/externalfileaccessgetroots_fuzzer/externalfileaccessgetroots_fuzzer.cpp b/test/fuzztest/externalfileaccessgetroots_fuzzer/externalfileaccessgetroots_fuzzer.cpp index 51885bf8..f6056d5a 100644 --- a/test/fuzztest/externalfileaccessgetroots_fuzzer/externalfileaccessgetroots_fuzzer.cpp +++ b/test/fuzztest/externalfileaccessgetroots_fuzzer/externalfileaccessgetroots_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -55,9 +55,9 @@ void SetNativeToken() .dcapsNum = 0, .permsNum = 2, .aclsNum = 0, - .dcaps = nullptr, .perms = perms, .acls = nullptr, + .dcaps = nullptr, .aplStr = "system_core", }; diff --git a/test/fuzztest/externalfileaccesslistfile_fuzzer/externalfileaccesslistfile_fuzzer.cpp b/test/fuzztest/externalfileaccesslistfile_fuzzer/externalfileaccesslistfile_fuzzer.cpp index 54724b5d..1cb2da11 100644 --- a/test/fuzztest/externalfileaccesslistfile_fuzzer/externalfileaccesslistfile_fuzzer.cpp +++ b/test/fuzztest/externalfileaccesslistfile_fuzzer/externalfileaccesslistfile_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -56,8 +56,8 @@ void SetNativeToken() .permsNum = 2, .aclsNum = 0, .dcaps = nullptr, - .perms = perms, .acls = nullptr, + .perms = perms, .aplStr = "system_core", }; diff --git a/test/fuzztest/externalfileaccessmkdir_fuzzer/externalfileaccessmkdir_fuzzer.cpp b/test/fuzztest/externalfileaccessmkdir_fuzzer/externalfileaccessmkdir_fuzzer.cpp index 58954b0a..b9ce3aac 100644 --- a/test/fuzztest/externalfileaccessmkdir_fuzzer/externalfileaccessmkdir_fuzzer.cpp +++ b/test/fuzztest/externalfileaccessmkdir_fuzzer/externalfileaccessmkdir_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -52,9 +52,9 @@ void SetNativeToken() perms[0] = "ohos.permission.FILE_ACCESS_MANAGER"; perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; NativeTokenInfoParams infoInstance = { + .aclsNum = 0, .dcapsNum = 0, .permsNum = 2, - .aclsNum = 0, .dcaps = nullptr, .perms = perms, .acls = nullptr, diff --git a/test/fuzztest/externalfileaccessmove_fuzzer/externalfileaccessmove_fuzzer.cpp b/test/fuzztest/externalfileaccessmove_fuzzer/externalfileaccessmove_fuzzer.cpp index 93e05064..0f92395c 100644 --- a/test/fuzztest/externalfileaccessmove_fuzzer/externalfileaccessmove_fuzzer.cpp +++ b/test/fuzztest/externalfileaccessmove_fuzzer/externalfileaccessmove_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -52,10 +52,10 @@ void SetNativeToken() perms[0] = "ohos.permission.FILE_ACCESS_MANAGER"; perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; NativeTokenInfoParams infoInstance = { - .dcapsNum = 0, - .permsNum = 2, .aclsNum = 0, .dcaps = nullptr, + .dcapsNum = 0, + .permsNum = 2, .perms = perms, .acls = nullptr, .aplStr = "system_core", diff --git a/test/fuzztest/externalfileaccessopenfile_fuzzer/externalfileaccessopenfile_fuzzer.cpp b/test/fuzztest/externalfileaccessopenfile_fuzzer/externalfileaccessopenfile_fuzzer.cpp index 859c919a..4d1d32c2 100644 --- a/test/fuzztest/externalfileaccessopenfile_fuzzer/externalfileaccessopenfile_fuzzer.cpp +++ b/test/fuzztest/externalfileaccessopenfile_fuzzer/externalfileaccessopenfile_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -52,11 +52,11 @@ void SetNativeToken() perms[0] = "ohos.permission.FILE_ACCESS_MANAGER"; perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; NativeTokenInfoParams infoInstance = { - .dcapsNum = 0, - .permsNum = 2, .aclsNum = 0, .dcaps = nullptr, .perms = perms, + .dcapsNum = 0, + .permsNum = 2, .acls = nullptr, .aplStr = "system_core", }; diff --git a/test/fuzztest/externalfileaccessrename_fuzzer/externalfileaccessrename_fuzzer.cpp b/test/fuzztest/externalfileaccessrename_fuzzer/externalfileaccessrename_fuzzer.cpp index a86ef762..f4a85833 100644 --- a/test/fuzztest/externalfileaccessrename_fuzzer/externalfileaccessrename_fuzzer.cpp +++ b/test/fuzztest/externalfileaccessrename_fuzzer/externalfileaccessrename_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -52,12 +52,12 @@ void SetNativeToken() perms[0] = "ohos.permission.FILE_ACCESS_MANAGER"; perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; NativeTokenInfoParams infoInstance = { - .dcapsNum = 0, - .permsNum = 2, .aclsNum = 0, .dcaps = nullptr, .perms = perms, .acls = nullptr, + .dcapsNum = 0, + .permsNum = 2, .aplStr = "system_core", }; diff --git a/test/fuzztest/externalfileaccessscanfile_fuzzer/externalfileaccessscanfile_fuzzer.cpp b/test/fuzztest/externalfileaccessscanfile_fuzzer/externalfileaccessscanfile_fuzzer.cpp index 6d3b0ede..74ef6ef8 100644 --- a/test/fuzztest/externalfileaccessscanfile_fuzzer/externalfileaccessscanfile_fuzzer.cpp +++ b/test/fuzztest/externalfileaccessscanfile_fuzzer/externalfileaccessscanfile_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -52,10 +52,10 @@ void SetNativeToken() perms[0] = "ohos.permission.FILE_ACCESS_MANAGER"; perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; NativeTokenInfoParams infoInstance = { + .dcaps = nullptr, .dcapsNum = 0, .permsNum = 2, .aclsNum = 0, - .dcaps = nullptr, .perms = perms, .acls = nullptr, .aplStr = "system_core", diff --git a/test/fuzztest/medialibraryfileaccess_fuzzer/medialibrary_file_access_fuzzer.cpp b/test/fuzztest/medialibraryfileaccess_fuzzer/medialibrary_file_access_fuzzer.cpp index fa89fa9a..58d3c444 100644 --- a/test/fuzztest/medialibraryfileaccess_fuzzer/medialibrary_file_access_fuzzer.cpp +++ b/test/fuzztest/medialibraryfileaccess_fuzzer/medialibrary_file_access_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -45,19 +45,19 @@ void SetNativeToken() perms[0] = "ohos.permission.FILE_ACCESS_MANAGER"; perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; NativeTokenInfoParams infoInstance = { + .perms = perms, .dcapsNum = 0, .permsNum = 2, .aclsNum = 0, .dcaps = nullptr, - .perms = perms, .acls = nullptr, .aplStr = "system_core", }; infoInstance.processName = "SetUpTestCase"; tokenId = GetAccessTokenId(&infoInstance); - const uint64_t systemAppMask = (static_cast(1) << 32); - tokenId |= systemAppMask; + const uint64_t systemAppTokenFlag = (static_cast(1) << 32); + tokenId |= systemAppTokenFlag; SetSelfTokenID(tokenId); OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo(); delete[] perms; @@ -69,27 +69,27 @@ shared_ptr GetFileAccessHelper() return g_fah; } SetNativeToken(); - auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); - auto remoteObj = saManager->GetSystemAbility(ABILITY_ID); + auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); + auto remoteObj = systemAbilityMgr->GetSystemAbility(ABILITY_ID); AAFwk::Want want; vector wantVec; setuid(UID_TRANSFORM_TMP); - int ret = FileAccessHelper::GetRegisteredFileAccessExtAbilityInfo(wantVec); - if (ret != OHOS::FileAccessFwk::ERR_OK) { + int result = FileAccessHelper::GetRegisteredFileAccessExtAbilityInfo(wantVec); + if (result != OHOS::FileAccessFwk::ERR_OK) { HILOG_ERROR("GetRegisteredFileAccessExtAbilityInfo failed."); return nullptr; } - bool sus = false; + bool isMatched = false; for (size_t i = 0; i < wantVec.size(); i++) { auto element = wantVec[i].GetElement(); if (element.GetBundleName() == "com.ohos.medialibrary.medialibrarydata" && element.GetAbilityName() == "FileExtensionAbility") { want = wantVec[i]; - sus = true; + isMatched = true; break; } } - if (!sus) { + if (!isMatched) { HILOG_ERROR("not found bundleName."); return nullptr; } @@ -163,17 +163,25 @@ static tuple, Uri> GetDownloadUri() return {helper, downloadUri}; } -bool AccessFuzzTest(const uint8_t* data, size_t size) -{ +static bool CheckParametersAndUri(const uint8_t* data, size_t size) { if ((data == nullptr) || (size <= 0)) { HILOG_ERROR("parameter data is nullptr or parameter size <= 0."); return false; } + auto [helper, downloadUri] = GetDownloadUri(); if (helper == nullptr || downloadUri.ToString() == "") { HILOG_ERROR("helper is nullptr or downloadUri is empty"); return false; } + return true; +} + +bool AccessFuzzTest(const uint8_t* data, size_t size) +{ + if (!CheckParametersAndUri(data, size)) { + return false; + } Uri uri(downloadUri.ToString() + "/" + std::string(reinterpret_cast(data), size)); bool isExist = false; int result = helper->Access(uri, isExist); @@ -186,20 +194,14 @@ bool AccessFuzzTest(const uint8_t* data, size_t size) bool OpenFileFuzzTest(const uint8_t* data, size_t size) { - if ((data == nullptr) || (size <= 0)) { - HILOG_ERROR("parameter data is nullptr or parameter size <= 0."); - return false; - } - auto [helper, downloadUri] = GetDownloadUri(); - if (helper == nullptr || downloadUri.ToString() == "") { - HILOG_ERROR("helper is nullptr or downloadUri is empty"); + if (!CheckParametersAndUri(data, size)) { return false; } Uri uri(downloadUri.ToString() + "/" + std::string(reinterpret_cast(data), size)); int fd = -1; int result = helper->OpenFile(uri, WRITE_READ, fd); if (result != OHOS::FileAccessFwk::ERR_OK) { - HILOG_ERROR("OpenFile failed. ret : %{public}d", result); + HILOG_ERROR("Fail open file. ret : %{public}d", result); return false; } close(fd); @@ -208,13 +210,7 @@ bool OpenFileFuzzTest(const uint8_t* data, size_t size) bool CreateFileFuzzTest(const uint8_t* data, size_t size) { - if ((data == nullptr) || (size <= 0)) { - HILOG_ERROR("parameter data is nullptr or parameter size <= 0."); - return false; - } - auto [helper, downloadUri] = GetDownloadUri(); - if (helper == nullptr || downloadUri.ToString() == "") { - HILOG_ERROR("helper is nullptr or downloadUri is empty"); + if (!CheckParametersAndUri(data, size)) { return false; } Uri newFileUri(""); @@ -233,13 +229,7 @@ bool CreateFileFuzzTest(const uint8_t* data, size_t size) bool MkdirFuzzTest(const uint8_t* data, size_t size) { - if ((data == nullptr) || (size <= 0)) { - HILOG_ERROR("parameter data is nullptr or parameter size <= 0."); - return false; - } - auto [helper, downloadUri] = GetDownloadUri(); - if (helper == nullptr || downloadUri.ToString() == "") { - HILOG_ERROR("helper is nullptr or downloadUri is empty"); + if (!CheckParametersAndUri(data, size)) { return false; } Uri newDirUri(""); @@ -258,13 +248,7 @@ bool MkdirFuzzTest(const uint8_t* data, size_t size) bool DeleteFuzzTest(const uint8_t* data, size_t size) { - if ((data == nullptr) || (size <= 0)) { - HILOG_ERROR("parameter data is nullptr or parameter size <= 0."); - return false; - } - auto [helper, downloadUri] = GetDownloadUri(); - if (helper == nullptr || downloadUri.ToString() == "") { - HILOG_ERROR("helper is nullptr or downloadUri is empty"); + if (!CheckParametersAndUri(data, size)) { return false; } Uri uri(downloadUri.ToString() + "/" + std::string(reinterpret_cast(data), size)); @@ -278,13 +262,7 @@ bool DeleteFuzzTest(const uint8_t* data, size_t size) bool MoveFuzzTest(const uint8_t* data, size_t size) { - if ((data == nullptr) || (size <= 0)) { - HILOG_ERROR("parameter data is nullptr or parameter size <= 0."); - return false; - } - auto [helper, downloadUri] = GetDownloadUri(); - if (helper == nullptr || downloadUri.ToString() == "") { - HILOG_ERROR("helper is nullptr or downloadUri is empty"); + if (!CheckParametersAndUri(data, size)) { return false; } Uri newDirUriTest1(""); @@ -326,13 +304,7 @@ bool MoveFuzzTest(const uint8_t* data, size_t size) bool RenameFuzzTest(const uint8_t* data, size_t size) { - if ((data == nullptr) || (size <= 0)) { - HILOG_ERROR("parameter data is nullptr or parameter size <= 0."); - return false; - } - auto [helper, downloadUri] = GetDownloadUri(); - if (helper == nullptr || downloadUri.ToString() == "") { - HILOG_ERROR("helper is nullptr or downloadUri is empty"); + if (!CheckParametersAndUri(data, size)) { return false; } Uri newDirUriTest(""); @@ -357,13 +329,7 @@ bool RenameFuzzTest(const uint8_t* data, size_t size) bool ListFileFuzzTest(const uint8_t* data, size_t size) { - if ((data == nullptr) || (size <= 0)) { - HILOG_ERROR("parameter data is nullptr or parameter size <= 0."); - return false; - } - auto [helper, downloadUri] = GetDownloadUri(); - if (helper == nullptr || downloadUri.ToString() == "") { - HILOG_ERROR("helper is nullptr or downloadUri is empty"); + if (!CheckParametersAndUri(data, size)) { return false; } FileInfo fileInfo; @@ -382,13 +348,7 @@ bool ListFileFuzzTest(const uint8_t* data, size_t size) bool ScanFileFuzzTest(const uint8_t* data, size_t size) { - if ((data == nullptr) || (size <= 0)) { - HILOG_ERROR("parameter data is nullptr or parameter size <= 0."); - return false; - } - auto [helper, downloadUri] = GetDownloadUri(); - if (helper == nullptr || downloadUri.ToString() == "") { - HILOG_ERROR("helper is nullptr or downloadUri is empty"); + if (!CheckParametersAndUri(data, size)) { return false; } FileInfo fileInfo; diff --git a/test/fuzztest/medialibraryfileaccess_fuzzer/medialibrary_file_access_fuzzer.h b/test/fuzztest/medialibraryfileaccess_fuzzer/medialibrary_file_access_fuzzer.h index 9036a11e..cf360616 100644 --- a/test/fuzztest/medialibraryfileaccess_fuzzer/medialibrary_file_access_fuzzer.h +++ b/test/fuzztest/medialibraryfileaccess_fuzzer/medialibrary_file_access_fuzzer.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/test/unittest/BUILD.gn b/test/unittest/BUILD.gn index 3c33ab93..0564dbec 100644 --- a/test/unittest/BUILD.gn +++ b/test/unittest/BUILD.gn @@ -23,7 +23,10 @@ ohos_unittest("medialibrary_file_access_test") { } module_out_path = "user_file_service/tests" - sources = [ "medialibrary_file_access_test.cpp" ] + sources = [ + "medialibrary_file_access_test_basic.cpp", + "medialibrary_file_access_test_info.cpp", + ] include_dirs = [ "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime/context", @@ -72,7 +75,10 @@ ohos_unittest("external_file_access_test") { module_out_path = "user_file_service/tests" sources = [ - "external_file_access_test.cpp", + "external_file_access_test_basic.cpp", + "external_file_access_test_info.cpp", + "external_file_access_test_management.cpp", + "external_file_access_test_operations.cpp", "external_notify_test.cpp", ] diff --git a/test/unittest/abnormal_file_access_test.cpp b/test/unittest/abnormal_file_access_test.cpp index fef7a906..3c97989e 100755 --- a/test/unittest/abnormal_file_access_test.cpp +++ b/test/unittest/abnormal_file_access_test.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -44,13 +44,13 @@ static void SetNativeToken(bool isSystemApp) perms[0] = "ohos.permission.FILE_ACCESS_MANAGER"; perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; NativeTokenInfoParams infoInstance = { + .aplStr = "system_core", .dcapsNum = 0, .permsNum = 2, .aclsNum = 0, .dcaps = nullptr, .perms = perms, .acls = nullptr, - .aplStr = "system_core", }; infoInstance.processName = "SetUpTestCase"; @@ -71,27 +71,27 @@ public: cout << "AbnormalFileExtensionHelperTest code test" << endl; SetNativeToken(true); auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); - auto remoteObj = saManager->GetSystemAbility(ABILITY_ID); + auto systemAbility = saManager->GetSystemAbility(ABILITY_ID); g_context = make_shared(); - g_context->SetToken(remoteObj); + g_context->SetToken(systemAbility); AAFwk::Want want; vector wantVec; setuid(UID_TRANSFORM_TMP); int ret = FileAccessHelper::GetRegisteredFileAccessExtAbilityInfo(wantVec); EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - bool sus = false; + bool isSuccessful = false; for (size_t i = 0; i < wantVec.size(); i++) { auto element = wantVec[i].GetElement(); if (element.GetBundleName() == "com.ohos.UserFile.ExternalFileManager" && element.GetAbilityName() == "FileExtensionAbility") { want = wantVec[i]; - sus = true; + isSuccessful = true; break; } } - EXPECT_TRUE(sus); + EXPECT_TRUE(isSuccessful); vector wants{want}; - g_fah = FileAccessHelper::Creator(remoteObj, wants); + g_fah = FileAccessHelper::Creator(systemAbility, wants); if (g_fah == nullptr) { GTEST_LOG_(ERROR) << "AbnormalFileExtensionHelperTest g_fah is nullptr"; exit(1); diff --git a/test/unittest/external_file_access_test.cpp b/test/unittest/external_file_access_test.cpp deleted file mode 100644 index 863b37d8..00000000 --- a/test/unittest/external_file_access_test.cpp +++ /dev/null @@ -1,6509 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include - -#include -#include - -#include "accesstoken_kit.h" -#include "context_impl.h" -#include "file_access_framework_errno.h" -#include "file_info_shared_memory.h" -#include "iservice_registry.h" -#include "nativetoken_kit.h" -#include "token_setproc.h" - -#define private public -#include "file_access_helper.h" -#undef private - -namespace { -using namespace std; -using namespace OHOS; -using namespace FileAccessFwk; -using json = nlohmann::json; -const int ABILITY_ID = 5003; -const int INIT_THREADS_NUMBER = 4; -const int ACTUAL_SUCCESS_THREADS_NUMBER = 1; -shared_ptr g_fah = nullptr; -int g_num = 0; -const int UID_TRANSFORM_TMP = 20000000; -const int UID_DEFAULT = 0; -shared_ptr g_context = nullptr; -const int FILE_COUNT_1 = 1; -const int FILE_COUNT_2 = 2; -const int FILE_COUNT_3 = 3; -const int FILE_COUNT_4 = 4; -const int FILE_COUNT_5 = 5; -const int FILE_COUNT_6 = 6; - -void SetNativeToken() -{ - uint64_t tokenId; - const char **perms = new const char *[2]; - perms[0] = "ohos.permission.FILE_ACCESS_MANAGER"; - perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; - NativeTokenInfoParams infoInstance = { - .dcapsNum = 0, - .permsNum = 2, - .aclsNum = 0, - .dcaps = nullptr, - .perms = perms, - .acls = nullptr, - .aplStr = "system_core", - }; - - infoInstance.processName = "SetUpTestCase"; - tokenId = GetAccessTokenId(&infoInstance); - const uint64_t systemAppMask = (static_cast(1) << 32); - tokenId |= systemAppMask; - SetSelfTokenID(tokenId); - OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo(); - delete[] perms; -} - -class FileExtensionHelperTest : public testing::Test { -public: - static void SetUpTestCase(void) - { - cout << "FileExtensionHelperTest code test" << endl; - SetNativeToken(); - auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); - auto remoteObj = saManager->GetSystemAbility(ABILITY_ID); - g_context = make_shared(); - g_context->SetToken(remoteObj); - AAFwk::Want want; - vector wantVec; - setuid(UID_TRANSFORM_TMP); - int ret = FileAccessHelper::GetRegisteredFileAccessExtAbilityInfo(wantVec); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - bool sus = false; - for (size_t i = 0; i < wantVec.size(); i++) { - auto element = wantVec[i].GetElement(); - if (element.GetBundleName() == "com.ohos.UserFile.ExternalFileManager" && - element.GetAbilityName() == "FileExtensionAbility") { - want = wantVec[i]; - sus = true; - break; - } - } - EXPECT_TRUE(sus); - vector wants{want}; - g_fah = FileAccessHelper::Creator(remoteObj, wants); - if (g_fah == nullptr) { - GTEST_LOG_(ERROR) << "external_file_access_test g_fah is nullptr"; - exit(1); - } - setuid(UID_DEFAULT); - } - static void TearDownTestCase() - { - g_fah->Release(); - g_fah = nullptr; - }; - void SetUp(){}; - void TearDown(){}; -}; - -/** - * @tc.number: user_file_service_external_file_access_OpenFile_0000 - * @tc.name: external_file_access_OpenFile_0000 - * @tc.desc: Test function of OpenFile interface for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - GTEST_LOG_(INFO) << parentUri.ToString(); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri(""); - result = g_fah->CreateFile(newDirUriTest1, "external_file_access_OpenFile_0000.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd; - result = g_fah->OpenFile(newFileUri, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0000 result:" << result; - close(fd); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0000"; -} - -/** - * @tc.number: user_file_service_external_file_access_OpenFile_0001 - * @tc.name: external_file_access_OpenFile_0001 - * @tc.desc: Test function of OpenFile interface for ERROR which Uri is null. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0001"; - try { - Uri uri(""); - int fd; - int result = g_fah->OpenFile(uri, WRITE_READ, fd); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0001 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0001"; -} - -/** - * @tc.number: user_file_service_external_file_access_OpenFile_0002 - * @tc.name: external_file_access_OpenFile_0002 - * @tc.desc: Test function of OpenFile interface for ERROR which Uri is absolute path. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0002"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newFileUri(""); - result = g_fah->CreateFile(parentUri, "external_file_access_OpenFile_0002.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri uri("storage/media/100/local/files/Download/external_file_access_OpenFile_0002.txt"); - int fd; - result = g_fah->OpenFile(uri, WRITE_READ, fd); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0002 result:" << result; - result = g_fah->Delete(newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0002"; -} - -/** - * @tc.number: user_file_service_external_file_access_OpenFile_0003 - * @tc.name: external_file_access_OpenFile_0003 - * @tc.desc: Test function of OpenFile interface for ERROR which Uri is special symbols. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0003"; - try { - Uri uri("~!@#$%^&*()_"); - int fd; - int result = g_fah->OpenFile(uri, WRITE_READ, fd); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0003 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0003"; -} - -/** - * @tc.number: user_file_service_external_file_access_OpenFile_0004 - * @tc.name: external_file_access_OpenFile_0004 - * @tc.desc: Test function of OpenFile interface for ERROR which flag is -1. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0004"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newFileUri(""); - result = g_fah->CreateFile(parentUri, "external_file_access_OpenFile_0004.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd; - int flag = -1; - result = g_fah->OpenFile(newFileUri, flag, fd); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0004 result:" << result; - result = g_fah->Delete(newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0004"; -} - -/** - * @tc.number: user_file_service_external_file_access_OpenFile_0005 - * @tc.name: external_file_access_OpenFile_0005 - * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 0. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0005"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newFileUri(""); - result = g_fah->CreateFile(parentUri, "external_file_access_OpenFile_0005.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd; - result = g_fah->OpenFile(newFileUri, READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0005 result:" << result; - close(fd); - result = g_fah->Delete(newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0005"; -} - -/** - * @tc.number: user_file_service_external_file_access_OpenFile_0006 - * @tc.name: external_file_access_OpenFile_0006 - * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 1. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0006, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0006"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newFileUri(""); - result = g_fah->CreateFile(parentUri, "external_file_access_OpenFile_0006.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd; - result = g_fah->OpenFile(newFileUri, WRITE, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0006 result:" << result; - close(fd); - result = g_fah->Delete(newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0006"; -} - -/** - * @tc.number: user_file_service_external_file_access_OpenFile_0007 - * @tc.name: external_file_access_OpenFile_0007 - * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 2. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0007, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0007"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newFileUri(""); - result = g_fah->CreateFile(parentUri, "external_file_access_OpenFile_0007.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd; - result = g_fah->OpenFile(newFileUri, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0007 result:" << result; - close(fd); - result = g_fah->Delete(newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0007 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0007"; -} - -static void OpenFileTdd(shared_ptr fahs, Uri uri, int flag, int fd) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFileTdd"; - int ret = fahs->OpenFile(uri, flag, fd); - if (ret != OHOS::FileAccessFwk::ERR_OK) { - GTEST_LOG_(ERROR) << "OpenFile get result error, code:" << ret; - return; - } - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GE(fd, OHOS::FileAccessFwk::ERR_OK); - g_num++; - close(fd); - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFileTdd"; -} - -/** - * @tc.number: user_file_service_external_file_access_OpenFile_0008 - * @tc.name: external_file_access_OpenFile_0008 - * @tc.desc: Test function of OpenFile interface for SUCCESS which Concurrent. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0008, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0008"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newFileUri(""); - int fd; - std::string displayName = "test1.txt"; - g_num = 0; - result = g_fah->CreateFile(parentUri, displayName, newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t j = 0; j < INIT_THREADS_NUMBER; j++) { - std::thread execthread(OpenFileTdd, g_fah, newFileUri, WRITE_READ, fd); - execthread.join(); - } - EXPECT_EQ(g_num, INIT_THREADS_NUMBER); - result = g_fah->Delete(newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0008 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0008"; -} - -static bool ReplaceBundleNameFromPath(std::string &path, const std::string &newName) -{ - Uri uri(path); - std::string scheme = uri.GetScheme(); - if (scheme == FILE_SCHEME_NAME) { - std::string curName = uri.GetAuthority(); - if (curName.empty()) { - return false; - } - path.replace(path.find(curName), curName.length(), newName); - return true; - } - - std::string tPath = uri.GetPath(); - if (tPath.empty()) { - GTEST_LOG_(INFO) << "Uri path error."; - return false; - } - - if (tPath.front() != '/') { - GTEST_LOG_(INFO) << "Uri path format error."; - return false; - } - - auto index = tPath.substr(1).find_first_of("/"); - auto bundleName = tPath.substr(1, index); - if (bundleName.empty()) { - GTEST_LOG_(INFO) << "bundleName empty."; - return false; - } - - path.replace(path.find(bundleName), bundleName.length(), newName); - return true; -} - -/** - * @tc.number: user_file_service_external_file_access_OpenFile_0009 - * @tc.name: external_file_access_OpenFile_0009 - * @tc.desc: Test function of OpenFile interface for FAILED because of GetProxyByUri failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0009, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0009"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - std::string str = info[i].uri; - if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { - GTEST_LOG_(ERROR) << "replace BundleName failed."; - EXPECT_TRUE(false); - } - int fd; - Uri newFileUri(str + "/NotExistFile.txt"); - result = g_fah->OpenFile(newFileUri, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); - GTEST_LOG_(INFO) << "OpenFile_0009 result:" << result; - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0009 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0009"; -} - -/** - * @tc.number: user_file_service_external_file_access_OpenFile_0010 - * @tc.name: external_file_access_OpenFile_0010 - * @tc.desc: Test function of OpenFile interface for SUCCESS, the file name is chinese. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I70SX9 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0010, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0010"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - GTEST_LOG_(INFO) << parentUri.ToString(); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "测试目录", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newDirUriTest1.ToString().find("测试目录"), std::string::npos); - Uri newFileUri(""); - result = g_fah->CreateFile(newDirUriTest1, "打开文件.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newFileUri.ToString().find("打开文件.txt"), std::string::npos); - int fd; - result = g_fah->OpenFile(newFileUri, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0010 result:" << result; - close(fd); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0010 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0010"; -} - -/** - * @tc.number: user_file_service_external_file_access_CreateFile_0000 - * @tc.name: external_file_access_CreateFile_0000 - * @tc.desc: Test function of CreateFile interface for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newFileUri(""); - result = g_fah->CreateFile(parentUri, "external_file_access_CreateFile_0000.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "CreateFile_0000 result:" << result; - result = g_fah->Delete(newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0000"; -} - -/** - * @tc.number: user_file_service_external_file_access_CreateFile_0001 - * @tc.name: external_file_access_CreateFile_0001 - * @tc.desc: Test function of CreateFile interface for ERROR which parentUri is null. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0001"; - try { - Uri newFileUri(""); - Uri parentUri(""); - int result = g_fah->CreateFile(parentUri, "external_file_access_CreateFile_0001.txt", newFileUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "CreateFile_0001 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0001"; -} - -/** - * @tc.number: user_file_service_external_file_access_CreateFile_0002 - * @tc.name: external_file_access_CreateFile_0002 - * @tc.desc: Test function of CreateFile interface for ERROR which parentUri is absolute path. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0002"; - try { - Uri newFileUri(""); - Uri parentUri("storage/media/100/local/files/Download"); - int result = g_fah->CreateFile(parentUri, "external_file_access_CreateFile_0002.txt", newFileUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "CreateFile_0002 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0002"; -} - -/** - * @tc.number: user_file_service_external_file_access_CreateFile_0003 - * @tc.name: external_file_access_CreateFile_0003 - * @tc.desc: Test function of CreateFile interface for ERROR which parentUri is special symbols. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0002"; - try { - Uri newFileUri(""); - Uri parentUri("~!@#$%^&*()_"); - int result = g_fah->CreateFile(parentUri, "external_file_access_CreateFile_0003.txt", newFileUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "CreateFile_0003 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0003"; -} - -/** - * @tc.number: user_file_service_external_file_access_CreateFile_0004 - * @tc.name: external_file_access_CreateFile_0004 - * @tc.desc: Test function of CreateFile interface for ERROR which displayName is null. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0004"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newFileUri(""); - string displayName = ""; - result = g_fah->CreateFile(parentUri, displayName, newFileUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "CreateFile_0004 result:" << result; - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0004"; -} - -static void CreateFileTdd(shared_ptr fahs, Uri uri, std::string displayName, Uri newFile) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFileTdd"; - int ret = fahs->CreateFile(uri, displayName, newFile); - if (ret != OHOS::FileAccessFwk::ERR_OK) { - GTEST_LOG_(ERROR) << "CreateFileTdd get result error, code:" << ret; - return; - } - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - EXPECT_NE(newFile.ToString(), ""); - g_num++; - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFileTdd"; -} - -/** - * @tc.number: user_file_service_external_file_access_CreateFile_0005 - * @tc.name: external_file_access_CreateFile_0005 - * @tc.desc: Test function of CreateFile interface for ERROR which Concurrent. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0005"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newFileUri(""); - std::string displayName = "test1.txt"; - g_num = 0; - for (int j = 0; j < INIT_THREADS_NUMBER; j++) { - std::thread execthread(CreateFileTdd, g_fah, parentUri, displayName, newFileUri); - execthread.join(); - } - EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); - Uri newDelete(info[i].uri + "/" + displayName); - result = g_fah->Delete(newDelete); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0005"; -} - -/** - * @tc.number: user_file_service_external_file_access_CreateFile_0006 - * @tc.name: external_file_access_CreateFile_0006 - * @tc.desc: Test function of CreateFile interface for ERROR because of GetProxyByUri failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0006, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0006"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - std::string str = info[i].uri; - if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { - GTEST_LOG_(ERROR) << "replace BundleName failed."; - EXPECT_TRUE(false); - } - Uri parentUri(str); - Uri newFileUri(""); - string displayName = "test.txt"; - result = g_fah->CreateFile(parentUri, displayName, newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); - GTEST_LOG_(INFO) << "CreateFile_0006 result:" << result; - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0006"; -} - -/** - * @tc.number: user_file_service_external_file_access_CreateFile_0007 - * @tc.name: external_file_access_CreateFile_0007 - * @tc.desc: Test function of CreateFile interface for SUCCESS, the file name is chinese. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I70SX9 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0007, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0007"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newFileUri(""); - result = g_fah->CreateFile(parentUri, "新建文件.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newFileUri.ToString().find("新建文件.txt"), std::string::npos); - GTEST_LOG_(INFO) << "CreateFile_0007 result:" << result; - result = g_fah->Delete(newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0007 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0007"; -} - -/** - * @tc.number: user_file_service_external_file_access_Mkdir_0000 - * @tc.name: external_file_access_Mkdir_0000 - * @tc.desc: Test function of Mkdir interface for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "external_file_access_Mkdir_0000", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Mkdir_0000 result:" << result; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0000"; -} - -/** - * @tc.number: user_file_service_external_file_access_Mkdir_0001 - * @tc.name: external_file_access_Mkdir_0001 - * @tc.desc: Test function of Mkdir interface for ERROR which parentUri is null. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0001"; - try { - Uri newDirUriTest(""); - Uri parentUri(""); - int result = g_fah->Mkdir(parentUri, "external_file_access_Mkdir_0001", newDirUriTest); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Mkdir_0001 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0001"; -} - -/** - * @tc.number: user_file_service_external_file_access_Mkdir_0002 - * @tc.name: external_file_access_Mkdir_0002 - * @tc.desc: Test function of Mkdir interface for ERROR which parentUri is absolute path. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0002"; - try { - Uri newDirUriTest(""); - Uri parentUri("storage/media/100/local/files/Download"); - int result = g_fah->Mkdir(parentUri, "external_file_access_Mkdir_0002", newDirUriTest); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Mkdir_0002 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0002"; -} - -/** - * @tc.number: user_file_service_external_file_access_Mkdir_0003 - * @tc.name: external_file_access_Mkdir_0003 - * @tc.desc: Test function of Mkdir interface for ERROR which parentUri is special symbols. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0002"; - try { - Uri newDirUriTest(""); - Uri parentUri("~!@#$%^&*()_"); - int result = g_fah->Mkdir(parentUri, "external_file_access_Mkdir_0003", newDirUriTest); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Mkdir_0003 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0003"; -} - -/** - * @tc.number: user_file_service_external_file_access_Mkdir_0004 - * @tc.name: external_file_access_Mkdir_0004 - * @tc.desc: Test function of Mkdir interface for ERROR which displayName is null. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0004"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - string displayName = ""; - result = g_fah->Mkdir(parentUri, displayName, newDirUriTest); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Mkdir_0004 result:" << result; - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0004"; -} - -static void MkdirTdd(shared_ptr fahs, Uri uri, std::string displayName, Uri newFile) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_MkdirTdd"; - int ret = fahs->Mkdir(uri, displayName, newFile); - if (ret != OHOS::FileAccessFwk::ERR_OK) { - GTEST_LOG_(ERROR) << "MkdirTdd get result error, code:" << ret; - return; - } - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - EXPECT_NE(newFile.ToString(), ""); - g_num++; - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_MkdirTdd"; -} - -/** - * @tc.number: user_file_service_external_file_access_Mkdir_0005 - * @tc.name: external_file_access_Mkdir_0005 - * @tc.desc: Test function of Mkdir interface for SUCCESS which Concurrent. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0005"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - std::string displayName = "test1"; - g_num = 0; - for (int j = 0; j < INIT_THREADS_NUMBER; j++) { - std::thread execthread(MkdirTdd, g_fah, parentUri, displayName, newDirUriTest); - execthread.join(); - } - EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); - Uri newDelete(info[i].uri + "/" + displayName); - result = g_fah->Delete(newDelete); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0005"; -} - -/** - * @tc.number: user_file_service_external_file_access_Mkdir_0006 - * @tc.name: external_file_access_Mkdir_0006 - * @tc.desc: Test function of Mkdir interface for ERROR because of GetProxyByUri failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0006, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0006"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - std::string str = info[i].uri; - if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { - GTEST_LOG_(ERROR) << "replace BundleName failed."; - EXPECT_TRUE(false); - } - Uri parentUri(str); - Uri newDirUriTest(""); - string displayName = ""; - result = g_fah->Mkdir(parentUri, displayName, newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); - GTEST_LOG_(INFO) << "Mkdir_0006 result:" << result; - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0006"; -} - -/** - * @tc.number: user_file_service_external_file_access_Mkdir_0007 - * @tc.name: external_file_access_Mkdir_0007 - * @tc.desc: Test function of Mkdir interface for SUCCESS,the folder name is chinese. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I70SX9 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0007, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0007"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "新建目录", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newDirUriTest.ToString().find("新建目录"), std::string::npos); - GTEST_LOG_(INFO) << "Mkdir_0007 result:" << result; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0007 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0007"; -} - -/** - * @tc.number: user_file_service_external_file_access_Mkdir_0008 - * @tc.name: external_file_access_Mkdir_0008 - * @tc.desc: Test function of Mkdir interface for FAIL,the folder name is Documents. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I7MQMD - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0008, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0008"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GE(info.size(), 2); - Uri parentUri(info[0].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "Documents", newDirUriTest); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "Download", newDirUriTest); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "Desktop", newDirUriTest); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0008 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0008"; -} - -/** - * @tc.number: user_file_service_external_file_access_Delete_0000 - * @tc.name: external_file_access_Delete_0000 - * @tc.desc: Test function of Delete interface for SUCCESS which delete file. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri(""); - result = g_fah->CreateFile(newDirUriTest, "external_file_access_Delete_0000.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Delete_0000 result:" << result; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Delete_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0000"; -} - -/** - * @tc.number: user_file_service_external_file_access_Delete_0001 - * @tc.name: external_file_access_Delete_0001 - * @tc.desc: Test function of Delete interface for SUCCESS which delete folder. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0001"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Delete_0001 result:" << result; - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Delete_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0001"; -} - -/** - * @tc.number: user_file_service_external_file_access_Delete_0002 - * @tc.name: external_file_access_Delete_0002 - * @tc.desc: Test function of Delete interface for ERROR which selectFileUri is null. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0002"; - try { - Uri selectFileUri(""); - int result = g_fah->Delete(selectFileUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Delete_0002 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Delete_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0002"; -} - -/** - * @tc.number: user_file_service_external_file_access_Delete_0003 - * @tc.name: external_file_access_Delete_0003 - * @tc.desc: Test function of Delete interface for ERROR which selectFileUri is absolute path. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0003"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri selectFileUri("storage/media/100/local/files/Download/test"); - result = g_fah->Delete(selectFileUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Delete_0003 result:" << result; - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Delete_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0003"; -} - -/** - * @tc.number: user_file_service_external_file_access_Delete_0004 - * @tc.name: external_file_access_Delete_0004 - * @tc.desc: Test function of Delete interface for ERROR which selectFileUri is special symbols. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0004"; - try { - Uri selectFileUri("!@#$%^&*()"); - int result = g_fah->Delete(selectFileUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Delete_0004 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Delete_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0004"; -} - -static void DeleteTdd(shared_ptr fahs, Uri selectFile) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_DeleteTdd"; - int ret = fahs->Delete(selectFile); - if (ret != OHOS::FileAccessFwk::ERR_OK) { - GTEST_LOG_(ERROR) << "DeleteTdd get result error, code:" << ret; - return; - } - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - g_num++; - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_DeleteTdd"; -} - -/** - * @tc.number: user_file_service_external_file_access_Delete_0005 - * @tc.name: external_file_access_Delete_0005 - * @tc.desc: Test function of Delete interface for SUCCESS which Concurrent. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0005"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri(""); - std::string displayName = "test1.txt"; - result = g_fah->CreateFile(newDirUriTest, displayName, newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - g_num = 0; - for (int j = 0; j < INIT_THREADS_NUMBER; j++) { - std::thread execthread(DeleteTdd, g_fah, newFileUri); - execthread.join(); - } - EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Delete_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0005"; -} - -/** - * @tc.number: user_file_service_external_file_access_Delete_0006 - * @tc.name: external_file_access_Delete_0006 - * @tc.desc: Test function of Delete interface for ERROR because of GetProxyByUri failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0006, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0006"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - std::string str = info[i].uri; - if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { - GTEST_LOG_(ERROR) << "replace BundleName failed."; - EXPECT_TRUE(false); - } - Uri selectFileUri(str); - int result = g_fah->Delete(selectFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); - GTEST_LOG_(INFO) << "Delete_0006 result:" << result; - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Delete_0006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0006"; -} - -/** - * @tc.number: user_file_service_external_file_access_Delete_0007 - * @tc.name: external_file_access_Delete_0007 - * @tc.desc: Test function of Delete interface for SUCCESS which delete file, the file name is chinese. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I70SX9 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0007, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0007"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "测试目录", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newDirUriTest.ToString().find("测试目录"), std::string::npos); - Uri newFileUri(""); - result = g_fah->CreateFile(newDirUriTest, "删除文件.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newFileUri.ToString().find("删除文件.txt"), std::string::npos); - result = g_fah->Delete(newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Delete_0007 result:" << result; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Delete_0007 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0007"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0000 - * @tc.name: external_file_access_Move_0000 - * @tc.desc: Test function of Move interface for SUCCESS which move file. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri2(""); - result = g_fah->Move(testUri, newDirUriTest2, testUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0000 result:" << result; - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0000"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0001 - * @tc.name: external_file_access_Move_0001 - * @tc.desc: Test function of Move interface for SUCCESS which move folder. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0001"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri2(""); - result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0001 result:" << result; - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0001"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0002 - * @tc.name: external_file_access_Move_0002 - * @tc.desc: Test function of Move interface for ERROR which sourceFileUri is null. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0002"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - Uri sourceFileUri(""); - result = g_fah->Move(sourceFileUri, newDirUriTest, testUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0002 result:" << result; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0002"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0003 - * @tc.name: external_file_access_Move_0003 - * @tc.desc: Test function of Move interface for ERROR which sourceFileUri is absolute path. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0003"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri2(""); - Uri sourceFileUri("storage/media/100/local/files/Download/test1/test.txt"); - result = g_fah->Move(sourceFileUri, newDirUriTest2, testUri2); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0003 result:" << result; - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0003"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0004 - * @tc.name: external_file_access_Move_0004 - * @tc.desc: Test function of Move interface for ERROR which sourceFileUri is special symbols. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0004"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - Uri sourceFileUri("~!@#$%^&*()_"); - result = g_fah->Move(sourceFileUri, newDirUriTest, testUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0004 result:" << result; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0004"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0005 - * @tc.name: external_file_access_Move_0005 - * @tc.desc: Test function of Move interface for ERROR which targetParentUri is null. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0005"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri2(""); - Uri targetParentUri(""); - result = g_fah->Move(testUri, targetParentUri, testUri2); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0005 result:" << result; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0005"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0006 - * @tc.name: external_file_access_Move_0006 - * @tc.desc: Test function of Move interface for ERROR which targetParentUri is absolute path. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0006, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0006"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri2(""); - Uri targetParentUri("storage/media/100/local/files/Download/test2"); - result = g_fah->Move(testUri, targetParentUri, testUri2); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0006 result:" << result; - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0006"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0007 - * @tc.name: external_file_access_Move_0007 - * @tc.desc: Test function of Move interface for ERROR which targetParentUri is special symbols. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0007, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0007"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri2(""); - Uri targetParentUri("~!@#$^%&*()_"); - result = g_fah->Move(testUri, targetParentUri, testUri2); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0007 result:" << result; - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0007 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0007"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0008 - * @tc.name: external_file_access_Move_0008 - * @tc.desc: Test function of Move interface for SUCCESS which move empty folder. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0008, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0008"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0008 result:" << result; - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0008 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0008"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0009 - * @tc.name: external_file_access_Move_0009 - * @tc.desc: Test function of Move interface for SUCCESS which move more file in folder. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0009, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0009"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - size_t fileNumbers = 2000; - for (size_t j = 0; j < fileNumbers; j++) { - string fileName = "test" + ToString(j) + ".txt"; - result = g_fah->CreateFile(newDirUriTest1, fileName, testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - Uri testUri2(""); - result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0009 result:" << result; - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0009 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0009"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0010 - * @tc.name: external_file_access_Move_0010 - * @tc.desc: Test function of Move interface for SUCCESS which move Multilevel directory folder. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0010, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0010"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->Mkdir(newDirUriTest1, "test", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - size_t directoryNumbers = 64; - for (size_t j = 0; j < directoryNumbers; j++) { - result = g_fah->Mkdir(testUri, "test", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - Uri testUri2(""); - result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0010 result:" << result; - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0010 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0010"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0011 - * @tc.name: external_file_access_Move_0011 - * @tc.desc: Test function of Move interface for SUCCESS which move other equipment file. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0011, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0011"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t j = i + 1; j < info.size(); j++) { - Uri otherUri(info[j].uri); - result = g_fah->Mkdir(otherUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Move(testUri, newDirUriTest2, testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Move(testUri, newDirUriTest1, testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0011 result:" << result; - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0011 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0011"; -} - -static void MoveTdd(shared_ptr fahs, Uri sourceFile, Uri targetParent, Uri newFile) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_MoveTdd"; - int ret = fahs->Move(sourceFile, targetParent, newFile); - if (ret != OHOS::FileAccessFwk::ERR_OK) { - GTEST_LOG_(ERROR) << "MoveTdd get result error, code:" << ret; - return; - } - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - g_num++; - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_MoveTdd"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0012 - * @tc.name: external_file_access_Move_0012 - * @tc.desc: Test function of Move interface for SUCCESS which Concurrent. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0012, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0012"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - std::string displayName = "test3.txt"; - result = g_fah->CreateFile(newDirUriTest1, displayName, testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri2(""); - g_num = 0; - for (int j = 0; j < INIT_THREADS_NUMBER; j++) { - std::thread execthread(MoveTdd, g_fah, testUri, newDirUriTest2, testUri2); - execthread.join(); - } - EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0012 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0012"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0013 - * @tc.name: external_file_access_Move_0013 - * @tc.desc: Test function of Move interface for FAILED because of GetProxyByUri failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0013, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0013"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->Mkdir(newDirUriTest1, "test", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string str = newDirUriTest1.ToString(); - if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { - GTEST_LOG_(ERROR) << "replace BundleName failed."; - EXPECT_TRUE(false); - } - Uri uri(str); - Uri testUri2(""); - result = g_fah->Move(uri, newDirUriTest2, testUri2); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0013 result:" << result; - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0013 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0013"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0014 - * @tc.name: external_file_access_Move_0014 - * @tc.desc: Test function of Move interface for SUCCESS which move file, the file name is chinese. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I70SX9 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0014, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0014"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "测试目录1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newDirUriTest1.ToString().find("测试目录1"), std::string::npos); - result = g_fah->Mkdir(parentUri, "测试目录2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newDirUriTest2.ToString().find("测试目录2"), std::string::npos); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest1, "移动文件.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(testUri.ToString().find("移动文件.txt"), std::string::npos); - Uri testUri2(""); - result = g_fah->Move(testUri, newDirUriTest2, testUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0014 result:" << result; - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0014 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0014"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0015 - * @tc.name: external_file_access_Move_0015 - * @tc.desc: Test function of Move interface for SUCCESS which move Multilevel directory folder, - * the folder name is chinese. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I70SX9 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0015, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0015"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "移动目录", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newDirUriTest1.ToString().find("移动目录"), std::string::npos); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri2(""); - result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0015 result:" << result; - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0015 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0015"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_0016 - * @tc.name: external_file_access_Move_0016 - * @tc.desc: Test function of Move interface for SUCCESS which move Multilevel directory folder, - * the folder name is chinese. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I70SX9 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0016, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0016"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "移动目录", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri2(""); - result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0016 result:" << result; - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_0016 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0016"; -} - -/** - * @tc.number: user_file_service_external_file_access_Copy_0000 - * @tc.name: external_file_access_Copy_0000 - * @tc.desc: Test function of Copy interface, copy a file and argument of force is false - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I7QXVD - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri srcDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0000_src", srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri srcFile(""); - result = g_fah->CreateFile(srcDir, "a.txt", srcFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd = -1; - result = g_fah->OpenFile(srcFile, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - char buff[] = "Copy test content for a.txt"; - ssize_t srcFileSize = write(fd, buff, sizeof(buff)); - EXPECT_EQ(srcFileSize, sizeof(buff)); - close(fd); - - Uri destDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0000_dest", destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - std::vector copyResult; - result = g_fah->Copy(srcFile, destDir, copyResult, false); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(copyResult.size(), 0); - - Uri destFileUri(destDir.ToString() + "/" + "a.txt"); - result = g_fah->OpenFile(destFileUri, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - ssize_t destFileSize = read(fd, buff, sizeof(buff)); - EXPECT_EQ(srcFileSize, destFileSize); - close(fd); - - result = g_fah->Delete(srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0000"; -} - -/** - * @tc.number: user_file_service_external_file_access_Copy_0001 - * @tc.name: external_file_access_Copy_0001 - * @tc.desc: Test function of Copy interface, copy a directory and argument of force is false - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I7QXVD - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0001"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri srcDir(""); - Uri destDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0001_src", srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri aFileUri(""); - result = g_fah->CreateFile(srcDir, "a.txt", aFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd = -1; - result = g_fah->OpenFile(aFileUri, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - char buff[] = "Copy test content for a.txt"; - ssize_t aFileSize = write(fd, buff, sizeof(buff)); - EXPECT_EQ(aFileSize, sizeof(buff)); - close(fd); - Uri bFileUri(""); - result = g_fah->CreateFile(srcDir, "b.txt", bFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "Copy_0001_dest", destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - std::vector copyResult; - result = g_fah->Copy(srcDir, destDir, copyResult, false); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(copyResult.size(), 0); - - result = g_fah->Delete(srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0001"; -} - -/** - * @tc.number: user_file_service_external_file_access_Copy_0002 - * @tc.name: external_file_access_Copy_0002 - * @tc.desc: Test function of Copy interface, copy a empty directory - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I7QXVD - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0002"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri srcDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0002_src", srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri destDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0002_dest", destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - std::vector copyResult; - result = g_fah->Copy(srcDir, destDir, copyResult, false); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(copyResult.size(), 0); - - result = g_fah->Delete(srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0002"; -} - -/** - * @tc.number: user_file_service_external_file_access_Copy_0003 - * @tc.name: external_file_access_Copy_0003 - * @tc.desc: Test function of Copy interface, copy a file with the same name and argument of force is true - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I7QXVD - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0003"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri srcDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0003_src", srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri srcFile(""); - result = g_fah->CreateFile(srcDir, "a.txt", srcFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd = -1; - result = g_fah->OpenFile(srcFile, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - char buff[] = "Copy test content for a.txt"; - ssize_t srcFileSize = write(fd, buff, sizeof(buff)); - EXPECT_EQ(srcFileSize, sizeof(buff)); - close(fd); - - Uri destDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0003_dest", destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri existFile(""); - result = g_fah->CreateFile(destDir, "a.txt", existFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - std::vector copyResult; - result = g_fah->Copy(srcFile, destDir, copyResult, true); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(copyResult.size(), 0); - - result = g_fah->OpenFile(existFile, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - ssize_t destFileSize = read(fd, buff, sizeof(buff)); - EXPECT_EQ(srcFileSize, destFileSize); - close(fd); - - result = g_fah->Delete(srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0003"; -} - -/** - * @tc.number: user_file_service_external_file_access_Copy_0004 - * @tc.name: external_file_access_Copy_0004 - * @tc.desc: Test function of Copy interface, copy a file with the same name and argument of force is false - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I7QXVD - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0004"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri srcDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0004_src", srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri srcFile(""); - result = g_fah->CreateFile(srcDir, "a.txt", srcFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd = -1; - result = g_fah->OpenFile(srcFile, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - char buff[] = "Copy test content for a.txt"; - ssize_t srcFileSize = write(fd, buff, sizeof(buff)); - EXPECT_EQ(srcFileSize, sizeof(buff)); - close(fd); - - Uri destDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0004_dest", destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri existFile(""); - result = g_fah->CreateFile(destDir, "a.txt", existFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - std::vector copyResult; - result = g_fah->Copy(srcFile, destDir, copyResult, false); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(copyResult.size(), 1); - - result = g_fah->OpenFile(existFile, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - ssize_t destFileSize = read(fd, buff, sizeof(buff)); - EXPECT_EQ(destFileSize, 0); - close(fd); - - result = g_fah->Delete(srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0004"; -} - -/** - * @tc.number: user_file_service_external_file_access_Copy_0005 - * @tc.name: external_file_access_Copy_0005 - * @tc.desc: Test function of Copy interface, copy a file with the same name and no force argument - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I7QXVD - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0005"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri srcDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0005_src", srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri srcFile(""); - result = g_fah->CreateFile(srcDir, "a.txt", srcFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd = -1; - result = g_fah->OpenFile(srcFile, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - char buff[] = "Copy test content for a.txt"; - ssize_t srcFileSize = write(fd, buff, sizeof(buff)); - EXPECT_EQ(srcFileSize, sizeof(buff)); - close(fd); - - Uri destDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0005_dest", destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri existFile(""); - result = g_fah->CreateFile(destDir, "a.txt", existFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - std::vector copyResult; - result = g_fah->Copy(srcFile, destDir, copyResult); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GT(copyResult.size(), 0); - - result = g_fah->OpenFile(existFile, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - ssize_t destFileSize = read(fd, buff, sizeof(buff)); - EXPECT_EQ(destFileSize, 0); - close(fd); - - result = g_fah->Delete(srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0005"; -} - -/** - * @tc.number: user_file_service_external_file_access_Copy_0006 - * @tc.name: external_file_access_Copy_0006 - * @tc.desc: Test function of Copy interface, copy a directory with the same name and argument of force is true - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I7QXVD - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0006, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0006"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri srcDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0006_src", srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri aFileUri(""); - result = g_fah->CreateFile(srcDir, "a.txt", aFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri bFileUri(""); - result = g_fah->CreateFile(srcDir, "b.txt", bFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd = -1; - result = g_fah->OpenFile(bFileUri, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - char buff[] = "Copy test content for b.txt"; - ssize_t srcFileSize = write(fd, buff, sizeof(buff)); - EXPECT_EQ(srcFileSize, sizeof(buff)); - close(fd); - - Uri destDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0006_dest", destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri destSrcDir(""); - result = g_fah->Mkdir(destDir, "Copy_0006_src", destSrcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->CreateFile(destSrcDir, "b.txt", bFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - std::vector copyResult; - result = g_fah->Copy(srcDir, destDir, copyResult, true); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(copyResult.size(), 0); - - result = g_fah->OpenFile(bFileUri, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - ssize_t destFileSize = read(fd, buff, sizeof(buff)); - EXPECT_EQ(destFileSize, srcFileSize); - close(fd); - - result = g_fah->Delete(srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_0006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0006"; -} - -/** - * @tc.number: user_file_service_external_file_access_Copy_0007 - * @tc.name: external_file_access_Copy_0007 - * @tc.desc: Test function of Copy interface, copy a directory with the same name and argument of force is false - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I7QXVD - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0007, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0007"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri srcDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0007_src", srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri aFileUri(""); - result = g_fah->CreateFile(srcDir, "a.txt", aFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri bFileUri(""); - result = g_fah->CreateFile(srcDir, "b.txt", bFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd = -1; - result = g_fah->OpenFile(bFileUri, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - char buff[] = "Copy test content for b.txt"; - ssize_t bFileSize = write(fd, buff, sizeof(buff)); - EXPECT_EQ(bFileSize, sizeof(buff)); - close(fd); - - Uri destDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0007_dest", destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri destSrcDir(""); - result = g_fah->Mkdir(destDir, "Copy_0007_src", destSrcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri destFileUri(""); - result = g_fah->CreateFile(destSrcDir, "b.txt", destFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - std::vector copyResult; - result = g_fah->Copy(srcDir, destDir, copyResult, false); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(copyResult.size(), 1); - EXPECT_EQ(copyResult[0].sourceUri, bFileUri.ToString()); - EXPECT_EQ(copyResult[0].destUri, destFileUri.ToString()); - - result = g_fah->Delete(srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_0007 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0007"; -} - -/** - * @tc.number: user_file_service_external_file_access_Copy_0008 - * @tc.name: external_file_access_Copy_0008 - * @tc.desc: Test function of Copy interface, copy a directory with the same name and no force argument - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I7QXVD - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0008, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0008"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri srcDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0008_src", srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri aFileUri(""); - result = g_fah->CreateFile(srcDir, "a.txt", aFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri bFileUri(""); - result = g_fah->CreateFile(srcDir, "b.txt", bFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri destDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0008_dest", destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri destSrcDir(""); - result = g_fah->Mkdir(destDir, "Copy_0008_src", destSrcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->CreateFile(destSrcDir, "b.txt", bFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - std::vector copyResult; - result = g_fah->Copy(srcDir, destDir, copyResult); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(copyResult.size(), 1); - - result = g_fah->Delete(srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_0008 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0008"; -} - -/** - * @tc.number: user_file_service_external_file_access_Copy_0009 - * @tc.name: external_file_access_Copy_0009 - * @tc.desc: Test function of Copy interface, copy directory and file between different disks - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I7QXVD - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0009, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0009"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri srcDir(""); - result = g_fah->Mkdir(parentUri, "Copy_0009_src", srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri aFileUri(""); - result = g_fah->CreateFile(srcDir, "a.txt", aFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri bFileUri(""); - result = g_fah->CreateFile(srcDir, "b.txt", bFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd = -1; - result = g_fah->OpenFile(bFileUri, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - char buff[] = "Copy test content for b.txt"; - ssize_t srcFileSize = write(fd, buff, sizeof(buff)); - EXPECT_EQ(srcFileSize, sizeof(buff)); - close(fd); - - for (size_t j = i + 1; j < info.size(); j++) { - Uri targetUri(info[j].uri); - Uri destDir(""); - result = g_fah->Mkdir(targetUri, "Copy_0009_dest", destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri destSrcDir(""); - result = g_fah->Mkdir(destDir, "Copy_0009_src", destSrcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->CreateFile(destSrcDir, "b.txt", bFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - std::vector copyResult; - result = g_fah->Copy(srcDir, destDir, copyResult, true); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(copyResult.size(), 0); - - result = g_fah->OpenFile(bFileUri, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - ssize_t destFileSize = read(fd, buff, sizeof(buff)); - EXPECT_EQ(destFileSize, srcFileSize); - close(fd); - - result = g_fah->Delete(destDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - result = g_fah->Delete(srcDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_0009 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0009"; -} - -/** - * @tc.number: user_file_service_external_file_access_Rename_0000 - * @tc.name: external_file_access_Rename_0000 - * @tc.desc: Test function of Rename interface for SUCCESS which rename file. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri renameUri(""); - result = g_fah->Rename(testUri, "test2.txt", renameUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Rename_0000 result:" << result; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Rename_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0000"; -} - -/** - * @tc.number: user_file_service_external_file_access_Rename_0001 - * @tc.name: external_file_access_Rename_0001 - * @tc.desc: Test function of Rename interface for SUCCESS which rename folder. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0001"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri renameUri(""); - result = g_fah->Rename(newDirUriTest, "testRename", renameUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Rename_0001 result:" << result; - result = g_fah->Delete(renameUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Rename_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0001"; -} - -/** - * @tc.number: user_file_service_external_file_access_Rename_0002 - * @tc.name: external_file_access_Rename_0002 - * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is null. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0002"; - try { - Uri renameUri(""); - Uri sourceFileUri(""); - int result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Rename_0002 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Rename_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0002"; -} - -/** - * @tc.number: user_file_service_external_file_access_Rename_0003 - * @tc.name: external_file_access_Rename_0003 - * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is absolute path. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0003"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri renameUri(""); - Uri sourceFileUri("storage/media/100/local/files/Download/test/test.txt"); - result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Rename_0003 result:" << result; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Rename_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0003"; -} - -/** - * @tc.number: user_file_service_external_file_access_Rename_0004 - * @tc.name: external_file_access_Rename_0004 - * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is special symbols. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0004"; - try { - Uri renameUri(""); - Uri sourceFileUri("~!@#$%^&*()_"); - int result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Rename_0004 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Rename_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0004"; -} - -/** - * @tc.number: user_file_service_external_file_access_Rename_0005 - * @tc.name: external_file_access_Rename_0005 - * @tc.desc: Test function of Rename interface for ERROR which displayName is null. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0005"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri renameUri(""); - result = g_fah->Rename(testUri, "", renameUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Rename_0005 result:" << result; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Rename_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0005"; -} - -static void RenameTdd(shared_ptr fahs, Uri sourceFile, std::string displayName, Uri newFile) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_RenameTdd"; - int ret = fahs->Rename(sourceFile, displayName, newFile); - if (ret != OHOS::FileAccessFwk::ERR_OK) { - GTEST_LOG_(ERROR) << "RenameTdd get result error, code:" << ret; - return; - } - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - g_num++; - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_RenameTdd"; -} - -/** - * @tc.number: user_file_service_external_file_access_Rename_0006 - * @tc.name: external_file_access_Rename_0006 - * @tc.desc: Test function of Rename interface for SUCCESS which Concurrent. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0006, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0006"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - std::string displayName1 = "test1.txt"; - std::string displayName2 = "test2.txt"; - Uri renameUri(""); - result = g_fah->CreateFile(newDirUriTest, displayName1, testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - g_num = 0; - for (int j = 0; j < INIT_THREADS_NUMBER; j++) { - std::thread execthread(RenameTdd, g_fah, testUri, displayName2, renameUri); - execthread.join(); - } - EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Rename_0006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0006"; -} - -/** - * @tc.number: user_file_service_external_file_access_Rename_0007 - * @tc.name: external_file_access_Rename_0007 - * @tc.desc: Test function of Rename interface for ERROR because of GetProxyByUri failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0007, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0007"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - std::string str = newDirUriTest.ToString(); - if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { - GTEST_LOG_(ERROR) << "replace BundleName failed."; - EXPECT_TRUE(false); - } - Uri testUri(str); - Uri renameUri(""); - result = g_fah->Rename(testUri, "test.txt", renameUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); - GTEST_LOG_(INFO) << "Rename_0007 result:" << result; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Rename_0007 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0007"; -} - -/** - * @tc.number: user_file_service_external_file_access_Rename_0008 - * @tc.name: external_file_access_Rename_0008 - * @tc.desc: Test function of Rename interface for SUCCESS which rename file, the display name is chinese. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I70SX9 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0008, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0008"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "测试目录", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newDirUriTest.ToString().find("测试目录"), std::string::npos); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri renameUri(""); - result = g_fah->Rename(testUri, "测试文件.txt", renameUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(renameUri.ToString().find("测试文件.txt"), std::string::npos); - GTEST_LOG_(INFO) << "Rename_0008 result:" << result; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Rename_0008 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0008"; -} - -/** - * @tc.number: user_file_service_external_file_access_Rename_0009 - * @tc.name: external_file_access_Rename_0009 - * @tc.desc: Test function of Rename interface for SUCCESS which rename folder, the display name is chinese. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I70SX9 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0009, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0009"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri renameUri(""); - result = g_fah->Rename(newDirUriTest, "重命名目录", renameUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(renameUri.ToString().find("重命名目录"), std::string::npos); - GTEST_LOG_(INFO) << "Rename_0009 result:" << result; - result = g_fah->Delete(renameUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Rename_0009 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0009"; -} - -/** - * @tc.number: user_file_service_external_file_access_ListFile_0000 - * @tc.name: external_file_access_ListFile_0000 - * @tc.desc: Test function of ListFile interface for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_0000.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 0; - FileFilter filter; - SharedMemoryInfo memInfo; - result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - result = g_fah->ListFile(fileInfo, offset, filter, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GT(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ListFile_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0000"; -} - -/** - * @tc.number: user_file_service_external_file_access_ListFile_0001 - * @tc.name: external_file_access_ListFile_0001 - * @tc.desc: Test function of ListFile interface for ERROR which Uri is nullptr. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0001"; - try { - Uri sourceFileUri(""); - FileInfo fileInfo; - fileInfo.uri = sourceFileUri.ToString(); - int64_t offset = 0; - FileFilter filter; - SharedMemoryInfo memInfo; - int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - result = g_fah->ListFile(fileInfo, offset, filter, memInfo); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ListFile_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0001"; -} - -/** - * @tc.number: user_file_service_external_file_access_ListFile_0002 - * @tc.name: external_file_access_ListFile_0002 - * @tc.desc: Test function of ListFile interface for ERROR which sourceFileUri is absolute path. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0002"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceFileUri("storage/media/100/local/files/Download/test/test.txt"); - FileInfo fileInfo; - fileInfo.uri = sourceFileUri.ToString(); - Uri sourceFile(fileInfo.uri); - int64_t offset = 0; - FileFilter filter; - SharedMemoryInfo memInfo; - int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - result = g_fah->ListFile(fileInfo, offset, filter, memInfo); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ListFile_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0002"; -} - -/** - * @tc.number: user_file_service_external_file_access_ListFile_0003 - * @tc.name: external_file_access_ListFile_0003 - * @tc.desc: Test function of ListFile interface for ERROR which sourceFileUri is special symbols. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0003"; - try { - Uri sourceFileUri("~!@#$%^&*()_"); - FileInfo fileInfo; - fileInfo.uri = sourceFileUri.ToString(); - Uri sourceFile(fileInfo.uri); - int64_t offset = 0; - FileFilter filter; - SharedMemoryInfo memInfo; - int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - result = g_fah->ListFile(fileInfo, offset, filter, memInfo); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ListFile_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0003"; -} - -static void ListFileTdd(FileInfo fileInfo, int offset, FileFilter filter, - SharedMemoryInfo &memInfo) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFileTdd"; - int ret = g_fah->ListFile(fileInfo, offset, filter, memInfo); - if (ret != OHOS::FileAccessFwk::ERR_OK) { - GTEST_LOG_(ERROR) << "ListFile get result error, code:" << ret; - return; - } - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - g_num++; - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFileTdd"; -} - -/** - * @tc.number: user_file_service_external_file_access_ListFile_0004 - * @tc.name: external_file_access_ListFile_0004 - * @tc.desc: Test function of ListFile interface for SUCCESS which Concurrent. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0004"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_0004.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int offset = 0; - FileFilter filter; - g_num = 0; - SharedMemoryInfo memInfo; - result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - for (int j = 0; j < INIT_THREADS_NUMBER; j++) { - std::thread execthread(ListFileTdd, fileInfo, offset, filter, std::ref(memInfo)); - execthread.join(); - } - EXPECT_EQ(g_num, INIT_THREADS_NUMBER); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ListFile_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0004"; -} - -/** - * @tc.number: user_file_service_external_file_access_ListFile_0005 - * @tc.name: external_file_access_ListFile_0005 - * @tc.desc: Test function of ListFile interface for ERROR because of GetProxyByUri failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0005"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - std::string str = testUri.ToString(); - if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { - GTEST_LOG_(ERROR) << "replace BundleName failed."; - EXPECT_TRUE(false); - } - FileInfo fileInfo; - fileInfo.uri = str; - int64_t offset = 0; - FileFilter filter; - SharedMemoryInfo memInfo; - int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - result = g_fah->ListFile(fileInfo, offset, filter, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ListFile_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0005"; -} - -/** - * @tc.number: user_file_service_external_file_access_ListFile_0006 - * @tc.name: external_file_access_ListFile_0006 - * @tc.desc: Test function of ListFile interface for SUCCESS, the folder and file name is chinese. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I70SX9 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0006, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0006"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "测试目录", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newDirUriTest.ToString().find("测试目录"), std::string::npos); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "测试文件.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(testUri.ToString().find("测试文件.txt"), std::string::npos); - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 0; - FileFilter filter; - SharedMemoryInfo memInfo; - int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - result = g_fah->ListFile(fileInfo, offset, filter, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GT(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ListFile_0006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0006"; -} - -static void WriteData(Uri &uri) -{ - int fd = -1; - std::string buff = "extenal_file_access_test"; - int result = g_fah->OpenFile(uri, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - ssize_t fileSize = write(fd, buff.c_str(), buff.size()); - close(fd); - EXPECT_EQ(fileSize, buff.size()); -} - -static double GetTime() -{ - struct timespec t{}; - t.tv_sec = 0; - t.tv_nsec = 0; - clock_gettime(CLOCK_REALTIME, &t); - return static_cast(t.tv_sec); -} - -static double InitListFile(Uri newDirUriTest, const std::string &caseNumber, const bool &needSleep = false) -{ - Uri testUri1(""); - int result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_" + caseNumber + ".txt", testUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri2(""); - result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_" + caseNumber + ".docx", testUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri3(""); - double time = GetTime(); - if (needSleep) { - sleep(2); - } - result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_01_" + caseNumber + ".txt", testUri3); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri4(""); - result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_01_" + caseNumber + ".docx", testUri4); - WriteData(testUri4); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri5(""); - result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_01_" + caseNumber + "_01.docx", testUri5); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - return time; -} - -static void ListFileFilter7(Uri newDirUriTest) -{ - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 4; - SharedMemoryInfo memInfo; - FileFilter filter({".txt", ".docx"}, {}, {}, -1, -1, false, true); - int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - result = g_fah->ListFile(fileInfo, offset, filter, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), FILE_COUNT_1); - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); -} - -/** - * @tc.number: user_file_service_external_file_access_ListFile_0007 - * @tc.name: external_file_access_ListFile_0007 - * @tc.desc: Test function of ListFile for Success, filter is File Extensions. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I79CSX - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0007, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0007"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "listfile007", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - InitListFile(newDirUriTest, "0007"); - ListFileFilter7(newDirUriTest); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ListFile_0007 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0007"; -} - -static double InitListFileFolder(Uri newDirUriTest, const std::string &caseNumber, const bool &needSleep = false) -{ - double time = InitListFile(newDirUriTest, caseNumber, needSleep); - Uri folderUri(""); - int result = g_fah->Mkdir(newDirUriTest, "test" + caseNumber, folderUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri6(""); - result = g_fah->CreateFile(folderUri, "external_file_access_ListFile_01_" + caseNumber + "_02.docx", testUri6); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - return time; -} - -static void ShowInfo(SharedMemoryInfo &memInfo, const std::string &caseNumber) -{ - FileAccessFwk::FileInfo fileInfo; - for (size_t i = 0; i < memInfo.Size(); i++) { - FileAccessFwk::SharedMemoryOperation::ReadFileInfo(fileInfo, memInfo); - GTEST_LOG_(INFO) << caseNumber << ", uri:" << fileInfo.uri << endl; - } -} - -static void ListFileFilter8(Uri newDirUriTest) -{ - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 0; - SharedMemoryInfo memInfo; - FileFilter filter({}, {}, {}, -1, 0, false, true); - int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - result = g_fah->ListFile(fileInfo, offset, filter, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), FILE_COUNT_6); - ShowInfo(memInfo, "external_file_access_ListFile_0008"); - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); -} - -/** - * @tc.number: user_file_service_external_file_access_ListFile_0008 - * @tc.name: external_file_access_ListFile_0008 - * @tc.desc: Test function of ListFile for Success, filter is filesize >= 0 - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I79CSX - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0008, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0008"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "listfile008", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - InitListFileFolder(newDirUriTest, "0008"); - ListFileFilter8(newDirUriTest); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ListFile_0008 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0008"; -} - -static void ListFileFilter9(Uri newDirUriTest) -{ - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 0; - SharedMemoryInfo memInfo; - FileFilter filter; - int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - result = g_fah->ListFile(fileInfo, offset, filter, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), FILE_COUNT_6); - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); -} - -/** - * @tc.number: user_file_service_external_file_access_ListFile_0009 - * @tc.name: external_file_access_ListFile_0009 - * @tc.desc: Test function of ListFile for Success, filter is offset from 0 and maxCount is 1000 - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I79CSX - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0009, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0008"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "listfile009", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - InitListFileFolder(newDirUriTest, "0009"); - ListFileFilter9(newDirUriTest); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ListFile_0009 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0009"; -} - -static void ListFileFilter10(Uri newDirUriTest, const double &time) -{ - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 0; - SharedMemoryInfo memInfo; - FileFilter filter({".txt", ".docx"}, {}, {}, -1, -1, false, true); - int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - result = g_fah->ListFile(fileInfo, offset, filter, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), FILE_COUNT_5); - - FileFilter filter1({".txt", ".docx"}, {"0010.txt", "0010.docx"}, {}, -1, -1, false, true); - result = g_fah->ListFile(fileInfo, offset, filter1, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), FILE_COUNT_4); - - FileFilter filter2({".txt", ".docx"}, {"0010.txt", "0010.docx"}, {}, 0, 0, false, true); - result = g_fah->ListFile(fileInfo, offset, filter2, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), FILE_COUNT_1); - - FileFilter filter3({".txt", ".docx"}, {"0010.txt", "0010.docx"}, {}, -1, time, false, true); - result = g_fah->ListFile(fileInfo, offset, filter3, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), FILE_COUNT_2); - - double nowTime = GetTime(); - FileFilter filter4({".txt", ".docx"}, {"0010.txt", "0010.docx"}, {}, -1, nowTime, false, true); - result = g_fah->ListFile(fileInfo, offset, filter4, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), 0); - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); -} - -/** - * @tc.number: user_file_service_external_file_access_ListFile_0010 - * @tc.name: external_file_access_ListFile_0010 - * @tc.desc: Test function of ListFile interface for SUCCESS, filter is filename, extension, file size, modify time - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I79CSX - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0010, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0010"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "listfile0010", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - double time = InitListFile(newDirUriTest, "0010", true); - ListFileFilter10(newDirUriTest, time); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ListFile_0010 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0010"; -} - -static void ListFileFilter11(Uri newDirUriTest, const double &time) -{ - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 0; - SharedMemoryInfo memInfo; - int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - FileFilter filter({".txt", ".docx"}, {}, {}, -1, -1, false, true); - result = g_fah->ListFile(fileInfo, offset, filter, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), FILE_COUNT_6); - - FileFilter filter1({".txt", ".docx"}, {"测试.txt", "测试.docx"}, {}, -1, -1, false, true); - result = g_fah->ListFile(fileInfo, offset, filter1, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), FILE_COUNT_4); - - FileFilter filter2({".txt", ".docx"}, {"测试.txt", "测试.docx"}, {}, 0, 0, false, true); - result = g_fah->ListFile(fileInfo, offset, filter2, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), FILE_COUNT_1); - - FileFilter filter3({".txt", ".docx"}, {"测试.txt", "测试.docx"}, {}, -1, time, false, true); - result = g_fah->ListFile(fileInfo, offset, filter3, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), FILE_COUNT_2); - - double nowTime = GetTime(); - FileFilter filter4({".txt", ".docx"}, {"测试.txt", "测试.docx"}, {}, -1, nowTime, false, true); - result = g_fah->ListFile(fileInfo, offset, filter4, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), 0); - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); -} - -/** - * @tc.number: user_file_service_external_file_access_ListFile_0011 - * @tc.name: external_file_access_ListFile_0011 - * @tc.desc: Test function of ListFile interface for SUCCESS, for filename is Chinese - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I79CSX - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0011, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0011"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "listfile测试", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - double time = InitListFileFolder(newDirUriTest, "测试", true); - ListFileFilter11(newDirUriTest, time); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ListFile_0011 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0011"; -} - -static double InitScanFile(Uri newDirUriTest, const std::string &caseNumber, const bool &needSleep = false) -{ - Uri forlderUriTest(""); - int result = g_fah->Mkdir(newDirUriTest, "test" + caseNumber, forlderUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri testUri1(""); - result = g_fah->CreateFile(newDirUriTest, "external_file_access_ScanFile_" + caseNumber + ".txt", testUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri2(""); - result = g_fah->CreateFile(newDirUriTest, "external_file_access_ScanFile_" + caseNumber + ".docx", testUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - double time = GetTime(); - if (needSleep) { - sleep(2); - } - Uri testUri3(""); - result = g_fah->CreateFile(forlderUriTest, "external_file_access_ScanFile_01_" + caseNumber + ".txt", testUri3); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri4(""); - result = g_fah->CreateFile(forlderUriTest, "external_file_access_ScanFile_01_" + caseNumber + ".docx", testUri4); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - WriteData(testUri4); - Uri testUri5(""); - result = g_fah->CreateFile(forlderUriTest, "external_file_access_ScanFile_01_" + caseNumber + "_01.docx", testUri5); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - return time; -} - -static void ScanFileFilter0(Uri newDirUriTest, const double &time) -{ - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 0; - int64_t maxCount = 1000; - std::vector fileInfoVec; - FileFilter filter({".txt", ".docx"}, {}, {}, -1, -1, false, true); - int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_5); - - FileFilter filter1({".txt", ".docx"}, {"0000.txt", "0000.docx"}, {}, -1, -1, false, true); - result = g_fah->ScanFile(fileInfo, offset, maxCount, filter1, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_4); - - FileFilter filter2({".txt", ".docx"}, {"0000.txt", "0000.docx"}, {}, 0, 0, false, true); - result = g_fah->ScanFile(fileInfo, offset, maxCount, filter2, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_1); - - FileFilter filter3({".txt", ".docx"}, {"0000.txt", "0000.docx"}, {}, -1, time, false, true); - result = g_fah->ScanFile(fileInfo, offset, maxCount, filter3, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_2); - - double nowTime = GetTime(); - FileFilter filter4({".txt", ".docx"}, {"0000.txt", "0000.docx"}, {}, -1, nowTime, false, true); - result = g_fah->ScanFile(fileInfo, offset, maxCount, filter4, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVec.size(), 0); -} - -/** - * @tc.number: user_file_service_external_file_access_ScanFile_0000 - * @tc.name: external_file_access_ScanFile_0000 - * @tc.desc: Test function of ScanFile interface for SUCCESS, filter is filename, extension, file size, modify time - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I79CSX - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ScanFile_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "scanfile0000", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - double time = InitScanFile(newDirUriTest, "0000", true); - ScanFileFilter0(newDirUriTest, time); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ScanFile_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ScanFile_0000"; -} - -static void ScanFileFilter1(Uri newDirUriTest) -{ - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 0; - int64_t maxCount = 1000; - std::vector fileInfoVec; - FileFilter filter; - int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_5); -} - -/** - * @tc.number: user_file_service_external_file_access_ScanFile_0001 - * @tc.name: external_file_access_ScanFile_0001 - * @tc.desc: Test function of ScanFile interface for SUCCESS, the filter is offset from 0 to maxcount - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I79CSX - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ScanFile_0001"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "scanfile0001", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - InitScanFile(newDirUriTest, "0001"); - ScanFileFilter1(newDirUriTest); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ScanFile_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ScanFile_0001"; -} - -static void ScanFileFilter2(Uri newDirUriTest) -{ - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 3; - int64_t maxCount = 3; - std::vector fileInfoVec; - FileFilter filter({".txt", ".docx"}, {}, {}, -1, -1, false, true); - int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_2); -} - -/** - * @tc.number: user_file_service_external_file_access_ScanFile_0002 - * @tc.name: external_file_access_ScanFile_0002 - * @tc.desc: Test function of ScanFile interface for SUCCESS, the filter is extenstion offset maxCount - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I79CSX - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ScanFile_0002"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "scanfile0002", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - InitScanFile(newDirUriTest, "0002"); - ScanFileFilter2(newDirUriTest); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ScanFile_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ScanFile_0002"; -} - -static void ScanFileFilter3(Uri newDirUriTest, const double &time) -{ - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 0; - int64_t maxCount = 1000; - std::vector fileInfoVec; - FileFilter filter({}, {}, {}, -1, time, false, true); - int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_3); -} - -/** - * @tc.number: user_file_service_external_file_access_ScanFile_0003 - * @tc.name: external_file_access_ScanFile_0003 - * @tc.desc: Test function of ScanFile interface for SUCCESS, the filter is modify time - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I79CSX - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ScanFile_0003"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "scanfile0003", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - double time = InitScanFile(newDirUriTest, "0003", true); - ScanFileFilter3(newDirUriTest, time); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_ScanFile_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ScanFile_0003"; -} - -static void ScanFileFilter4(Uri newDirUriTest) -{ - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 0; - int64_t maxCount = 1000; - std::vector fileInfoVec; - FileFilter filter; - int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_5); -} - -/** - * @tc.number: user_file_service_external_file_access_ScanFile_0004 - * @tc.name: external_file_access_ScanFile_0004 - * @tc.desc: Test function of ScanFile interface for SUCCESS, the filter is offset from 0 to maxCount - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I79CSX - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin user_file_service_external_file_access_ScanFile_0004"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "scanfile0004", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - InitScanFile(newDirUriTest, "0004"); - ScanFileFilter4(newDirUriTest); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "user_file_service_external_file_access_ScanFile_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end user_file_service_external_file_access_ScanFile_0004"; -} - -static void ScanFileFilter5(Uri newDirUriTest) -{ - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 0; - int64_t maxCount = 1000; - std::vector fileInfoVec; - FileFilter filter({".txt", ".docx"}, {"测试.txt", "测试.docx"}, {}, -1, -1, false, true); - int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_4); -} - -/** - * @tc.number: user_file_service_external_file_access_ScanFile_0005 - * @tc.name: external_file_access_ScanFile_0005 - * @tc.desc: Test function of ScanFile interface for SUCCESS, the filter is Chinese filename - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I79CSX - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin user_file_service_external_file_access_ScanFile_0005"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "scanfile测试", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - InitScanFile(newDirUriTest, "测试"); - ScanFileFilter5(newDirUriTest); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "user_file_service_external_file_access_ScanFile_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end user_file_service_external_file_access_ScanFile_0005"; -} - -/** - * @tc.number: user_file_service_external_file_access_GetRoots_0000 - * @tc.name: external_file_access_GetRoots_0000 - * @tc.desc: Test function of GetRoots interface for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0387 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_GetRoots_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetRoots_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GT(info.size(), OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "GetRoots_0000 result:" << info.size() << endl; - for (size_t i = 0; i < info.size(); i++) { - GTEST_LOG_(INFO) << info[i].uri; - GTEST_LOG_(INFO) << info[i].displayName; - GTEST_LOG_(INFO) << info[i].deviceFlags; - GTEST_LOG_(INFO) << info[i].deviceType; - GTEST_LOG_(INFO) << info[i].relativePath; - } - EXPECT_GE(info.size(), 2); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_GetRoots_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetRoots_0000"; -} - -/** - * @tc.number: user_file_service_external_file_access_Access_0000 - * @tc.name: external_file_access_Access_0000 - * @tc.desc: Test function of Access interface for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Access_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Access_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - GTEST_LOG_(INFO) << parentUri.ToString(); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri(""); - result = g_fah->CreateFile(newDirUriTest, "external_file_access_Access_0000.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - bool isExist = false; - result = g_fah->Access(newDirUriTest, isExist); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_TRUE(isExist); - result = g_fah->Access(newFileUri, isExist); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_TRUE(isExist); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Access(newDirUriTest, isExist); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_FALSE(isExist); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Access_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Access_0000"; -} - -/** - * @tc.number: user_file_service_external_file_access_Access_0001 - * @tc.name: external_file_access_Access_0001 - * @tc.desc: Test function of Access interface FAILED because of GetProxyByUri failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Access_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Access_0001"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - std::string str = info[i].uri; - if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { - GTEST_LOG_(ERROR) << "replace BundleName failed."; - EXPECT_TRUE(false); - } - Uri newDirUriTest(str + "/test.txt"); - bool isExist = false; - result = g_fah->Access(newDirUriTest, isExist); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); - EXPECT_FALSE(isExist); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Access_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Access_0001"; -} - -/** - * @tc.number: user_file_service_external_file_access_Access_0002 - * @tc.name: external_file_access_Access_0002 - * @tc.desc: Test function of Access interface for SUCCESS, the file and folder name is chinese. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I70SX9 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Access_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Access_0002"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - GTEST_LOG_(INFO) << parentUri.ToString(); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "访问目录", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newDirUriTest.ToString().find("访问目录"), std::string::npos); - Uri newFileUri(""); - result = g_fah->CreateFile(newDirUriTest, "访问文件.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newFileUri.ToString().find("访问文件.txt"), std::string::npos); - bool isExist = false; - result = g_fah->Access(newDirUriTest, isExist); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_TRUE(isExist); - result = g_fah->Access(newFileUri, isExist); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_TRUE(isExist); - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Access(newDirUriTest, isExist); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_FALSE(isExist); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Access_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Access_0002"; -} - -/** - * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0000 - * @tc.name: external_file_access_GetFileInfoFromUri_0000 - * @tc.desc: Test function of GetFileInfoFromUri interface. - * @tc.desc: convert the root directory uri to fileinfo and call listfile for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - SharedMemoryInfo memInfo; - result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - FileInfo fileinfo; - result = g_fah->GetFileInfoFromUri(parentUri, fileinfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - int64_t offset = 0; - FileFilter filter; - result = g_fah->ListFile(fileinfo, offset, filter, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GE(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); - } - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0000"; -} - -/** - * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0001 - * @tc.name: external_file_access_GetFileInfoFromUri_0001 - * @tc.desc: Test function of GetFileInfoFromUri interface. - * @tc.desc: convert the general directory uri to fileinfo and call listfile for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0001"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - SharedMemoryInfo memInfo; - result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "testDir", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - FileInfo dirInfo; - result = g_fah->GetFileInfoFromUri(newDirUriTest, dirInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - int64_t offset = 0; - FileFilter filter; - result = g_fah->ListFile(dirInfo, offset, filter, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GE(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0001"; -} - -/** - * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0002 - * @tc.name: external_file_access_GetFileInfoFromUri_0002 - * @tc.desc: Test function of GetFileInfoFromUri interface. - * @tc.desc: convert the general filepath uri to fileinfo and call listfile for ERROR. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0002"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - SharedMemoryInfo memInfo; - result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "testDir", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri(""); - result = g_fah->CreateFile(newDirUriTest, "external_file_access_GetFileInfoFromUri_0002.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - FileInfo fileinfo; - result = g_fah->GetFileInfoFromUri(newFileUri, fileinfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - int64_t offset = 0; - FileFilter filter; - result = g_fah->ListFile(fileinfo, offset, filter, memInfo); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0002"; -} - -/** - * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0003 - * @tc.name: external_file_access_GetFileInfoFromUri_0003 - * @tc.desc: Test function of GetFileInfoFromUri interface. - * @tc.desc: convert the root directory uri to fileinfo for CheckUri failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0003"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(std::string("\?\?\?\?/") + info[i].uri); - FileInfo fileinfo; - result = g_fah->GetFileInfoFromUri(parentUri, fileinfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_URIS); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0003"; -} - -/** - * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0004 - * @tc.name: external_file_access_GetFileInfoFromUri_0004 - * @tc.desc: Test function of GetFileInfoFromUri interface. - * @tc.desc: convert the root directory uri to fileinfo failed because of GetProxyByUri failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0004"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - std::string str = info[i].uri; - if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { - GTEST_LOG_(ERROR) << "replace BundleName failed."; - EXPECT_TRUE(false); - } - Uri parentUri(str); - FileInfo fileinfo; - result = g_fah->GetFileInfoFromUri(parentUri, fileinfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); - } - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0004"; -} - -/** - * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0005 - * @tc.name: external_file_access_GetFileInfoFromUri_0005 - * @tc.desc: Test function of GetFileInfoFromUri interface. - * @tc.desc: convert the invalid uri to fileinfo failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0005"; - try { - Uri uri("~!@#$%^&*()_"); - FileInfo fileInfo; - int result = g_fah->GetFileInfoFromUri(uri, fileInfo); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - - uri = Uri("/"); - result = g_fah->GetFileInfoFromUri(uri, fileInfo); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - - uri = Uri(""); - result = g_fah->GetFileInfoFromUri(uri, fileInfo); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0005"; -} - -/** - * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0006 - * @tc.name: external_file_access_GetFileInfoFromUri_0006 - * @tc.desc: Test function of GetFileInfoFromUri interface. - * @tc.desc: convert the general directory uri to fileinfo and call listfile for SUCCESS, the folder name is chinese. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I70SX9 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0006, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0006"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - SharedMemoryInfo memInfo; - result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "测试目录", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newDirUriTest.ToString().find("测试目录"), std::string::npos); - - FileInfo dirInfo; - result = g_fah->GetFileInfoFromUri(newDirUriTest, dirInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - int64_t offset = 0; - FileFilter filter; - result = g_fah->ListFile(dirInfo, offset, filter, memInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GE(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0006"; -} - -/** - * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0007 - * @tc.name: external_file_access_GetFileInfoFromUri_0007 - * @tc.desc: Test function of GetFileInfoFromUri interface. - * @tc.desc: convert the general filepath uri to fileinfo and call listfile for ERROR, the file name is chinese. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I70SX9 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0007, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0007"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - SharedMemoryInfo memInfo; - result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, - memInfo); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(info[i].uri); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "测试目录", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newDirUriTest.ToString().find("测试目录"), std::string::npos); - Uri newFileUri(""); - result = g_fah->CreateFile(newDirUriTest, "测试文件.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newFileUri.ToString().find("测试文件.txt"), std::string::npos); - - FileInfo fileinfo; - result = g_fah->GetFileInfoFromUri(newFileUri, fileinfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - int64_t offset = 0; - FileFilter filter; - std::vector fileInfoVecTemp; - result = g_fah->ListFile(fileinfo, offset, filter, memInfo); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } - FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0007 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0007"; -} - -/** - * @tc.number: user_file_service_external_file_access_creator_0000 - * @tc.name: external_file_access_creator_0000 - * @tc.desc: Test function of creator interface. - * @tc.desc: create file access helper for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0000"; - try { - setuid(UID_TRANSFORM_TMP); - std::pair, int> helper = FileAccessHelper::Creator(g_context); - setuid(UID_DEFAULT); - ASSERT_TRUE(helper.first != nullptr); - bool succ = helper.first->Release(); - EXPECT_TRUE(succ); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_creator_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0000"; -} - -/** - * @tc.number: user_file_service_external_file_access_creator_0001 - * @tc.name: external_file_access_creator_0001 - * @tc.desc: Test function of creator interface. - * @tc.desc: create file access helper for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0001"; - try { - AAFwk::Want want; - vector wantVec; - setuid(UID_TRANSFORM_TMP); - int ret = FileAccessHelper::GetRegisteredFileAccessExtAbilityInfo(wantVec); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - bool sus = false; - for (size_t i = 0; i < wantVec.size(); i++) { - auto element = wantVec[i].GetElement(); - if (element.GetBundleName() == "com.ohos.UserFile.ExternalFileManager" && - element.GetAbilityName() == "FileExtensionAbility") { - want = wantVec[i]; - sus = true; - break; - } - } - EXPECT_TRUE(sus); - vector wants{want}; - std::pair, int> helper = FileAccessHelper::Creator(g_context, wants); - setuid(UID_DEFAULT); - ASSERT_TRUE(helper.first != nullptr); - bool succ = helper.first->Release(); - EXPECT_TRUE(succ); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_creator_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0001"; -} - -/** - * @tc.number: user_file_service_external_file_access_creator_0002 - * @tc.name: external_file_access_creator_0002 - * @tc.desc: Test function of creator interface. - * @tc.desc: create file access helper for FAILED. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0002"; - try { - std::shared_ptr context = nullptr; - std::pair, int> helper = FileAccessHelper::Creator(context); - ASSERT_TRUE(helper.first == nullptr); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_creator_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0002"; -} - -/** - * @tc.number: user_file_service_external_file_access_creator_0003 - * @tc.name: external_file_access_creator_0003 - * @tc.desc: Test function of creator interface. - * @tc.desc: create file access helper for FAILED. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0003"; - try { - std::vector wants; - std::shared_ptr context = nullptr; - std::pair, int> helper = FileAccessHelper::Creator(context, wants); - ASSERT_TRUE(helper.first == nullptr); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_creator_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0003"; -} - -/** - * @tc.number: user_file_service_external_file_access_creator_0004 - * @tc.name: external_file_access_creator_0004 - * @tc.desc: Test function of creator interface. - * @tc.desc: create file access helper for FAILED. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0004"; - try { - std::vector wants; - std::pair, int> helper = FileAccessHelper::Creator(g_context, wants); - ASSERT_TRUE(helper.first == nullptr); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_creator_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0004"; -} - -/** - * @tc.number: user_file_service_external_file_access_creator_0005 - * @tc.name: external_file_access_creator_0005 - * @tc.desc: Test function of creator interface. - * @tc.desc: create file access helper for FAILED. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0005"; - try { - AAFwk::Want want; - want.SetElementName("NotExistBundleName", "NotExistAbilityName"); - std::vector wants{want}; - std::pair, int> helper = FileAccessHelper::Creator(g_context, wants); - ASSERT_TRUE(helper.first == nullptr); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_creator_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0005"; -} - -/** - * @tc.number: user_file_service_external_file_access_creator_0006 - * @tc.name: external_file_access_creator_0006 - * @tc.desc: Test function of creator interface. - * @tc.desc: create file access helper for FAILED. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0006, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0006"; - try { - std::vector wants; - std::shared_ptr context = nullptr; - std::pair, int> helper = FileAccessHelper::Creator(context, wants); - ASSERT_TRUE(helper.first == nullptr); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_creator_0006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0006"; -} - -/** - * @tc.number: user_file_service_external_file_access_creator_0007 - * @tc.name: external_file_access_creator_0007 - * @tc.desc: Test function of creator interface. - * @tc.desc: create file access helper for FAILED. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0007, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0007"; - try { - std::vector wants; - shared_ptr helper = FileAccessHelper::Creator(g_context->GetToken(), wants); - ASSERT_TRUE(helper == nullptr); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_creator_0007 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0007"; -} - -/** - * @tc.number: user_file_service_external_file_access_creator_0008 - * @tc.name: external_file_access_creator_0008 - * @tc.desc: Test function of creator interface. - * @tc.desc: create file access helper for FAILED. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0008, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0008"; - try { - AAFwk::Want want; - want.SetElementName("NotExistBundleName", "NotExistAbilityName"); - std::vector wants{want}; - shared_ptr helper = FileAccessHelper::Creator(g_context->GetToken(), wants); - ASSERT_TRUE(helper == nullptr); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_creator_0008 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0008"; -} - -/** - * @tc.number: user_file_service_external_file_access_GetConnectInfo_0000 - * @tc.name: external_file_access_GetConnectInfo_0000 - * @tc.desc: Test function of GetConnectInfo interface. - * @tc.desc: helper invoke GetConnectInfo for FAILED. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_GetConnectInfo_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetConnectInfo_0000"; - try { - std::shared_ptr connectInfo = g_fah->GetConnectInfo("NotExistBundleName"); - ASSERT_TRUE(connectInfo == nullptr); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_GetConnectInfo_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetConnectInfo_0000"; -} - - -/** - * @tc.number: user_file_service_external_file_access_GetProxyByUri_0000 - * @tc.name: external_file_access_GetProxyByUri_0000 - * @tc.desc: Test function of GetProxyByUri interface. - * @tc.desc: helper invoke GetProxyByUri for FAILED. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_GetProxyByUri_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetProxyByUri_0000"; - try { - Uri uri(""); - sptr proxy = g_fah->GetProxyByUri(uri); - ASSERT_TRUE(proxy == nullptr); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_GetProxyByUri_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetProxyByUri_0000"; -} - -/** - * @tc.number: user_file_service_external_file_access_GetProxyByUri_0001 - * @tc.name: external_file_access_GetProxyByUri_0001 - * @tc.desc: Test function of GetProxyByUri interface. - * @tc.desc: helper invoke GetProxyByUri for FAILED. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_GetProxyByUri_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetProxyByUri_0001"; - try { - Uri uri("file://com.ohos.UserFile.NotExistBundleName/data/storage/el1/bundle/storage_daemon"); - sptr proxy = g_fah->GetProxyByUri(uri); - ASSERT_TRUE(proxy == nullptr); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_GetProxyByUri_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetProxyByUri_0001"; -} - -/** - * @tc.number: user_file_service_external_file_access_Query_0000 - * @tc.name: external_file_access_Query_0000 - * @tc.desc: Test function of Query directory for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I6S4VV - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - GTEST_LOG_(INFO) << parentUri.ToString(); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - std::string displayName = "QueryTest1"; - std::string relativePath = "/storage/Users/currentUser/QueryTest1"; - result = g_fah->Mkdir(parentUri, "QueryTest1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(newDirUriTest1, "QueryTest2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri1(""); - Uri newFileUri2(""); - std::string fileName = "external_file_access_Query_00001.txt"; - result = g_fah->CreateFile(newDirUriTest1, fileName, newFileUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->CreateFile(newDirUriTest2, fileName, newFileUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd = -1; - std::string buff = "query test"; - result = g_fah->OpenFile(newFileUri1, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - ssize_t fileSize = write(fd, buff.c_str(), buff.size()); - close(fd); - EXPECT_EQ(fileSize, buff.size()); - result = g_fah->OpenFile(newFileUri2, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - fileSize = write(fd, buff.c_str(), buff.size()); - close(fd); - EXPECT_EQ(fileSize, buff.size()); - json testJson = { - {RELATIVE_PATH, " "}, - {DISPLAY_NAME, " "}, - {FILE_SIZE, " "}, - {DATE_MODIFIED, " "}, - {DATE_ADDED, " "}, - {HEIGHT, " "}, - {WIDTH, " "}, - {DURATION, " "} - }; - auto testJsonString = testJson.dump(); - result = g_fah->Query(newDirUriTest1, testJsonString); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - auto jsonObject = json::parse(testJsonString); - EXPECT_EQ(jsonObject.at(DISPLAY_NAME), displayName); - EXPECT_EQ(jsonObject.at(FILE_SIZE), buff.size() * 2); - EXPECT_EQ(jsonObject.at(RELATIVE_PATH), relativePath); - ASSERT_TRUE(jsonObject.at(DATE_MODIFIED) > 0); - ASSERT_TRUE(jsonObject.at(DATE_ADDED) > 0); - GTEST_LOG_(INFO) << " result" << testJsonString; - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Query_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0000"; -} - -/** - * @tc.number: user_file_service_external_file_access_Query_0001 - * @tc.name: external_file_access_Query_0001 - * @tc.desc: Test function of Query file for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I6S4VV - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0001"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - GTEST_LOG_(INFO) << parentUri.ToString(); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "QueryTest3", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri(""); - std::string displayName = "external_file_access_Query_0001.txt"; - std::string relativePath = "/storage/Users/currentUser/QueryTest3/external_file_access_Query_0001.txt"; - result = g_fah->CreateFile(newDirUriTest, displayName, newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd = -1; - result = g_fah->OpenFile(newFileUri, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string buff = "query test"; - ssize_t fileSize = write(fd, buff.c_str(), buff.size()); - close(fd); - EXPECT_EQ(fileSize, buff.size()); - json testJson = { - {RELATIVE_PATH, " "}, - {DISPLAY_NAME, " "}, - {FILE_SIZE, " "}, - {DATE_MODIFIED, " "}, - {DATE_ADDED, " "}, - {HEIGHT, " "}, - {WIDTH, " "}, - {DURATION, " "} - }; - auto testJsonString = testJson.dump(); - result = g_fah->Query(newFileUri, testJsonString); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - auto jsonObject = json::parse(testJsonString); - EXPECT_EQ(jsonObject.at(DISPLAY_NAME), displayName); - EXPECT_EQ(jsonObject.at(FILE_SIZE), buff.size()); - EXPECT_EQ(jsonObject.at(RELATIVE_PATH), relativePath); - ASSERT_TRUE(jsonObject.at(DATE_MODIFIED) > 0); - ASSERT_TRUE(jsonObject.at(DATE_ADDED) > 0); - GTEST_LOG_(INFO) << " result" << testJsonString; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Query_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0001"; -} - -/** - * @tc.number: user_file_service_external_file_access_Query_0002 - * @tc.name: external_file_access_Query_0002 - * @tc.desc: Test function of Query directory for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I6S4VV - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0002"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - GTEST_LOG_(INFO) << parentUri.ToString(); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "QueryTest4", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(newDirUriTest1, "QueryTest5", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri1(""); - Uri newFileUri2(""); - std::string fileName = "external_file_access_Query_00001.txt"; - result = g_fah->CreateFile(newDirUriTest1, fileName, newFileUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->CreateFile(newDirUriTest2, fileName, newFileUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd = -1; - std::string buff = "query test"; - result = g_fah->OpenFile(newFileUri1, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - ssize_t fileSize = write(fd, buff.c_str(), buff.size()); - close(fd); - EXPECT_EQ(fileSize, buff.size()); - result = g_fah->OpenFile(newFileUri2, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - fileSize = write(fd, buff.c_str(), buff.size()); - close(fd); - EXPECT_EQ(fileSize, buff.size()); - json testJson = { - {FILE_SIZE, " "} - }; - auto testJsonString = testJson.dump(); - result = g_fah->Query(newDirUriTest1, testJsonString); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - auto jsonObject = json::parse(testJsonString); - EXPECT_EQ(jsonObject.at(FILE_SIZE), buff.size() * 2); - GTEST_LOG_(INFO) << " result" << testJsonString; - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Query_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0002"; -} - -/** - * @tc.number: user_file_service_external_file_access_Query_0003 - * @tc.name: external_file_access_Query_0003 - * @tc.desc: Test function of Query interface for which is unreadable code. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I6S4VV - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0003"; - try { - Uri testUri("&*()*/?"); - json testJson = { - {RELATIVE_PATH, " "}, - {DISPLAY_NAME, " "} - }; - auto testJsonString = testJson.dump(); - int result = g_fah->Query(testUri, testJsonString); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << " result" << testJsonString; - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Query_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0003"; -} - -/** - * @tc.number: user_file_service_external_file_access_Query_0004 - * @tc.name: external_file_access_Query_0004 - * @tc.desc: Test function of Query interface for which all column nonexistence. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I6S4VV - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0004"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - GTEST_LOG_(INFO) << parentUri.ToString(); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "QueryTest6", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - json testJson = { - {"001", " "}, - {"#", " "}, - {"test", " "}, - {"target", " "} - }; - auto testJsonString = testJson.dump(); - result = g_fah->Query(newDirUriTest, testJsonString); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << " result" << testJsonString; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Query_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0004"; -} - -/** - * @tc.number: user_file_service_external_file_access_Query_0005 - * @tc.name: external_file_access_Query_0005 - * @tc.desc: Test function of Query interface for which part of column nonexistence. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I6S4VV - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0005"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - GTEST_LOG_(INFO) << parentUri.ToString(); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "QueryTest7", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - json testJson = { - {RELATIVE_PATH, " "}, - {DISPLAY_NAME, " "}, - {"test", " "} - }; - auto testJsonString = testJson.dump(); - result = g_fah->Query(newDirUriTest, testJsonString); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << " result" << testJsonString; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Query_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0005"; -} - -/** - * @tc.number: user_file_service_external_file_access_Query_0006 - * @tc.name: external_file_access_Query_0006 - * @tc.desc: Test function of Query interface for which column is null. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I6S4VV - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0006, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0006"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - GTEST_LOG_(INFO) << parentUri.ToString(); - Uri newDirUriTest(""); - result = g_fah->Mkdir(parentUri, "QueryTest8", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - json testJson; - auto testJsonString = testJson.dump(); - result = g_fah->Query(newDirUriTest, testJsonString); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << " result" << testJsonString; - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Query_0006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0006"; -} - -/** - * @tc.number: user_file_service_external_file_access_Query_0007 - * @tc.name: external_file_access_Query_0007 - * @tc.desc: Test function of Query directory for SUCCESS, the folder and file name is chinese. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I70SX9 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0007, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0007"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - GTEST_LOG_(INFO) << parentUri.ToString(); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - std::string displayName = "查询目录1"; - std::string relativePath = "/storage/Users/currentUser/查询目录1"; - result = g_fah->Mkdir(parentUri, displayName, newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newDirUriTest1.ToString().find(displayName), std::string::npos); - result = g_fah->Mkdir(newDirUriTest1, "查询目录2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newDirUriTest2.ToString().find("查询目录2"), std::string::npos); - Uri newFileUri1(""); - Uri newFileUri2(""); - std::string fileName = "查询文件.txt"; - result = g_fah->CreateFile(newDirUriTest1, fileName, newFileUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newFileUri1.ToString().find(fileName), std::string::npos); - result = g_fah->CreateFile(newDirUriTest2, fileName, newFileUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newFileUri2.ToString().find(fileName), std::string::npos); - int fd = -1; - std::string buff = "query test"; - result = g_fah->OpenFile(newFileUri1, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - ssize_t fileSize = write(fd, buff.c_str(), buff.size()); - close(fd); - EXPECT_EQ(fileSize, buff.size()); - result = g_fah->OpenFile(newFileUri2, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - fileSize = write(fd, buff.c_str(), buff.size()); - close(fd); - EXPECT_EQ(fileSize, buff.size()); - json testJson = { - {RELATIVE_PATH, " "}, - {DISPLAY_NAME, " "}, - {FILE_SIZE, " "}, - {DATE_MODIFIED, " "}, - {DATE_ADDED, " "}, - {HEIGHT, " "}, - {WIDTH, " "}, - {DURATION, " "} - }; - auto testJsonString = testJson.dump(); - result = g_fah->Query(newDirUriTest1, testJsonString); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - auto jsonObject = json::parse(testJsonString); - EXPECT_EQ(jsonObject.at(DISPLAY_NAME), displayName); - EXPECT_EQ(jsonObject.at(FILE_SIZE), buff.size() * 2); - EXPECT_EQ(jsonObject.at(RELATIVE_PATH), relativePath); - ASSERT_TRUE(jsonObject.at(DATE_MODIFIED) > 0); - ASSERT_TRUE(jsonObject.at(DATE_ADDED) > 0); - GTEST_LOG_(INFO) << " result" << testJsonString; - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Query_0007 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0007"; -} - -/** - * @tc.number: user_file_service_external_file_access_GetBundleNameFromPath_0000 - * @tc.name: external_file_access_GetBundleNameFromPath_0000 - * @tc.desc: Test function of GetBundleNameFromPath interface for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_GetBundleNameFromPath_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetBundleNameFromPath_0000"; - try { - Uri uri("file://media/some/path"); - auto result = g_fah->GetProxyByUri(uri); - EXPECT_EQ(result, nullptr); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_GetBundleNameFromPath_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetBundleNameFromPath_0000"; -} - -/** - * @tc.number: user_file_service_external_file_access_Move_item_0000 - * @tc.name: external_file_access_Move_item_0000 - * @tc.desc: Test function of Move item interface. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - */ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::vector moveResult; - result = g_fah->MoveItem(testUri, newDirUriTest2, moveResult, false); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_item_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0000"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_item_0001 -* @tc.name: external_file_access_Move_item_0001 -* @tc.desc: Test function of Move item interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0001"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri(""); - result = g_fah->CreateFile(newDirUriTest2, "test.txt", targetUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::vector moveResult; - result = g_fah->MoveItem(sourceUri, newDirUriTest2, moveResult, false); - EXPECT_EQ(result, -2); - EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_EXIST); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_item_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0001"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_item_0002 -* @tc.name: external_file_access_Move_item_0002 -* @tc.desc: Test function of Move item interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0002"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri(""); - result = g_fah->CreateFile(newDirUriTest2, "test.txt", targetUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::vector moveResult; - result = g_fah->MoveItem(sourceUri, newDirUriTest2, moveResult, true); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_item_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0002"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_item_0003 -* @tc.name: external_file_access_Move_item_0003 -* @tc.desc: Test function of Move item interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0003"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri(""); - result = g_fah->CreateFile(newDirUriTest2, "test.txt", targetUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::vector moveResult; - result = g_fah->MoveItem(newDirUriTest1, newDirUriTest2, moveResult, false); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0000 result:" << result; - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_item_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0003"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_item_0004 -* @tc.name: external_file_access_Move_item_0004 -* @tc.desc: Test function of Move item interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0004"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - Uri newDirUriTest3(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(newDirUriTest2, "test1", newDirUriTest3); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri(""); - result = g_fah->CreateFile(newDirUriTest3, "test.txt", targetUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::vector moveResult; - result = g_fah->MoveItem(newDirUriTest1, newDirUriTest2, moveResult, false); - EXPECT_EQ(result, -2); - EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_EXIST); - GTEST_LOG_(INFO) << "Move_0000 result:" << result; - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_item_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0004"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_item_0005 -* @tc.name: external_file_access_Move_item_0005 -* @tc.desc: Test function of Move item interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0005"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - Uri newDirUriTest2(""); - Uri newDirUriTest3(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(newDirUriTest2, "test1", newDirUriTest3); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri(""); - result = g_fah->CreateFile(newDirUriTest3, "test.txt", targetUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::vector moveResult; - result = g_fah->MoveItem(newDirUriTest1, newDirUriTest2, moveResult, true); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Move_0000 result:" << result; - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_item_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0005"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_item_0006 -* @tc.name: external_file_access_Move_item_0006 -* @tc.desc: Test function of Move item interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0006, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0006"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(newDirUriTest1, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri1(""); - result = g_fah->CreateFile(newDirUriTest2, "test.txt", sourceUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri2(""); - result = g_fah->CreateFile(newDirUriTest2, "test1.txt", sourceUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest3(""); - result = g_fah->Mkdir(parentUri, "test3", newDirUriTest3); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest4(""); - result = g_fah->Mkdir(newDirUriTest3, "test1", newDirUriTest4); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest5(""); - result = g_fah->Mkdir(newDirUriTest4, "test2", newDirUriTest5); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri1(""); - result = g_fah->CreateFile(newDirUriTest5, "test.txt", targetUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::vector moveResult; - result = g_fah->MoveItem(newDirUriTest1, newDirUriTest3, moveResult, false); - EXPECT_EQ(result, -2); - EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_EXIST); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest3); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_item_0006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0006"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_item_0007 -* @tc.name: external_file_access_Move_item_0007 -* @tc.desc: Test function of Move item interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0007, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0007"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(newDirUriTest1, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri1(""); - result = g_fah->CreateFile(newDirUriTest2, "test.txt", sourceUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri2(""); - result = g_fah->CreateFile(newDirUriTest2, "test1.txt", sourceUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest3(""); - result = g_fah->Mkdir(parentUri, "test3", newDirUriTest3); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest4(""); - result = g_fah->Mkdir(newDirUriTest3, "test1", newDirUriTest4); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest5(""); - result = g_fah->Mkdir(newDirUriTest4, "test2", newDirUriTest5); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri1(""); - result = g_fah->CreateFile(newDirUriTest5, "test.txt", targetUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::vector moveResult; - result = g_fah->MoveItem(newDirUriTest1, newDirUriTest3, moveResult, true); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(moveResult.size(), 0); - result = g_fah->Delete(newDirUriTest3); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_item_0007 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0007"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_item_0008 -* @tc.name: external_file_access_Move_item_0008 -* @tc.desc: Test function of Move item interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0008, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0008"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test3", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest3(""); - result = g_fah->Mkdir(newDirUriTest2, "test", newDirUriTest3); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::vector moveResult; - result = g_fah->MoveItem(sourceUri, newDirUriTest2, moveResult, true); - EXPECT_EQ(result, -2); - EXPECT_EQ(moveResult.size(), 1); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_item_0008 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0008"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_item_0009 -* @tc.name: external_file_access_Move_item_0009 -* @tc.desc: Test function of Move item interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0009, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0009"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->Mkdir(newDirUriTest1, "test", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test3", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri(""); - result = g_fah->CreateFile(newDirUriTest2, "test", targetUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::vector moveResult; - result = g_fah->MoveItem(sourceUri, newDirUriTest2, moveResult, true); - EXPECT_EQ(result, -2); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_item_0009 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0009"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_item_0010 -* @tc.name: external_file_access_Move_0007 -* @tc.desc: Test function of Move item interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0010, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0010"; - try { - std::vector moveResult; - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(newDirUriTest1.ToString() + "/" + "test"); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test3", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->MoveItem(sourceUri, newDirUriTest2, moveResult, true); - EXPECT_EQ(result, -1); - EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_URI); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_item_0010 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0010"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_item_0011 -* @tc.name: external_file_access_Move_item_0011 -* @tc.desc: Test function of Move item interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0011, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0011"; - try { - std::vector moveResult; - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri(newDirUriTest2.ToString() + "/" + "test3"); - result = g_fah->MoveItem(sourceUri, targetUri, moveResult, true); - EXPECT_EQ(result, -1); - EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_URI); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_item_0011 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0011"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_item_0012 -* @tc.name: external_file_access_Move_item_0012 -* @tc.desc: Test function of Move item interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0012, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0012"; - try { - std::vector moveResult; - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri uri1(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", uri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri uri2(""); - result = g_fah->CreateFile(newDirUriTest1, "test4", uri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test3", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest3(""); - result = g_fah->Mkdir(newDirUriTest2, "test1", newDirUriTest3); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest4(""); - result = g_fah->Mkdir(newDirUriTest3, "test4", newDirUriTest4); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest5(""); - result = g_fah->CreateFile(newDirUriTest3, "test.txt", newDirUriTest5); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->MoveItem(newDirUriTest1, newDirUriTest2, moveResult, false); - EXPECT_EQ(result, -2); - EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_IS_DIR); - EXPECT_EQ(moveResult[1].errCode, OHOS::FileAccessFwk::ERR_EXIST); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_item_0012 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0012"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_item_0013 -* @tc.name: external_file_access_Move_item_0013 -* @tc.desc: Test function of Move item interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0013, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0013"; - try { - std::vector moveResult; - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri uri1(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", uri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri uri2(""); - result = g_fah->CreateFile(newDirUriTest1, "test4", uri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test3", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest3(""); - result = g_fah->Mkdir(newDirUriTest2, "test1", newDirUriTest3); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest4(""); - result = g_fah->Mkdir(newDirUriTest3, "test4", newDirUriTest4); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest5(""); - result = g_fah->Mkdir(newDirUriTest3, "test.txt", newDirUriTest5); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->MoveItem(newDirUriTest1, newDirUriTest2, moveResult, true); - EXPECT_EQ(result, -2); - EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_IS_DIR); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_item_0013 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0013"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_file_0000 -* @tc.name: external_file_access_Move_file_0000 -* @tc.desc: Test function of Move file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_file_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_file_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(newDirUriTest1.ToString() + "/" + "test"); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test3", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFile(""); - std::string fileName = "a"; - result = g_fah->MoveFile(sourceUri, newDirUriTest2, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_URI); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_file_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_file_0000"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_file_0001 -* @tc.name: external_file_access_Move_file_0001 -* @tc.desc: Test function of Move file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_file_001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_file_0001"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri(newDirUriTest2.ToString() + "/" + "test3"); - std::string fileName("a.txt"); - Uri newFile(""); - result = g_fah->MoveFile(sourceUri, targetUri, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_URI); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_file_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_file_0001"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_file_0002 -* @tc.name: external_file_access_Move_file_0002 -* @tc.desc: Test function of Move file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_file_002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_file_0002"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string fileName("a.txt"); - Uri newFile(""); - result = g_fah->MoveFile(newDirUriTest1, newDirUriTest2, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_URIS); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_file_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_file_0002"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_file_0003 -* @tc.name: external_file_access_Move_file_0003 -* @tc.desc: Test function of Move file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_file_003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_file_0003"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string fileName("a.txt"); - Uri newFile(""); - result = g_fah->MoveFile(sourceUri, newDirUriTest2, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newFile.GetPath(), newDirUriTest2.GetPath() + '/' +"test.txt"); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_file_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_file_0003"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_file_0004 -* @tc.name: external_file_access_Move_file_0004 -* @tc.desc: Test function of Move file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_file_004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_file_0004"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri(""); - result = g_fah->CreateFile(newDirUriTest2, "test.txt", targetUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string fileName("a.txt"); - Uri newFile(""); - result = g_fah->MoveFile(sourceUri, newDirUriTest2, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newFile.GetPath(), newDirUriTest2.GetPath() + '/' +"a.txt"); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_file_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_file_0004"; -} - -/** -* @tc.number: user_file_service_external_file_access_Move_file_0005 -* @tc.name: external_file_access_Move_file_0005 -* @tc.desc: Test function of Move file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Move_file_005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_file_0005"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test1.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri1(""); - result = g_fah->CreateFile(newDirUriTest2, "test1.txt", targetUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri2(""); - result = g_fah->CreateFile(newDirUriTest2, "test2.txt", targetUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string fileName("test2.txt"); - Uri newFile(""); - result = g_fah->MoveFile(sourceUri, newDirUriTest2, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_EXIST); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Move_file_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_file_0005"; -} - -/** -* @tc.number: user_file_service_external_file_access_Copy_file_000 -* @tc.name: external_file_access_Copy_file_000 -* @tc.desc: Test function of Copy file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(newDirUriTest1.ToString() + "/" + "test"); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test3", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFile(""); - std::string fileName = "a"; - result = g_fah->CopyFile(sourceUri, newDirUriTest2, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_GETRESULT); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_file_000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_000"; -} - -/** -* @tc.number: user_file_service_external_file_access_Copy_file_001 -* @tc.name: external_file_access_Copy_file_001 -* @tc.desc: Test function of Copy file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_001"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri(newDirUriTest2.ToString() + "/" + "test3"); - std::string fileName("a.txt"); - Uri newFile(""); - result = g_fah->CopyFile(sourceUri, targetUri, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_GETRESULT); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_file_001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_001"; -} - -/** -* @tc.number: user_file_service_external_file_access_Copy_file_002 -* @tc.name: external_file_access_Copy_file_002 -* @tc.desc: Test function of Copy file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_002"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string fileName("a.txt"); - Uri newFile(""); - result = g_fah->CopyFile(newDirUriTest1, newDirUriTest2, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_URIS); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_file_002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_002"; -} - -/** -* @tc.number: user_file_service_external_file_access_Copy_file_003 -* @tc.name: external_file_access_Copy_file_003 -* @tc.desc: Test function of Copy file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_003"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri(newDirUriTest2.ToString() + "/" + "test.txt"); - std::string fileName("a.txt"); - Uri newFile(""); - result = g_fah->CopyFile(sourceUri, targetUri, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_GETRESULT); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_file_003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_003"; -} - -/** -* @tc.number: user_file_service_external_file_access_Copy_file_004 -* @tc.name: external_file_access_Copy_file_004 -* @tc.desc: Test function of Copy file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_004"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri(""); - result = g_fah->CreateFile(newDirUriTest2, "test.txt", targetUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string fileName("a.txt"); - Uri newFile(""); - result = g_fah->CopyFile(sourceUri, targetUri, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_URIS); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_file_004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_004"; -} - -/** -* @tc.number: user_file_service_external_file_access_Copy_file_005 -* @tc.name: external_file_access_Copy_file_005 -* @tc.desc: Test function of Copy file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_005"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string fileName("a.txt"); - Uri newFile(""); - result = g_fah->CopyFile(sourceUri, newDirUriTest2, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newFile.GetPath(), newDirUriTest2.GetPath() + '/' +"test.txt"); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_file_005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_005"; -} - -/** -* @tc.number: user_file_service_external_file_access_Copy_file_006 -* @tc.name: external_file_access_Copy_file_006 -* @tc.desc: Test function of Copy file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_006, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_006"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri(""); - result = g_fah->CreateFile(newDirUriTest2, "test.txt", targetUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string fileName("a.txt"); - Uri newFile(""); - result = g_fah->CopyFile(sourceUri, newDirUriTest2, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newFile.GetPath(), newDirUriTest2.GetPath() + '/' +"a.txt"); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_file_006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_006"; -} - -/** -* @tc.number: user_file_service_external_file_access_Copy_file_007 -* @tc.name: external_file_access_Copy_file_007 -* @tc.desc: Test function of Copy file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_007, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_007"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test1.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri1(""); - result = g_fah->CreateFile(newDirUriTest2, "test1.txt", targetUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri2(""); - result = g_fah->CreateFile(newDirUriTest2, "test2.txt", targetUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string fileName("test2.txt"); - Uri newFile(""); - result = g_fah->CopyFile(sourceUri, newDirUriTest2, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_EXIST); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_file_007 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_007"; -} - -/** -* @tc.number: user_file_service_external_file_access_Copy_file_008 -* @tc.name: external_file_access_Copy_file_008 -* @tc.desc: Test function of Copy file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_008, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_008"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "测试1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string fileName("a.txt"); - Uri newFile(""); - result = g_fah->CopyFile(sourceUri, newDirUriTest2, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newFile.GetPath(), newDirUriTest2.GetPath() + '/' +"test.txt"); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_file_008 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_008"; -} - -/** -* @tc.number: user_file_service_external_file_access_Copy_file_009 -* @tc.name: external_file_access_Copy_file_009 -* @tc.desc: Test function of Copy file interface. -* @tc.size: MEDIUM -* @tc.type: FUNC -* @tc.level Level 1 -*/ -HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_009, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_009"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(info[0].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "测试1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri sourceUri(""); - result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "测试2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri targetUri(""); - result = g_fah->CreateFile(newDirUriTest2, "test.txt", targetUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string fileName("测试.txt"); - Uri newFile(""); - result = g_fah->CopyFile(sourceUri, newDirUriTest2, fileName, newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(newDirUriTest1.ToString().find("测试.txt"), std::string::npos); - result = g_fah->Delete(newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "external_file_access_Copy_file_009 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_009"; -} - -} // namespace diff --git a/test/unittest/external_file_access_test_basic.cpp b/test/unittest/external_file_access_test_basic.cpp new file mode 100644 index 00000000..242bacdb --- /dev/null +++ b/test/unittest/external_file_access_test_basic.cpp @@ -0,0 +1,1765 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include + +#include +#include + +#include "external_file_access_test_basic.h" +#include "accesstoken_kit.h" +#include "context_impl.h" +#include "file_access_framework_errno.h" +#include "file_info_shared_memory.h" +#include "iservice_registry.h" +#include "nativetoken_kit.h" +#include "token_setproc.h" + +#define private public +#include "file_access_helper.h" +#undef private + +namespace OHOS::FileAccessFwk { +static int g_num = 0; +shared_ptr g_fah = nullptr; +shared_ptr g_context = nullptr; + +void SetNativeToken() +{ + uint64_t tokenId; + const char **perms = new const char *[2]; + perms[0] = "ohos.permission.FILE_ACCESS_MANAGER"; + perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; + NativeTokenInfoParams infoInstance = { + .aplStr = "system_core", + .acls = nullptr, + .dcapsNum = 0, + .permsNum = 2, + .aclsNum = 0, + .dcaps = nullptr, + .perms = perms, + }; + + infoInstance.processName = "SetUpTestCase"; + tokenId = GetAccessTokenId(&infoInstance); + const uint64_t systemAppMask = (static_cast(1) << 32); + tokenId |= systemAppMask; + SetSelfTokenID(tokenId); + OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo(); + delete[] perms; +} + +void FileExtensionHelperTest::SetUpTestCase() +{ + cout << "FileExtensionHelperTest code test" << endl; + SetNativeToken(); + auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); + auto systemAbilityObj = saManager->GetSystemAbility(ABILITY_ID); + g_context = make_shared(); + g_context->SetToken(systemAbilityObj); + AAFwk::Want want; + vector wantVec; + setuid(UID_TRANSFORM_TMP); + int ret = FileAccessHelper::GetRegisteredFileAccessExtAbilityInfo(wantVec); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + bool isFound = false; + for (size_t i = 0; i < wantVec.size(); i++) { + auto element = wantVec[i].GetElement(); + if (element.GetBundleName() == "com.ohos.UserFile.ExternalFileManager" && + element.GetAbilityName() == "FileExtensionAbility") { + want = wantVec[i]; + isFound = true; + break; + } + } + EXPECT_TRUE(isFound); + vector wants{want}; + g_fah = FileAccessHelper::Creator(systemAbilityObj, wants); + if (g_fah == nullptr) { + GTEST_LOG_(ERROR) << "external_file_access_test g_fah is nullptr"; + exit(1); + } + setuid(UID_DEFAULT); +} +void FileExtensionHelperTest::TearDownTestCase() +{ + g_fah->Release(); + g_fah = nullptr; +} + +void FileExtensionHelperTest::SetUp() +{ +} + +void FileExtensionHelperTest::TearDown() +{ +} + +shared_ptr FileExtensionHelperTest::GetFileAccessHelper() +{ + return g_fah; +} + +/** + * @tc.number: user_file_service_external_file_access_OpenFile_0000 + * @tc.name: external_file_access_OpenFile_0000 + * @tc.desc: Test function of OpenFile interface for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0000, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + GTEST_LOG_(INFO) << parentUri.ToString(); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri(""); + result = g_fah->CreateFile(newDirUriTest1, "external_file_access_OpenFile_0000.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd; + result = g_fah->OpenFile(newFileUri, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0000 result:" << result; + close(fd); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_OpenFile_0001 + * @tc.name: external_file_access_OpenFile_0001 + * @tc.desc: Test function of OpenFile interface for ERROR which Uri is null. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0001, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0001"; + try { + Uri uri(""); + int fd; + int result = g_fah->OpenFile(uri, WRITE_READ, fd); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0001 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0001"; +} + +/** + * @tc.number: user_file_service_external_file_access_OpenFile_0002 + * @tc.name: external_file_access_OpenFile_0002 + * @tc.desc: Test function of OpenFile interface for ERROR which Uri is absolute path. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0002, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0002"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newFileUri(""); + result = g_fah->CreateFile(parentUri, "external_file_access_OpenFile_0002.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri uri("storage/media/100/local/files/Download/external_file_access_OpenFile_0002.txt"); + int fd; + result = g_fah->OpenFile(uri, WRITE_READ, fd); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0002 result:" << result; + result = g_fah->Delete(newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0002"; +} + +/** + * @tc.number: user_file_service_external_file_access_OpenFile_0003 + * @tc.name: external_file_access_OpenFile_0003 + * @tc.desc: Test function of OpenFile interface for ERROR which Uri is special symbols. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0003, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0003"; + try { + Uri uri("~!@#$%^&*()_"); + int fd; + int result = g_fah->OpenFile(uri, WRITE_READ, fd); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0003 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0003"; +} + +/** + * @tc.number: user_file_service_external_file_access_OpenFile_0004 + * @tc.name: external_file_access_OpenFile_0004 + * @tc.desc: Test function of OpenFile interface for ERROR which flag is -1. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0004, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0004"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newFileUri(""); + result = g_fah->CreateFile(parentUri, "external_file_access_OpenFile_0004.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd; + int flag = -1; + result = g_fah->OpenFile(newFileUri, flag, fd); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0004 result:" << result; + result = g_fah->Delete(newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0004"; +} + +/** + * @tc.number: user_file_service_external_file_access_OpenFile_0005 + * @tc.name: external_file_access_OpenFile_0005 + * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 0. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0005, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0005"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newFileUri(""); + result = g_fah->CreateFile(parentUri, "external_file_access_OpenFile_0005.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd; + result = g_fah->OpenFile(newFileUri, READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0005 result:" << result; + close(fd); + result = g_fah->Delete(newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0005"; +} + +/** + * @tc.number: user_file_service_external_file_access_OpenFile_0006 + * @tc.name: external_file_access_OpenFile_0006 + * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 1. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0006, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0006"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newFileUri(""); + result = g_fah->CreateFile(parentUri, "external_file_access_OpenFile_0006.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd; + result = g_fah->OpenFile(newFileUri, WRITE, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0006 result:" << result; + close(fd); + result = g_fah->Delete(newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0006"; +} + +/** + * @tc.number: user_file_service_external_file_access_OpenFile_0007 + * @tc.name: external_file_access_OpenFile_0007 + * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 2. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0007, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0007"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newFileUri(""); + result = g_fah->CreateFile(parentUri, "external_file_access_OpenFile_0007.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd; + result = g_fah->OpenFile(newFileUri, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0007 result:" << result; + close(fd); + result = g_fah->Delete(newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0007 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0007"; +} + +static void OpenFileTdd(shared_ptr fahs, Uri uri, int flag, int fd) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFileTdd"; + int ret = fahs->OpenFile(uri, flag, fd); + if (ret != OHOS::FileAccessFwk::ERR_OK) { + GTEST_LOG_(ERROR) << "OpenFile get result error, code:" << ret; + return; + } + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GE(fd, OHOS::FileAccessFwk::ERR_OK); + g_num++; + close(fd); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFileTdd"; +} + +/** + * @tc.number: user_file_service_external_file_access_OpenFile_0008 + * @tc.name: external_file_access_OpenFile_0008 + * @tc.desc: Test function of OpenFile interface for SUCCESS which Concurrent. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0008, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0008"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newFileUri(""); + int fd; + std::string displayName = "test1.txt"; + g_num = 0; + result = g_fah->CreateFile(parentUri, displayName, newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t j = 0; j < INIT_THREADS_NUMBER; j++) { + std::thread execthread(OpenFileTdd, g_fah, newFileUri, WRITE_READ, fd); + execthread.join(); + } + EXPECT_EQ(g_num, INIT_THREADS_NUMBER); + result = g_fah->Delete(newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0008 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0008"; +} + +bool FileExtensionHelperTest::ReplaceBundleNameFromPath(std::string &path, const std::string &newName) +{ + Uri uri(path); + std::string fileScheme = uri.GetScheme(); + if (fileScheme == FILE_SCHEME_NAME) { + std::string curName = uri.GetAuthority(); + if (curName.empty()) { + return false; + } + path.replace(path.find(curName), curName.length(), newName); + return true; + } + + std::string tPath = uri.GetPath(); + if (tPath.empty()) { + GTEST_LOG_(INFO) << "Uri path error."; + return false; + } + + if (tPath.front() != '/') { + GTEST_LOG_(INFO) << "Uri path format error."; + return false; + } + + auto index = tPath.substr(1).find_first_of("/"); + auto bundleName = tPath.substr(1, index); + if (bundleName.empty()) { + GTEST_LOG_(INFO) << "bundleName empty."; + return false; + } + + path.replace(path.find(bundleName), bundleName.length(), newName); + return true; +} + +/** + * @tc.number: user_file_service_external_file_access_OpenFile_0009 + * @tc.name: external_file_access_OpenFile_0009 + * @tc.desc: Test function of OpenFile interface for FAILED because of GetProxyByUri failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0009, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0009"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + std::string str = info[i].uri; + if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { + GTEST_LOG_(ERROR) << "fail to replace BundleName."; + EXPECT_TRUE(false); + } + int fd; + Uri newFileUri(str + "/NotExistFile.txt"); + result = g_fah->OpenFile(newFileUri, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); + GTEST_LOG_(INFO) << "OpenFile_0009 result:" << result; + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0009 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0009"; +} + +/** + * @tc.number: user_file_service_external_file_access_OpenFile_0010 + * @tc.name: external_file_access_OpenFile_0010 + * @tc.desc: Test function of OpenFile interface for SUCCESS, the file name is chinese. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I70SX9 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_OpenFile_0010, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_OpenFile_0010"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + GTEST_LOG_(INFO) << parentUri.ToString(); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "测试目录", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newDirUriTest1.ToString().find("测试目录"), std::string::npos); + Uri newFileUri(""); + result = g_fah->CreateFile(newDirUriTest1, "打开文件.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newFileUri.ToString().find("打开文件.txt"), std::string::npos); + int fd; + result = g_fah->OpenFile(newFileUri, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0010 result:" << result; + close(fd); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_OpenFile_0010 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_OpenFile_0010"; +} + +/** + * @tc.number: user_file_service_external_file_access_Delete_0000 + * @tc.name: external_file_access_Delete_0000 + * @tc.desc: Test function of Delete interface for SUCCESS which delete file. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0000, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test3", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri(""); + result = g_fah->CreateFile(newDirUriTest, "external_file_access_Delete_0000.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Delete_0000 result:" << result; + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Delete_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_Delete_0001 + * @tc.name: external_file_access_Delete_0001 + * @tc.desc: Test function of Delete interface for SUCCESS which delete folder. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0001, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0001"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test4", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Delete_0001 result:" << result; + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Delete_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0001"; +} + +/** + * @tc.number: user_file_service_external_file_access_Delete_0002 + * @tc.name: external_file_access_Delete_0002 + * @tc.desc: Test function of Delete interface for ERROR which selectFileUri is null. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0002, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0002"; + try { + Uri selectFileUri(""); + int result = g_fah->Delete(selectFileUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Delete_0002 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Delete_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0002"; +} + +/** + * @tc.number: user_file_service_external_file_access_Delete_0003 + * @tc.name: external_file_access_Delete_0003 + * @tc.desc: Test function of Delete interface for ERROR which selectFileUri is absolute path. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0003, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0003"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test5", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri selectFileUri("storage/media/100/local/files/Download/test5"); + result = g_fah->Delete(selectFileUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Delete_0003 result:" << result; + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Delete_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0003"; +} + +/** + * @tc.number: user_file_service_external_file_access_Delete_0004 + * @tc.name: external_file_access_Delete_0004 + * @tc.desc: Test function of Delete interface for ERROR which selectFileUri is special symbols. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0004, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0004"; + try { + Uri selectFileUri("!@#$%^&*()"); + int result = g_fah->Delete(selectFileUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Delete_0004 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Delete_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0004"; +} + +static void DeleteTdd(shared_ptr fahs, Uri selectFile) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_DeleteTdd"; + int ret = fahs->Delete(selectFile); + if (ret != OHOS::FileAccessFwk::ERR_OK) { + GTEST_LOG_(ERROR) << "DeleteTdd get result error, code:" << ret; + return; + } + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + g_num++; + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_DeleteTdd"; +} + +/** + * @tc.number: user_file_service_external_file_access_Delete_0005 + * @tc.name: external_file_access_Delete_0005 + * @tc.desc: Test function of Delete interface for SUCCESS which Concurrent. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0005, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0005"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test6", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri(""); + std::string displayName = "test1.txt"; + result = g_fah->CreateFile(newDirUriTest, displayName, newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + g_num = 0; + for (int j = 0; j < INIT_THREADS_NUMBER; j++) { + std::thread execthread(DeleteTdd, g_fah, newFileUri); + execthread.join(); + } + EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Delete_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0005"; +} + +/** + * @tc.number: user_file_service_external_file_access_Delete_0006 + * @tc.name: external_file_access_Delete_0006 + * @tc.desc: Test function of Delete interface for ERROR because of GetProxyByUri failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0006, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0006"; + try { + vector infos; + int result = g_fah->GetRoots(infos); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < infos.size(); i++) { + std::string str = infos[i].uri; + if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { + GTEST_LOG_(ERROR) << "replace BundleName failed."; + EXPECT_TRUE(false); + } + Uri selectFileUri(str); + int result = g_fah->Delete(selectFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); + GTEST_LOG_(INFO) << "Delete_0006 result:" << result; + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Delete_0006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0006"; +} + +/** + * @tc.number: user_file_service_external_file_access_Delete_0007 + * @tc.name: external_file_access_Delete_0007 + * @tc.desc: Test function of Delete interface for SUCCESS which delete file, the file name is chinese. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I70SX9 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Delete_0007, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Delete_0007"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "测试目录1", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newDirUriTest.ToString().find("测试目录1"), std::string::npos); + Uri newFileUri(""); + result = g_fah->CreateFile(newDirUriTest, "删除文件.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newFileUri.ToString().find("删除文件.txt"), std::string::npos); + result = g_fah->Delete(newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Delete_0007 result:" << result; + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Delete_0007 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Delete_0007"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0000 + * @tc.name: external_file_access_Move_0000 + * @tc.desc: Test function of Move interface for SUCCESS which move file. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0000, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test3", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test4", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri2(""); + result = g_fah->Move(testUri, newDirUriTest2, testUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0000 result:" << result; + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0001 + * @tc.name: external_file_access_Move_0001 + * @tc.desc: Test function of Move interface for SUCCESS which move folder. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0001, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0001"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test5", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test6", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri2(""); + result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0001 result:" << result; + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0001"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0002 + * @tc.name: external_file_access_Move_0002 + * @tc.desc: Test function of Move interface for ERROR which sourceFileUri is null. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0002, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0002"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + Uri sourceFileUri(""); + result = g_fah->Move(sourceFileUri, newDirUriTest, testUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0002 result:" << result; + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0002"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0003 + * @tc.name: external_file_access_Move_0003 + * @tc.desc: Test function of Move interface for ERROR which sourceFileUri is absolute path. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0003, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0003"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test7", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test8", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri2(""); + Uri sourceFileUri("storage/media/100/local/files/Download/test7/test.txt"); + result = g_fah->Move(sourceFileUri, newDirUriTest2, testUri2); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0003 result:" << result; + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0003"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0004 + * @tc.name: external_file_access_Move_0004 + * @tc.desc: Test function of Move interface for ERROR which sourceFileUri is special symbols. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0004, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0004"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test2", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + Uri sourceFileUri("~!@#$%^&*()_"); + result = g_fah->Move(sourceFileUri, newDirUriTest, testUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0004 result:" << result; + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0004"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0005 + * @tc.name: external_file_access_Move_0005 + * @tc.desc: Test function of Move interface for ERROR which targetParentUri is null. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0005, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0005"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "test1.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri2(""); + Uri targetParentUri(""); + result = g_fah->Move(testUri, targetParentUri, testUri2); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0005 result:" << result; + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0005"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0006 + * @tc.name: external_file_access_Move_0006 + * @tc.desc: Test function of Move interface for ERROR which targetParentUri is absolute path. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0006, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0006"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test9", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test10", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri2(""); + Uri targetParentUri("storage/media/100/local/files/Download/test10"); + result = g_fah->Move(testUri, targetParentUri, testUri2); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0006 result:" << result; + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0006"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0007 + * @tc.name: external_file_access_Move_0007 + * @tc.desc: Test function of Move interface for ERROR which targetParentUri is special symbols. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0007, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0007"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test11", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test12", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri2(""); + Uri targetParentUri("~!@#$^%&*()_"); + result = g_fah->Move(testUri, targetParentUri, testUri2); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0007 result:" << result; + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0007 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0007"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0008 + * @tc.name: external_file_access_Move_0008 + * @tc.desc: Test function of Move interface for SUCCESS which move empty folder. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0008, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0008"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test13", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test14", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0008 result:" << result; + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0008 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0008"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0009 + * @tc.name: external_file_access_Move_0009 + * @tc.desc: Test function of Move interface for SUCCESS which move more file in folder. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0009, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0009"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test15", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test16", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + size_t fileNumbers = 2000; + for (size_t j = 0; j < fileNumbers; j++) { + string fileName = "test" + ToString(j) + ".txt"; + result = g_fah->CreateFile(newDirUriTest1, fileName, testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + Uri testUri2(""); + result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0009 result:" << result; + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0009 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0009"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0010 + * @tc.name: external_file_access_Move_0010 + * @tc.desc: Test function of Move interface for SUCCESS which move Multilevel directory folder. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0010, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0010"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test17", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test18", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->Mkdir(newDirUriTest1, "test", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + size_t directoryNumbers = 64; + for (size_t j = 0; j < directoryNumbers; j++) { + result = g_fah->Mkdir(testUri, "test", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + Uri testUri2(""); + result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0010 result:" << result; + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0010 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0010"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0011 + * @tc.name: external_file_access_Move_0011 + * @tc.desc: Test function of Move interface for SUCCESS which move other equipment file. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0011, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0011"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t j = i + 1; j < info.size(); j++) { + Uri otherUri(info[j].uri); + result = g_fah->Mkdir(otherUri, "test2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Move(testUri, newDirUriTest2, testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Move(testUri, newDirUriTest1, testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0011 result:" << result; + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0011 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0011"; +} + +static void MoveTdd(shared_ptr fahs, Uri sourceFile, Uri targetParent, Uri newFile) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_MoveTdd"; + int ret = fahs->Move(sourceFile, targetParent, newFile); + if (ret != OHOS::FileAccessFwk::ERR_OK) { + GTEST_LOG_(ERROR) << "MoveTdd get result error, code:" << ret; + return; + } + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + g_num++; + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_MoveTdd"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0012 + * @tc.name: external_file_access_Move_0012 + * @tc.desc: Test function of Move interface for SUCCESS which Concurrent. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0012, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0012"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test19", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test20", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + std::string displayName = "test3.txt"; + result = g_fah->CreateFile(newDirUriTest1, displayName, testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri2(""); + g_num = 0; + for (int j = 0; j < INIT_THREADS_NUMBER; j++) { + std::thread execthread(MoveTdd, g_fah, testUri, newDirUriTest2, testUri2); + execthread.join(); + } + EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0012 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0012"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0013 + * @tc.name: external_file_access_Move_0013 + * @tc.desc: Test function of Move interface for FAILED because of GetProxyByUri failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0013, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0013"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->Mkdir(newDirUriTest1, "test", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::string str = newDirUriTest1.ToString(); + if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { + GTEST_LOG_(ERROR) << "replace BundleName failed."; + EXPECT_TRUE(false); + } + Uri uri(str); + Uri testUri2(""); + result = g_fah->Move(uri, newDirUriTest2, testUri2); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0013 result:" << result; + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0013 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0013"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0014 + * @tc.name: external_file_access_Move_0014 + * @tc.desc: Test function of Move interface for SUCCESS which move file, the file name is chinese. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I70SX9 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0014, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0014"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "测试目录1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newDirUriTest1.ToString().find("测试目录1"), std::string::npos); + result = g_fah->Mkdir(parentUri, "测试目录2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newDirUriTest2.ToString().find("测试目录2"), std::string::npos); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest1, "移动文件.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(testUri.ToString().find("移动文件.txt"), std::string::npos); + Uri testUri2(""); + result = g_fah->Move(testUri, newDirUriTest2, testUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0014 result:" << result; + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0014 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0014"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0015 + * @tc.name: external_file_access_Move_0015 + * @tc.desc: Test function of Move interface for SUCCESS which move Multilevel directory folder, + * the folder name is chinese. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I70SX9 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0015, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0015"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "移动目录", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newDirUriTest1.ToString().find("移动目录"), std::string::npos); + result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri2(""); + result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0015 result:" << result; + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0015 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0015"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_0016 + * @tc.name: external_file_access_Move_0016 + * @tc.desc: Test function of Move interface for SUCCESS which move Multilevel directory folder, + * the folder name is chinese. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I70SX9 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_0016, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_0016"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "移动目录", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri2(""); + result = g_fah->Move(newDirUriTest1, newDirUriTest2, testUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0016 result:" << result; + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_0016 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_0016"; +} + +/** + * @tc.number: user_file_service_external_file_access_creator_0000 + * @tc.name: external_file_access_creator_0000 + * @tc.desc: Test function of creator interface. + * @tc.desc: create file access helper for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0000, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0000"; + try { + setuid(UID_TRANSFORM_TMP); + std::pair, int> helper = FileAccessHelper::Creator(g_context); + setuid(UID_DEFAULT); + ASSERT_TRUE(helper.first != nullptr); + bool succ = helper.first->Release(); + EXPECT_TRUE(succ); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_creator_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_creator_0001 + * @tc.name: external_file_access_creator_0001 + * @tc.desc: Test function of creator interface. + * @tc.desc: create file access helper for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0001, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0001"; + try { + AAFwk::Want want; + vector wantVec; + setuid(UID_TRANSFORM_TMP); + int ret = FileAccessHelper::GetRegisteredFileAccessExtAbilityInfo(wantVec); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + bool isElementFound = false; + for (size_t i = 0; i < wantVec.size(); i++) { + auto element = wantVec[i].GetElement(); + if (element.GetBundleName() == "com.ohos.UserFile.ExternalFileManager" && + element.GetAbilityName() == "FileExtensionAbility") { + want = wantVec[i]; + isElementFound = true; + break; + } + } + EXPECT_TRUE(isElementFound); + vector wants{want}; + std::pair, int> helper = FileAccessHelper::Creator(g_context, wants); + setuid(UID_DEFAULT); + ASSERT_TRUE(helper.first != nullptr); + bool succ = helper.first->Release(); + EXPECT_TRUE(succ); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_creator_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0001"; +} + +/** + * @tc.number: user_file_service_external_file_access_creator_0002 + * @tc.name: external_file_access_creator_0002 + * @tc.desc: Test function of creator interface. + * @tc.desc: create file access helper for FAILED. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0002, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0002"; + try { + std::shared_ptr context = nullptr; + std::pair, int> helper = FileAccessHelper::Creator(context); + ASSERT_TRUE(helper.first == nullptr); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_creator_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0002"; +} + +/** + * @tc.number: user_file_service_external_file_access_creator_0003 + * @tc.name: external_file_access_creator_0003 + * @tc.desc: Test function of creator interface. + * @tc.desc: create file access helper for FAILED. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0003, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0003"; + try { + std::vector wants; + std::shared_ptr context = nullptr; + std::pair, int> helper = FileAccessHelper::Creator(context, wants); + ASSERT_TRUE(helper.first == nullptr); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_creator_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0003"; +} + +/** + * @tc.number: user_file_service_external_file_access_creator_0004 + * @tc.name: external_file_access_creator_0004 + * @tc.desc: Test function of creator interface. + * @tc.desc: create file access helper for FAILED. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0004, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0004"; + try { + std::vector wants; + std::pair, int> helper = FileAccessHelper::Creator(g_context, wants); + ASSERT_TRUE(helper.first == nullptr); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_creator_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0004"; +} + +/** + * @tc.number: user_file_service_external_file_access_creator_0005 + * @tc.name: external_file_access_creator_0005 + * @tc.desc: Test function of creator interface. + * @tc.desc: create file access helper for FAILED. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0005, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0005"; + try { + AAFwk::Want want; + want.SetElementName("NotExistBundleName", "NotExistAbilityName"); + std::vector wants{want}; + std::pair, int> helper = FileAccessHelper::Creator(g_context, wants); + ASSERT_TRUE(helper.first == nullptr); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_creator_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0005"; +} + +/** + * @tc.number: user_file_service_external_file_access_creator_0006 + * @tc.name: external_file_access_creator_0006 + * @tc.desc: Test function of creator interface. + * @tc.desc: create file access helper for FAILED. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0006, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0006"; + try { + std::vector wants; + std::shared_ptr context = nullptr; + std::pair, int> helper = FileAccessHelper::Creator(context, wants); + ASSERT_TRUE(helper.first == nullptr); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_creator_0006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0006"; +} + +/** + * @tc.number: user_file_service_external_file_access_creator_0007 + * @tc.name: external_file_access_creator_0007 + * @tc.desc: Test function of creator interface. + * @tc.desc: create file access helper for FAILED. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0007, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0007"; + try { + std::vector wants; + shared_ptr helper = FileAccessHelper::Creator(g_context->GetToken(), wants); + ASSERT_TRUE(helper == nullptr); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_creator_0007 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0007"; +} + +/** + * @tc.number: user_file_service_external_file_access_creator_0008 + * @tc.name: external_file_access_creator_0008 + * @tc.desc: Test function of creator interface. + * @tc.desc: create file access helper for FAILED. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_creator_0008, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_creator_0008"; + try { + AAFwk::Want want; + want.SetElementName("NotExistBundleName", "NotExistAbilityName"); + std::vector wants{want}; + shared_ptr helper = FileAccessHelper::Creator(g_context->GetToken(), wants); + ASSERT_TRUE(helper == nullptr); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_creator_0008 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0008"; +} +} diff --git a/test/unittest/external_file_access_test_basic.h b/test/unittest/external_file_access_test_basic.h new file mode 100644 index 00000000..f85d5cbd --- /dev/null +++ b/test/unittest/external_file_access_test_basic.h @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef OHOS_EXTERNAL_FILE_ACCESS_TEST_BASIC_H +#define OHOS_EXTERNAL_FILE_ACCESS_TEST_BASIC_H + +#include + +#define private public +#include "file_access_helper.h" +#undef private + +namespace OHOS { +namespace FileAccessFwk { +using namespace std; + +const int ABILITY_ID = 5003; +const int INIT_THREADS_NUMBER = 4; +const int ACTUAL_SUCCESS_THREADS_NUMBER = 1; +const int UID_TRANSFORM_TMP = 20000000; +const int SLEEP_TIME = 2; +const int UID_DEFAULT = 0; +const int FILE_COUNT_1 = 1; +const int FILE_COUNT_2 = 2; +const int FILE_COUNT_3 = 3; +const int FILE_COUNT_4 = 4; +const int FILE_COUNT_5 = 5; +const int FILE_COUNT_6 = 6; + +class FileExtensionHelperTest : public testing::Test { +public: + static void SetUpTestCase(); + static void TearDownTestCase(); + void SetUp() override; + void TearDown() override; + static bool ReplaceBundleNameFromPath(std::string &path, const std::string &newName); + static shared_ptr GetFileAccessHelper(); +}; +} // namespace FileAccessFwk +} // namespace OHOS + +#endif // OHOS_EXTERNAL_FILE_ACCESS_TEST_H diff --git a/test/unittest/external_file_access_test_info.cpp b/test/unittest/external_file_access_test_info.cpp new file mode 100644 index 00000000..4265a88a --- /dev/null +++ b/test/unittest/external_file_access_test_info.cpp @@ -0,0 +1,1952 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include + +#include +#include + +#include "external_file_access_test_basic.h" +#include "accesstoken_kit.h" +#include "context_impl.h" +#include "file_access_framework_errno.h" +#include "file_info_shared_memory.h" +#include "iservice_registry.h" +#include "nativetoken_kit.h" +#include "token_setproc.h" + +#define private public +#include "file_access_helper.h" +#undef private + +namespace OHOS::FileAccessFwk { +using json = nlohmann::json; +static int g_num = 0; + +/** + * @tc.number: user_file_service_external_file_access_GetRoots_0000 + * @tc.name: external_file_access_GetRoots_0000 + * @tc.desc: Test function of GetRoots interface for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_GetRoots_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetRoots_0000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GT(info.size(), OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "GetRoots_0000 result:" << info.size() << endl; + for (size_t i = 0; i < info.size(); i++) { + GTEST_LOG_(INFO) << info[i].uri; + GTEST_LOG_(INFO) << info[i].displayName; + GTEST_LOG_(INFO) << info[i].deviceFlags; + GTEST_LOG_(INFO) << info[i].deviceType; + GTEST_LOG_(INFO) << info[i].relativePath; + } + EXPECT_GE(info.size(), 2); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_GetRoots_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetRoots_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_Access_0000 + * @tc.name: external_file_access_Access_0000 + * @tc.desc: Test function of Access interface for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Access_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Access_0000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + GTEST_LOG_(INFO) << parentUri.ToString(); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri(""); + result = g_fah->CreateFile(newDirUriTest, "external_file_access_Access_0000.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + bool isFileExist = false; + result = g_fah->Access(newDirUriTest, isFileExist); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_TRUE(isFileExist); + result = g_fah->Access(newFileUri, isFileExist); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_TRUE(isFileExist); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Access(newDirUriTest, isFileExist); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_FALSE(isFileExist); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Access_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Access_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_Access_0001 + * @tc.name: external_file_access_Access_0001 + * @tc.desc: Test function of Access interface FAILED because of GetProxyByUri failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Access_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Access_0001"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + std::string str = info[i].uri; + if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { + GTEST_LOG_(ERROR) << "Error in replacing BundleName."; + EXPECT_TRUE(false); + } + Uri newDirUriTest(str + "/test.txt"); + bool isExist = false; + result = g_fah->Access(newDirUriTest, isExist); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); + EXPECT_FALSE(isExist); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Access_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Access_0001"; +} + +/** + * @tc.number: user_file_service_external_file_access_Access_0002 + * @tc.name: external_file_access_Access_0002 + * @tc.desc: Test function of Access interface for SUCCESS, the file and folder name is chinese. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I70SX9 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Access_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Access_0002"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + GTEST_LOG_(INFO) << parentUri.ToString(); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "访问目录", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newDirUriTest.ToString().find("访问目录"), std::string::npos); + Uri newFileUri(""); + result = g_fah->CreateFile(newDirUriTest, "访问文件.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newFileUri.ToString().find("访问文件.txt"), std::string::npos); + bool isExist = false; + result = g_fah->Access(newDirUriTest, isExist); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_TRUE(isExist); + result = g_fah->Access(newFileUri, isExist); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_TRUE(isExist); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Access(newDirUriTest, isExist); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_FALSE(isExist); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Access_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Access_0002"; +} + +/** + * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0000 + * @tc.name: external_file_access_GetFileInfoFromUri_0000 + * @tc.desc: Test function of GetFileInfoFromUri interface. + * @tc.desc: convert the root directory uri to fileinfo and call listfile for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + SharedMemoryInfo memInfo; + result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", + DEFAULT_CAPACITY_200KB, memInfo); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + FileInfo fileinfo; + result = g_fah->GetFileInfoFromUri(parentUri, fileinfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + int64_t offset = 0; + FileFilter filter; + result = g_fah->ListFile(fileinfo, offset, filter, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GE(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); + } + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0001 + * @tc.name: external_file_access_GetFileInfoFromUri_0001 + * @tc.desc: Test function of GetFileInfoFromUri interface. + * @tc.desc: convert the general directory uri to fileinfo and call listfile for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0001"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + SharedMemoryInfo sharedMemoryInfo; + result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, + sharedMemoryInfo); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "testDir", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + FileInfo dirInfo; + result = g_fah->GetFileInfoFromUri(newDirUriTest, dirInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + int64_t offset = 0; + FileFilter filter; + result = g_fah->ListFile(dirInfo, offset, filter, sharedMemoryInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GE(sharedMemoryInfo.Size(), OHOS::FileAccessFwk::ERR_OK); + + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(sharedMemoryInfo); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0001"; +} + +/** + * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0002 + * @tc.name: external_file_access_GetFileInfoFromUri_0002 + * @tc.desc: Test function of GetFileInfoFromUri interface. + * @tc.desc: convert the general filepath uri to fileinfo and call listfile for ERROR. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0002"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + SharedMemoryInfo memoryInfo; + result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, + memoryInfo); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "testDir", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri(""); + result = g_fah->CreateFile(newDirUriTest, "external_file_access_GetFileInfoFromUri_0002.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + FileInfo fileinfo; + result = g_fah->GetFileInfoFromUri(newFileUri, fileinfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + int64_t offset = 0; + FileFilter filter; + result = g_fah->ListFile(fileinfo, offset, filter, memoryInfo); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memoryInfo.Size(), OHOS::FileAccessFwk::ERR_OK); + + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memoryInfo); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0002"; +} + +/** + * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0003 + * @tc.name: external_file_access_GetFileInfoFromUri_0003 + * @tc.desc: Test function of GetFileInfoFromUri interface. + * @tc.desc: convert the root directory uri to fileinfo for CheckUri failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0003"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(std::string("\?\?\?\?/") + info[i].uri); + FileInfo fileInfo; + result = g_fah->GetFileInfoFromUri(parentUri, fileInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_URIS); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0003"; +} + +/** + * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0004 + * @tc.name: external_file_access_GetFileInfoFromUri_0004 + * @tc.desc: Test function of GetFileInfoFromUri interface. + * @tc.desc: convert the root directory uri to fileinfo failed because of GetProxyByUri failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0004"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + std::string str = info[i].uri; + if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { + GTEST_LOG_(ERROR) << "BundleName replacement failed."; + EXPECT_TRUE(false); + } + Uri parentUri(str); + FileInfo fileinfo; + result = g_fah->GetFileInfoFromUri(parentUri, fileinfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0004"; +} + +/** + * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0005 + * @tc.name: external_file_access_GetFileInfoFromUri_0005 + * @tc.desc: Test function of GetFileInfoFromUri interface. + * @tc.desc: convert the invalid uri to fileinfo failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0005"; + try { + Uri uri("~!@#$%^&*()_"); + FileInfo info; + int result = g_fah->GetFileInfoFromUri(uri, info); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + + uri = Uri("/"); + result = g_fah->GetFileInfoFromUri(uri, info); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + + uri = Uri(""); + result = g_fah->GetFileInfoFromUri(uri, info); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0005"; +} + +/** + * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0006 + * @tc.name: external_file_access_GetFileInfoFromUri_0006 + * @tc.desc: Test function of GetFileInfoFromUri interface. + * @tc.desc: convert the general directory uri to fileinfo and call listfile for SUCCESS, the folder name is chinese. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I70SX9 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0006, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0006"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + SharedMemoryInfo sharedMemInfo; + result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, + sharedMemInfo); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "测试目录", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newDirUriTest.ToString().find("测试目录"), std::string::npos); + + FileInfo dirInfo; + result = g_fah->GetFileInfoFromUri(newDirUriTest, dirInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + int64_t offset = 0; + FileFilter filter; + result = g_fah->ListFile(dirInfo, offset, filter, sharedMemInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GE(sharedMemInfo.Size(), OHOS::FileAccessFwk::ERR_OK); + + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(sharedMemInfo); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0006"; +} + +/** + * @tc.number: user_file_service_external_file_access_GetFileInfoFromUri_0007 + * @tc.name: external_file_access_GetFileInfoFromUri_0007 + * @tc.desc: Test function of GetFileInfoFromUri interface. + * @tc.desc: convert the general filepath uri to fileinfo and call listfile for ERROR, the file name is chinese. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I70SX9 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_GetFileInfoFromUri_0007, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetFileInfoFromUri_0007"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + SharedMemoryInfo memInfo; + result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, + memInfo); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "测试目录1", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newDirUriTest.ToString().find("测试目录1"), std::string::npos); + Uri newFileUri(""); + result = g_fah->CreateFile(newDirUriTest, "测试文件1.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newFileUri.ToString().find("测试文件1.txt"), std::string::npos); + + FileInfo fileinfo; + result = g_fah->GetFileInfoFromUri(newFileUri, fileinfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + int64_t offset = 0; + FileFilter filter; + std::vector fileInfoVecTemp; + result = g_fah->ListFile(fileinfo, offset, filter, memInfo); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); + + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_GetFileInfoFromUri_0007 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetFileInfoFromUri_0007"; +} + +/** + * @tc.number: user_file_service_external_file_access_Mkdir_0000 + * @tc.name: external_file_access_Mkdir_0000 + * @tc.desc: Test function of Mkdir interface for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "external_file_access_Mkdir_0000", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Mkdir_0000 result:" << result; + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_Mkdir_0001 + * @tc.name: external_file_access_Mkdir_0001 + * @tc.desc: Test function of Mkdir interface for ERROR which parentUri is null. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0001"; + try { + Uri newDirUriTest(""); + Uri parentUri(""); + int result = g_fah->Mkdir(parentUri, "external_file_access_Mkdir_0001", newDirUriTest); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Mkdir_0001 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0001"; +} + +/** + * @tc.number: user_file_service_external_file_access_Mkdir_0002 + * @tc.name: external_file_access_Mkdir_0002 + * @tc.desc: Test function of Mkdir interface for ERROR which parentUri is absolute path. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0002"; + try { + Uri newDirUriTest(""); + Uri parentUri("storage/media/100/local/files/Download"); + int result = g_fah->Mkdir(parentUri, "external_file_access_Mkdir_0002", newDirUriTest); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Mkdir_0002 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0002"; +} + +/** + * @tc.number: user_file_service_external_file_access_Mkdir_0003 + * @tc.name: external_file_access_Mkdir_0003 + * @tc.desc: Test function of Mkdir interface for ERROR which parentUri is special symbols. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0002"; + try { + Uri newDirUriTest(""); + Uri parentUri("~!@#$%^&*()_"); + int result = g_fah->Mkdir(parentUri, "external_file_access_Mkdir_0003", newDirUriTest); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Mkdir_0003 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0003"; +} + +/** + * @tc.number: user_file_service_external_file_access_Mkdir_0004 + * @tc.name: external_file_access_Mkdir_0004 + * @tc.desc: Test function of Mkdir interface for ERROR which displayName is null. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0004"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + string displayName = ""; + result = g_fah->Mkdir(parentUri, displayName, newDirUriTest); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Mkdir_0004 result:" << result; + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0004"; +} + +static void MkdirTdd(shared_ptr fahs, Uri uri, std::string displayName, Uri newFile) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_MkdirTdd"; + int ret = fahs->Mkdir(uri, displayName, newFile); + if (ret != OHOS::FileAccessFwk::ERR_OK) { + GTEST_LOG_(ERROR) << "MkdirTdd get result error, code:" << ret; + return; + } + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + EXPECT_NE(newFile.ToString(), ""); + g_num++; + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_MkdirTdd"; +} + +/** + * @tc.number: user_file_service_external_file_access_Mkdir_0005 + * @tc.name: external_file_access_Mkdir_0005 + * @tc.desc: Test function of Mkdir interface for SUCCESS which Concurrent. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0005"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + std::string displayName = "test1"; + g_num = 0; + for (int j = 0; j < INIT_THREADS_NUMBER; j++) { + std::thread execthread(MkdirTdd, g_fah, parentUri, displayName, newDirUriTest); + execthread.join(); + } + EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); + Uri newDelete(info[i].uri + "/" + displayName); + result = g_fah->Delete(newDelete); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0005"; +} + +/** + * @tc.number: user_file_service_external_file_access_Mkdir_0006 + * @tc.name: external_file_access_Mkdir_0006 + * @tc.desc: Test function of Mkdir interface for ERROR because of GetProxyByUri failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0006, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0006"; + try { + vector rootInfos; + int result = g_fah->GetRoots(rootInfos); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < rootInfos.size(); i++) { + std::string str = rootInfos[i].uri; + if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { + GTEST_LOG_(ERROR) << "replace BundleName failed."; + EXPECT_TRUE(false); + } + Uri parentUri(str); + Uri newDirUriTest(""); + string displayName = ""; + result = g_fah->Mkdir(parentUri, displayName, newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); + GTEST_LOG_(INFO) << "Mkdir_0006 result:" << result; + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0006"; +} + +/** + * @tc.number: user_file_service_external_file_access_Mkdir_0007 + * @tc.name: external_file_access_Mkdir_0007 + * @tc.desc: Test function of Mkdir interface for SUCCESS,the folder name is chinese. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I70SX9 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0007, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0007"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "新建目录", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newDirUriTest.ToString().find("新建目录"), std::string::npos); + GTEST_LOG_(INFO) << "Mkdir_0007 result:" << result; + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0007 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0007"; +} + +/** + * @tc.number: user_file_service_external_file_access_Mkdir_0008 + * @tc.name: external_file_access_Mkdir_0008 + * @tc.desc: Test function of Mkdir interface for FAIL,the folder name is Documents. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I7MQMD + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Mkdir_0008, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Mkdir_0008"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GE(info.size(), 2); + Uri parentUri(info[0].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "Documents", newDirUriTest); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "Download", newDirUriTest); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "Desktop", newDirUriTest); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Mkdir_0008 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Mkdir_0008"; +} + +/** + * @tc.number: user_file_service_external_file_access_GetConnectInfo_0000 + * @tc.name: external_file_access_GetConnectInfo_0000 + * @tc.desc: Test function of GetConnectInfo interface. + * @tc.desc: helper invoke GetConnectInfo for FAILED. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_GetConnectInfo_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetConnectInfo_0000"; + try { + std::shared_ptr connectInfo = g_fah->GetConnectInfo("NotExistBundleName"); + ASSERT_TRUE(connectInfo == nullptr); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_GetConnectInfo_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetConnectInfo_0000"; +} + + +/** + * @tc.number: user_file_service_external_file_access_GetProxyByUri_0000 + * @tc.name: external_file_access_GetProxyByUri_0000 + * @tc.desc: Test function of GetProxyByUri interface. + * @tc.desc: helper invoke GetProxyByUri for FAILED. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_GetProxyByUri_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetProxyByUri_0000"; + try { + Uri uri(""); + sptr proxy = g_fah->GetProxyByUri(uri); + ASSERT_TRUE(proxy == nullptr); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_GetProxyByUri_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetProxyByUri_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_GetProxyByUri_0001 + * @tc.name: external_file_access_GetProxyByUri_0001 + * @tc.desc: Test function of GetProxyByUri interface. + * @tc.desc: helper invoke GetProxyByUri for FAILED. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_GetProxyByUri_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetProxyByUri_0001"; + try { + Uri uri("file://com.ohos.UserFile.NotExistBundleName/data/storage/el1/bundle/storage_daemon"); + sptr proxy = g_fah->GetProxyByUri(uri); + ASSERT_TRUE(proxy == nullptr); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_GetProxyByUri_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetProxyByUri_0001"; +} + +static void CheckJson(Uri& newDirUriTest, const std::string displayName, const std::string relativePath, + int len, shared_ptr g_fah) +{ + json testJson = { + {RELATIVE_PATH, " "}, + {DISPLAY_NAME, " "}, + {FILE_SIZE, " "}, + {DATE_MODIFIED, " "}, + {DATE_ADDED, " "}, + {HEIGHT, " "}, + {WIDTH, " "}, + {DURATION, " "} + }; + auto testJsonString = testJson.dump(); + int result = g_fah->Query(newDirUriTest, testJsonString); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + auto jsonObject = json::parse(testJsonString); + EXPECT_EQ(jsonObject.at(DISPLAY_NAME), displayName); + EXPECT_EQ(jsonObject.at(FILE_SIZE), len); + EXPECT_EQ(jsonObject.at(RELATIVE_PATH), relativePath); + ASSERT_TRUE(jsonObject.at(DATE_MODIFIED) > 0); + ASSERT_TRUE(jsonObject.at(DATE_ADDED) > 0); + GTEST_LOG_(INFO) << " result" << testJsonString; +} + +/** + * @tc.number: user_file_service_external_file_access_Query_0000 + * @tc.name: external_file_access_Query_0000 + * @tc.desc: Test function of Query directory for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6S4VV + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + GTEST_LOG_(INFO) << parentUri.ToString(); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + std::string displayName = "QueryTest1"; + std::string relativePath = "/storage/Users/currentUser/QueryTest1"; + result = g_fah->Mkdir(parentUri, "QueryTest1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(newDirUriTest1, "QueryTest2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri1(""); + Uri newFileUri2(""); + std::string fileName = "external_file_access_Query_00001.txt"; + result = g_fah->CreateFile(newDirUriTest1, fileName, newFileUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->CreateFile(newDirUriTest2, fileName, newFileUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd = -1; + std::string buff = "Query test"; + result = g_fah->OpenFile(newFileUri1, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + ssize_t size = write(fd, buff.c_str(), buff.size()); + close(fd); + EXPECT_EQ(size, buff.size()); + result = g_fah->OpenFile(newFileUri2, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + size = write(fd, buff.c_str(), buff.size()); + close(fd); + EXPECT_EQ(size, buff.size()); + int len = buff.size() + buff.size(); + CheckJson(newDirUriTest1, displayName, relativePath, len, g_fah); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Query_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_Query_0001 + * @tc.name: external_file_access_Query_0001 + * @tc.desc: Test function of Query file for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6S4VV + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0001"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + GTEST_LOG_(INFO) << parentUri.ToString(); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "QueryTest3", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri(""); + std::string displayName = "external_file_access_Query_0001.txt"; + std::string relativePath = "/storage/Users/currentUser/QueryTest3/external_file_access_Query_0001.txt"; + result = g_fah->CreateFile(newDirUriTest, displayName, newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd = -1; + result = g_fah->OpenFile(newFileUri, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::string buff = "query test"; + ssize_t fileSize = write(fd, buff.c_str(), buff.size()); + close(fd); + EXPECT_EQ(fileSize, buff.size()); + CheckJson(newFileUri, displayName, relativePath, buff.size(), g_fah); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Query_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0001"; +} + +/** + * @tc.number: user_file_service_external_file_access_Query_0002 + * @tc.name: external_file_access_Query_0002 + * @tc.desc: Test function of Query directory for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6S4VV + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0002"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + GTEST_LOG_(INFO) << parentUri.ToString(); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "QueryTest4", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(newDirUriTest1, "QueryTest5", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri1(""); + Uri newFileUri2(""); + std::string fileName = "external_file_access_Query_00002.txt"; + result = g_fah->CreateFile(newDirUriTest1, fileName, newFileUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->CreateFile(newDirUriTest2, fileName, newFileUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd = -1; + std::string buff = "query test"; + result = g_fah->OpenFile(newFileUri1, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + ssize_t sizeOfBuffer = write(fd, buff.c_str(), buff.size()); + close(fd); + EXPECT_EQ(sizeOfBuffer, buff.size()); + result = g_fah->OpenFile(newFileUri2, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + sizeOfBuffer = write(fd, buff.c_str(), buff.size()); + close(fd); + EXPECT_EQ(sizeOfBuffer, buff.size()); + json testJson = { + {FILE_SIZE, " "} + }; + auto testJsonString = testJson.dump(); + result = g_fah->Query(newDirUriTest1, testJsonString); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + auto jsonObject = json::parse(testJsonString); + EXPECT_EQ(jsonObject.at(FILE_SIZE), buff.size() * 2); + GTEST_LOG_(INFO) << " result" << testJsonString; + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Query_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0002"; +} + +/** + * @tc.number: user_file_service_external_file_access_Query_0003 + * @tc.name: external_file_access_Query_0003 + * @tc.desc: Test function of Query interface for which is unreadable code. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6S4VV + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0003"; + try { + Uri testUri("&*()*/?"); + json testJson = { + {RELATIVE_PATH, " "}, + {DISPLAY_NAME, " "} + }; + auto testJsonString = testJson.dump(); + int result = g_fah->Query(testUri, testJsonString); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << " result" << testJsonString; + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Query_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0003"; +} + +/** + * @tc.number: user_file_service_external_file_access_Query_0004 + * @tc.name: external_file_access_Query_0004 + * @tc.desc: Test function of Query interface for which all column nonexistence. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6S4VV + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0004"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + GTEST_LOG_(INFO) << parentUri.ToString(); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "QueryTest6", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + json testJson = { + {"001", " "}, + {"#", " "}, + {"test", " "}, + {"target", " "} + }; + auto testJsonString = testJson.dump(); + result = g_fah->Query(newDirUriTest, testJsonString); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << " result" << testJsonString; + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Query_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0004"; +} + +/** + * @tc.number: user_file_service_external_file_access_Query_0005 + * @tc.name: external_file_access_Query_0005 + * @tc.desc: Test function of Query interface for which part of column nonexistence. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6S4VV + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0005"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + GTEST_LOG_(INFO) << parentUri.ToString(); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "QueryTest7", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + json testJson = { + {RELATIVE_PATH, " "}, + {DISPLAY_NAME, " "}, + {"test", " "} + }; + auto testJsonString = testJson.dump(); + result = g_fah->Query(newDirUriTest, testJsonString); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << " result" << testJsonString; + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Query_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0005"; +} + +/** + * @tc.number: user_file_service_external_file_access_Query_0006 + * @tc.name: external_file_access_Query_0006 + * @tc.desc: Test function of Query interface for which column is null. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6S4VV + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0006, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0006"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + GTEST_LOG_(INFO) << parentUri.ToString(); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "QueryTest8", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + json testJson; + auto testJsonString = testJson.dump(); + result = g_fah->Query(newDirUriTest, testJsonString); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << " result" << testJsonString; + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Query_0006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0006"; +} + +/** + * @tc.number: user_file_service_external_file_access_Query_0007 + * @tc.name: external_file_access_Query_0007 + * @tc.desc: Test function of Query directory for SUCCESS, the folder and file name is chinese. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I70SX9 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Query_0007, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Query_0007"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + GTEST_LOG_(INFO) << parentUri.ToString(); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + std::string displayName = "查询目录1"; + std::string relativePath = "/storage/Users/currentUser/查询目录1"; + result = g_fah->Mkdir(parentUri, displayName, newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newDirUriTest1.ToString().find(displayName), std::string::npos); + result = g_fah->Mkdir(newDirUriTest1, "查询目录2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newDirUriTest2.ToString().find("查询目录2"), std::string::npos); + Uri newFileUri1(""); + Uri newFileUri2(""); + std::string fileName = "查询文件.txt"; + result = g_fah->CreateFile(newDirUriTest1, fileName, newFileUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newFileUri1.ToString().find(fileName), std::string::npos); + result = g_fah->CreateFile(newDirUriTest2, fileName, newFileUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newFileUri2.ToString().find(fileName), std::string::npos); + int fd = -1; + std::string buff = "query test"; + result = g_fah->OpenFile(newFileUri1, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + ssize_t fileSize = write(fd, buff.c_str(), buff.size()); + close(fd); + EXPECT_EQ(fileSize, buff.size()); + result = g_fah->OpenFile(newFileUri2, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + fileSize = write(fd, buff.c_str(), buff.size()); + close(fd); + EXPECT_EQ(fileSize, buff.size()); + int len = buff.size() + buff.size(); + CheckJson(newDirUriTest1, displayName, relativePath, len, g_fah); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Query_0007 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Query_0007"; +} + +/** + * @tc.number: user_file_service_external_file_access_GetBundleNameFromPath_0000 + * @tc.name: external_file_access_GetBundleNameFromPath_0000 + * @tc.desc: Test function of GetBundleNameFromPath interface for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_GetBundleNameFromPath_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_GetBundleNameFromPath_0000"; + try { + Uri uri("file://media/some/path"); + auto result = g_fah->GetProxyByUri(uri); + EXPECT_EQ(result, nullptr); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_GetBundleNameFromPath_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_GetBundleNameFromPath_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_Move_item_0000 + * @tc.name: external_file_access_Move_item_0000 + * @tc.desc: Test function of Move item interface. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test3", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test4", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::vector moveResult; + result = g_fah->MoveItem(testUri, newDirUriTest2, moveResult, false); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_item_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0000"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_item_0001 +* @tc.name: external_file_access_Move_item_0001 +* @tc.desc: Test function of Move item interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0001"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test5", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test6", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri(""); + result = g_fah->CreateFile(newDirUriTest2, "test.txt", targetUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::vector moveResult; + result = g_fah->MoveItem(sourceUri, newDirUriTest2, moveResult, false); + EXPECT_EQ(result, -2); + EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_EXIST); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_item_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0001"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_item_0002 +* @tc.name: external_file_access_Move_item_0002 +* @tc.desc: Test function of Move item interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0002"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test7", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test8", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri(""); + result = g_fah->CreateFile(newDirUriTest2, "test.txt", targetUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::vector moveResult; + result = g_fah->MoveItem(sourceUri, newDirUriTest2, moveResult, true); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_item_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0002"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_item_0003 +* @tc.name: external_file_access_Move_item_0003 +* @tc.desc: Test function of Move item interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0003"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test9", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test10", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri(""); + result = g_fah->CreateFile(newDirUriTest2, "test.txt", targetUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::vector moveResult; + result = g_fah->MoveItem(newDirUriTest1, newDirUriTest2, moveResult, false); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0000 result:" << result; + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_item_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0003"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_item_0004 +* @tc.name: external_file_access_Move_item_0004 +* @tc.desc: Test function of Move item interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0004"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + Uri newDirUriTest3(""); + result = g_fah->Mkdir(parentUri, "test3", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test4", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(newDirUriTest2, "test3", newDirUriTest3); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri(""); + result = g_fah->CreateFile(newDirUriTest3, "test.txt", targetUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::vector moveResult; + result = g_fah->MoveItem(newDirUriTest1, newDirUriTest2, moveResult, false); + EXPECT_EQ(result, -2); + EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_EXIST); + GTEST_LOG_(INFO) << "Move_0000 result:" << result; + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_item_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0004"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_item_0005 +* @tc.name: external_file_access_Move_item_0005 +* @tc.desc: Test function of Move item interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0005"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + Uri newDirUriTest2(""); + Uri newDirUriTest3(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(newDirUriTest2, "test1", newDirUriTest3); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri(""); + result = g_fah->CreateFile(newDirUriTest3, "test.txt", targetUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::vector moveResult; + result = g_fah->MoveItem(newDirUriTest1, newDirUriTest2, moveResult, true); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Move_0000 result:" << result; + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_item_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0005"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_item_0006 +* @tc.name: external_file_access_Move_item_0006 +* @tc.desc: Test function of Move item interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0006, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0006"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(newDirUriTest1, "test2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri1(""); + result = g_fah->CreateFile(newDirUriTest2, "test.txt", sourceUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri2(""); + result = g_fah->CreateFile(newDirUriTest2, "test1.txt", sourceUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest3(""); + result = g_fah->Mkdir(parentUri, "test3", newDirUriTest3); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest4(""); + result = g_fah->Mkdir(newDirUriTest3, "test1", newDirUriTest4); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest5(""); + result = g_fah->Mkdir(newDirUriTest4, "test2", newDirUriTest5); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri1(""); + result = g_fah->CreateFile(newDirUriTest5, "test.txt", targetUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::vector moveResult; + result = g_fah->MoveItem(newDirUriTest1, newDirUriTest3, moveResult, false); + EXPECT_EQ(result, -2); + EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_EXIST); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest3); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_item_0006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0006"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_item_0007 +* @tc.name: external_file_access_Move_item_0007 +* @tc.desc: Test function of Move item interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0007, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0007"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test3", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(newDirUriTest1, "test4", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri1(""); + result = g_fah->CreateFile(newDirUriTest2, "test.txt", sourceUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri2(""); + result = g_fah->CreateFile(newDirUriTest2, "test3.txt", sourceUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest3(""); + result = g_fah->Mkdir(parentUri, "test5", newDirUriTest3); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest4(""); + result = g_fah->Mkdir(newDirUriTest3, "test3", newDirUriTest4); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest5(""); + result = g_fah->Mkdir(newDirUriTest4, "test4", newDirUriTest5); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri1(""); + result = g_fah->CreateFile(newDirUriTest5, "test.txt", targetUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::vector moveResult; + result = g_fah->MoveItem(newDirUriTest1, newDirUriTest3, moveResult, true); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(moveResult.size(), 0); + result = g_fah->Delete(newDirUriTest3); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_item_0007 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0007"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_item_0008 +* @tc.name: external_file_access_Move_item_0008 +* @tc.desc: Test function of Move item interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0008, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0008"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test3", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest3(""); + result = g_fah->Mkdir(newDirUriTest2, "test", newDirUriTest3); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::vector moveResult; + result = g_fah->MoveItem(sourceUri, newDirUriTest2, moveResult, true); + EXPECT_EQ(result, -2); + EXPECT_EQ(moveResult.size(), 1); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_item_0008 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0008"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_item_0009 +* @tc.name: external_file_access_Move_item_0009 +* @tc.desc: Test function of Move item interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0009, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0009"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->Mkdir(newDirUriTest1, "test", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test3", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri(""); + result = g_fah->CreateFile(newDirUriTest2, "test", targetUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::vector moveResult; + result = g_fah->MoveItem(sourceUri, newDirUriTest2, moveResult, true); + EXPECT_EQ(result, -2); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_item_0009 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0009"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_item_0010 +* @tc.name: external_file_access_Move_0007 +* @tc.desc: Test function of Move item interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0010, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0010"; + try { + std::vector moveResult; + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(newDirUriTest1.ToString() + "/" + "test"); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test3", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->MoveItem(sourceUri, newDirUriTest2, moveResult, true); + EXPECT_EQ(result, -1); + EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_URI); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_item_0010 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0010"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_item_0011 +* @tc.name: external_file_access_Move_item_0011 +* @tc.desc: Test function of Move item interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0011, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0011"; + try { + std::vector moveResult; + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri(newDirUriTest2.ToString() + "/" + "test3"); + result = g_fah->MoveItem(sourceUri, targetUri, moveResult, true); + EXPECT_EQ(result, -1); + EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_URI); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_item_0011 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0011"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_item_0012 +* @tc.name: external_file_access_Move_item_0012 +* @tc.desc: Test function of Move item interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0012, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0012"; + try { + std::vector moveResult; + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "测试目录1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri uri1(""); + result = g_fah->CreateFile(newDirUriTest1, "测试文件.txt", uri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri uri2(""); + result = g_fah->CreateFile(newDirUriTest1, "测试目录4", uri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "测试目录3", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest3(""); + result = g_fah->Mkdir(newDirUriTest2, "测试目录1", newDirUriTest3); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest4(""); + result = g_fah->Mkdir(newDirUriTest3, "测试目录4", newDirUriTest4); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest5(""); + result = g_fah->CreateFile(newDirUriTest3, "测试文件.txt", newDirUriTest5); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + result = g_fah->MoveItem(newDirUriTest1, newDirUriTest2, moveResult, false); + EXPECT_EQ(result, -2); + EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_IS_DIR); + EXPECT_EQ(moveResult[1].errCode, OHOS::FileAccessFwk::ERR_EXIST); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_item_0012 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0012"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_item_0013 +* @tc.name: external_file_access_Move_item_0013 +* @tc.desc: Test function of Move item interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_item_0013, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_item_0013"; + try { + std::vector moveResult; + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri uri1(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", uri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri uri2(""); + result = g_fah->CreateFile(newDirUriTest1, "test4", uri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test3", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest3(""); + result = g_fah->Mkdir(newDirUriTest2, "test1", newDirUriTest3); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest4(""); + result = g_fah->Mkdir(newDirUriTest3, "test4", newDirUriTest4); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest5(""); + result = g_fah->Mkdir(newDirUriTest3, "test.txt", newDirUriTest5); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + result = g_fah->MoveItem(newDirUriTest1, newDirUriTest2, moveResult, true); + EXPECT_EQ(result, -2); + EXPECT_EQ(moveResult[0].errCode, OHOS::FileAccessFwk::ERR_IS_DIR); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_item_0013 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_item_0013"; +} +} // namespace diff --git a/test/unittest/external_file_access_test_management.cpp b/test/unittest/external_file_access_test_management.cpp new file mode 100644 index 00000000..55c93033 --- /dev/null +++ b/test/unittest/external_file_access_test_management.cpp @@ -0,0 +1,977 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include + +#include +#include + +#include "external_file_access_test_basic.h" +#include "accesstoken_kit.h" +#include "context_impl.h" +#include "file_access_framework_errno.h" +#include "file_info_shared_memory.h" +#include "iservice_registry.h" +#include "nativetoken_kit.h" +#include "token_setproc.h" + +#define private public +#include "file_access_helper.h" +#undef private + +namespace OHOS::FileAccessFwk { +static int g_num = 0; + +/** + * @tc.number: user_file_service_external_file_access_CreateFile_0000 + * @tc.name: external_file_access_CreateFile_0000 + * @tc.desc: Test function of CreateFile interface for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newFileUri(""); + result = g_fah->CreateFile(parentUri, "external_file_access_CreateFile_0000.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "CreateFile_0000 result:" << result; + result = g_fah->Delete(newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_CreateFile_0001 + * @tc.name: external_file_access_CreateFile_0001 + * @tc.desc: Test function of CreateFile interface for ERROR which parentUri is null. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0001"; + try { + Uri newFileUri(""); + Uri parentUri(""); + int result = g_fah->CreateFile(parentUri, "external_file_access_CreateFile_0001.txt", newFileUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "CreateFile_0001 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0001"; +} + +/** + * @tc.number: user_file_service_external_file_access_CreateFile_0002 + * @tc.name: external_file_access_CreateFile_0002 + * @tc.desc: Test function of CreateFile interface for ERROR which parentUri is absolute path. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0002"; + try { + Uri newFileUri(""); + Uri parentUri("storage/media/100/local/files/Download"); + int result = g_fah->CreateFile(parentUri, "external_file_access_CreateFile_0002.txt", newFileUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "CreateFile_0002 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0002"; +} + +/** + * @tc.number: user_file_service_external_file_access_CreateFile_0003 + * @tc.name: external_file_access_CreateFile_0003 + * @tc.desc: Test function of CreateFile interface for ERROR which parentUri is special symbols. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0002"; + try { + Uri newFileUri(""); + Uri parentUri("~!@#$%^&*()_"); + int result = g_fah->CreateFile(parentUri, "external_file_access_CreateFile_0003.txt", newFileUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "CreateFile_0003 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0003"; +} + +/** + * @tc.number: user_file_service_external_file_access_CreateFile_0004 + * @tc.name: external_file_access_CreateFile_0004 + * @tc.desc: Test function of CreateFile interface for ERROR which displayName is null. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0004"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newFileUri(""); + string displayName = ""; + result = g_fah->CreateFile(parentUri, displayName, newFileUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "CreateFile_0004 result:" << result; + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0004"; +} + +static void CreateFileTdd(shared_ptr fahs, Uri uri, std::string displayName, Uri newFile) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFileTdd"; + int ret = fahs->CreateFile(uri, displayName, newFile); + if (ret != OHOS::FileAccessFwk::ERR_OK) { + GTEST_LOG_(ERROR) << "CreateFileTdd get result error, code:" << ret; + return; + } + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + EXPECT_NE(newFile.ToString(), ""); + g_num++; + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFileTdd"; +} + +/** + * @tc.number: user_file_service_external_file_access_CreateFile_0005 + * @tc.name: external_file_access_CreateFile_0005 + * @tc.desc: Test function of CreateFile interface for ERROR which Concurrent. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0005"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newFileUri(""); + std::string displayName = "test1.txt"; + g_num = 0; + for (int j = 0; j < INIT_THREADS_NUMBER; j++) { + std::thread execthread(CreateFileTdd, g_fah, parentUri, displayName, newFileUri); + execthread.join(); + } + EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); + Uri newDelete(info[i].uri + "/" + displayName); + result = g_fah->Delete(newDelete); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0005"; +} + +/** + * @tc.number: user_file_service_external_file_access_CreateFile_0006 + * @tc.name: external_file_access_CreateFile_0006 + * @tc.desc: Test function of CreateFile interface for ERROR because of GetProxyByUri failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0006, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0006"; + try { + vector rootInfo; + int result = g_fah->GetRoots(rootInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < rootInfo.size(); i++) { + std::string str = rootInfo[i].uri; + if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { + GTEST_LOG_(ERROR) << "replace BundleName failed."; + EXPECT_TRUE(false); + } + Uri parentUri(str); + Uri newFileUri(""); + string displayName = "test.txt"; + result = g_fah->CreateFile(parentUri, displayName, newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); + GTEST_LOG_(INFO) << "CreateFile_0006 result:" << result; + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0006"; +} + +/** + * @tc.number: user_file_service_external_file_access_CreateFile_0007 + * @tc.name: external_file_access_CreateFile_0007 + * @tc.desc: Test function of CreateFile interface for SUCCESS, the file name is chinese. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I70SX9 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_CreateFile_0007, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_CreateFile_0007"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newFileUri(""); + result = g_fah->CreateFile(parentUri, "新建文件.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newFileUri.ToString().find("新建文件.txt"), std::string::npos); + GTEST_LOG_(INFO) << "CreateFile_0007 result:" << result; + result = g_fah->Delete(newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_CreateFile_0007 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_CreateFile_0007"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_file_0000 +* @tc.name: external_file_access_Move_file_0000 +* @tc.desc: Test function of Move file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_file_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_file_0000"; + try { + vector rootInfo; + int result = g_fah->GetRoots(rootInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(rootInfo[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "测试目录1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(newDirUriTest1.ToString() + "/" + "test"); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "测试目录3", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFile(""); + std::string fileName = "a"; + result = g_fah->MoveFile(sourceUri, newDirUriTest2, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_URI); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_file_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_file_0000"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_file_0001 +* @tc.name: external_file_access_Move_file_0001 +* @tc.desc: Test function of Move file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_file_001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_file_0001"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test3", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test4", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri(newDirUriTest2.ToString() + "/" + "test5"); + std::string fileName("a.txt"); + Uri newFile(""); + result = g_fah->MoveFile(sourceUri, targetUri, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_URI); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_file_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_file_0001"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_file_0002 +* @tc.name: external_file_access_Move_file_0002 +* @tc.desc: Test function of Move file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_file_002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_file_0002"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::string fileName("a.txt"); + Uri newFile(""); + result = g_fah->MoveFile(newDirUriTest1, newDirUriTest2, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_URIS); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_file_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_file_0002"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_file_0003 +* @tc.name: external_file_access_Move_file_0003 +* @tc.desc: Test function of Move file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_file_003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_file_0003"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test3", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::string fileName("a.txt"); + Uri newFile(""); + result = g_fah->MoveFile(sourceUri, newDirUriTest2, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newFile.GetPath(), newDirUriTest2.GetPath() + '/' +"test.txt"); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_file_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_file_0003"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_file_0004 +* @tc.name: external_file_access_Move_file_0004 +* @tc.desc: Test function of Move file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_file_004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_file_0004"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test4", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri(""); + result = g_fah->CreateFile(newDirUriTest2, "test.txt", targetUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::string fileName("a.txt"); + Uri newFile(""); + result = g_fah->MoveFile(sourceUri, newDirUriTest2, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newFile.GetPath(), newDirUriTest2.GetPath() + '/' +"a.txt"); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_file_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_file_0004"; +} + +/** +* @tc.number: user_file_service_external_file_access_Move_file_0005 +* @tc.name: external_file_access_Move_file_0005 +* @tc.desc: Test function of Move file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Move_file_005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Move_file_0005"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test5", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test1.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test05", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri1(""); + result = g_fah->CreateFile(newDirUriTest2, "test5.txt", targetUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri2(""); + result = g_fah->CreateFile(newDirUriTest2, "test05.txt", targetUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::string fileName("test05.txt"); + Uri newFile(""); + result = g_fah->MoveFile(sourceUri, newDirUriTest2, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Move_file_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Move_file_0005"; +} + +/** +* @tc.number: user_file_service_external_file_access_Copy_file_000 +* @tc.name: external_file_access_Copy_file_000 +* @tc.desc: Test function of Copy file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test3", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(newDirUriTest1.ToString() + "/" + "test"); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test5", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFile(""); + std::string fileName = "a"; + result = g_fah->CopyFile(sourceUri, newDirUriTest2, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_GETRESULT); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_file_000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_000"; +} + +/** +* @tc.number: user_file_service_external_file_access_Copy_file_001 +* @tc.name: external_file_access_Copy_file_001 +* @tc.desc: Test function of Copy file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_001"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test6", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test7", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri(newDirUriTest2.ToString() + "/" + "test8"); + std::string fileName("a.txt"); + Uri newFile(""); + result = g_fah->CopyFile(sourceUri, targetUri, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_GETRESULT); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_file_001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_001"; +} + +/** +* @tc.number: user_file_service_external_file_access_Copy_file_002 +* @tc.name: external_file_access_Copy_file_002 +* @tc.desc: Test function of Copy file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_002"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test3", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test4", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::string fileName("a.txt"); + Uri newFile(""); + result = g_fah->CopyFile(newDirUriTest1, newDirUriTest2, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_URIS); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_file_002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_002"; +} + +/** +* @tc.number: user_file_service_external_file_access_Copy_file_003 +* @tc.name: external_file_access_Copy_file_003 +* @tc.desc: Test function of Copy file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_003"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test7", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri(newDirUriTest2.ToString() + "/" + "test.txt"); + std::string fileName("a.txt"); + Uri newFile(""); + result = g_fah->CopyFile(sourceUri, targetUri, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_GETRESULT); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_file_003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_003"; +} + +/** +* @tc.number: user_file_service_external_file_access_Copy_file_004 +* @tc.name: external_file_access_Copy_file_004 +* @tc.desc: Test function of Copy file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_004"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test8", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri(""); + result = g_fah->CreateFile(newDirUriTest2, "test.txt", targetUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::string fileName("a.txt"); + Uri newFile(""); + result = g_fah->CopyFile(sourceUri, targetUri, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_URIS); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_file_004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_004"; +} + +/** +* @tc.number: user_file_service_external_file_access_Copy_file_005 +* @tc.name: external_file_access_Copy_file_005 +* @tc.desc: Test function of Copy file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_005"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test9", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest10(""); + result = g_fah->Mkdir(parentUri, "test10", newDirUriTest10); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::string fileName("a.txt"); + Uri newFile(""); + result = g_fah->CopyFile(sourceUri, newDirUriTest10, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newFile.GetPath(), newDirUriTest10.GetPath() + '/' +"test.txt"); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest10); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_file_005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_005"; +} + +/** +* @tc.number: user_file_service_external_file_access_Copy_file_006 +* @tc.name: external_file_access_Copy_file_006 +* @tc.desc: Test function of Copy file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_006, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_006"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test10", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri(""); + result = g_fah->CreateFile(newDirUriTest2, "test.txt", targetUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::string fileName("a.txt"); + Uri newFile(""); + result = g_fah->CopyFile(sourceUri, newDirUriTest2, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newFile.GetPath(), newDirUriTest2.GetPath() + '/' +"a.txt"); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_file_006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_006"; +} + +/** +* @tc.number: user_file_service_external_file_access_Copy_file_007 +* @tc.name: external_file_access_Copy_file_007 +* @tc.desc: Test function of Copy file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_007, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_007"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "test1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test1.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri1(""); + result = g_fah->CreateFile(newDirUriTest2, "test1.txt", targetUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri2(""); + result = g_fah->CreateFile(newDirUriTest2, "test2.txt", targetUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::string fileName("test2.txt"); + Uri newFile(""); + result = g_fah->CopyFile(sourceUri, newDirUriTest2, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_EXIST); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_file_007 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_007"; +} + +/** +* @tc.number: user_file_service_external_file_access_Copy_file_008 +* @tc.name: external_file_access_Copy_file_008 +* @tc.desc: Test function of Copy file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_008, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_008"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "测试目录1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "test2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::string fileName("a.txt"); + Uri newFile(""); + result = g_fah->CopyFile(sourceUri, newDirUriTest2, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newFile.GetPath(), newDirUriTest2.GetPath() + '/' +"test.txt"); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_file_008 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_008"; +} + +/** +* @tc.number: user_file_service_external_file_access_Copy_file_009 +* @tc.name: external_file_access_Copy_file_009 +* @tc.desc: Test function of Copy file interface. +* @tc.size: MEDIUM +* @tc.type: FUNC +* @tc.level Level 1 +*/ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_file_009, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_file_009"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(info[0].uri); + Uri newDirUriTest1(""); + result = g_fah->Mkdir(parentUri, "测试1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceUri(""); + result = g_fah->CreateFile(newDirUriTest1, "test.txt", sourceUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "测试2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri targetUri(""); + result = g_fah->CreateFile(newDirUriTest2, "test.txt", targetUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + std::string fileName("测试.txt"); + Uri newFile(""); + result = g_fah->CopyFile(sourceUri, newDirUriTest2, fileName, newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newDirUriTest1.ToString().find("测试.txt"), std::string::npos); + result = g_fah->Delete(newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_file_009 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_file_009"; +} + +} // namespace diff --git a/test/unittest/external_file_access_test_operations.cpp b/test/unittest/external_file_access_test_operations.cpp new file mode 100644 index 00000000..7dd0081e --- /dev/null +++ b/test/unittest/external_file_access_test_operations.cpp @@ -0,0 +1,2028 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include + +#include +#include + +#include "external_file_access_test_basic.h" +#include "accesstoken_kit.h" +#include "context_impl.h" +#include "file_access_framework_errno.h" +#include "file_info_shared_memory.h" +#include "iservice_registry.h" +#include "nativetoken_kit.h" +#include "token_setproc.h" + +#define private public +#include "file_access_helper.h" +#undef private + +namespace OHOS::FileAccessFwk { +static int g_num = 0; + +/** + * @tc.number: user_file_service_external_file_access_Copy_0000 + * @tc.name: external_file_access_Copy_0000 + * @tc.desc: Test function of Copy interface, copy a file and argument of force is false + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I7QXVD + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri srcDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0000_src", srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri srcFile(""); + result = g_fah->CreateFile(srcDir, "a.txt", srcFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd = -1; + result = g_fah->OpenFile(srcFile, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + char buff[] = "Copy test content for a.txt"; + ssize_t srcFileSize = write(fd, buff, sizeof(buff)); + EXPECT_EQ(srcFileSize, sizeof(buff)); + close(fd); + + Uri destDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0000_dest", destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + std::vector copyResult; + result = g_fah->Copy(srcFile, destDir, copyResult, false); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(copyResult.size(), 0); + + Uri destFileUri(destDir.ToString() + "/" + "a.txt"); + result = g_fah->OpenFile(destFileUri, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + ssize_t destFileSize = read(fd, buff, sizeof(buff)); + EXPECT_EQ(srcFileSize, destFileSize); + close(fd); + + result = g_fah->Delete(destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_Copy_0001 + * @tc.name: external_file_access_Copy_0001 + * @tc.desc: Test function of Copy interface, copy a directory and argument of force is false + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I7QXVD + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0001"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri srcDir(""); + Uri destDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0001_src", srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri aFileUri(""); + result = g_fah->CreateFile(srcDir, "a.txt", aFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd = -1; + result = g_fah->OpenFile(aFileUri, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + char buff[] = "Copy test content for a.txt"; + ssize_t aFileSize = write(fd, buff, sizeof(buff)); + EXPECT_EQ(aFileSize, sizeof(buff)); + close(fd); + Uri bFileUri(""); + result = g_fah->CreateFile(srcDir, "b.txt", bFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Mkdir(parentUri, "Copy_0001_dest", destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + std::vector copyResults; + result = g_fah->Copy(srcDir, destDir, copyResults, false); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(copyResults.size(), 0); + + result = g_fah->Delete(srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0001"; +} + +/** + * @tc.number: user_file_service_external_file_access_Copy_0002 + * @tc.name: external_file_access_Copy_0002 + * @tc.desc: Test function of Copy interface, copy a empty directory + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I7QXVD + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0002"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri srcDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0002_src", srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri destDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0002_dest", destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + std::vector copyResult; + result = g_fah->Copy(srcDir, destDir, copyResult, false); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(copyResult.size(), 0); + + result = g_fah->Delete(srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0002"; +} + +/** + * @tc.number: user_file_service_external_file_access_Copy_0003 + * @tc.name: external_file_access_Copy_0003 + * @tc.desc: Test function of Copy interface, copy a file with the same name and argument of force is true + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I7QXVD + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0003"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri srcDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0003_src", srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri srcFile(""); + result = g_fah->CreateFile(srcDir, "b.txt", srcFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd = -1; + result = g_fah->OpenFile(srcFile, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + char buff[] = "Copy test content for b.txt"; + ssize_t srcFileSize = write(fd, buff, sizeof(buff)); + EXPECT_EQ(srcFileSize, sizeof(buff)); + close(fd); + + Uri destDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0003_dest", destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri existFile(""); + result = g_fah->CreateFile(destDir, "b.txt", existFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + std::vector copyResult; + result = g_fah->Copy(srcFile, destDir, copyResult, true); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(copyResult.size(), 0); + + result = g_fah->OpenFile(existFile, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + ssize_t destFileSize = read(fd, buff, sizeof(buff)); + EXPECT_EQ(srcFileSize, destFileSize); + close(fd); + + result = g_fah->Delete(srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0003"; +} + +/** + * @tc.number: user_file_service_external_file_access_Copy_0004 + * @tc.name: external_file_access_Copy_0004 + * @tc.desc: Test function of Copy interface, copy a file with the same name and argument of force is false + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I7QXVD + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0004"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri srcDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0004_src", srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri srcFile(""); + result = g_fah->CreateFile(srcDir, "c.txt", srcFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd = -1; + result = g_fah->OpenFile(srcFile, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + char buff[] = "Copy test content for c.txt"; + ssize_t srcFileSize = write(fd, buff, sizeof(buff)); + EXPECT_EQ(srcFileSize, sizeof(buff)); + close(fd); + + Uri destDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0004_dest", destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri existFile(""); + result = g_fah->CreateFile(destDir, "c.txt", existFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + std::vector copyResult; + result = g_fah->Copy(srcFile, destDir, copyResult, false); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(copyResult.size(), 1); + + result = g_fah->OpenFile(existFile, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + ssize_t fileSize = read(fd, buff, sizeof(buff)); + EXPECT_EQ(fileSize, 0); + close(fd); + + result = g_fah->Delete(srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0004"; +} + +/** + * @tc.number: user_file_service_external_file_access_Copy_0005 + * @tc.name: external_file_access_Copy_0005 + * @tc.desc: Test function of Copy interface, copy a file with the same name and no force argument + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I7QXVD + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0005"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri srcDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0005_src", srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri srcFile(""); + result = g_fah->CreateFile(srcDir, "d.txt", srcFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd = -1; + result = g_fah->OpenFile(srcFile, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + char buff[] = "Copy test content for d.txt"; + ssize_t srcFileSize = write(fd, buff, sizeof(buff)); + EXPECT_EQ(srcFileSize, sizeof(buff)); + close(fd); + + Uri destDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0005_dest", destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri existFile(""); + result = g_fah->CreateFile(destDir, "d.txt", existFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + std::vector copyResult; + result = g_fah->Copy(srcFile, destDir, copyResult); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GT(copyResult.size(), 0); + + result = g_fah->OpenFile(existFile, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + ssize_t destFileSize = read(fd, buff, sizeof(buff)); + EXPECT_EQ(destFileSize, 0); + close(fd); + + result = g_fah->Delete(srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0005"; +} + +static int ReadyToCopy06(Uri& parentUri, Uri& srcDir, const char* buff, int len, shared_ptr g_fah) +{ + int result = g_fah->Mkdir(parentUri, "Copy_0006_src", srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri aFileUri(""); + result = g_fah->CreateFile(srcDir, "a.txt", aFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri bFileUri(""); + result = g_fah->CreateFile(srcDir, "b.txt", bFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd = -1; + result = g_fah->OpenFile(bFileUri, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + ssize_t srcFileSize = write(fd, buff, len); + EXPECT_EQ(srcFileSize, len); + close(fd); + return srcFileSize; +} + +/** + * @tc.number: user_file_service_external_file_access_Copy_0006 + * @tc.name: external_file_access_Copy_0006 + * @tc.desc: Test function of Copy interface, copy a directory with the same name and argument of force is true + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I7QXVD + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0006, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0006"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + char buff[] = "Copy test content for b.txt"; + for (size_t i = 0; i < info.size(); i++) { + Uri srcDir(""); + Uri parentUri(info[i].uri); + int srcFileSize = ReadyToCopy06(parentUri, srcDir, buff, sizeof(buff), g_fah); + + Uri bFileUri(""); + Uri destDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0006_dest", destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri destSrcDir(""); + result = g_fah->Mkdir(destDir, "Copy_0006_src", destSrcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->CreateFile(destSrcDir, "b.txt", bFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + std::vector copiedFiles; + result = g_fah->Copy(srcDir, destDir, copiedFiles, true); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(copiedFiles.size(), 0); + + int fd = -1; + result = g_fah->OpenFile(bFileUri, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + ssize_t destFileSize = read(fd, buff, sizeof(buff)); + EXPECT_EQ(destFileSize, srcFileSize); + close(fd); + + result = g_fah->Delete(srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_0006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0006"; +} + +/** + * @tc.number: user_file_service_external_file_access_Copy_0007 + * @tc.name: external_file_access_Copy_0007 + * @tc.desc: Test function of Copy interface, copy a directory with the same name and argument of force is false + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I7QXVD + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0007, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0007"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri srcDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0007_src", srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri aFileUri(""); + result = g_fah->CreateFile(srcDir, "a.txt", aFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri bFileUri(""); + result = g_fah->CreateFile(srcDir, "b.txt", bFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd = -1; + result = g_fah->OpenFile(bFileUri, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + char buff[] = "Copy test content for b.txt"; + ssize_t bFileSize = write(fd, buff, sizeof(buff)); + EXPECT_EQ(bFileSize, sizeof(buff)); + close(fd); + + Uri destDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0007_dest", destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri destSrcDir(""); + result = g_fah->Mkdir(destDir, "Copy_0007_src", destSrcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri destFileUri(""); + result = g_fah->CreateFile(destSrcDir, "b.txt", destFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + std::vector copyResult; + result = g_fah->Copy(srcDir, destDir, copyResult, false); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(copyResult.size(), 1); + EXPECT_EQ(copyResult[0].sourceUri, bFileUri.ToString()); + EXPECT_EQ(copyResult[0].destUri, destFileUri.ToString()); + + result = g_fah->Delete(srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_0007 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0007"; +} + +/** + * @tc.number: user_file_service_external_file_access_Copy_0008 + * @tc.name: external_file_access_Copy_0008 + * @tc.desc: Test function of Copy interface, copy a directory with the same name and no force argument + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I7QXVD + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0008, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0008"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri srcDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0008_src", srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri aFileUri(""); + result = g_fah->CreateFile(srcDir, "a.txt", aFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri bFileUri(""); + result = g_fah->CreateFile(srcDir, "b.txt", bFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri destDir(""); + result = g_fah->Mkdir(parentUri, "Copy_0008_dest", destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri destSrcDir(""); + result = g_fah->Mkdir(destDir, "Copy_0008_src", destSrcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->CreateFile(destSrcDir, "b.txt", bFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + std::vector copyResult; + result = g_fah->Copy(srcDir, destDir, copyResult); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(copyResult.size(), 1); + + result = g_fah->Delete(srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_0008 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0008"; +} + +static int ReadyToCopy09(Uri& parentUri, Uri& srcDir, const char* buff, int len, shared_ptr g_fah) +{ + int result = g_fah->Mkdir(parentUri, "Copy_0009_src", srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri aFileUri(""); + result = g_fah->CreateFile(srcDir, "c.txt", aFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri bFileUri(""); + result = g_fah->CreateFile(srcDir, "d.txt", bFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd = -1; + result = g_fah->OpenFile(bFileUri, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + ssize_t srcFileSize = write(fd, buff, len); + EXPECT_EQ(srcFileSize, len); + close(fd); + + return srcFileSize; +} + +/** + * @tc.number: user_file_service_external_file_access_Copy_0009 + * @tc.name: external_file_access_Copy_0009 + * @tc.desc: Test function of Copy interface, copy directory and file between different disks + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I7QXVD + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Copy_0009, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Copy_0009"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + char buff[] = "Copy test content for b.txt"; + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri srcDir(""); + int srcFileSize = ReadyToCopy09(parentUri, srcDir, buff, sizeof(buff), g_fah); + + for (size_t j = i + 1; j < info.size(); j++) { + Uri targetUri(info[j].uri); + Uri destDir(""); + Uri bFileUri(""); + result = g_fah->Mkdir(targetUri, "Copy_0009_dest", destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri destSrcDir(""); + result = g_fah->Mkdir(destDir, "Copy_0009_src", destSrcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->CreateFile(destSrcDir, "d.txt", bFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + std::vector copyResult; + result = g_fah->Copy(srcDir, destDir, copyResult, true); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(copyResult.size(), 0); + + int fd = -1; + result = g_fah->OpenFile(bFileUri, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + ssize_t destFileSize = read(fd, buff, sizeof(buff)); + EXPECT_EQ(destFileSize, srcFileSize); + close(fd); + + result = g_fah->Delete(destDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + result = g_fah->Delete(srcDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Copy_0009 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Copy_0009"; +} + +/** + * @tc.number: user_file_service_external_file_access_Rename_0000 + * @tc.name: external_file_access_Rename_0000 + * @tc.desc: Test function of Rename interface for SUCCESS which rename file. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test7", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri renameUri(""); + result = g_fah->Rename(testUri, "test2.txt", renameUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Rename_0000 result:" << result; + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Rename_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_Rename_0001 + * @tc.name: external_file_access_Rename_0001 + * @tc.desc: Test function of Rename interface for SUCCESS which rename folder. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0001"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test8", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri renameUri(""); + result = g_fah->Rename(newDirUriTest, "testRename", renameUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Rename_0001 result:" << result; + result = g_fah->Delete(renameUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Rename_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0001"; +} + +/** + * @tc.number: user_file_service_external_file_access_Rename_0002 + * @tc.name: external_file_access_Rename_0002 + * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is null. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0002"; + try { + Uri renameUri(""); + Uri sourceFileUri(""); + int result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Rename_0002 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Rename_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0002"; +} + +/** + * @tc.number: user_file_service_external_file_access_Rename_0003 + * @tc.name: external_file_access_Rename_0003 + * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is absolute path. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0003"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test9", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri renameUri(""); + Uri sourceFileUri("storage/media/100/local/files/Download/test9/test.txt"); + result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Rename_0003 result:" << result; + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Rename_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0003"; +} + +/** + * @tc.number: user_file_service_external_file_access_Rename_0004 + * @tc.name: external_file_access_Rename_0004 + * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is special symbols. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0004"; + try { + Uri renameUri(""); + Uri sourceFileUri("~!@#$%^&*()_"); + int result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Rename_0004 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Rename_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0004"; +} + +/** + * @tc.number: user_file_service_external_file_access_Rename_0005 + * @tc.name: external_file_access_Rename_0005 + * @tc.desc: Test function of Rename interface for ERROR which displayName is null. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0005"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test10", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri renameUri(""); + result = g_fah->Rename(testUri, "", renameUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Rename_0005 result:" << result; + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Rename_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0005"; +} + +static void RenameTdd(shared_ptr fahs, Uri sourceFile, std::string displayName, Uri newFile) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_RenameTdd"; + int ret = fahs->Rename(sourceFile, displayName, newFile); + if (ret != OHOS::FileAccessFwk::ERR_OK) { + GTEST_LOG_(ERROR) << "RenameTdd get result error, code:" << ret; + return; + } + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + g_num++; + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_RenameTdd"; +} + +/** + * @tc.number: user_file_service_external_file_access_Rename_0006 + * @tc.name: external_file_access_Rename_0006 + * @tc.desc: Test function of Rename interface for SUCCESS which Concurrent. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0006, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0006"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test11", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + std::string displayName1 = "test1.txt"; + std::string displayName2 = "test2.txt"; + Uri renameUri(""); + result = g_fah->CreateFile(newDirUriTest, displayName1, testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + g_num = 0; + for (int j = 0; j < INIT_THREADS_NUMBER; j++) { + std::thread execthread(RenameTdd, g_fah, testUri, displayName2, renameUri); + execthread.join(); + } + EXPECT_EQ(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Rename_0006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0006"; +} + +/** + * @tc.number: user_file_service_external_file_access_Rename_0007 + * @tc.name: external_file_access_Rename_0007 + * @tc.desc: Test function of Rename interface for ERROR because of GetProxyByUri failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0007, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0007"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test12", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + std::string str = newDirUriTest.ToString(); + if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { + GTEST_LOG_(ERROR) << "replace BundleName failed."; + EXPECT_TRUE(false); + } + Uri testUri(str); + Uri renameUri(""); + result = g_fah->Rename(testUri, "test.txt", renameUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); + GTEST_LOG_(INFO) << "Rename_0007 result:" << result; + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Rename_0007 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0007"; +} + +/** + * @tc.number: user_file_service_external_file_access_Rename_0008 + * @tc.name: external_file_access_Rename_0008 + * @tc.desc: Test function of Rename interface for SUCCESS which rename file, the display name is chinese. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I70SX9 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0008, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0008"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "测试目录2", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newDirUriTest.ToString().find("测试目录2"), std::string::npos); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri renameUri(""); + result = g_fah->Rename(testUri, "测试文件.txt", renameUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(renameUri.ToString().find("测试文件.txt"), std::string::npos); + GTEST_LOG_(INFO) << "Rename_0008 result:" << result; + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Rename_0008 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0008"; +} + +/** + * @tc.number: user_file_service_external_file_access_Rename_0009 + * @tc.name: external_file_access_Rename_0009 + * @tc.desc: Test function of Rename interface for SUCCESS which rename folder, the display name is chinese. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I70SX9 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_Rename_0009, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_Rename_0009"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test13", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri renameUri(""); + result = g_fah->Rename(newDirUriTest, "重命名目录", renameUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(renameUri.ToString().find("重命名目录"), std::string::npos); + GTEST_LOG_(INFO) << "Rename_0009 result:" << result; + result = g_fah->Delete(renameUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_Rename_0009 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Rename_0009"; +} + +/** + * @tc.number: user_file_service_external_file_access_ListFile_0000 + * @tc.name: external_file_access_ListFile_0000 + * @tc.desc: Test function of ListFile interface for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test14", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_0000.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 0; + FileFilter filter; + SharedMemoryInfo memInfo; + result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, + memInfo); + result = g_fah->ListFile(fileInfo, offset, filter, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GT(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ListFile_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_ListFile_0001 + * @tc.name: external_file_access_ListFile_0001 + * @tc.desc: Test function of ListFile interface for ERROR which Uri is nullptr. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0001"; + try { + Uri sourceFileUri(""); + FileInfo fileInfo; + fileInfo.uri = sourceFileUri.ToString(); + int64_t offset = 0; + FileFilter fileFilter; + SharedMemoryInfo memInfo; + int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, + memInfo); + result = g_fah->ListFile(fileInfo, offset, fileFilter, memInfo); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ListFile_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0001"; +} + +/** + * @tc.number: user_file_service_external_file_access_ListFile_0002 + * @tc.name: external_file_access_ListFile_0002 + * @tc.desc: Test function of ListFile interface for ERROR which sourceFileUri is absolute path. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0002"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test15", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri sourceFileUri("storage/media/100/local/files/Download/test15/test.txt"); + FileInfo fileInfo; + fileInfo.uri = sourceFileUri.ToString(); + Uri sourceFile(fileInfo.uri); + int64_t offset = 0; + FileFilter fileFilter; + SharedMemoryInfo memInfo; + result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", + DEFAULT_CAPACITY_200KB, memInfo); + result = g_fah->ListFile(fileInfo, offset, fileFilter, memInfo); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ListFile_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0002"; +} + +/** + * @tc.number: user_file_service_external_file_access_ListFile_0003 + * @tc.name: external_file_access_ListFile_0003 + * @tc.desc: Test function of ListFile interface for ERROR which sourceFileUri is special symbols. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0003"; + try { + Uri sourceFileUri("~!@#$%^&*()_"); + FileInfo fileInfo; + fileInfo.uri = sourceFileUri.ToString(); + Uri sourceFile(fileInfo.uri); + int64_t offset = 0; + FileFilter filter; + SharedMemoryInfo memInfo; + int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, + memInfo); + result = g_fah->ListFile(fileInfo, offset, filter, memInfo); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ListFile_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0003"; +} + +static void ListFileTdd(FileInfo fileInfo, int offset, FileFilter filter, + SharedMemoryInfo &memInfo) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFileTdd"; + int ret = g_fah->ListFile(fileInfo, offset, filter, memInfo); + if (ret != OHOS::FileAccessFwk::ERR_OK) { + GTEST_LOG_(ERROR) << "ListFile get result error, code:" << ret; + return; + } + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + g_num++; + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFileTdd"; +} + +/** + * @tc.number: user_file_service_external_file_access_ListFile_0004 + * @tc.name: external_file_access_ListFile_0004 + * @tc.desc: Test function of ListFile interface for SUCCESS which Concurrent. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0004"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test16", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_0004.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int offset = 0; + FileFilter filter; + g_num = 0; + SharedMemoryInfo memInfo; + result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, + memInfo); + for (int j = 0; j < INIT_THREADS_NUMBER; j++) { + std::thread execthread(ListFileTdd, fileInfo, offset, filter, std::ref(memInfo)); + execthread.join(); + } + EXPECT_EQ(g_num, INIT_THREADS_NUMBER); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ListFile_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0004"; +} + +/** + * @tc.number: user_file_service_external_file_access_ListFile_0005 + * @tc.name: external_file_access_ListFile_0005 + * @tc.desc: Test function of ListFile interface for ERROR because of GetProxyByUri failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0387 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0005"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "test17", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + std::string str = testUri.ToString(); + if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { + GTEST_LOG_(ERROR) << "replace BundleName failed."; + EXPECT_TRUE(false); + } + FileInfo fileInfo; + fileInfo.uri = str; + int64_t offset = 0; + FileFilter filter; + SharedMemoryInfo memInfo; + result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, + memInfo); + result = g_fah->ListFile(fileInfo, offset, filter, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ListFile_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0005"; +} + +/** + * @tc.number: user_file_service_external_file_access_ListFile_0006 + * @tc.name: external_file_access_ListFile_0006 + * @tc.desc: Test function of ListFile interface for SUCCESS, the folder and file name is chinese. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I70SX9 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0006, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0006"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "测试目录0006", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(newDirUriTest.ToString().find("测试目录0006"), std::string::npos); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "测试文件.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(testUri.ToString().find("测试文件.txt"), std::string::npos); + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 0; + FileFilter filter; + SharedMemoryInfo memInfo; + result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, + memInfo); + result = g_fah->ListFile(fileInfo, offset, filter, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GT(memInfo.Size(), OHOS::FileAccessFwk::ERR_OK); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ListFile_0006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0006"; +} + +static void WriteData(Uri &uri, shared_ptr g_fah) +{ + int fd = -1; + std::string buff = "extenal_file_access_test"; + int result = g_fah->OpenFile(uri, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + ssize_t fileSize = write(fd, buff.c_str(), buff.size()); + close(fd); + EXPECT_EQ(fileSize, buff.size()); +} + +static double GetTime() +{ + struct timespec t{}; + t.tv_sec = 0; + t.tv_nsec = 0; + clock_gettime(CLOCK_REALTIME, &t); + return static_cast(t.tv_sec); +} + +static double InitListFile(Uri newDirUriTest, const std::string &caseNumber, shared_ptr g_fah, + const bool &needSleep = false) +{ + Uri testUri1(""); + int result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_" + caseNumber + ".txt", testUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri2(""); + result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_" + caseNumber + ".docx", testUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri3(""); + double time = GetTime(); + if (needSleep) { + sleep(SLEEP_TIME); + } + result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_01_" + caseNumber + ".txt", testUri3); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri4(""); + result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_01_" + caseNumber + ".docx", testUri4); + WriteData(testUri4, g_fah); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri5(""); + result = g_fah->CreateFile(newDirUriTest, "external_file_access_ListFile_01_" + caseNumber + "_01.docx", testUri5); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + return time; +} + +static void ListFileFilter7(Uri newDirUriTest, shared_ptr g_fah) +{ + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 4; + SharedMemoryInfo memInfo; + FileFilter filter({".txt", ".docx"}, {}, {}, -1, -1, false, true); + int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, + memInfo); + result = g_fah->ListFile(fileInfo, offset, filter, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), FILE_COUNT_1); + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); +} + +/** + * @tc.number: user_file_service_external_file_access_ListFile_0007 + * @tc.name: external_file_access_ListFile_0007 + * @tc.desc: Test function of ListFile for Success, filter is File Extensions. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I79CSX + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0007, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0007"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "listfile007", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + InitListFile(newDirUriTest, "0007", g_fah); + ListFileFilter7(newDirUriTest, g_fah); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ListFile_0007 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0007"; +} + +static double InitListFileFolder(Uri newDirUriTest, const std::string &caseNumber, shared_ptr g_fah, + const bool &needSleep = false) +{ + double time = InitListFile(newDirUriTest, caseNumber, g_fah, needSleep); + Uri folderUri(""); + int result = g_fah->Mkdir(newDirUriTest, "test" + caseNumber, folderUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri6(""); + result = g_fah->CreateFile(folderUri, "external_file_access_ListFile_01_" + caseNumber + "_02.docx", testUri6); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + return time; +} + +static void ShowInfo(SharedMemoryInfo &memInfo, const std::string &caseNumber) +{ + FileAccessFwk::FileInfo fileInfo; + for (size_t i = 0; i < memInfo.Size(); i++) { + FileAccessFwk::SharedMemoryOperation::ReadFileInfo(fileInfo, memInfo); + GTEST_LOG_(INFO) << caseNumber << ", uri:" << fileInfo.uri << endl; + } +} + +static void ListFileFilter8(Uri newDirUriTest, shared_ptr g_fah) +{ + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 0; + SharedMemoryInfo memInfo; + FileFilter filter({}, {}, {}, -1, 0, false, true); + int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, + memInfo); + result = g_fah->ListFile(fileInfo, offset, filter, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), FILE_COUNT_6); + ShowInfo(memInfo, "external_file_access_ListFile_0008"); + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); +} + +/** + * @tc.number: user_file_service_external_file_access_ListFile_0008 + * @tc.name: external_file_access_ListFile_0008 + * @tc.desc: Test function of ListFile for Success, filter is filesize >= 0 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I79CSX + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0008, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0008"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "listfile008", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + InitListFileFolder(newDirUriTest, "0008", g_fah); + ListFileFilter8(newDirUriTest,g_fah); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ListFile_0008 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0008"; +} + +static void ListFileFilter9(Uri newDirUriTest, shared_ptr g_fah) +{ + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 0; + SharedMemoryInfo memInfo; + FileFilter filter; + int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, + memInfo); + result = g_fah->ListFile(fileInfo, offset, filter, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), FILE_COUNT_6); + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); +} + +/** + * @tc.number: user_file_service_external_file_access_ListFile_0009 + * @tc.name: external_file_access_ListFile_0009 + * @tc.desc: Test function of ListFile for Success, filter is offset from 0 and maxCount is 1000 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I79CSX + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0009, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0008"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "listfile009", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + InitListFileFolder(newDirUriTest, "0009", g_fah); + ListFileFilter9(newDirUriTest, g_fah); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ListFile_0009 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0009"; +} + +static void ListFileFilter10(Uri newDirUriTest, const double &time, shared_ptr g_fah) +{ + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 0; + SharedMemoryInfo memInfo; + FileFilter filter({".txt", ".docx"}, {}, {}, -1, -1, false, true); + int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, + memInfo); + result = g_fah->ListFile(fileInfo, offset, filter, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), FILE_COUNT_5); + + FileFilter filter1({".txt", ".docx"}, {"0010.txt", "0010.docx"}, {}, -1, -1, false, true); + result = g_fah->ListFile(fileInfo, offset, filter1, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), FILE_COUNT_4); + + FileFilter filter2({".txt", ".docx"}, {"0010.txt", "0010.docx"}, {}, 0, 0, false, true); + result = g_fah->ListFile(fileInfo, offset, filter2, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), FILE_COUNT_1); + + FileFilter filter3({".txt", ".docx"}, {"0010.txt", "0010.docx"}, {}, -1, time, false, true); + result = g_fah->ListFile(fileInfo, offset, filter3, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), FILE_COUNT_2); + + double nowTime = GetTime(); + FileFilter filter4({".txt", ".docx"}, {"0010.txt", "0010.docx"}, {}, -1, nowTime, false, true); + result = g_fah->ListFile(fileInfo, offset, filter4, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), 0); + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); +} + +/** + * @tc.number: user_file_service_external_file_access_ListFile_0010 + * @tc.name: external_file_access_ListFile_0010 + * @tc.desc: Test function of ListFile interface for SUCCESS, filter is filename, extension, file size, modify time + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I79CSX + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0010, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0010"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "listfile0010", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + double time = InitListFile(newDirUriTest, "0010", g_fah, true); + ListFileFilter10(newDirUriTest, time, g_fah); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ListFile_0010 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0010"; +} + +static void ListFileFilter11(Uri newDirUriTest, const double &time, shared_ptr g_fah) +{ + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 0; + SharedMemoryInfo memInfo; + int result = FileAccessFwk::SharedMemoryOperation::CreateSharedMemory("FileInfo List", DEFAULT_CAPACITY_200KB, + memInfo); + FileFilter filter({".txt", ".docx"}, {}, {}, -1, -1, false, true); + result = g_fah->ListFile(fileInfo, offset, filter, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), FILE_COUNT_6); + + FileFilter filter1({".txt", ".docx"}, {"测试.txt", "测试.docx"}, {}, -1, -1, false, true); + result = g_fah->ListFile(fileInfo, offset, filter1, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), FILE_COUNT_4); + + FileFilter filter2({".txt", ".docx"}, {"测试.txt", "测试.docx"}, {}, 0, 0, false, true); + result = g_fah->ListFile(fileInfo, offset, filter2, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), FILE_COUNT_1); + + FileFilter filter3({".txt", ".docx"}, {"测试.txt", "测试.docx"}, {}, -1, time, false, true); + result = g_fah->ListFile(fileInfo, offset, filter3, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), FILE_COUNT_2); + + double nowTime = GetTime(); + FileFilter filter4({".txt", ".docx"}, {"测试.txt", "测试.docx"}, {}, -1, nowTime, false, true); + result = g_fah->ListFile(fileInfo, offset, filter4, memInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(memInfo.Size(), 0); + FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(memInfo); +} + +/** + * @tc.number: user_file_service_external_file_access_ListFile_0011 + * @tc.name: external_file_access_ListFile_0011 + * @tc.desc: Test function of ListFile interface for SUCCESS, for filename is Chinese + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I79CSX + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ListFile_0011, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ListFile_0011"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "listfile测试", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + double time = InitListFileFolder(newDirUriTest, "测试", g_fah, true); + ListFileFilter11(newDirUriTest, time, g_fah); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ListFile_0011 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ListFile_0011"; +} + +static double InitScanFile(Uri newDirUriTest, const std::string &caseNumber, shared_ptr g_fah, + const bool &needSleep = false) +{ + Uri forlderUriTest(""); + int result = g_fah->Mkdir(newDirUriTest, "test" + caseNumber, forlderUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri testUri1(""); + result = g_fah->CreateFile(newDirUriTest, "external_file_access_ScanFile_" + caseNumber + ".txt", testUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri2(""); + result = g_fah->CreateFile(newDirUriTest, "external_file_access_ScanFile_" + caseNumber + ".docx", testUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + double time = GetTime(); + if (needSleep) { + sleep(SLEEP_TIME); + } + Uri testUri3(""); + result = g_fah->CreateFile(forlderUriTest, "external_file_access_ScanFile_01_" + caseNumber + ".txt", testUri3); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri4(""); + result = g_fah->CreateFile(forlderUriTest, "external_file_access_ScanFile_01_" + caseNumber + ".docx", testUri4); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + WriteData(testUri4, g_fah); + Uri testUri5(""); + result = g_fah->CreateFile(forlderUriTest, "external_file_access_ScanFile_01_" + caseNumber + "_01.docx", testUri5); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + return time; +} + +static void ScanFileFilter0(Uri newDirUriTest, const double &time, shared_ptr g_fah) +{ + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 0; + int64_t maxCount = 1000; + std::vector fileInfoVec; + FileFilter filter({".txt", ".docx"}, {}, {}, -1, -1, false, true); + int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_5); + + FileFilter filter1({".txt", ".docx"}, {"0000.txt", "0000.docx"}, {}, -1, -1, false, true); + result = g_fah->ScanFile(fileInfo, offset, maxCount, filter1, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_4); + + FileFilter filter2({".txt", ".docx"}, {"0000.txt", "0000.docx"}, {}, 0, 0, false, true); + result = g_fah->ScanFile(fileInfo, offset, maxCount, filter2, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_1); + + FileFilter filter3({".txt", ".docx"}, {"0000.txt", "0000.docx"}, {}, -1, time, false, true); + result = g_fah->ScanFile(fileInfo, offset, maxCount, filter3, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_2); + + double nowTime = GetTime(); + FileFilter filter4({".txt", ".docx"}, {"0000.txt", "0000.docx"}, {}, -1, nowTime, false, true); + result = g_fah->ScanFile(fileInfo, offset, maxCount, filter4, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoVec.size(), 0); +} + +/** + * @tc.number: user_file_service_external_file_access_ScanFile_0000 + * @tc.name: external_file_access_ScanFile_0000 + * @tc.desc: Test function of ScanFile interface for SUCCESS, filter is filename, extension, file size, modify time + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I79CSX + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ScanFile_0000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "scanfile0000", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + double time = InitScanFile(newDirUriTest, "0000", g_fah, true); + ScanFileFilter0(newDirUriTest, time, g_fah); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ScanFile_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ScanFile_0000"; +} + +static void ScanFileFilter1(Uri newDirUriTest, shared_ptr g_fah) +{ + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 0; + int64_t maxCount = 1000; + std::vector fileInfoVec; + FileFilter filter; + int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_5); +} + +/** + * @tc.number: user_file_service_external_file_access_ScanFile_0001 + * @tc.name: external_file_access_ScanFile_0001 + * @tc.desc: Test function of ScanFile interface for SUCCESS, the filter is offset from 0 to maxcount + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I79CSX + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ScanFile_0001"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "scanfile0001", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + InitScanFile(newDirUriTest, "0001", g_fah); + ScanFileFilter1(newDirUriTest, g_fah); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ScanFile_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ScanFile_0001"; +} + +static void ScanFileFilter2(Uri newDirUriTest, shared_ptr g_fah) +{ + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 3; + int64_t maxCount = 3; + std::vector fileInfoVec; + FileFilter filter({".txt", ".docx"}, {}, {}, -1, -1, false, true); + int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_2); +} + +/** + * @tc.number: user_file_service_external_file_access_ScanFile_0002 + * @tc.name: external_file_access_ScanFile_0002 + * @tc.desc: Test function of ScanFile interface for SUCCESS, the filter is extenstion offset maxCount + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I79CSX + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ScanFile_0002"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "scanfile0002", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + InitScanFile(newDirUriTest, "0002", g_fah); + ScanFileFilter2(newDirUriTest, g_fah); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ScanFile_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ScanFile_0002"; +} + +static void ScanFileFilter3(Uri newDirUriTest, const double &time, shared_ptr g_fah) +{ + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 0; + int64_t maxCount = 1000; + std::vector fileInfoVec; + FileFilter filter({}, {}, {}, -1, time, false, true); + int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_3); +} + +/** + * @tc.number: user_file_service_external_file_access_ScanFile_0003 + * @tc.name: external_file_access_ScanFile_0003 + * @tc.desc: Test function of ScanFile interface for SUCCESS, the filter is modify time + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I79CSX + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_ScanFile_0003"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "scanfile0003", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + double time = InitScanFile(newDirUriTest, "0003", g_fah, true); + ScanFileFilter3(newDirUriTest, time, g_fah); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_ScanFile_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_ScanFile_0003"; +} + +static void ScanFileFilter4(Uri newDirUriTest, shared_ptr g_fah) +{ + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 0; + int64_t maxCount = 1000; + std::vector fileInfoVec; + FileFilter filter; + int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_5); +} + +/** + * @tc.number: user_file_service_external_file_access_ScanFile_0004 + * @tc.name: external_file_access_ScanFile_0004 + * @tc.desc: Test function of ScanFile interface for SUCCESS, the filter is offset from 0 to maxCount + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I79CSX + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin user_file_service_external_file_access_ScanFile_0004"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "scanfile0004", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + InitScanFile(newDirUriTest, "0004", g_fah); + ScanFileFilter4(newDirUriTest, g_fah); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "user_file_service_external_file_access_ScanFile_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end user_file_service_external_file_access_ScanFile_0004"; +} + +static void ScanFileFilter5(Uri newDirUriTest, shared_ptr g_fah) +{ + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 0; + int64_t maxCount = 1000; + std::vector fileInfoVec; + FileFilter filter({".txt", ".docx"}, {"测试.txt", "测试.docx"}, {}, -1, -1, false, true); + int result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoVec.size(), FILE_COUNT_4); +} + +/** + * @tc.number: user_file_service_external_file_access_ScanFile_0005 + * @tc.name: external_file_access_ScanFile_0005 + * @tc.desc: Test function of ScanFile interface for SUCCESS, the filter is Chinese filename + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I79CSX + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_ScanFile_0005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin user_file_service_external_file_access_ScanFile_0005"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(info[i].uri); + Uri newDirUriTest(""); + result = g_fah->Mkdir(parentUri, "scanfile测试", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + InitScanFile(newDirUriTest, "测试", g_fah); + ScanFileFilter5(newDirUriTest, g_fah); + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "user_file_service_external_file_access_ScanFile_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end user_file_service_external_file_access_ScanFile_0005"; +} +} // namespace diff --git a/test/unittest/external_notify_test.cpp b/test/unittest/external_notify_test.cpp index dbe74f90..c313a9c5 100644 --- a/test/unittest/external_notify_test.cpp +++ b/test/unittest/external_notify_test.cpp @@ -58,19 +58,19 @@ void SetNativeToken() perms[0] = "ohos.permission.FILE_ACCESS_MANAGER"; perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; NativeTokenInfoParams infoInstance = { + .perms = perms, + .aplStr = "system_core", .dcapsNum = 0, .permsNum = 2, .aclsNum = 0, .dcaps = nullptr, - .perms = perms, .acls = nullptr, - .aplStr = "system_core", }; infoInstance.processName = "SetUpTestCase"; tokenId = GetAccessTokenId(&infoInstance); - const uint64_t systemAppMask = (static_cast(1) << 32); - tokenId |= systemAppMask; + const uint64_t systemTokenMask = (static_cast(1) << 32); + tokenId |= systemTokenMask; SetSelfTokenID(tokenId); OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo(); delete[] perms; @@ -82,8 +82,8 @@ public: { cout << "FileExtensionNotifyTest code test" << endl; SetNativeToken(); - auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); - auto remoteObj = saManager->GetSystemAbility(ABILITY_ID); + auto sysAbilityManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); + auto remoteObj = sysAbilityManager->GetSystemAbility(ABILITY_ID); g_context = make_shared(); g_context->SetToken(remoteObj); AAFwk::Want want; @@ -91,17 +91,17 @@ public: setuid(UID_TRANSFORM_TMP); int ret = FileAccessHelper::GetRegisteredFileAccessExtAbilityInfo(wantVec); EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - bool sus = false; + bool successFlag = false; for (size_t i = 0; i < wantVec.size(); i++) { auto element = wantVec[i].GetElement(); if (element.GetBundleName() == "com.ohos.UserFile.ExternalFileManager" && element.GetAbilityName() == "FileExtensionAbility") { want = wantVec[i]; - sus = true; + successFlag = true; break; } } - EXPECT_TRUE(sus); + EXPECT_TRUE(successFlag); vector wants{want}; g_fah = FileAccessHelper::Creator(remoteObj, wants); if (g_fah == nullptr) { @@ -150,6 +150,74 @@ void TestObserver::OnChange(NotifyMessage ¬ifyMessage) GTEST_LOG_(INFO) << "enter TestObserver uri =" + notifyUri + "type =" + std::to_string(g_notifyFlag); } +static tuple ReadyRegisterNotify00(Uri& parentUri, + sptr& myObserver1, + sptr& myObserver2, + sptr& myObserver3, + sptr& myObserver4) +{ + bool notifyForDescendants = false; + Uri newDirUriTest1(""); + int result = g_fah->Mkdir(parentUri, "uri_dir1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "uri_dir2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri1(""); + result = g_fah->CreateFile(parentUri, "uri_file1", newFileUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << newFileUri1.ToString(); + Uri newFileUri2(""); + result = g_fah->CreateFile(parentUri, "uri_file2", newFileUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + result = g_fah->RegisterNotify(newDirUriTest1, true, myObserver1); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->RegisterNotify(newDirUriTest2, notifyForDescendants, myObserver2); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->RegisterNotify(newFileUri1, notifyForDescendants, myObserver3); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->RegisterNotify(newFileUri2, notifyForDescendants, myObserver4); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + + return {newDirUriTest1, newDirUriTest2, newFileUri1, newFileUri2}; +} + +static tuple TriggerNotify00(Uri& newDirUriTest1, Uri& newDirUriTest2, Uri& newFileUri1, Uri& newFileUri2) +{ + Uri testUri(""); + int result = g_fah->CreateFile(newDirUriTest1, "testUri", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + usleep(SLEEP_TIME); + EXPECT_EQ(g_notifyEvent, ADD_EVENT); + EXPECT_EQ(g_notifyUri, testUri.ToString()); + Uri renameDirUri1(""); + result = g_fah->Rename(newDirUriTest1, "testDir", renameDirUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + usleep(SLEEP_TIME); + EXPECT_EQ(g_notifyEvent, MOVED_SELF); + EXPECT_EQ(g_notifyUri, newDirUriTest1.ToString()); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + usleep(SLEEP_TIME); + EXPECT_EQ(g_notifyEvent, DELETE_EVENT); + EXPECT_EQ(g_notifyUri, newDirUriTest2.ToString()); + + Uri renameUri1(""); + result = g_fah->Rename(newFileUri1, "renameUri1", renameUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + usleep(SLEEP_TIME); + EXPECT_EQ(g_notifyEvent, MOVED_SELF); + EXPECT_EQ(g_notifyUri, newFileUri1.ToString()); + result = g_fah->Delete(newFileUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + usleep(SLEEP_TIME); + EXPECT_EQ(g_notifyEvent, DELETE_EVENT); + EXPECT_EQ(g_notifyUri, newFileUri2.ToString()); + + return {renameDirUri1, renameUri1}; +} + /** * @tc.number: user_file_service_external_file_access_notify_0000 * @tc.name: external_file_access_notify_0000 @@ -166,64 +234,15 @@ HWTEST_F(FileExtensionNotifyTest, external_file_access_notify_0000, testing::ext vector info; int result = g_fah->GetRoots(info); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - bool notifyForDescendants = false; sptr myObserver1 = new (std::nothrow) MyObserver(); sptr myObserver2 = new (std::nothrow) MyObserver(); sptr myObserver3 = new (std::nothrow) MyObserver(); sptr myObserver4 = new (std::nothrow) MyObserver(); Uri parentUri(info[1].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "uri_dir1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "uri_dir2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri1(""); - result = g_fah->CreateFile(parentUri, "uri_file1", newFileUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << newFileUri1.ToString(); - Uri newFileUri2(""); - result = g_fah->CreateFile(parentUri, "uri_file2", newFileUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->RegisterNotify(newDirUriTest1, true, myObserver1); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newDirUriTest2, notifyForDescendants, myObserver2); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newFileUri1, notifyForDescendants, myObserver3); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newFileUri2, notifyForDescendants, myObserver4); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest1, "testUri", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - usleep(SLEEP_TIME); - EXPECT_EQ(g_notifyEvent, ADD_EVENT); - EXPECT_EQ(g_notifyUri, testUri.ToString()); - Uri renameDirUri1(""); - result = g_fah->Rename(newDirUriTest1, "testDir", renameDirUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - usleep(SLEEP_TIME); - EXPECT_EQ(g_notifyEvent, MOVED_SELF); - EXPECT_EQ(g_notifyUri, newDirUriTest1.ToString()); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - usleep(SLEEP_TIME); - EXPECT_EQ(g_notifyEvent, DELETE_EVENT); - EXPECT_EQ(g_notifyUri, newDirUriTest2.ToString()); + auto [newDirUriTest1, newDirUriTest2, newFileUri1, newFileUri2] = + ReadyRegisterNotify00(parentUri, myObserver1, myObserver2, myObserver3, myObserver4); - Uri renameUri1(""); - result = g_fah->Rename(newFileUri1, "renameUri1", renameUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - usleep(SLEEP_TIME); - EXPECT_EQ(g_notifyEvent, MOVED_SELF); - EXPECT_EQ(g_notifyUri, newFileUri1.ToString()); - result = g_fah->Delete(newFileUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - usleep(SLEEP_TIME); - EXPECT_EQ(g_notifyEvent, DELETE_EVENT); - EXPECT_EQ(g_notifyUri, newFileUri2.ToString()); + auto [renameDirUri1, renameUri1] = TriggerNotify00(newDirUriTest1, newDirUriTest2, newFileUri1, newFileUri2); sleep(1); result = g_fah->UnregisterNotify(newDirUriTest1, myObserver1); @@ -244,6 +263,30 @@ HWTEST_F(FileExtensionNotifyTest, external_file_access_notify_0000, testing::ext GTEST_LOG_(INFO) << "FileExtensionNotifyTest-end external_file_access_notify_0000"; } +static tuple ReadyRegisterNotify01(Uri& parentUri, sptr myObserver1, + sptr myObserver2, sptr myObserver3) +{ + bool notifyForDescendants1 = true; + bool notifyForDescendants2 = false; + Uri newFileUri1(""); + int result = g_fah->CreateFile(parentUri, "uri_file1", newFileUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri2(""); + result = g_fah->CreateFile(parentUri, "uri_file2", newFileUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri3(""); + result = g_fah->CreateFile(parentUri, "uri_file3", newFileUri3); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + result = g_fah->RegisterNotify(newFileUri1, notifyForDescendants1, myObserver1); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->RegisterNotify(newFileUri2, notifyForDescendants1, myObserver2); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->RegisterNotify(newFileUri3, notifyForDescendants2, myObserver3); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + return {newFileUri1, newFileUri2, newFileUri3}; +} + /** * @tc.number: user_file_service_external_file_access_notify_0001 * @tc.name: external_file_access_notify_0001 @@ -260,28 +303,13 @@ HWTEST_F(FileExtensionNotifyTest, external_file_access_notify_0001, testing::ext vector info; int result = g_fah->GetRoots(info); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - bool notifyForDescendants1 = true; - bool notifyForDescendants2 = false; + sptr myObserver1 = new (std::nothrow) MyObserver(); sptr myObserver2 = new (std::nothrow) MyObserver(); sptr myObserver3 = new (std::nothrow) MyObserver(); Uri parentUri(info[1].uri); - Uri newFileUri1(""); - result = g_fah->CreateFile(parentUri, "uri_file1", newFileUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri2(""); - result = g_fah->CreateFile(parentUri, "uri_file2", newFileUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri3(""); - result = g_fah->CreateFile(parentUri, "uri_file3", newFileUri3); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->RegisterNotify(newFileUri1, notifyForDescendants1, myObserver1); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newFileUri2, notifyForDescendants1, myObserver2); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newFileUri3, notifyForDescendants2, myObserver3); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + auto [newFileUri1, newFileUri2, newFileUri3] = + ReadyRegisterNotify01(parentUri, myObserver1, myObserver2, myObserver3); Uri renameFileUri1(""); result = g_fah->Rename(newFileUri1, "renamefile", renameFileUri1); @@ -289,7 +317,7 @@ HWTEST_F(FileExtensionNotifyTest, external_file_access_notify_0001, testing::ext usleep(SLEEP_TIME); EXPECT_EQ(g_notifyEvent, MOVED_SELF); EXPECT_EQ(g_notifyUri, newFileUri1.ToString()); - + result = g_fah->Delete(newFileUri2); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); usleep(SLEEP_TIME); @@ -316,6 +344,56 @@ HWTEST_F(FileExtensionNotifyTest, external_file_access_notify_0001, testing::ext GTEST_LOG_(INFO) << "FileExtensionNotifyTest-end external_file_access_notify_0001"; } +static tuple ReadyRegisterNotify02(Uri& parentUri) +{ + Uri newDirUriTest1(""); + int result = g_fah->Mkdir(parentUri, "uri_dir1", newDirUriTest1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newDirUriTest2(""); + result = g_fah->Mkdir(parentUri, "uri_dir2", newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri1(""); + result = g_fah->CreateFile(parentUri, "uri_file1", newFileUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri2(""); + result = g_fah->CreateFile(parentUri, "uri_file2", newFileUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + return {newDirUriTest1, newDirUriTest2, newFileUri1, newFileUri2}; +} + +static tuple TriggerNotify02(Uri& newDirUriTest1, Uri& newDirUriTest2, Uri& newFileUri1, Uri& newFileUri2) +{ + const int tm = 2; + Uri testFile(""); + int result = g_fah->CreateFile(newDirUriTest1, "test_file", testFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + usleep(SLEEP_TIME); + Uri renameDirUri1(""); + result = g_fah->Rename(newDirUriTest1, "renameDir", renameDirUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + usleep(SLEEP_TIME); + EXPECT_EQ(g_notifyEvent, MOVED_SELF); + EXPECT_EQ(g_notifyUri, newDirUriTest1.ToString()); + result = g_fah->Delete(newDirUriTest2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + usleep(SLEEP_TIME); + EXPECT_EQ(g_notifyEvent, DELETE_EVENT); + EXPECT_EQ(g_notifyUri, newDirUriTest2.ToString()); + Uri renameFileUri1(""); + result = g_fah->Rename(newFileUri1, "renamefile", renameFileUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + usleep(SLEEP_TIME); + EXPECT_EQ(g_notifyEvent, MOVED_SELF); + EXPECT_EQ(g_notifyUri, newFileUri1.ToString()); + result = g_fah->Delete(newFileUri2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + usleep(SLEEP_TIME); + EXPECT_EQ(g_notifyEvent, DELETE_EVENT); + EXPECT_EQ(g_notifyUri, newFileUri2.ToString()); + sleep(tm); + return {renameDirUri1, renameFileUri1}; +} /** * @tc.number: user_file_service_external_file_access_notify_0002 * @tc.name: external_file_access_notify_0002 @@ -333,112 +411,39 @@ HWTEST_F(FileExtensionNotifyTest, external_file_access_notify_0002, testing::ext int result = g_fah->GetRoots(info); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); bool notifyForDescendants = true; - sptr myObserverDir11 = new (std::nothrow) MyObserver(); - sptr myObserverDir12 = new (std::nothrow) MyObserver(); - sptr myObserverDir13 = new (std::nothrow) MyObserver(); - sptr myObserverDir21 = new (std::nothrow) MyObserver(); - sptr myObserverDir22 = new (std::nothrow) MyObserver(); - sptr myObserverDir23 = new (std::nothrow) MyObserver(); - sptr myObserverFile11 = new (std::nothrow) MyObserver(); - sptr myObserverFile12 = new (std::nothrow) MyObserver(); - sptr myObserverFile13 = new (std::nothrow) MyObserver(); - sptr myObserverFile21 = new (std::nothrow) MyObserver(); - sptr myObserverFile22 = new (std::nothrow) MyObserver(); - sptr myObserverFile23 = new (std::nothrow) MyObserver(); + vector> observers; + const int len = 12; + const int group = 3; + for (int i = 0; i < len; i++) { + observers.emplace_back(new (std::nothrow) MyObserver()); + } Uri parentUri(info[1].uri); - Uri newDirUriTest1(""); - result = g_fah->Mkdir(parentUri, "uri_dir1", newDirUriTest1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newDirUriTest2(""); - result = g_fah->Mkdir(parentUri, "uri_dir2", newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri1(""); - result = g_fah->CreateFile(parentUri, "uri_file1", newFileUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri2(""); - result = g_fah->CreateFile(parentUri, "uri_file2", newFileUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + auto [newDirUriTest1, newDirUriTest2, newFileUri1, newFileUri2] = ReadyRegisterNotify02(parentUri); - result = g_fah->RegisterNotify(newDirUriTest1, notifyForDescendants, myObserverDir11); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newDirUriTest1, notifyForDescendants, myObserverDir12); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newDirUriTest1, notifyForDescendants, myObserverDir13); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->RegisterNotify(newDirUriTest2, notifyForDescendants, myObserverDir21); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newDirUriTest2, notifyForDescendants, myObserverDir22); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newDirUriTest2, notifyForDescendants, myObserverDir23); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->RegisterNotify(newFileUri1, notifyForDescendants, myObserverFile11); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newFileUri1, notifyForDescendants, myObserverFile12); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newFileUri1, notifyForDescendants, myObserverFile13); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + for (int i = 0; i < group; i++) { + result = g_fah->RegisterNotify(newDirUriTest1, notifyForDescendants, observers[i]); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->RegisterNotify(newDirUriTest2, notifyForDescendants, observers[3 + i]); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->RegisterNotify(newFileUri1, notifyForDescendants, observers[6 + i]); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->RegisterNotify(newFileUri2, notifyForDescendants, observers[9 + i]); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } - result = g_fah->RegisterNotify(newFileUri2, notifyForDescendants, myObserverFile21); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newFileUri2, notifyForDescendants, myObserverFile22); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newFileUri2, notifyForDescendants, myObserverFile23); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - - Uri testFile(""); - result = g_fah->CreateFile(newDirUriTest1, "test_file", testFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - usleep(SLEEP_TIME); - Uri renameDirUri1(""); - result = g_fah->Rename(newDirUriTest1, "renameDir", renameDirUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - usleep(SLEEP_TIME); - EXPECT_EQ(g_notifyEvent, MOVED_SELF); - EXPECT_EQ(g_notifyUri, newDirUriTest1.ToString()); - result = g_fah->Delete(newDirUriTest2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - usleep(SLEEP_TIME); - EXPECT_EQ(g_notifyEvent, DELETE_EVENT); - EXPECT_EQ(g_notifyUri, newDirUriTest2.ToString()); - Uri renameFileUri1(""); - result = g_fah->Rename(newFileUri1, "renamefile", renameFileUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - usleep(SLEEP_TIME); - EXPECT_EQ(g_notifyEvent, MOVED_SELF); - EXPECT_EQ(g_notifyUri, newFileUri1.ToString()); - result = g_fah->Delete(newFileUri2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - usleep(SLEEP_TIME); - EXPECT_EQ(g_notifyEvent, DELETE_EVENT); - EXPECT_EQ(g_notifyUri, newFileUri2.ToString()); - sleep(2); - result = g_fah->UnregisterNotify(newDirUriTest1, myObserverDir11); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->UnregisterNotify(newDirUriTest1, myObserverDir12); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->UnregisterNotify(newDirUriTest1, myObserverDir13); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->UnregisterNotify(newDirUriTest2, myObserverDir21); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->UnregisterNotify(newDirUriTest2, myObserverDir22); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->UnregisterNotify(newDirUriTest2, myObserverDir23); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->UnregisterNotify(newFileUri1, myObserverFile11); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->UnregisterNotify(newFileUri1, myObserverFile12); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->UnregisterNotify(newFileUri1, myObserverFile13); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->UnregisterNotify(newFileUri2, myObserverFile21); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->UnregisterNotify(newFileUri2, myObserverFile22); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->UnregisterNotify(newFileUri2, myObserverFile23); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + auto [renameDirUri1, renameFileUri1] = + TriggerNotify02(newDirUriTest1, newDirUriTest2, newFileUri1, newFileUri2); + for (int i = 0; i < group; i++) { + result = g_fah->UnregisterNotify(newDirUriTest1, observers[i]); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->UnregisterNotify(newDirUriTest2, observers[3 + i]); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->UnregisterNotify(newFileUri1, observers[6 + i]); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->UnregisterNotify(newFileUri2, observers[9 + i]); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } result = g_fah->Delete(renameDirUri1); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); result = g_fah->Delete(renameFileUri1); @@ -498,6 +503,34 @@ HWTEST_F(FileExtensionNotifyTest, external_file_access_notify_0003, testing::ext GTEST_LOG_(INFO) << "FileExtensionNotifyTest-end external_file_access_notify_0003"; } +static tuple ReadyRegisterNotify05(Uri& parentUri, sptr& myObserver1) +{ + bool notifyForDescendants = true; + Uri uri_dir(""); + int result = g_fah->Mkdir(parentUri, "uri_dir123", uri_dir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri uri_dirSub1(""); + result = g_fah->Mkdir(uri_dir, "uri_dirSub1", uri_dirSub1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->RegisterNotify(uri_dir, notifyForDescendants, myObserver1); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->RegisterNotify(uri_dirSub1, notifyForDescendants, myObserver1); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + Uri uri_dirSub2(""); + result = g_fah->Mkdir(uri_dir, "uri_dirSub2", uri_dirSub2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + usleep(SLEEP_TIME); + EXPECT_EQ(g_notifyEvent, ADD_EVENT); + EXPECT_EQ(g_notifyUri, uri_dirSub2.ToString()); + result = g_fah->RegisterNotify(uri_dirSub2, notifyForDescendants, myObserver1); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + Uri renameDirUri1(""); + result = g_fah->Rename(uri_dirSub2, "renameDir1", renameDirUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + usleep(SLEEP_TIME); + return {uri_dir, uri_dirSub1, uri_dirSub2, renameDirUri1}; +} + /** * @tc.number: user_file_service_external_file_access_notify_0005 * @tc.name: external_file_access_notify_0005 @@ -514,31 +547,9 @@ HWTEST_F(FileExtensionNotifyTest, external_file_access_notify_0005, testing::ext vector info; int result = g_fah->GetRoots(info); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - bool notifyForDescendants = true; sptr myObserver1 = new (std::nothrow) MyObserver(); Uri parentUri(info[1].uri); - Uri uri_dir(""); - result = g_fah->Mkdir(parentUri, "uri_dir123", uri_dir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri uri_dirSub1(""); - result = g_fah->Mkdir(uri_dir, "uri_dirSub1", uri_dirSub1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(uri_dir, notifyForDescendants, myObserver1); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(uri_dirSub1, notifyForDescendants, myObserver1); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - Uri uri_dirSub2(""); - result = g_fah->Mkdir(uri_dir, "uri_dirSub2", uri_dirSub2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - usleep(SLEEP_TIME); - EXPECT_EQ(g_notifyEvent, ADD_EVENT); - EXPECT_EQ(g_notifyUri, uri_dirSub2.ToString()); - result = g_fah->RegisterNotify(uri_dirSub2, notifyForDescendants, myObserver1); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - Uri renameDirUri1(""); - result = g_fah->Rename(uri_dirSub2, "renameDir1", renameDirUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - usleep(SLEEP_TIME); + auto [uri_dir, uri_dirSub1, uri_dirSub2, renameDirUri1] = ReadyRegisterNotify05(parentUri, myObserver1); if (g_notifyEvent != MOVED_TO) { if (g_notifyEvent != MOVED_SELF) { EXPECT_EQ(g_notifyEvent, MOVED_FROM); @@ -675,24 +686,7 @@ HWTEST_F(FileExtensionNotifyTest, external_file_access_notify_0008, testing::ext } /** - * @tc.number: user_file_service_external_file_access_notify_0009 Uri parentUri(info[1].uri); - Uri newFileDir1(""); - result = g_fah->Mkdir(parentUri, "uri_dir0016", newFileDir1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newFileDir1, notifyForDescendants, myObserver1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newFileDir1, notifyForDescendants, myObserver2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newFileDir1, notifyForDescendants, myObserver3); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->UnregisterNotify(newFileDir1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->UnregisterNotify(newFileDir1, myObserver1); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->Delete(newFileDir1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + * @tc.number: user_file_service_external_file_access_notify_0009 * @tc.name: external_file_access_notify_0009 * @tc.desc: Test function of RegisterNotify and UnregisterNotify interface for SUCCESS when the file is Chinese name. * @tc.size: MEDIUM @@ -776,6 +770,29 @@ HWTEST_F(FileExtensionNotifyTest, external_file_access_notify_0010, testing::ext GTEST_LOG_(INFO) << "FileExtensionNotifyTest-end external_file_access_notify_0010"; } +static tuple ReadyRegisterNotify11(Uri& parentUri, Uri &newFileDir1, sptr& myObserver1, + sptr& myObserver2) +{ + const int tm = SLEEP_TIME * 2; + bool notifyForDescendants1 = true; + int result = g_fah->Mkdir(parentUri, "uri_dir11", newFileDir1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri1(""); + result = g_fah->CreateFile(newFileDir1, "uri_file11", newFileUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + sleep(1); + result = g_fah->RegisterNotify(newFileDir1, notifyForDescendants1, myObserver1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->RegisterNotify(newFileUri1, notifyForDescendants1, myObserver2); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri renameFileUri1(""); + result = g_fah->Rename(newFileUri1, "renamefile1", renameFileUri1); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + usleep(tm); + + return {newFileUri1, renameFileUri1}; +} + /** * @tc.number: user_file_service_external_file_access_notify_0011 * @tc.name: external_file_access_notify_0011 @@ -793,25 +810,13 @@ HWTEST_F(FileExtensionNotifyTest, external_file_access_notify_0011, testing::ext vector info; int result = g_fah->GetRoots(info); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - bool notifyForDescendants1 = true; bool notifyForDescendants2 = false; sptr myObserver1 = new (std::nothrow) TestObserver(); sptr myObserver2 = new (std::nothrow) MyObserver(); Uri parentUri(info[1].uri); Uri newFileDir1(""); - result = g_fah->Mkdir(parentUri, "uri_dir11", newFileDir1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri1(""); - result = g_fah->CreateFile(newFileDir1, "uri_file11", newFileUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - sleep(1); - result = g_fah->RegisterNotify(newFileDir1, notifyForDescendants1, myObserver1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->RegisterNotify(newFileUri1, notifyForDescendants1, myObserver2); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri renameFileUri1(""); - result = g_fah->Rename(newFileUri1, "renamefile1", renameFileUri1); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + auto [newFileUri1, renameFileUri1] = + ReadyRegisterNotify11(parentUri, newFileDir1, myObserver1, myObserver2); usleep(SLEEP_TIME * 2); if (g_notifyEvent != MOVED_TO) { if (g_notifyEvent != MOVED_SELF) { @@ -1097,12 +1102,12 @@ HWTEST_F(FileExtensionNotifyTest, external_file_access_notify_0018, testing::ext { GTEST_LOG_(INFO) << "FileExtensionNotifyTest-begin external_file_access_notify_0018"; try { - vector info; - int result = g_fah->GetRoots(info); + vector rootInfo; + int result = g_fah->GetRoots(rootInfo); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); bool notifyForDescendants = true; sptr myObserver1 = new (std::nothrow) TestObserver(); - Uri parentUri(info[1].uri); + Uri parentUri(rootInfo[1].uri); Uri newFileDir1(""); result = g_fah->Mkdir(parentUri, "uri_dir", newFileDir1); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); diff --git a/test/unittest/js_file_access_ext_ability_test.cpp b/test/unittest/js_file_access_ext_ability_test.cpp index b6cd7080..af360fd9 100644 --- a/test/unittest/js_file_access_ext_ability_test.cpp +++ b/test/unittest/js_file_access_ext_ability_test.cpp @@ -36,15 +36,15 @@ FileAccessServiceStub::FileAccessServiceStub() {} FileAccessServiceStub::~FileAccessServiceStub() {} -int32_t FileAccessServiceStub::OnRemoteRequest(unsigned int, OHOS::MessageParcel&, OHOS::MessageParcel&, - OHOS::MessageOption&) +int32_t FileAccessServiceProxy::OnChange(Uri uri, NotifyType notifyType) { - return 0; + return ERR_OK; } -int32_t FileAccessServiceProxy::OnChange(Uri uri, NotifyType notifyType) +int32_t FileAccessServiceStub::OnRemoteRequest(unsigned int, OHOS::MessageParcel&, OHOS::MessageParcel&, + OHOS::MessageOption&) { - return ERR_OK; + return 0; } int32_t FileAccessServiceProxy::GetExensionProxy(const std::shared_ptr &, @@ -365,6 +365,20 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_OpenFile_0001, t GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_OpenFile_0001"; } +static void MockNapiCalls(shared_ptr insMoc, napi_value rslt) { + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); +} + /** * @tc.number: user_file_service_js_file_access_ext_ability_OpenFile_0002 * @tc.name: js_file_access_ext_ability_OpenFile_0002 @@ -378,23 +392,13 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_OpenFile_0002, t { GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_OpenFile_0002"; try { - napi_value rslt; + napi_value rslt = nullptr; const Uri uri(""); int fd = -1; ability->jsObj_ = make_shared(); // 模拟获取value->code失败 - EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); - EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + MockNapiCalls(insMoc, rslt); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_create_int32(_, _, _)) @@ -405,17 +409,7 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_OpenFile_0002, t EXPECT_EQ(result, E_IPCS); // 模拟获取value->data为-1 - EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); - EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + MockNapiCalls(insMoc, rslt); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_create_int32(_, _, _)) @@ -443,23 +437,13 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_OpenFile_0003, t { GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_OpenFile_0003"; try { - napi_value rslt; + napi_value rslt = nullptr; const Uri uri(""); int fd = -1; ability->jsObj_ = make_shared(); // 模拟OpenFile调用成功 - EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); - EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + MockNapiCalls(insMoc, rslt); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_create_int32(_, _, _)) @@ -553,51 +537,31 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_CreateFile_0002, { GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_CreateFile_0002"; try { - napi_value rslt; + napi_value rslt = nullptr; Uri parent(""); - string displayName(""); + string fileDisplayName(""); Uri newFile(""); ability->jsObj_ = make_shared(); // 模拟获取value->code失败 - EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); - EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + MockNapiCalls(insMoc, rslt); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) .WillRepeatedly(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(DoAll(SetArgPointee<2>(E_IPCS), Return(napi_ok))); - auto result = ability->CreateFile(parent, displayName, newFile); + auto result = ability->CreateFile(parent, fileDisplayName, newFile); EXPECT_EQ(result, E_IPCS); // 模拟获取value->data为-1 - EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); - EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + MockNapiCalls(insMoc, rslt); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) .WillRepeatedly(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)) .WillOnce(Return(napi_ok)); - result = ability->CreateFile(parent, displayName, newFile); + result = ability->CreateFile(parent, fileDisplayName, newFile); EXPECT_EQ(result, E_GETRESULT); } catch (...) { GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; @@ -618,7 +582,7 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_CreateFile_0003, { GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_CreateFile_0003"; try { - napi_value rslt; + napi_value napiResult; string path = "test"; Uri parent(""); string displayName(""); @@ -629,18 +593,18 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_CreateFile_0003, EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&napiResult)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&napiResult)), Return(napi_ok))) .WillOnce(Return(napi_ok)) .WillOnce(Return(napi_ok)); EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&napiResult)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&napiResult)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&napiResult)), Return(napi_ok))) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&napiResult)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) .WillOnce(DoAll(SetArgPointee<4>(path.length()), Return(napi_ok))) .WillOnce(DoAll(SetArrayArgument<2>(path.begin(), path.end()), Return(napi_ok))); @@ -733,50 +697,30 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Mkdir_0002, test { GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Mkdir_0002"; try { - napi_value rslt; + napi_value rslt = nullptr; Uri parent(""); string displayName(""); - Uri newFile(""); + Uri file(""); ability->jsObj_ = make_shared(); // 模拟获取value->code失败 - EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); - EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + MockNapiCalls(insMoc, rslt); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) .WillRepeatedly(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(DoAll(SetArgPointee<2>(E_IPCS), Return(napi_ok))); - auto result = ability->Mkdir(parent, displayName, newFile); + auto result = ability->Mkdir(parent, displayName, file); EXPECT_EQ(result, E_IPCS); // 模拟获取value->data为-1 - EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); - EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + MockNapiCalls(insMoc, rslt); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) .WillRepeatedly(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(Return(napi_ok)); - result = ability->Mkdir(parent, displayName, newFile); + result = ability->Mkdir(parent, displayName, file); EXPECT_EQ(result, E_GETRESULT); } catch (...) { GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; @@ -799,7 +743,7 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Mkdir_0003, test try { napi_value rslt; string path = "test"; - Uri parent(""); + Uri parentDirectory(""); string displayName(""); Uri newFile(""); ability->jsObj_ = make_shared(); @@ -824,7 +768,7 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Mkdir_0003, test .WillOnce(DoAll(SetArgPointee<4>(path.length()), Return(napi_ok))) .WillOnce(DoAll(SetArrayArgument<2>(path.begin(), path.end()), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(Return(napi_ok)); - auto result = ability->Mkdir(parent, displayName, newFile); + auto result = ability->Mkdir(parentDirectory, displayName, newFile); EXPECT_EQ(result, ERR_OK); } catch (...) { GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; @@ -917,7 +861,7 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Delete_0002, tes { GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Delete_0002"; try { - napi_value rslt; + napi_value napiResult; Uri sourceFile(""); ability->jsObj_ = make_shared(); @@ -925,15 +869,15 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Delete_0002, tes EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&napiResult)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&napiResult)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&napiResult)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&napiResult)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&napiResult)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)) .WillOnce(DoAll(SetArgPointee<2>(ERR_OK), Return(napi_ok))); auto result = ability->Delete(sourceFile); @@ -1024,24 +968,14 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Move_0002, testi { GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Move_0002"; try { - napi_value rslt; + napi_value rslt = nullptr; Uri sourceFile(""); Uri targetParent(""); Uri newFile(""); ability->jsObj_ = make_shared(); // 模拟获取value->code失败 - EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); - EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + MockNapiCalls(insMoc, rslt); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) .WillRepeatedly(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) @@ -1051,17 +985,7 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Move_0002, testi EXPECT_EQ(result, E_IPCS); // 模拟获取value->data为-1 - EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); - EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + MockNapiCalls(insMoc, rslt); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) .WillRepeatedly(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) @@ -1261,7 +1185,7 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Copy_0003, testi { GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Copy_0003"; try { - napi_value rslt; + napi_value resultValue; Uri sourceUri(""); Uri destUri(""); vector copyResult; @@ -1272,19 +1196,19 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Copy_0003, testi EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&resultValue)), Return(napi_ok))) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&resultValue)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_boolean(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&resultValue)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&resultValue)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&resultValue)), Return(napi_ok))) .WillOnce(Return(napi_ok)); EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&resultValue)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&resultValue)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(Return(napi_invalid_arg)); auto result = ability->Copy(sourceUri, destUri, copyResult, force); EXPECT_EQ(result, EXCEPTION); @@ -1307,7 +1231,7 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Copy_0004, testi { GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Copy_0004"; try { - napi_value rslt; + napi_value returnValue; Uri sourceUri(""); Uri destUri(""); vector copyResult; @@ -1318,19 +1242,19 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Copy_0004, testi EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&returnValue)), Return(napi_ok))) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&returnValue)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_boolean(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&returnValue)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&returnValue)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&returnValue)), Return(napi_ok))) .WillOnce(Return(napi_ok)); EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&returnValue)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&returnValue)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(DoAll(SetArgPointee<2>(ERR_OK), Return(napi_ok))); auto result = ability->Copy(sourceUri, destUri, copyResult, force); EXPECT_EQ(result, ERR_OK); @@ -1353,7 +1277,7 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Copy_0005, testi { GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Copy_0005"; try { - napi_value rslt; + napi_value napiResult; Uri sourceUri(""); Uri destUri(""); vector copyResult; @@ -1364,19 +1288,19 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Copy_0005, testi EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&napiResult)), Return(napi_ok))) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&napiResult)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_boolean(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&napiResult)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&napiResult)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&napiResult)), Return(napi_ok))) .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&napiResult)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&napiResult)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(DoAll(SetArgPointee<2>(E_IPCS), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_create_array(_, _)).WillOnce(Return(napi_ok)); auto result = ability->Copy(sourceUri, destUri, copyResult, force); @@ -1400,7 +1324,7 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Copy_0006, testi { GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Copy_0006"; try { - napi_value rslt; + napi_value result; Uri sourceUri(""); Uri destUri(""); vector copyResult; @@ -1411,26 +1335,26 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Copy_0006, testi EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&result)), Return(napi_ok))) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&result)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_boolean(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&result)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&result)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&result)), Return(napi_ok))) .WillOnce(Return(napi_ok)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&result)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&result)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&result)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(DoAll(SetArgPointee<2>(E_IPCS), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_create_array(_, _)) - .WillRepeatedly(DoAll(SetArgPointee<1>(reinterpret_cast(&rslt)), Return(napi_ok))); + .WillRepeatedly(DoAll(SetArgPointee<1>(reinterpret_cast(&result)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_array_length(_, _, _)).WillOnce(Return(napi_invalid_arg)); - auto result = ability->Copy(sourceUri, destUri, copyResult, force); - EXPECT_EQ(result, E_IPCS); + auto rslt = ability->Copy(sourceUri, destUri, copyResult, force); + EXPECT_EQ(rslt, E_IPCS); } catch (...) { GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; } @@ -1568,24 +1492,14 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Rename_0002, tes { GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Rename_0002"; try { - napi_value rslt; + napi_value rslt = nullptr; Uri sourceFile(""); string displayName(""); Uri newFile(""); ability->jsObj_ = make_shared(); // 模拟获取value->code失败 - EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); - EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + MockNapiCalls(insMoc, rslt); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) .WillRepeatedly(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) @@ -1595,17 +1509,7 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Rename_0002, tes EXPECT_EQ(result, E_IPCS); // 模拟获取value->data为-1 - EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); - EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) - .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) - .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) - .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); - EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) - .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + MockNapiCalls(insMoc, rslt); EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) .WillRepeatedly(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) @@ -1636,7 +1540,7 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Rename_0003, tes string path = "test"; Uri sourceFile(""); string displayName(""); - Uri newFile(""); + Uri file(""); ability->jsObj_ = make_shared(); // 模拟Rename调用成功 @@ -1659,7 +1563,7 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Rename_0003, tes .WillOnce(DoAll(SetArgPointee<4>(path.length()), Return(napi_ok))) .WillOnce(DoAll(SetArrayArgument<2>(path.begin(), path.end()), Return(napi_ok))); EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(Return(napi_ok)); - auto result = ability->Rename(sourceFile, displayName, newFile); + auto result = ability->Rename(sourceFile, displayName, file); EXPECT_EQ(result, ERR_OK); } catch (...) { GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; diff --git a/test/unittest/medialibrary_file_access_test.cpp b/test/unittest/medialibrary_file_access_test_basic.cpp similarity index 50% rename from test/unittest/medialibrary_file_access_test.cpp rename to test/unittest/medialibrary_file_access_test_basic.cpp index 06436451..b0dc3eca 100644 --- a/test/unittest/medialibrary_file_access_test.cpp +++ b/test/unittest/medialibrary_file_access_test_basic.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -20,6 +20,7 @@ #include #include +#include "medialibrary_file_access_test_basic.h" #include "accesstoken_kit.h" #include "file_access_extension_info.h" #include "file_access_framework_errno.h" @@ -29,12 +30,7 @@ #include "nativetoken_kit.h" #include "token_setproc.h" -namespace { -using namespace std; -using namespace OHOS; -using namespace FileAccessFwk; -using namespace OHOS::Media; -using json = nlohmann::json; +namespace OHOS::FileAccessFwk { const int ABILITY_ID = 5003; const int INIT_THREADS_NUMBER = 4; const int ACTUAL_SUCCESS_THREADS_NUMBER = 1; @@ -51,366 +47,85 @@ void SetNativeToken() perms[0] = "ohos.permission.FILE_ACCESS_MANAGER"; perms[1] = "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"; NativeTokenInfoParams infoInstance = { - .dcapsNum = 0, - .permsNum = 2, + .aplStr = "system_core", .aclsNum = 0, .dcaps = nullptr, + .dcapsNum = 0, + .permsNum = 2, .perms = perms, .acls = nullptr, - .aplStr = "system_core", }; infoInstance.processName = "SetUpTestCase"; - tokenId = GetAccessTokenId(&infoInstance); const uint64_t systemAppMask = (static_cast(1) << 32); + tokenId = GetAccessTokenId(&infoInstance); tokenId |= systemAppMask; SetSelfTokenID(tokenId); OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo(); delete[] perms; } -class FileAccessHelperTest : public testing::Test { -public: - static void SetUpTestCase(void) - { - cout << "FileAccessHelperTest code test" << endl; - SetNativeToken(); - auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); - auto remoteObj = saManager->GetSystemAbility(ABILITY_ID); - AAFwk::Want want; - vector wantVec; - setuid(UID_TRANSFORM_TMP); - int ret = FileAccessHelper::GetRegisteredFileAccessExtAbilityInfo(wantVec); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - bool sus = false; - for (size_t i = 0; i < wantVec.size(); i++) { - auto element = wantVec[i].GetElement(); - if (element.GetBundleName() == "com.ohos.medialibrary.medialibrarydata" && - element.GetAbilityName() == "FileExtensionAbility") { - want = wantVec[i]; - sus = true; - break; - } - } - EXPECT_TRUE(sus); - vector wants{want}; - g_fah = FileAccessHelper::Creator(remoteObj, wants); - if (g_fah == nullptr) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_test g_fah is nullptr"; - exit(1); - } - setuid(UID_DEFAULT); - } - static void TearDownTestCase() - { - g_fah->Release(); - g_fah = nullptr; - }; - void SetUp(){}; - void TearDown(){}; -}; - -static Uri GetParentUri() -{ - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri parentUri(""); - if (info.size() > OHOS::FileAccessFwk::ERR_OK) { - parentUri = Uri(info[0].uri + "/file"); - GTEST_LOG_(ERROR) << parentUri.ToString(); - } - return parentUri; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0000 - * @tc.name: medialibrary_file_access_OpenFile_0000 - * @tc.desc: Test function of OpenFile interface for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0000, testing::ext::TestSize.Level1) +void FileAccessHelperTest::SetUpTestCase() { - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0000"; - try { - Uri parentUri = GetParentUri(); - bool isExist = false; - int result = g_fah->Access(g_newDirUri, isExist); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - if (!isExist) { - result = g_fah->Mkdir(parentUri, "Download", g_newDirUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - } - Uri newDirUriTest("file://media/root/file"); - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 0; - int64_t maxCount = 1000; - std::vector fileInfoVec; - FileFilter filter; - result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GE(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < fileInfoVec.size(); i++) { - if (fileInfoVec[i].fileName.compare("Download") == 0) { - g_newDirUri = Uri(fileInfoVec[i].uri); - break; - } + cout << "FileAccessHelperTest code test" << endl; + SetNativeToken(); + auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); + auto remoteObj = saManager->GetSystemAbility(ABILITY_ID); + AAFwk::Want want; + vector wantVec; + setuid(UID_TRANSFORM_TMP); + int ret = FileAccessHelper::GetRegisteredFileAccessExtAbilityInfo(wantVec); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + bool found = false; + for (size_t i = 0; i < wantVec.size(); i++) { + auto element = wantVec[i].GetElement(); + if (element.GetBundleName() == "com.ohos.medialibrary.medialibrarydata" && + element.GetAbilityName() == "FileExtensionAbility") { + want = wantVec[i]; + found = true; + break; } - result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri(""); - result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_OpenFile_0000.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd; - result = g_fah->OpenFile(newFileUri, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0000 result:" << result; - close(fd); - result = g_fah->Delete(newDirUriTest); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_accsess_OpenFile_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0000"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0001 - * @tc.name: medialibrary_file_access_OpenFile_0001 - * @tc.desc: Test function of OpenFile interface for ERROR which Uri is null. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0001"; - try { - Uri uri(""); - int fd; - int result = g_fah->OpenFile(uri, WRITE_READ, fd); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0001 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0001"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0002 - * @tc.name: medialibrary_file_access_OpenFile_0002 - * @tc.desc: Test function of OpenFile interface for ERROR which Uri is absolute path. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0002"; - try { - Uri uri("storage/media/100/local/files/Download/medialibrary_file_access_OpenFile_0002.txt"); - int fd; - int result = g_fah->OpenFile(uri, WRITE_READ, fd); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0002 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0002"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0003 - * @tc.name: medialibrary_file_access_OpenFile_0003 - * @tc.desc: Test function of OpenFile interface for ERROR which Uri is special symbols. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0003"; - try { - Uri uri("~!@#$%^&*()_"); - int fd; - int result = g_fah->OpenFile(uri, WRITE_READ, fd); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0003 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0003 occurs an exception."; } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0003"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0004 - * @tc.name: medialibrary_file_access_OpenFile_0004 - * @tc.desc: Test function of OpenFile interface for ERROR which flag is -1. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0004"; - try { - Uri newFileUri(""); - int result = g_fah->CreateFile(g_newDirUri, "medialibrary_file_access_OpenFile_0004.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd; - int flag = -1; - result = g_fah->OpenFile(newFileUri, flag, fd); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0004 result:" << result; - result = g_fah->Delete(newFileUri); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0004 occurs an exception."; + EXPECT_TRUE(found); + vector wants{want}; + g_fah = FileAccessHelper::Creator(remoteObj, wants); + if (g_fah == nullptr) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_test g_fah is nullptr"; + exit(1); } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0004"; + setuid(UID_DEFAULT); } -/** - * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0005 - * @tc.name: medialibrary_file_access_OpenFile_0005 - * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 0. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0005, testing::ext::TestSize.Level1) +void FileAccessHelperTest::TearDownTestCase() { - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0005"; - try { - Uri newFileUri(""); - int result = g_fah->CreateFile(g_newDirUri, "medialibrary_file_access_OpenFile_0005.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd; - result = g_fah->OpenFile(newFileUri, READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0005 result:" << result; - close(fd); - result = g_fah->Delete(newFileUri); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0005"; + g_fah->Release(); + g_fah = nullptr; } -/** - * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0006 - * @tc.name: medialibrary_file_access_OpenFile_0006 - * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 1. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0006, testing::ext::TestSize.Level1) +void FileAccessHelperTest::TearDown() { - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0006"; - try { - Uri newFileUri(""); - int result = g_fah->CreateFile(g_newDirUri, "medialibrary_file_access_OpenFile_0006.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd; - result = g_fah->OpenFile(newFileUri, WRITE, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0006 result:" << result; - close(fd); - result = g_fah->Delete(newFileUri); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0006"; } -/** - * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0007 - * @tc.name: medialibrary_file_access_OpenFile_0007 - * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 2. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0007, testing::ext::TestSize.Level1) +void FileAccessHelperTest::SetUp() { - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0007"; - try { - Uri newFileUri(""); - int result = g_fah->CreateFile(g_newDirUri, "medialibrary_file_access_OpenFile_0007.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int fd; - result = g_fah->OpenFile(newFileUri, WRITE_READ, fd); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "OpenFile_0007 result:" << result; - close(fd); - result = g_fah->Delete(newFileUri); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0007 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0007"; } -static void OpenFileTdd(shared_ptr fahs, Uri uri, int flag, int fd) +shared_ptr FileExtensionHelperTest::GetFileAccessHelper() { - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFileTdd"; - int ret = fahs->OpenFile(uri, flag, fd); - if (ret != OHOS::FileAccessFwk::ERR_OK) { - GTEST_LOG_(ERROR) << "OpenFileTdd get result error, code:" << ret; - return; - } - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GE(fd, OHOS::FileAccessFwk::ERR_OK); - g_num++; - close(fd); - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFileTdd"; + return g_fah; } -/** - * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0008 - * @tc.name: medialibrary_file_access_OpenFile_0008 - * @tc.desc: Test function of OpenFile interface for SUCCESS which Concurrent. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0008, testing::ext::TestSize.Level1) +static Uri GetParentUri() { - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0008"; - try { - Uri newFileUri(""); - int fd; - g_num = 0; - std::string displayName = "test1.txt"; - int result = g_fah->CreateFile(g_newDirUri, displayName, newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (int j = 0; j < INIT_THREADS_NUMBER; j++) { - std::thread execthread(OpenFileTdd, g_fah, newFileUri, WRITE_READ, fd); - execthread.join(); - } - EXPECT_EQ(g_num, INIT_THREADS_NUMBER); - result = g_fah->Delete(newFileUri); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0008 occurs an exception."; + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri parentUri(""); + if (info.size() > OHOS::FileAccessFwk::ERR_OK) { + parentUri = Uri(info[0].uri + "/file"); + GTEST_LOG_(ERROR) << parentUri.ToString(); } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0008"; + return parentUri; } /** @@ -989,9 +704,9 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0001, testing::ext: try { Uri newDirUriTest1(""); Uri newDirUriTest2(""); - int result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest1); + int result = g_fah->Mkdir(g_newDirUri, "test3", newDirUriTest1); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(g_newDirUri, "test2", newDirUriTest2); + result = g_fah->Mkdir(g_newDirUri, "test4", newDirUriTest2); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri testUri(""); result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); @@ -1054,15 +769,15 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0003, testing::ext: try { Uri newDirUriTest1(""); Uri newDirUriTest2(""); - int result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest1); + int result = g_fah->Mkdir(g_newDirUri, "test5", newDirUriTest1); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(g_newDirUri, "test2", newDirUriTest2); + result = g_fah->Mkdir(g_newDirUri, "test6", newDirUriTest2); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri testUri(""); result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri testUri2(""); - Uri sourceFileUri("storage/media/100/local/files/Download/test1/test.txt"); + Uri sourceFileUri("storage/media/100/local/files/Download/test5/test.txt"); result = g_fah->Move(sourceFileUri, newDirUriTest2, testUri2); EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0003 result:" << result; @@ -1152,15 +867,15 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0006, testing::ext: try { Uri newDirUriTest1(""); Uri newDirUriTest2(""); - int result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest1); + int result = g_fah->Mkdir(g_newDirUri, "test7", newDirUriTest1); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(g_newDirUri, "test2", newDirUriTest2); + result = g_fah->Mkdir(g_newDirUri, "test8", newDirUriTest2); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri testUri(""); result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri testUri2(""); - Uri targetParentUri("storage/media/100/local/files/Download/test2"); + Uri targetParentUri("storage/media/100/local/files/Download/test8"); result = g_fah->Move(testUri, targetParentUri, testUri2); EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0006 result:" << result; @@ -1189,9 +904,9 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Move_0007, testing::ext: try { Uri newDirUriTest1(""); Uri newDirUriTest2(""); - int result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest1); + int result = g_fah->Mkdir(g_newDirUri, "test9", newDirUriTest1); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->Mkdir(g_newDirUri, "test2", newDirUriTest2); + result = g_fah->Mkdir(g_newDirUri, "test10", newDirUriTest2); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri testUri(""); result = g_fah->CreateFile(newDirUriTest1, "test.txt", testUri); @@ -1440,22 +1155,22 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0001, testing::ext: int result = g_fah->Mkdir(g_newDirUri, "Copy_0001_src", srcUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri aFileUri(""); - result = g_fah->CreateFile(srcUri, "a.txt", aFileUri); + result = g_fah->CreateFile(srcUri, "b.txt", aFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); int fd; result = g_fah->OpenFile(aFileUri, WRITE_READ, fd); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string aFileBuff = "Copy test content for a.txt"; + std::string aFileBuff = "Copy test content for b.txt"; ssize_t aFileSize = write(fd, aFileBuff.c_str(), aFileBuff.size()); close(fd); EXPECT_EQ(aFileSize, aFileBuff.size()); Uri bFileUri(""); - result = g_fah->CreateFile(srcUri, "b.txt", bFileUri); + result = g_fah->CreateFile(srcUri, "c.txt", bFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); result = g_fah->OpenFile(bFileUri, WRITE_READ, fd); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string bFileBuff = "Copy test content for b.txt"; + std::string bFileBuff = "Copy test content for c.txt"; ssize_t bFileSize = write(fd, bFileBuff.c_str(), bFileBuff.size()); close(fd); EXPECT_EQ(bFileSize, bFileBuff.size()); @@ -1544,12 +1259,12 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0003, testing::ext: int result = g_fah->Mkdir(g_newDirUri, "Copy_0003_src", srcUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri srcFileUri(""); - result = g_fah->CreateFile(srcUri, "a.txt", srcFileUri); + result = g_fah->CreateFile(srcUri, "d.txt", srcFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); int fd; result = g_fah->OpenFile(srcFileUri, WRITE_READ, fd); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string aFileBuff = "Copy test content for a.txt"; + std::string aFileBuff = "Copy test content for d.txt"; ssize_t aFileSize = write(fd, aFileBuff.c_str(), aFileBuff.size()); close(fd); EXPECT_EQ(aFileSize, aFileBuff.size()); @@ -1558,7 +1273,7 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0003, testing::ext: result = g_fah->Mkdir(g_newDirUri, "Copy_0003_dest_true", destUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri destFileUri(""); - result = g_fah->CreateFile(destUri, "a.txt", destFileUri); + result = g_fah->CreateFile(destUri, "d.txt", destFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); vector copyResult; @@ -1593,22 +1308,22 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0004, testing::ext: EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri aFileUri(""); - result = g_fah->CreateFile(srcUri, "a.txt", aFileUri); + result = g_fah->CreateFile(srcUri, "e.txt", aFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); int fd; result = g_fah->OpenFile(aFileUri, WRITE_READ, fd); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string aFileBuff = "Copy test content for a.txt"; + std::string aFileBuff = "Copy test content for e.txt"; ssize_t aFileSize = write(fd, aFileBuff.c_str(), aFileBuff.size()); close(fd); EXPECT_EQ(aFileSize, aFileBuff.size()); Uri bFileUri(""); - result = g_fah->CreateFile(srcUri, "b.txt", bFileUri); + result = g_fah->CreateFile(srcUri, "f.txt", bFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); result = g_fah->OpenFile(bFileUri, WRITE_READ, fd); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string bFileBuff = "Copy test content for b.txt"; + std::string bFileBuff = "Copy test content for f.txt"; ssize_t bFileSize = write(fd, bFileBuff.c_str(), bFileBuff.size()); close(fd); EXPECT_EQ(bFileSize, bFileBuff.size()); @@ -1620,7 +1335,7 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0004, testing::ext: result = g_fah->Mkdir(destUri, "Copy_0004_src", destSrcUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri destSrcAUri(""); - result = g_fah->CreateFile(destSrcUri, "a.txt", destSrcAUri); + result = g_fah->CreateFile(destSrcUri, "e.txt", destSrcAUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); vector copyResult; @@ -1656,22 +1371,22 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0005, testing::ext: EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri aFileUri(""); - result = g_fah->CreateFile(srcUri, "a.txt", aFileUri); + result = g_fah->CreateFile(srcUri, "g.txt", aFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); int fd; result = g_fah->OpenFile(aFileUri, WRITE_READ, fd); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string aFileBuff = "Copy test content for a.txt"; + std::string aFileBuff = "Copy test content for g.txt"; ssize_t aFileSize = write(fd, aFileBuff.c_str(), aFileBuff.size()); close(fd); EXPECT_EQ(aFileSize, aFileBuff.size()); Uri bFileUri(""); - result = g_fah->CreateFile(srcUri, "b.txt", bFileUri); + result = g_fah->CreateFile(srcUri, "h.txt", bFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); result = g_fah->OpenFile(bFileUri, WRITE_READ, fd); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string bFileBuff = "Copy test content for b.txt"; + std::string bFileBuff = "Copy test content for h.txt"; ssize_t bFileSize = write(fd, bFileBuff.c_str(), bFileBuff.size()); close(fd); EXPECT_EQ(bFileSize, bFileBuff.size()); @@ -1683,7 +1398,7 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0005, testing::ext: result = g_fah->Mkdir(destUri, "Copy_0005_src", destSrcUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri destSrcAUri(""); - result = g_fah->CreateFile(destSrcUri, "a.txt", destSrcAUri); + result = g_fah->CreateFile(destSrcUri, "g.txt", destSrcAUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); vector copyResult; @@ -1717,12 +1432,12 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0006, testing::ext: int result = g_fah->Mkdir(g_newDirUri, "Copy_0006_src", srcUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri srcFileUri(""); - result = g_fah->CreateFile(srcUri, "a.txt", srcFileUri); + result = g_fah->CreateFile(srcUri, "i.txt", srcFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); int fd; result = g_fah->OpenFile(srcFileUri, WRITE_READ, fd); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string aFileBuff = "Copy test content for a.txt"; + std::string aFileBuff = "Copy test content for i.txt"; ssize_t aFileSize = write(fd, aFileBuff.c_str(), aFileBuff.size()); close(fd); EXPECT_EQ(aFileSize, aFileBuff.size()); @@ -1731,7 +1446,7 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0006, testing::ext: result = g_fah->Mkdir(g_newDirUri, "Copy_0006_dest_false", destUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri destFileUri(""); - result = g_fah->CreateFile(destUri, "a.txt", destFileUri); + result = g_fah->CreateFile(destUri, "i.txt", destFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); vector copyResult; @@ -1767,22 +1482,22 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0007, testing::ext: EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri aFileUri(""); - result = g_fah->CreateFile(srcUri, "a.txt", aFileUri); + result = g_fah->CreateFile(srcUri, "j.txt", aFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); int fd; result = g_fah->OpenFile(aFileUri, WRITE_READ, fd); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string aFileBuff = "Copy test content for a.txt"; + std::string aFileBuff = "Copy test content for j.txt"; ssize_t aFileSize = write(fd, aFileBuff.c_str(), aFileBuff.size()); close(fd); EXPECT_EQ(aFileSize, aFileBuff.size()); Uri bFileUri(""); - result = g_fah->CreateFile(srcUri, "b.txt", bFileUri); + result = g_fah->CreateFile(srcUri, "k.txt", bFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); result = g_fah->OpenFile(bFileUri, WRITE_READ, fd); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - std::string bFileBuff = "Copy test content for b.txt"; + std::string bFileBuff = "Copy test content for k.txt"; ssize_t bFileSize = write(fd, bFileBuff.c_str(), bFileBuff.size()); close(fd); EXPECT_EQ(bFileSize, bFileBuff.size()); @@ -1794,7 +1509,7 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0007, testing::ext: result = g_fah->Mkdir(destUri, "Copy_0007_src", destSrcUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri destSrcAUri(""); - result = g_fah->CreateFile(destSrcUri, "a.txt", destSrcAUri); + result = g_fah->CreateFile(destSrcUri, "j.txt", destSrcAUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); vector copyResult; @@ -1813,285 +1528,66 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Copy_0007, testing::ext: } /** - * @tc.number: user_file_service_medialibrary_file_access_Rename_0000 - * @tc.name: medialibrary_file_access_Rename_0000 - * @tc.desc: Test function of Rename interface for SUCCESS which rename file. + * @tc.number: user_file_service_medialibrary_file_access_ListFile_0000 + * @tc.name: medialibrary_file_access_ListFile_0000 + * @tc.desc: Test function of ListFile interface for SUCCESS. * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 * @tc.require: SR000H0386 */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0000, testing::ext::TestSize.Level1) +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ListFile_0000, testing::ext::TestSize.Level1) { - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0000"; + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ListFile_0000"; try { Uri newDirUriTest(""); int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); + result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ListFile_0000.txt", testUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri renameUri(""); - result = g_fah->Rename(testUri, "test2.txt", renameUri); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Rename_0000 result:" << result; + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 0; + int64_t maxCount = 1000; + std::vector fileInfoVec; + FileFilter filter; + result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GT(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "ListFile_0000 result:" << fileInfoVec.size() << endl; result = g_fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0000 occurs an exception."; + GTEST_LOG_(ERROR) << "medialibrary_file_access_ListFile_0000 occurs an exception."; } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0000"; + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ListFile_0000"; } /** - * @tc.number: user_file_service_medialibrary_file_access_Rename_0001 - * @tc.name: medialibrary_file_access_Rename_0001 - * @tc.desc: Test function of Rename interface for SUCCESS which rename folder. + * @tc.number: user_file_service_medialibrary_file_access_ListFile_0001 + * @tc.name: medialibrary_file_access_ListFile_0001 + * @tc.desc: Test function of ListFile interface for ERROR which Uri is nullptr. * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 * @tc.require: SR000H0386 */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0001, testing::ext::TestSize.Level1) +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ListFile_0001, testing::ext::TestSize.Level1) { - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0001"; + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ListFile_0001"; try { - Uri newDirUriTest(""); - int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri renameUri(""); - result = g_fah->Rename(newDirUriTest, "testRename", renameUri); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Rename_0001 result:" << result; - result = g_fah->Delete(renameUri); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0001"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_Rename_0002 - * @tc.name: medialibrary_file_access_Rename_0002 - * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is null. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0002"; - try { - Uri renameUri(""); - Uri sourceFileUri(""); - int result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Rename_0002 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0002"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_Rename_0003 - * @tc.name: medialibrary_file_access_Rename_0003 - * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is absolute path. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0003"; - try { - Uri newDirUriTest(""); - int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri renameUri(""); - Uri sourceFileUri("storage/media/100/local/files/Download/test/test.txt"); - result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Rename_0003 result:" << result; - result = g_fah->Delete(newDirUriTest); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0003"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_Rename_0004 - * @tc.name: medialibrary_file_access_Rename_0004 - * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is special symbols. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0004"; - try { - Uri renameUri(""); - Uri sourceFileUri("~!@#$%^&*()_"); - int result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Rename_0004 result:" << result; - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0004"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_Rename_0005 - * @tc.name: medialibrary_file_access_Rename_0005 - * @tc.desc: Test function of Rename interface for ERROR which displayName is null. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0005"; - try { - Uri newDirUriTest(""); - int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri renameUri(""); - result = g_fah->Rename(testUri, "", renameUri); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "Rename_0005 result:" << result; - result = g_fah->Delete(newDirUriTest); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0005"; -} - -static void RenameTdd(shared_ptr fahs, Uri sourceFile, std::string displayName, Uri newFile) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_RenameTdd"; - int ret = fahs->Rename(sourceFile, displayName, newFile); - if (ret != OHOS::FileAccessFwk::ERR_OK) { - GTEST_LOG_(ERROR) << "RenameTdd get result error, code:" << ret; - return; - } - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - EXPECT_NE(newFile.ToString(), ""); - g_num++; - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_RenameTdd"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_Rename_0006 - * @tc.name: medialibrary_file_access_Rename_0006 - * @tc.desc: Test function of Rename interface for SUCCESS which Concurrent. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0006, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0006"; - try { - Uri newDirUriTest(""); - int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri{""}; - std::string displayName1 = "test1.txt"; - std::string displayName2 = "test2.txt"; - Uri renameUri(""); - result = g_fah->CreateFile(newDirUriTest, displayName1, testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (int j = 0; j < INIT_THREADS_NUMBER; j++) { - std::thread execthread(RenameTdd, g_fah, testUri, displayName2, renameUri); - execthread.join(); - } - EXPECT_GE(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); - result = g_fah->Delete(newDirUriTest); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0006"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_ListFile_0000 - * @tc.name: medialibrary_file_access_ListFile_0000 - * @tc.desc: Test function of ListFile interface for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ListFile_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ListFile_0000"; - try { - Uri newDirUriTest(""); - int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ListFile_0000.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 0; - int64_t maxCount = 1000; - std::vector fileInfoVec; - FileFilter filter; - result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GT(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "ListFile_0000 result:" << fileInfoVec.size() << endl; - result = g_fah->Delete(newDirUriTest); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_ListFile_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ListFile_0000"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_ListFile_0001 - * @tc.name: medialibrary_file_access_ListFile_0001 - * @tc.desc: Test function of ListFile interface for ERROR which Uri is nullptr. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ListFile_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ListFile_0001"; - try { - Uri sourceFileUri(""); - FileInfo fileInfo; - fileInfo.uri = sourceFileUri.ToString(); - int64_t offset = 0; - int64_t maxCount = 1000; - vector fileInfoVec; - FileFilter filter({}, {}, {}, -1, -1, false, false); - int result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << "ListFile_0001 result:" << fileInfoVec.size() << endl; + Uri sourceFileUri(""); + FileInfo fileInfo; + fileInfo.uri = sourceFileUri.ToString(); + int64_t offset = 0; + int64_t maxCount = 1000; + vector fileInfoVec; + FileFilter filter({}, {}, {}, -1, -1, false, false); + int result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "ListFile_0001 result:" << fileInfoVec.size() << endl; } catch (...) { GTEST_LOG_(ERROR) << "medialibrary_file_access_ListFile_0001 occurs an exception."; } @@ -2261,1019 +1757,4 @@ HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ListFile_0005, testing:: } GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ListFile_0005"; } - -/** - * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0000 - * @tc.name: medialibrary_file_access_ScanFile_0000 - * @tc.desc: Test function of ScanFile interface for SUCCESS which scan root directory with filter. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HB866 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0000"; - try { - Uri newDirUriTest(""); - int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - FileInfo fileInfo; - result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.q1w2e3r4", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - fileInfo.uri = "file://media/root"; - int64_t offset = 0; - int64_t maxCount = 1000; - std::vector fileInfoVec; - FileFilter filter({".q1w2e3r4"}, {}, {}, -1, -1, false, true); - result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GE(fileInfoVec.size(), 1); - GTEST_LOG_(INFO) << "ScanFile_0000 result:" << fileInfoVec.size() << endl; - result = g_fah->Delete(newDirUriTest); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0000"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0001 - * @tc.name: medialibrary_file_access_ScanFile_0001 - * @tc.desc: Test function of ScanFile interface for SUCCESS which scan root directory with no filter. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HB866 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0001"; - try { - Uri newDirUriTest(""); - int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - FileInfo fileInfo; - fileInfo.uri = "file://media/root"; - result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0001.q1w2e3r4", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0001.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - int64_t offset = 0; - int64_t maxCount = 1000; - std::vector fileInfoVec; - FileFilter filter({}, {}, {}, -1, -1, false, false); - result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GE(fileInfoVec.size(), 2); - GTEST_LOG_(INFO) << "ScanFile_0000 result:" << fileInfoVec.size() << endl; - result = g_fah->Delete(newDirUriTest); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0001"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0002 - * @tc.name: medialibrary_file_access_ScanFile_0002 - * @tc.desc: Test function of ScanFile interface for SUCCESS which self created directory with filter. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HB866 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0002"; - try { - Uri newDirUriTest(""); - int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0002.q1w2e3r4", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.docx", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 0; - int64_t maxCount = 1000; - std::vector fileInfoVec; - FileFilter filter({".q1w2e3r4"}, {}, {}, -1, -1, false, true); - result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVec.size(), 1); - FileFilter filter1({".q1w2e3r4", ".txt"}, {}, {}, -1, -1, false, true); - result = g_fah->ScanFile(fileInfo, offset, maxCount, filter1, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVec.size(), 2); - GTEST_LOG_(INFO) << "ScanFile_0002 result:" << fileInfoVec.size() << endl; - result = g_fah->Delete(newDirUriTest); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0002"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0003 - * @tc.name: medialibrary_file_access_ScanFile_0003 - * @tc.desc: Test function of ScanFile interface for SUCCESS which self created directory with filter. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HB866 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0003"; - try { - Uri newDirUriTest(""); - int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0003.q1w2e3r4", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - FileInfo fileInfo; - fileInfo.uri = newDirUriTest.ToString(); - int64_t offset = 0; - int64_t maxCount = 1000; - std::vector fileInfoVec; - FileFilter filter({".q1w2e3r4"}, {}, {}, -1, -1, false, true); - result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVec.size(), 1); - GTEST_LOG_(INFO) << "ScanFile_0003 result:" << fileInfoVec.size() << endl; - result = g_fah->Delete(newDirUriTest); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0003"; -} - -static void ScanFileTdd(FileInfo fileInfo, int offset, int maxCount, FileFilter filter, - std::vector fileInfoVec) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFileTdd"; - int ret = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); - if (ret != OHOS::FileAccessFwk::ERR_OK) { - GTEST_LOG_(ERROR) << "ScanFileTdd get result error, code:" << ret; - return; - } - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVec.size(), 1); - g_num++; - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFileTdd"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0004 - * @tc.name: medialibrary_file_access_ScanFile_0004 - * @tc.desc: Test function of ScanFile interface for SUCCESS which scan root directory with Concurrent. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HB866 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0004"; - try { - Uri newDirUriTest(""); - int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - FileInfo fileInfo; - result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.q1w2e3r4", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - fileInfo.uri = "file://media/root"; - int64_t offset = 0; - int64_t maxCount = 1000; - std::vector fileInfoVec; - FileFilter filter({".q1w2e3r4"}, {}, {}, -1, -1, false, true); - g_num = 0; - for (int j = 0; j < INIT_THREADS_NUMBER; j++) { - std::thread execthread(ScanFileTdd, fileInfo, offset, maxCount, filter, fileInfoVec); - execthread.join(); - } - EXPECT_GE(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); - result = g_fah->Delete(newDirUriTest); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0004"; -} - -static bool ReplaceBundleNameFromPath(std::string &path, const std::string &newName) -{ - Uri uri(path); - std::string scheme = uri.GetScheme(); - if (scheme == FILE_SCHEME_NAME) { - std::string curName = uri.GetAuthority(); - if (curName.empty()) { - return false; - } - path.replace(path.find(curName), curName.length(), newName); - return true; - } - - std::string tPath = Uri(path).GetPath(); - if (tPath.empty()) { - GTEST_LOG_(INFO) << "Uri path error."; - return false; - } - - if (tPath.front() != '/') { - GTEST_LOG_(INFO) << "Uri path format error."; - return false; - } - - auto index = tPath.substr(1).find_first_of("/"); - auto bundleName = tPath.substr(1, index); - if (bundleName.empty()) { - GTEST_LOG_(INFO) << "bundleName empty."; - return false; - } - - path.replace(path.find(bundleName), bundleName.length(), newName); - return true; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0005 - * @tc.name: medialibrary_file_access_ScanFile_0005 - * @tc.desc: Test function of ScanFile interface for FAILED because of GetProxyByUri failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HB866 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0005"; - try { - Uri newDirUriTest(""); - int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0005.q1w2e3r4", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - std::string str = testUri.ToString(); - if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { - GTEST_LOG_(INFO) << "replace BundleName failed."; - EXPECT_TRUE(false); - } - FileInfo fileInfo; - fileInfo.uri = str; - int64_t offset = 0; - int64_t maxCount = 1000; - std::vector fileInfoVec; - FileFilter filter({".q1w2e3r4"}, {}, {}, -1, -1, false, true); - result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); - EXPECT_EQ(fileInfoVec.size(), 0); - GTEST_LOG_(INFO) << "ScanFile_0005 result:" << fileInfoVec.size() << endl; - result = g_fah->Delete(newDirUriTest); - EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0005"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_GetRoots_0000 - * @tc.name: medialibrary_file_access_GetRoots_0000 - * @tc.desc: Test function of GetRoots interface for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000H0386 - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetRoots_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_GetRoots_0000"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GT(info.size(), OHOS::FileAccessFwk::ERR_OK); - if (info.size() > OHOS::FileAccessFwk::ERR_OK) { - GTEST_LOG_(INFO) << info[0].uri; - GTEST_LOG_(INFO) << info[0].displayName; - GTEST_LOG_(INFO) << info[0].deviceType; - GTEST_LOG_(INFO) << info[0].deviceFlags; - } - string uri = "file://media/root"; - string displayName = "LOCAL"; - EXPECT_EQ(info[0].uri, uri); - EXPECT_EQ(info[0].displayName, displayName); - EXPECT_EQ(info[0].deviceType, DEVICE_LOCAL_DISK); - EXPECT_EQ(info[0].deviceFlags, DEVICE_FLAG_SUPPORTS_READ | DEVICE_FLAG_SUPPORTS_WRITE); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_GetRoots_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetRoots_0000"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0000 - * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0000 - * @tc.desc: Test function of GetFileInfoFromUri interface. - * @tc.desc: convert the root directory uri to fileinfo and call listfile for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HRLBS - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0000"; - try { - vector infos; - int result = g_fah->GetRoots(infos); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < infos.size(); i++) { - Uri parentUri(infos[i].uri); - FileInfo fileinfo; - result = g_fah->GetFileInfoFromUri(parentUri, fileinfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - int64_t offset = 0; - int64_t maxCount = 1000; - FileFilter filter; - std::vector fileInfoVecTemp; - result = g_fah->ListFile(fileinfo, offset, maxCount, filter, fileInfoVecTemp); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GE(fileInfoVecTemp.size(), OHOS::FileAccessFwk::ERR_OK); - } - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0000"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0001 - * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0001 - * @tc.desc: Test function of GetFileInfoFromUri interface. - * @tc.desc: convert the general directory uri to fileinfo and call listfile for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HRLBS - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0001"; - try { - Uri newDirUriTest(""); - int result = g_fah->Mkdir(g_newDirUri, "testDir", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - FileInfo dirInfo; - result = g_fah->GetFileInfoFromUri(newDirUriTest, dirInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - int64_t offset = 0; - int64_t maxCount = 1000; - FileFilter filter; - std::vector fileInfoVec; - result = g_fah->ListFile(dirInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GE(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0001"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0002 - * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0002 - * @tc.desc: Test function of GetFileInfoFromUri interface. - * @tc.desc: convert the regular file uri to fileinfo and call listfile for ERROR. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HRLBS - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0002"; - try { - Uri newDirUriTest(""); - int result = g_fah->Mkdir(g_newDirUri, "testDir", newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri newFileUri(""); - result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_GetFileInfoFromUri_0002.txt", newFileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - FileInfo fileinfo; - result = g_fah->GetFileInfoFromUri(newFileUri, fileinfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - int64_t offset = 0; - int64_t maxCount = 1000; - FileFilter filter; - std::vector fileInfoVecTemp; - result = g_fah->ListFile(fileinfo, offset, maxCount, filter, fileInfoVecTemp); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_EQ(fileInfoVecTemp.size(), OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->Delete(newDirUriTest); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0002"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0003 - * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0003 - * @tc.desc: Test function of GetFileInfoFromUri interface. - * @tc.desc: convert the root directory uri to fileinfo for CheckUri failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HRLBS - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0003"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - Uri parentUri(std::string("\?\?\?\?/") + info[i].uri); - FileInfo fileinfo; - result = g_fah->GetFileInfoFromUri(parentUri, fileinfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_URIS); - } - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0003"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0004 - * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0004 - * @tc.desc: Test function of GetFileInfoFromUri interface. - * @tc.desc: convert the root directory uri to fileinfo failed because of GetProxyByUri failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HRLBS - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0004"; - try { - vector info; - int result = g_fah->GetRoots(info); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - for (size_t i = 0; i < info.size(); i++) { - std::string str = info[i].uri; - if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { - GTEST_LOG_(ERROR) << "replace BundleName failed."; - EXPECT_TRUE(false); - } - Uri parentUri(str); - FileInfo fileinfo; - result = g_fah->GetFileInfoFromUri(parentUri, fileinfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); - } - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0004"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0005 - * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0005 - * @tc.desc: Test function of GetFileInfoFromUri interface. - * @tc.desc: convert the invalid uri to fileinfo failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HRLBS - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0005"; - try { - Uri uri("~!@#$%^&*()_"); - FileInfo fileInfo; - int result = g_fah->GetFileInfoFromUri(uri, fileInfo); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - - uri = Uri("/"); - result = g_fah->GetFileInfoFromUri(uri, fileInfo); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - - uri = Uri(""); - result = g_fah->GetFileInfoFromUri(uri, fileInfo); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0005"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromRelativePath_0000 - * @tc.name: medialibrary_file_access_GetFileInfoFromRelativePath_0000 - * @tc.desc: Test function of GetFileInfoFromRelativePath interface. - * @tc.desc: convert the general directory relativePath to fileinfo for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HRLBS - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromRelativePath_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromRelativePath_0000"; - try { - FileInfo fileInfo; - string relativePath = ""; - int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - relativePath = "Audios/"; - result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - relativePath = "Camera/"; - result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - relativePath = "Documents/"; - result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - relativePath = "Download"; - result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - relativePath = "Pictures"; - result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - relativePath = "Videos"; - result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromRelativePath_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetFileInfoFromRelativePath_0000"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromRelativePath_0001 - * @tc.name: medialibrary_file_access_GetFileInfoFromRelativePath_0001 - * @tc.desc: Test function of GetFileInfoFromRelativePath interface. - * @tc.desc: convert the general directory relativePath to fileinfo for failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HRLBS - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromRelativePath_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromRelativePath_0001"; - try { - FileInfo fileInfo; - string relativePath = "test/"; - int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - - relativePath = "/"; - result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - - relativePath = "~!@#$%^&*()_"; - result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - - relativePath = "/d"; - result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromRelativePath_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetFileInfoFromRelativePath_0001"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromRelativePath_0002 - * @tc.name: medialibrary_file_access_GetFileInfoFromRelativePath_0002 - * @tc.desc: Test function of GetFileInfoFromRelativePath interface. - * @tc.desc: convert the general directory relativePath to fileinfo and call listfile for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HRLBS - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromRelativePath_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromRelativePath_0002"; - try { - FileInfo fileInfo; - string relativePath = "Download/"; - int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri parentUri(fileInfo.uri); - Uri newFile(""); - result = g_fah->CreateFile(parentUri, "GetFileInfoFromRelativePath_0002.jpg", newFile); - ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - int64_t offset = 0; - int64_t maxCount = 1000; - FileFilter filter; - std::vector fileInfoVec; - result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GT(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->Delete(newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromRelativePath_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetFileInfoFromRelativePath_0002"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromRelativePath_0003 - * @tc.name: medialibrary_file_access_GetFileInfoFromRelativePath_0003 - * @tc.desc: Test function of GetFileInfoFromRelativePath interface. - * @tc.desc: convert the relative file path to fileinfo and call listfile for failed. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HRLBS - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromRelativePath_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromRelativePath_0003"; - try { - FileInfo fileInfo; - string relativePath = "Download/"; - int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri parentUri(fileInfo.uri); - Uri newFile(""); - result = g_fah->CreateFile(parentUri, "GetFileInfoFromRelativePath_0003.jpg", newFile); - ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - relativePath = "Download/GetFileInfoFromRelativePath_0003.jpg"; - result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - int64_t offset = 0; - int64_t maxCount = 1000; - FileFilter filter; - std::vector fileInfoVec; - result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->Delete(newFile); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromRelativePath_0003 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetFileInfoFromRelativePath_0003"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromRelativePath_0004 - * @tc.name: medialibrary_file_access_GetFileInfoFromRelativePath_0004 - * @tc.desc: Test function of GetFileInfoFromRelativePath interface. - * @tc.desc: convert the relative directory path to fileinfo and call listfile for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: SR000HRLBS - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromRelativePath_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromRelativePath_0004"; - try { - FileInfo fileInfo; - string relativePath = "Download/"; - int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri parentUri(fileInfo.uri); - Uri newDir(""); - result = g_fah->Mkdir(parentUri, "DirGetFileInfoFromRelativePath_0004", newDir); - ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - Uri fileUri(""); - result = g_fah->CreateFile(newDir, "file1.jpg", fileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->CreateFile(newDir, "file2.jpg", fileUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - relativePath = "Download/DirGetFileInfoFromRelativePath_0004"; - result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - - int64_t offset = 0; - int64_t maxCount = 1000; - FileFilter filter; - std::vector fileInfoVec; - result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - EXPECT_GT(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK); - - result = g_fah->Delete(newDir); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromRelativePath_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetFileInfoFromRelativePath_0004"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_Query_0000 - * @tc.name: medialibrary_file_access_Query_0000 - * @tc.desc: Test function of Query directory for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I6S4VV - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0000"; - try { - FileAccessFwk::FileInfo fileInfo; - std::string relativePath = "Documents/"; - std::string displayName = "Documents"; - int targetSize = 46; - int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri dirUriTest(fileInfo.uri); - - json testJson = { - {RELATIVE_PATH, " "}, - {DISPLAY_NAME, " "}, - {FILE_SIZE, " "}, - {DATE_MODIFIED, " "}, - {DATE_ADDED, " "} - }; - auto testJsonString = testJson.dump(); - int ret = g_fah->Query(dirUriTest, testJsonString); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - auto jsonObject = json::parse(testJsonString); - EXPECT_EQ(jsonObject.at(DISPLAY_NAME), displayName); - EXPECT_EQ(jsonObject.at(FILE_SIZE), targetSize); - ASSERT_TRUE(jsonObject.at(DATE_MODIFIED) > 0); - ASSERT_TRUE(jsonObject.at(DATE_ADDED) > 0); - GTEST_LOG_(INFO) << testJsonString; - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0000 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0000"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_Query_0001 - * @tc.name: medialibrary_file_access_Query_0001 - * @tc.desc: Test function of Query file for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I6S4VV - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0001, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0001"; - try { - FileAccessFwk::FileInfo fileInfo; - std::string relativePath = "Documents/Test/"; - std::string displayName = "CreateQueryTest_002.txt"; - int targetSize = 23; - std::string filePath = "Documents/Test/CreateQueryTest_002.txt"; - int ret = g_fah->GetFileInfoFromRelativePath(filePath, fileInfo); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(fileInfo.uri); - - json testJson = { - {RELATIVE_PATH, " "}, - {DISPLAY_NAME, " "}, - {FILE_SIZE, " "}, - {DATE_MODIFIED, " "}, - {DATE_ADDED, " "} - }; - auto testJsonString = testJson.dump(); - ret = g_fah->Query(testUri, testJsonString); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - GTEST_LOG_(INFO) << testJsonString; - auto jsonObject = json::parse(testJsonString); - EXPECT_EQ(jsonObject.at(RELATIVE_PATH), relativePath); - EXPECT_EQ(jsonObject.at(DISPLAY_NAME), displayName); - EXPECT_EQ(jsonObject.at(FILE_SIZE), targetSize); - ASSERT_TRUE(jsonObject.at(DATE_MODIFIED) > 0); - ASSERT_TRUE(jsonObject.at(DATE_ADDED) > 0); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0001 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0001"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_Query_0002 - * @tc.name: medialibrary_file_access_Query_0002 - * @tc.desc: Test function of Query directory size for SUCCESS. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0002, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0002"; - try { - FileAccessFwk::FileInfo fileInfo; - std::string relativePath = "Documents/"; - std::string displayName = "Documents"; - int targetSize = 46; - int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - Uri dirUriTest(fileInfo.uri); - - json testJson = { - {FILE_SIZE, " "} - }; - auto testJsonString = testJson.dump(); - int ret = g_fah->Query(dirUriTest, testJsonString); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - auto jsonObject = json::parse(testJsonString); - EXPECT_EQ(jsonObject.at(FILE_SIZE), targetSize); - GTEST_LOG_(INFO) << testJsonString; - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0002 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0002"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_Query_0003 - * @tc.name: medialibrary_file_access_Query_0003 - * @tc.desc: Test function of Query interface for ERROR which Uri is unreadable code. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I6S4VV - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0003, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0003"; - try { - Uri testUri("&*()*/?"); - json testJson = { - {RELATIVE_PATH, " "}, - {DISPLAY_NAME, " "} - }; - auto testJsonString = testJson.dump(); - int ret = g_fah->Query(testUri, testJsonString); - EXPECT_NE(ret, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0003"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_Query_0004 - * @tc.name: medialibrary_file_access_Query_0004 - * @tc.desc: Test function of Query interface for which all column nonexistence. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I6S4VV - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0004, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0004"; - try { - Uri newDirUriTest(""); - std::string fileName = "test.txt"; - int ret = g_fah->Mkdir(g_newDirUri, "Query004", newDirUriTest); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - ret = g_fah->CreateFile(newDirUriTest, fileName, testUri); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - json testJson = { - {"001", " "}, - {"#", " "}, - {"test", " "}, - {"target", " "} - }; - auto testJsonString = testJson.dump(); - ret = g_fah->Query(testUri, testJsonString); - EXPECT_NE(ret, OHOS::FileAccessFwk::ERR_OK); - ret = g_fah->Delete(newDirUriTest); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0004 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0004"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_Query_0005 - * @tc.name: medialibrary_file_access_Query_0005 - * @tc.desc: Test function of Query interface for which part of column nonexistence. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I6S4VV - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0005, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0005"; - try { - Uri newDirUriTest(""); - std::string fileName = "test.txt"; - int ret = g_fah->Mkdir(g_newDirUri, "Query005", newDirUriTest); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - ret = g_fah->CreateFile(newDirUriTest, fileName, testUri); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - json testJson = { - {RELATIVE_PATH, " "}, - {DISPLAY_NAME, " "}, - {"test", " "} - }; - auto testJsonString = testJson.dump(); - ret = g_fah->Query(testUri, testJsonString); - EXPECT_NE(ret, OHOS::FileAccessFwk::ERR_OK); - ret = g_fah->Delete(newDirUriTest); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0005 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0005"; -} - -/** - * @tc.number: user_file_service_medialibrary_file_access_Query_0006 - * @tc.name: medialibrary_file_access_Query_0006 - * @tc.desc: Test function of Query interface for which column is null. - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: I6S4VV - */ -HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0006, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0006"; - try { - Uri newDirUriTest(""); - std::string fileName = "test.txt"; - std::string relativePath = "test/test.txt"; - int ret = g_fah->Mkdir(g_newDirUri, "Query006", newDirUriTest); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - Uri testUri(""); - ret = g_fah->CreateFile(newDirUriTest, fileName, testUri); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - json testJson; - auto testJsonString = testJson.dump(); - ret = g_fah->Query(testUri, testJsonString); - EXPECT_NE(ret, OHOS::FileAccessFwk::ERR_OK); - ret = g_fah->Delete(newDirUriTest); - EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); - } catch (...) { - GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0006 occurs an exception."; - } - GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0006"; -} } // namespace diff --git a/test/unittest/medialibrary_file_access_test_basic.h b/test/unittest/medialibrary_file_access_test_basic.h new file mode 100644 index 00000000..f89cd31b --- /dev/null +++ b/test/unittest/medialibrary_file_access_test_basic.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef OHOS_MEDIALIBRARY_FILE_ACCESS_TEST_BASIC_H +#define OHOS_MEDIALIBRARY_FILE_ACCESS_TEST_BASIC_H + +#include + +namespace OHOS { +namespace FileAccessFwk { +class FileAccessHelperTest : public testing::Test { +public: + static void SetUpTestCase(); + static void TearDownTestCase(); + void SetUp() override; + void TearDown() override; + static shared_ptr GetFileAccessHelper(); +}; +} // namespace FileAccessFwk +} // namespace OHOS + +#endif // OHOS_MEDIALIBRARY_FILE_ACCESS_TEST_H diff --git a/test/unittest/medialibrary_file_access_test_info.cpp b/test/unittest/medialibrary_file_access_test_info.cpp new file mode 100644 index 00000000..9224d8df --- /dev/null +++ b/test/unittest/medialibrary_file_access_test_info.cpp @@ -0,0 +1,1605 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include + +#include +#include + +#include "medialibrary_file_access_test_basic.h" +#include "accesstoken_kit.h" +#include "file_access_extension_info.h" +#include "file_access_framework_errno.h" +#include "file_access_helper.h" +#include "iservice_registry.h" +#include "image_source.h" +#include "nativetoken_kit.h" +#include "token_setproc.h" + +namespace OHOS::FileAccessFwk { +using json = nlohmann::json; +const int INIT_THREADS_NUMBER = 4; +const int ACTUAL_SUCCESS_THREADS_NUMBER = 1; +int g_num = 0; +shared_ptr g_fah = nullptr; +Uri g_newDirUri(""); + +/** + * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0000 + * @tc.name: medialibrary_file_access_OpenFile_0000 + * @tc.desc: Test function of OpenFile interface for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0000"; + try { + Uri parentUri = GetParentUri(); + bool isExist = false; + int result = g_fah->Access(g_newDirUri, isExist); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + if (!isExist) { + result = g_fah->Mkdir(parentUri, "Download", g_newDirUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + } + Uri newDirUriTest("file://media/root/file"); + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 0; + int64_t maxCount = 1000; + std::vector fileInfoVec; + FileFilter filter; + result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GE(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < fileInfoVec.size(); i++) { + if (fileInfoVec[i].fileName.compare("Download") == 0) { + g_newDirUri = Uri(fileInfoVec[i].uri); + break; + } + } + result = g_fah->Mkdir(g_newDirUri, "test1", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri(""); + result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_OpenFile_0000.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd; + result = g_fah->OpenFile(newFileUri, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0000 result:" << result; + close(fd); + result = g_fah->Delete(newDirUriTest); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_accsess_OpenFile_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0000"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0001 + * @tc.name: medialibrary_file_access_OpenFile_0001 + * @tc.desc: Test function of OpenFile interface for ERROR which Uri is null. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0001"; + try { + Uri uri(""); + int fd; + int result = g_fah->OpenFile(uri, WRITE_READ, fd); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0001 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0001"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0002 + * @tc.name: medialibrary_file_access_OpenFile_0002 + * @tc.desc: Test function of OpenFile interface for ERROR which Uri is absolute path. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0002"; + try { + Uri uri("storage/media/100/local/files/Download/medialibrary_file_access_OpenFile_0002.txt"); + int fd; + int result = g_fah->OpenFile(uri, WRITE_READ, fd); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0002 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0002"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0003 + * @tc.name: medialibrary_file_access_OpenFile_0003 + * @tc.desc: Test function of OpenFile interface for ERROR which Uri is special symbols. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0003"; + try { + Uri uri("~!@#$%^&*()_"); + int fd; + int result = g_fah->OpenFile(uri, WRITE_READ, fd); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0003 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0003"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0004 + * @tc.name: medialibrary_file_access_OpenFile_0004 + * @tc.desc: Test function of OpenFile interface for ERROR which flag is -1. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0004"; + try { + Uri newFileUri(""); + int result = g_fah->CreateFile(g_newDirUri, "medialibrary_file_access_OpenFile_0004.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd; + int flag = -1; + result = g_fah->OpenFile(newFileUri, flag, fd); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0004 result:" << result; + result = g_fah->Delete(newFileUri); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0004"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0005 + * @tc.name: medialibrary_file_access_OpenFile_0005 + * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 0. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0005"; + try { + Uri newFileUri(""); + int result = g_fah->CreateFile(g_newDirUri, "medialibrary_file_access_OpenFile_0005.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd; + result = g_fah->OpenFile(newFileUri, READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0005 result:" << result; + close(fd); + result = g_fah->Delete(newFileUri); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0005"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0006 + * @tc.name: medialibrary_file_access_OpenFile_0006 + * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 1. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0006, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0006"; + try { + Uri newFileUri(""); + int result = g_fah->CreateFile(g_newDirUri, "medialibrary_file_access_OpenFile_0006.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd; + result = g_fah->OpenFile(newFileUri, WRITE, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0006 result:" << result; + close(fd); + result = g_fah->Delete(newFileUri); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0006"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0007 + * @tc.name: medialibrary_file_access_OpenFile_0007 + * @tc.desc: Test function of OpenFile interface for SUCCESS which flag is 2. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0007, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0007"; + try { + Uri newFileUri(""); + int result = g_fah->CreateFile(g_newDirUri, "medialibrary_file_access_OpenFile_0007.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int fd; + result = g_fah->OpenFile(newFileUri, WRITE_READ, fd); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "OpenFile_0007 result:" << result; + close(fd); + result = g_fah->Delete(newFileUri); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0007 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0007"; +} + +static void OpenFileTdd(shared_ptr fahs, Uri uri, int flag, int fd) +{ + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFileTdd"; + int ret = fahs->OpenFile(uri, flag, fd); + if (ret != OHOS::FileAccessFwk::ERR_OK) { + GTEST_LOG_(ERROR) << "OpenFileTdd get result error, code:" << ret; + return; + } + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GE(fd, OHOS::FileAccessFwk::ERR_OK); + g_num++; + close(fd); + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFileTdd"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_OpenFile_0008 + * @tc.name: medialibrary_file_access_OpenFile_0008 + * @tc.desc: Test function of OpenFile interface for SUCCESS which Concurrent. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_OpenFile_0008, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_OpenFile_0008"; + try { + Uri newFileUri(""); + int fd; + g_num = 0; + std::string displayName = "test1.txt"; + int result = g_fah->CreateFile(g_newDirUri, displayName, newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (int j = 0; j < INIT_THREADS_NUMBER; j++) { + std::thread execthread(OpenFileTdd, g_fah, newFileUri, WRITE_READ, fd); + execthread.join(); + } + EXPECT_EQ(g_num, INIT_THREADS_NUMBER); + result = g_fah->Delete(newFileUri); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_OpenFile_0008 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_OpenFile_0008"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_Rename_0000 + * @tc.name: medialibrary_file_access_Rename_0000 + * @tc.desc: Test function of Rename interface for SUCCESS which rename file. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0000"; + try { + Uri newDirUriTest(""); + int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri renameUri(""); + result = g_fah->Rename(testUri, "test2.txt", renameUri); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Rename_0000 result:" << result; + result = g_fah->Delete(newDirUriTest); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0000"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_Rename_0001 + * @tc.name: medialibrary_file_access_Rename_0001 + * @tc.desc: Test function of Rename interface for SUCCESS which rename folder. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0001"; + try { + Uri newDirUriTest(""); + int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri renameUri(""); + result = g_fah->Rename(newDirUriTest, "testRename", renameUri); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Rename_0001 result:" << result; + result = g_fah->Delete(renameUri); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0001"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_Rename_0002 + * @tc.name: medialibrary_file_access_Rename_0002 + * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is null. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0002"; + try { + Uri renameUri(""); + Uri sourceFileUri(""); + int result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Rename_0002 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0002"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_Rename_0003 + * @tc.name: medialibrary_file_access_Rename_0003 + * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is absolute path. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0003"; + try { + Uri newDirUriTest(""); + int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri renameUri(""); + Uri sourceFileUri("storage/media/100/local/files/Download/test/test.txt"); + result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Rename_0003 result:" << result; + result = g_fah->Delete(newDirUriTest); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0003"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_Rename_0004 + * @tc.name: medialibrary_file_access_Rename_0004 + * @tc.desc: Test function of Rename interface for ERROR which sourceFileUri is special symbols. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0004"; + try { + Uri renameUri(""); + Uri sourceFileUri("~!@#$%^&*()_"); + int result = g_fah->Rename(sourceFileUri, "testRename.txt", renameUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Rename_0004 result:" << result; + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0004"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_Rename_0005 + * @tc.name: medialibrary_file_access_Rename_0005 + * @tc.desc: Test function of Rename interface for ERROR which displayName is null. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0005"; + try { + Uri newDirUriTest(""); + int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "test.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri renameUri(""); + result = g_fah->Rename(testUri, "", renameUri); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << "Rename_0005 result:" << result; + result = g_fah->Delete(newDirUriTest); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0005"; +} + +static void RenameTdd(shared_ptr fahs, Uri sourceFile, std::string displayName, Uri newFile) +{ + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_RenameTdd"; + int ret = fahs->Rename(sourceFile, displayName, newFile); + if (ret != OHOS::FileAccessFwk::ERR_OK) { + GTEST_LOG_(ERROR) << "RenameTdd get result error, code:" << ret; + return; + } + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + EXPECT_NE(newFile.ToString(), ""); + g_num++; + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_RenameTdd"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_Rename_0006 + * @tc.name: medialibrary_file_access_Rename_0006 + * @tc.desc: Test function of Rename interface for SUCCESS which Concurrent. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Rename_0006, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Rename_0006"; + try { + Uri newDirUriTest(""); + int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri{""}; + std::string displayName1 = "test1.txt"; + std::string displayName2 = "test2.txt"; + Uri renameUri(""); + result = g_fah->CreateFile(newDirUriTest, displayName1, testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (int j = 0; j < INIT_THREADS_NUMBER; j++) { + std::thread execthread(RenameTdd, g_fah, testUri, displayName2, renameUri); + execthread.join(); + } + EXPECT_GE(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); + result = g_fah->Delete(newDirUriTest); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_Rename_0006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Rename_0006"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0000 + * @tc.name: medialibrary_file_access_ScanFile_0000 + * @tc.desc: Test function of ScanFile interface for SUCCESS which scan root directory with filter. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HB866 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0000"; + try { + Uri newDirUriTest(""); + int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + FileInfo fileInfo; + result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.q1w2e3r4", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + fileInfo.uri = "file://media/root"; + int64_t offset = 0; + int64_t maxCount = 1000; + std::vector fileInfoVec; + FileFilter filter({".q1w2e3r4"}, {}, {}, -1, -1, false, true); + result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GE(fileInfoVec.size(), 1); + GTEST_LOG_(INFO) << "ScanFile_0000 result:" << fileInfoVec.size() << endl; + result = g_fah->Delete(newDirUriTest); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0000"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0001 + * @tc.name: medialibrary_file_access_ScanFile_0001 + * @tc.desc: Test function of ScanFile interface for SUCCESS which scan root directory with no filter. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HB866 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0001"; + try { + Uri newDirUriTest(""); + int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + FileInfo fileInfo; + fileInfo.uri = "file://media/root"; + result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0001.q1w2e3r4", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0001.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + int64_t offset = 0; + int64_t maxCount = 1000; + std::vector fileInfoVec; + FileFilter filter({}, {}, {}, -1, -1, false, false); + result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GE(fileInfoVec.size(), 2); + GTEST_LOG_(INFO) << "ScanFile_0000 result:" << fileInfoVec.size() << endl; + result = g_fah->Delete(newDirUriTest); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0001"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0002 + * @tc.name: medialibrary_file_access_ScanFile_0002 + * @tc.desc: Test function of ScanFile interface for SUCCESS which self created directory with filter. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HB866 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0002"; + try { + Uri newDirUriTest(""); + int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0002.q1w2e3r4", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0000.docx", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 0; + int64_t maxCount = 1000; + std::vector fileInfoList; + FileFilter filter({".q1w2e3r4"}, {}, {}, -1, -1, false, true); + result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoList); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoList.size(), 1); + FileFilter filter1({".q1w2e3r4", ".txt"}, {}, {}, -1, -1, false, true); + result = g_fah->ScanFile(fileInfo, offset, maxCount, filter1, fileInfoList); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoList.size(), 2); + GTEST_LOG_(INFO) << "ScanFile_0002 result:" << fileInfoList.size() << endl; + result = g_fah->Delete(newDirUriTest); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0002"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0003 + * @tc.name: medialibrary_file_access_ScanFile_0003 + * @tc.desc: Test function of ScanFile interface for SUCCESS which self created directory with filter. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HB866 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0003"; + try { + Uri newDirUriTest(""); + int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0003.q1w2e3r4", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + FileInfo fileInfo; + fileInfo.uri = newDirUriTest.ToString(); + int64_t offset = 0; + int64_t maxCount = 1000; + std::vector fileInfoVec; + FileFilter filter({".q1w2e3r4"}, {}, {}, -1, -1, false, true); + result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoVec.size(), 1); + GTEST_LOG_(INFO) << "ScanFile_0003 result:" << fileInfoVec.size() << endl; + result = g_fah->Delete(newDirUriTest); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0003"; +} + +static void ScanFileTdd(FileInfo fileInfo, FileFilter filter, std::vector fileInfoVec, + shared_ptr g_fah) +{ + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFileTdd"; + int64_t offset = 0; + int64_t maxCount = 1000; + int ret = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); + if (ret != OHOS::FileAccessFwk::ERR_OK) { + GTEST_LOG_(ERROR) << "ScanFileTdd get result error, code:" << ret; + return; + } + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoVec.size(), 1); + g_num++; + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFileTdd"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0004 + * @tc.name: medialibrary_file_access_ScanFile_0004 + * @tc.desc: Test function of ScanFile interface for SUCCESS which scan root directory with Concurrent. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HB866 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0004"; + try { + Uri newDirUriTest(""); + int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + FileInfo fileInfo; + result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0004.q1w2e3r4", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0004.txt", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + fileInfo.uri = "file://media/root"; + std::vector fileInfoVec; + FileFilter filter({".q1w2e3r4"}, {}, {}, -1, -1, false, true); + g_num = 0; + for (int j = 0; j < INIT_THREADS_NUMBER; j++) { + std::thread execthread(ScanFileTdd, fileInfo, filter, fileInfoVec, g_fah); + execthread.join(); + } + EXPECT_GE(g_num, ACTUAL_SUCCESS_THREADS_NUMBER); + result = g_fah->Delete(newDirUriTest); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0004"; +} + +static bool ReplaceBundleNameFromPath(std::string &path, const std::string &newName) +{ + Uri uri(path); + std::string scheme = uri.GetScheme(); + if (scheme == FILE_SCHEME_NAME) { + std::string curName = uri.GetAuthority(); + if (curName.empty()) { + return false; + } + path.replace(path.find(curName), curName.length(), newName); + return true; + } + + std::string tPath = Uri(path).GetPath(); + if (tPath.empty()) { + GTEST_LOG_(INFO) << "Invalid Uri path."; + return false; + } + + if (tPath.front() != '/') { + GTEST_LOG_(INFO) << "Incorrect Uri path format."; + return false; + } + + auto index = tPath.substr(1).find_first_of("/"); + auto bundleName = tPath.substr(1, index); + if (bundleName.empty()) { + GTEST_LOG_(INFO) << "Missing bundleName."; + return false; + } + + path.replace(path.find(bundleName), bundleName.length(), newName); + return true; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_ScanFile_0005 + * @tc.name: medialibrary_file_access_ScanFile_0005 + * @tc.desc: Test function of ScanFile interface for FAILED because of GetProxyByUri failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HB866 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_ScanFile_0005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_ScanFile_0005"; + try { + Uri newDirUriTest(""); + int result = g_fah->Mkdir(g_newDirUri, "test", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_ScanFile_0005.q1w2e3r4", testUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + std::string str = testUri.ToString(); + if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { + GTEST_LOG_(INFO) << "replace BundleName failed."; + EXPECT_TRUE(false); + } + FileInfo fileInfo; + fileInfo.uri = str; + int64_t offset = 0; + int64_t maxCount = 1000; + std::vector fileInfoVec; + FileFilter filter({".q1w2e3r4"}, {}, {}, -1, -1, false, true); + result = g_fah->ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); + EXPECT_EQ(fileInfoVec.size(), 0); + GTEST_LOG_(INFO) << "ScanFile_0005 result:" << fileInfoVec.size() << endl; + result = g_fah->Delete(newDirUriTest); + EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_ScanFile_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_ScanFile_0005"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_GetRoots_0000 + * @tc.name: medialibrary_file_access_GetRoots_0000 + * @tc.desc: Test function of GetRoots interface for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetRoots_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_GetRoots_0000"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GT(info.size(), OHOS::FileAccessFwk::ERR_OK); + if (info.size() > OHOS::FileAccessFwk::ERR_OK) { + GTEST_LOG_(INFO) << info[0].uri; + GTEST_LOG_(INFO) << info[0].displayName; + GTEST_LOG_(INFO) << info[0].deviceType; + GTEST_LOG_(INFO) << info[0].deviceFlags; + } + string uri = "file://media/root"; + string displayName = "LOCAL"; + EXPECT_EQ(info[0].uri, uri); + EXPECT_EQ(info[0].displayName, displayName); + EXPECT_EQ(info[0].deviceType, DEVICE_LOCAL_DISK); + EXPECT_EQ(info[0].deviceFlags, DEVICE_FLAG_SUPPORTS_READ | DEVICE_FLAG_SUPPORTS_WRITE); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_GetRoots_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetRoots_0000"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0000 + * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0000 + * @tc.desc: Test function of GetFileInfoFromUri interface. + * @tc.desc: convert the root directory uri to fileinfo and call listfile for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HRLBS + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0000"; + try { + vector infos; + int result = g_fah->GetRoots(infos); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < infos.size(); i++) { + Uri parentUri(infos[i].uri); + FileInfo fileinfo; + result = g_fah->GetFileInfoFromUri(parentUri, fileinfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + int64_t offset = 0; + int64_t maxCount = 1000; + FileFilter filter; + std::vector fileInfoVecTemp; + result = g_fah->ListFile(fileinfo, offset, maxCount, filter, fileInfoVecTemp); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GE(fileInfoVecTemp.size(), OHOS::FileAccessFwk::ERR_OK); + } + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0000"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0001 + * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0001 + * @tc.desc: Test function of GetFileInfoFromUri interface. + * @tc.desc: convert the general directory uri to fileinfo and call listfile for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HRLBS + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0001"; + try { + Uri newDirUriTest(""); + int result = g_fah->Mkdir(g_newDirUri, "testDir", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + FileInfo dirInfo; + result = g_fah->GetFileInfoFromUri(newDirUriTest, dirInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + int64_t offset = 0; + int64_t maxCount = 1000; + FileFilter filter; + std::vector fileInfoVec; + result = g_fah->ListFile(dirInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GE(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK); + + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0001"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0002 + * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0002 + * @tc.desc: Test function of GetFileInfoFromUri interface. + * @tc.desc: convert the regular file uri to fileinfo and call listfile for ERROR. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HRLBS + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0002"; + try { + Uri newDirUriTest(""); + int result = g_fah->Mkdir(g_newDirUri, "testDir", newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri newFileUri(""); + result = g_fah->CreateFile(newDirUriTest, "medialibrary_file_access_GetFileInfoFromUri_0002.txt", newFileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + FileInfo fileinfo; + result = g_fah->GetFileInfoFromUri(newFileUri, fileinfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + int64_t offset = 0; + int64_t maxCount = 1000; + FileFilter filter; + std::vector fileInfoVecTemp; + result = g_fah->ListFile(fileinfo, offset, maxCount, filter, fileInfoVecTemp); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_EQ(fileInfoVecTemp.size(), OHOS::FileAccessFwk::ERR_OK); + + result = g_fah->Delete(newDirUriTest); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0002"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0003 + * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0003 + * @tc.desc: Test function of GetFileInfoFromUri interface. + * @tc.desc: convert the root directory uri to fileinfo for CheckUri failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HRLBS + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0003"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + Uri parentUri(std::string("\?\?\?\?/") + info[i].uri); + FileInfo fileinfo; + result = g_fah->GetFileInfoFromUri(parentUri, fileinfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_URIS); + } + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0003"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0004 + * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0004 + * @tc.desc: Test function of GetFileInfoFromUri interface. + * @tc.desc: convert the root directory uri to fileinfo failed because of GetProxyByUri failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HRLBS + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0004"; + try { + vector info; + int result = g_fah->GetRoots(info); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t i = 0; i < info.size(); i++) { + std::string str = info[i].uri; + if (!ReplaceBundleNameFromPath(str, "ohos.com.NotExistBundleName")) { + GTEST_LOG_(ERROR) << "replace BundleName failed."; + EXPECT_TRUE(false); + } + Uri parentUri(str); + FileInfo fileinfo; + result = g_fah->GetFileInfoFromUri(parentUri, fileinfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::E_IPCS); + } + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0004"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromUri_0005 + * @tc.name: medialibrary_file_access_GetFileInfoFromUri_0005 + * @tc.desc: Test function of GetFileInfoFromUri interface. + * @tc.desc: convert the invalid uri to fileinfo failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HRLBS + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromUri_0005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromUri_0005"; + try { + Uri uri("~!@#$%^&*()_"); + FileInfo fileInfo; + int result = g_fah->GetFileInfoFromUri(uri, fileInfo); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + + uri = Uri("/"); + result = g_fah->GetFileInfoFromUri(uri, fileInfo); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + + uri = Uri(""); + result = g_fah->GetFileInfoFromUri(uri, fileInfo); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromUri_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end medialibrary_file_access_GetFileInfoFromUri_0005"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromRelativePath_0000 + * @tc.name: medialibrary_file_access_GetFileInfoFromRelativePath_0000 + * @tc.desc: Test function of GetFileInfoFromRelativePath interface. + * @tc.desc: convert the general directory relativePath to fileinfo for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HRLBS + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromRelativePath_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromRelativePath_0000"; + try { + FileInfo fileInfo; + string relativePath = ""; + int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + relativePath = "Audios/"; + result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + relativePath = "Camera/"; + result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + relativePath = "Documents/"; + result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + relativePath = "Download"; + result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + relativePath = "Pictures"; + result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + relativePath = "Videos"; + result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromRelativePath_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetFileInfoFromRelativePath_0000"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromRelativePath_0001 + * @tc.name: medialibrary_file_access_GetFileInfoFromRelativePath_0001 + * @tc.desc: Test function of GetFileInfoFromRelativePath interface. + * @tc.desc: convert the general directory relativePath to fileinfo for failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HRLBS + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromRelativePath_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromRelativePath_0001"; + try { + FileInfo fileInfo; + string relativePath = "test/"; + int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + + relativePath = "/"; + result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + + relativePath = "~!@#$%^&*()_"; + result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + + relativePath = "/d"; + result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromRelativePath_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetFileInfoFromRelativePath_0001"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromRelativePath_0002 + * @tc.name: medialibrary_file_access_GetFileInfoFromRelativePath_0002 + * @tc.desc: Test function of GetFileInfoFromRelativePath interface. + * @tc.desc: convert the general directory relativePath to fileinfo and call listfile for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HRLBS + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromRelativePath_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromRelativePath_0002"; + try { + FileInfo fileInfo; + string relativePath = "Download/"; + int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri parentUri(fileInfo.uri); + Uri newFile(""); + result = g_fah->CreateFile(parentUri, "GetFileInfoFromRelativePath_0002.jpg", newFile); + ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + int64_t offset = 0; + int64_t maxCount = 1000; + FileFilter filter; + std::vector fileInfoVec; + result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GT(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK); + + result = g_fah->Delete(newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromRelativePath_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetFileInfoFromRelativePath_0002"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromRelativePath_0003 + * @tc.name: medialibrary_file_access_GetFileInfoFromRelativePath_0003 + * @tc.desc: Test function of GetFileInfoFromRelativePath interface. + * @tc.desc: convert the relative file path to fileinfo and call listfile for failed. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HRLBS + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromRelativePath_0003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromRelativePath_0003"; + try { + FileInfo fileInfo; + string relativePath = "Download/"; + int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri parentUri(fileInfo.uri); + Uri newFile(""); + result = g_fah->CreateFile(parentUri, "GetFileInfoFromRelativePath_0003.jpg", newFile); + ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + relativePath = "Download/GetFileInfoFromRelativePath_0003.jpg"; + result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + int64_t offset = 0; + int64_t maxCount = 1000; + FileFilter filter; + std::vector fileInfoVec; + result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_NE(result, OHOS::FileAccessFwk::ERR_OK); + + result = g_fah->Delete(newFile); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromRelativePath_0003 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetFileInfoFromRelativePath_0003"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_GetFileInfoFromRelativePath_0004 + * @tc.name: medialibrary_file_access_GetFileInfoFromRelativePath_0004 + * @tc.desc: Test function of GetFileInfoFromRelativePath interface. + * @tc.desc: convert the relative directory path to fileinfo and call listfile for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000HRLBS + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_GetFileInfoFromRelativePath_0004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin medialibrary_file_access_GetFileInfoFromRelativePath_0004"; + try { + FileInfo fileInfo; + string relativePath = "Download/"; + int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri parentUri(fileInfo.uri); + Uri newDir(""); + result = g_fah->Mkdir(parentUri, "DirGetFileInfoFromRelativePath_0004", newDir); + ASSERT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + Uri fileUri(""); + result = g_fah->CreateFile(newDir, "file1.jpg", fileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + result = g_fah->CreateFile(newDir, "file2.jpg", fileUri); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + relativePath = "Download/DirGetFileInfoFromRelativePath_0004"; + result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + + int64_t offset = 0; + int64_t maxCount = 1000; + FileFilter filter; + std::vector fileInfoVec; + result = g_fah->ListFile(fileInfo, offset, maxCount, filter, fileInfoVec); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + EXPECT_GT(fileInfoVec.size(), OHOS::FileAccessFwk::ERR_OK); + + result = g_fah->Delete(newDir); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_GetFileInfoFromRelativePath_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_GetFileInfoFromRelativePath_0004"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_Query_0000 + * @tc.name: medialibrary_file_access_Query_0000 + * @tc.desc: Test function of Query directory for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6S4VV + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0000, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0000"; + try { + FileAccessFwk::FileInfo fileInfo; + std::string relativePath = "Documents/"; + std::string displayName = "Documents"; + int targetSize = 46; + int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri dirUriTest(fileInfo.uri); + + json testJson = { + {RELATIVE_PATH, " "}, + {DISPLAY_NAME, " "}, + {FILE_SIZE, " "}, + {DATE_MODIFIED, " "}, + {DATE_ADDED, " "} + }; + auto testJsonString = testJson.dump(); + int ret = g_fah->Query(dirUriTest, testJsonString); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + auto jsonObject = json::parse(testJsonString); + EXPECT_EQ(jsonObject.at(DISPLAY_NAME), displayName); + EXPECT_EQ(jsonObject.at(FILE_SIZE), targetSize); + ASSERT_TRUE(jsonObject.at(DATE_MODIFIED) > 0); + ASSERT_TRUE(jsonObject.at(DATE_ADDED) > 0); + GTEST_LOG_(INFO) << testJsonString; + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0000"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_Query_0001 + * @tc.name: medialibrary_file_access_Query_0001 + * @tc.desc: Test function of Query file for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6S4VV + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0001, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0001"; + try { + FileAccessFwk::FileInfo fileInfo; + std::string relativePath = "Documents/Test/"; + std::string displayName = "CreateQueryTest_002.txt"; + int targetSize = 23; + std::string filePath = "Documents/Test/CreateQueryTest_002.txt"; + int ret = g_fah->GetFileInfoFromRelativePath(filePath, fileInfo); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(fileInfo.uri); + + json testJson = { + {RELATIVE_PATH, " "}, + {DISPLAY_NAME, " "}, + {FILE_SIZE, " "}, + {DATE_MODIFIED, " "}, + {DATE_ADDED, " "} + }; + auto testJsonString = testJson.dump(); + ret = g_fah->Query(testUri, testJsonString); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + GTEST_LOG_(INFO) << testJsonString; + auto jsonObject = json::parse(testJsonString); + EXPECT_EQ(jsonObject.at(RELATIVE_PATH), relativePath); + EXPECT_EQ(jsonObject.at(DISPLAY_NAME), displayName); + EXPECT_EQ(jsonObject.at(FILE_SIZE), targetSize); + ASSERT_TRUE(jsonObject.at(DATE_MODIFIED) > 0); + ASSERT_TRUE(jsonObject.at(DATE_ADDED) > 0); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0001 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0001"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_Query_0002 + * @tc.name: medialibrary_file_access_Query_0002 + * @tc.desc: Test function of Query directory size for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0002, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0002"; + try { + FileAccessFwk::FileInfo fileInfo; + std::string relativePath = "Documents/"; + std::string displayName = "Documents"; + int targetSize = 46; + int result = g_fah->GetFileInfoFromRelativePath(relativePath, fileInfo); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + Uri dirUriTest(fileInfo.uri); + + json testJson = { + {FILE_SIZE, " "} + }; + auto testJsonString = testJson.dump(); + int ret = g_fah->Query(dirUriTest, testJsonString); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + auto jsonObject = json::parse(testJsonString); + EXPECT_EQ(jsonObject.at(FILE_SIZE), targetSize); + GTEST_LOG_(INFO) << testJsonString; + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0002 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0002"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_Query_0003 + * @tc.name: medialibrary_file_access_Query_0003 + * @tc.desc: Test function of Query interface for ERROR which Uri is unreadable code. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6S4VV + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0003, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0003"; + try { + Uri testUri("&*()*/?"); + json testJson = { + {RELATIVE_PATH, " "}, + {DISPLAY_NAME, " "} + }; + auto testJsonString = testJson.dump(); + int ret = g_fah->Query(testUri, testJsonString); + EXPECT_NE(ret, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0003"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_Query_0004 + * @tc.name: medialibrary_file_access_Query_0004 + * @tc.desc: Test function of Query interface for which all column nonexistence. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6S4VV + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0004, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0004"; + try { + Uri newDirUriTest(""); + std::string fileName = "test.txt"; + int ret = g_fah->Mkdir(g_newDirUri, "Query004", newDirUriTest); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + ret = g_fah->CreateFile(newDirUriTest, fileName, testUri); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + json testJson = { + {"001", " "}, + {"#", " "}, + {"test", " "}, + {"target", " "} + }; + auto testJsonString = testJson.dump(); + ret = g_fah->Query(testUri, testJsonString); + EXPECT_NE(ret, OHOS::FileAccessFwk::ERR_OK); + ret = g_fah->Delete(newDirUriTest); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0004 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0004"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_Query_0005 + * @tc.name: medialibrary_file_access_Query_0005 + * @tc.desc: Test function of Query interface for which part of column nonexistence. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6S4VV + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0005, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0005"; + try { + Uri newDirUriTest(""); + std::string fileName = "test.txt"; + int ret = g_fah->Mkdir(g_newDirUri, "Query005", newDirUriTest); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + ret = g_fah->CreateFile(newDirUriTest, fileName, testUri); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + json testJson = { + {RELATIVE_PATH, " "}, + {DISPLAY_NAME, " "}, + {"test", " "} + }; + auto testJsonString = testJson.dump(); + ret = g_fah->Query(testUri, testJsonString); + EXPECT_NE(ret, OHOS::FileAccessFwk::ERR_OK); + ret = g_fah->Delete(newDirUriTest); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0005 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0005"; +} + +/** + * @tc.number: user_file_service_medialibrary_file_access_Query_0006 + * @tc.name: medialibrary_file_access_Query_0006 + * @tc.desc: Test function of Query interface for which column is null. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6S4VV + */ +HWTEST_F(FileAccessHelperTest, medialibrary_file_access_Query_0006, testing::ext::TestSize.Level1) +{ + shared_ptr g_fah = FileExtensionHelperTest::GetFileAccessHelper(); + GTEST_LOG_(INFO) << "FileAccessHelperTest-begin medialibrary_file_access_Query_0006"; + try { + Uri newDirUriTest(""); + std::string fileName = "test.txt"; + std::string relativePath = "test/test.txt"; + int ret = g_fah->Mkdir(g_newDirUri, "Query006", newDirUriTest); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + Uri testUri(""); + ret = g_fah->CreateFile(newDirUriTest, fileName, testUri); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + json testJson; + auto testJsonString = testJson.dump(); + ret = g_fah->Query(testUri, testJsonString); + EXPECT_NE(ret, OHOS::FileAccessFwk::ERR_OK); + ret = g_fah->Delete(newDirUriTest); + EXPECT_EQ(ret, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "medialibrary_file_access_Query_0006 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileAccessHelperTest-end medialibrary_file_access_Query_0006"; +} +} // namespace diff --git a/utils/hilog_wrapper.h b/utils/hilog_wrapper.h index 6df10f62..3d79e1e4 100644 --- a/utils/hilog_wrapper.h +++ b/utils/hilog_wrapper.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -20,26 +20,26 @@ #ifdef CONFIG_HILOG #include "hilog/log.h" -#ifdef HILOG_FATAL -#undef HILOG_FATAL -#endif - #ifdef HILOG_ERROR #undef HILOG_ERROR #endif -#ifdef HILOG_WARN -#undef HILOG_WARN +#ifdef HILOG_FATAL +#undef HILOG_FATAL #endif -#ifdef HILOG_INFO -#undef HILOG_INFO +#ifdef HILOG_WARN +#undef HILOG_WARN #endif #ifdef HILOG_DEBUG #undef HILOG_DEBUG #endif +#ifdef HILOG_INFO +#undef HILOG_INFO +#endif + #ifndef FAF_LOG_DOMAIN #define FAF_LOG_DOMAIN 0xD00430A #endif -- Gitee