From 1c09ad8f51d2373f0350566b564baf463666c9a8 Mon Sep 17 00:00:00 2001 From: onexiaomin Date: Wed, 30 Nov 2022 14:52:23 +0800 Subject: [PATCH] add tdd testcase Signed-off-by: onexiaomin --- .../file_access/include/file_access_helper.h | 5 - .../file_access/src/file_access_helper.cpp | 35 ---- .../unittest/external_file_access_test.cpp | 163 ++++++++++++++++++ 3 files changed, 163 insertions(+), 40 deletions(-) diff --git a/frameworks/innerkits/file_access/include/file_access_helper.h b/frameworks/innerkits/file_access/include/file_access_helper.h index 23b2a152..70085d6e 100644 --- a/frameworks/innerkits/file_access/include/file_access_helper.h +++ b/frameworks/innerkits/file_access/include/file_access_helper.h @@ -85,11 +85,6 @@ private: void OnSchedulerDied(const wptr &remote); std::shared_ptr GetConnectInfo(const std::string &bundleName); - std::shared_ptr GetConnectInfo(const AAFwk::Want &want); - void InsertConnectInfo(const std::string &key, - const AAFwk::Want &want, - const sptr &fileExtProxy, - sptr fileExtConnection); sptr token_ = nullptr; std::unordered_map> cMap_; diff --git a/frameworks/innerkits/file_access/src/file_access_helper.cpp b/frameworks/innerkits/file_access/src/file_access_helper.cpp index 72da3222..2b7c2af3 100644 --- a/frameworks/innerkits/file_access/src/file_access_helper.cpp +++ b/frameworks/innerkits/file_access/src/file_access_helper.cpp @@ -137,20 +137,6 @@ std::shared_ptr FileAccessHelper::GetConnectInfo(const std::string return nullptr; } -std::shared_ptr FileAccessHelper::GetConnectInfo(const AAFwk::Want &want) -{ - for (auto iter = cMap_.begin(); iter != cMap_.end(); ++iter) { - auto element = iter->second->want.GetElement(); - auto elementTmp = want.GetElement(); - if (element.GetBundleName() == elementTmp.GetBundleName() && - element.GetAbilityName() == elementTmp.GetAbilityName()) { - return iter->second; - } - } - HILOG_ERROR("GetConnectInfo called with want obj return nullptr"); - return nullptr; -} - std::string FileAccessHelper::GetKeyOfWantsMap(const AAFwk::Want &want) { for (auto iter = FileAccessHelper::wantsMap_.begin(); iter != FileAccessHelper::wantsMap_.end(); ++iter) { @@ -165,27 +151,6 @@ std::string FileAccessHelper::GetKeyOfWantsMap(const AAFwk::Want &want) return ""; } -void FileAccessHelper::InsertConnectInfo(const std::string &key, - const AAFwk::Want &want, - const sptr &fileAccessExtProxy, - sptr fileAccessExtConnection) -{ - std::shared_ptr connectInfo = GetConnectInfo(key); - if (connectInfo == nullptr) { - std::shared_ptr connectInfo = std::make_shared(); - if (connectInfo == nullptr) { - HILOG_ERROR("InsertConnectInfo called with connectInfo == nullptr"); - return ; - } - connectInfo->want = want; - connectInfo->fileAccessExtConnection = fileAccessExtConnection; - cMap_.insert(std::pair>(key, connectInfo)); - } else { - connectInfo->want = want; - connectInfo->fileAccessExtConnection = fileAccessExtConnection; - } -} - std::shared_ptr FileAccessHelper::Creator( const std::shared_ptr &context) { diff --git a/frameworks/innerkits/file_access/test/unittest/external_file_access_test.cpp b/frameworks/innerkits/file_access/test/unittest/external_file_access_test.cpp index c83667df..9f108036 100644 --- a/frameworks/innerkits/file_access/test/unittest/external_file_access_test.cpp +++ b/frameworks/innerkits/file_access/test/unittest/external_file_access_test.cpp @@ -25,6 +25,8 @@ #include "file_access_framework_errno.h" #include "file_access_helper.h" #include "iservice_registry.h" +#include "context.h" +#include "inotify_callback.h" namespace { using namespace std; @@ -104,6 +106,52 @@ public: void TearDown() {}; }; +class ExternalNotify : public OHOS::FileAccessFwk::INotifyCallback { +public: + int OnNotify(const NotifyMessage &message) override { + return 0; + } + virtual ~ExternalNotify() = default; +}; + +class ExternalContext : public OHOS::AbilityRuntime::Context { +public: + ExternalContext() { + auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); + this->token_ = saManager->GetSystemAbility(ABILITY_ID); + } + + sptr GetToken() override { + return token_; + } + std::string GetBundleName() const override { return string(""); } + std::shared_ptr CreateBundleContext(const std::string &bundleName) override { return nullptr; } + std::shared_ptr GetApplicationInfo() const override { return nullptr; } + std::shared_ptr GetResourceManager() const override { return nullptr; } + std::string GetBundleCodePath() const override { return string(""); } + std::shared_ptr GetHapModuleInfo() const override { return nullptr; } + std::string GetBundleCodeDir() override { return string(""); } + std::string GetCacheDir() override { return string(""); } + std::string GetTempDir() override { return string(""); } + std::string GetFilesDir() override { return string(""); } + bool IsUpdatingConfigurations() override { return false; } + bool PrintDrawnCompleted() override { return false; } + std::string GetDatabaseDir() override { return string(""); } + std::string GetPreferencesDir() override { return string(""); } + std::string GetDistributedFilesDir() override { return string(""); } + void SetToken(const sptr &token) override {} + void SwitchArea(int mode) override {} + std::shared_ptr CreateModuleContext(const std::string &moduleName) override { return nullptr; } + std::shared_ptr CreateModuleContext(const std::string &bundleName, + const std::string &moduleName) override { return nullptr; } + int GetArea() override { return 0; } + std::shared_ptr GetConfiguration() const override { return nullptr; } + std::string GetBaseDir() const override { return string(""); } + Global::Resource::DeviceType GetDeviceType() const override { return Global::Resource::DeviceType::DEVICE_NOT_SET; } +private: + sptr token_; +}; + /** * @tc.number: user_file_service_external_file_access_OpenFile_0000 * @tc.name: external_file_access_OpenFile_0000 @@ -2070,4 +2118,119 @@ HWTEST_F(FileExtensionHelperTest, external_file_access_Access_0000, testing::ext } GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_Access_0000"; } + +/** + * @tc.number: user_file_service_external_file_access_on_0000 + * @tc.name: external_file_access_on_0000 + * @tc.desc: Test function of On interface. + * @tc.desc: register notify callback for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_on_0000, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_on_0000"; + try { + shared_ptr callback = make_shared(); + int result = g_fah->On(callback); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_on_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_on_0000"; +} + +/** + * @tc.number: user_file_service_external_file_access_off_0000 + * @tc.name: external_file_access_off_0000 + * @tc.desc: Test function of On interface. + * @tc.desc: unregister notify for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: SR000H0386 + */ +HWTEST_F(FileExtensionHelperTest, external_file_access_off_0000, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin external_file_access_off_0000"; + try { + int result = g_fah->Off(); + EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_off_0000 occurs an exception."; + } + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_off_0000"; +} + +/** + * @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"; + setuid(UID_TRANSFORM_TMP); + try { + shared_ptr context = make_shared(); + shared_ptr helper = FileAccessHelper::Creator(context); + ASSERT_TRUE(helper != nullptr); + bool succ = helper->Release(); + EXPECT_TRUE(succ); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_creator_0000 occurs an exception."; + } + setuid(UID_DEFAULT); + 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"; + setuid(UID_TRANSFORM_TMP); + try { + AAFwk::Want want; + vector wantVec; + 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}; + shared_ptr context = make_shared(); + shared_ptr helper = FileAccessHelper::Creator(context, wants); + ASSERT_TRUE(helper != nullptr); + bool succ = helper->Release(); + EXPECT_TRUE(succ); + } catch (...) { + GTEST_LOG_(ERROR) << "external_file_access_creator_0001 occurs an exception."; + } + setuid(UID_DEFAULT); + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end external_file_access_creator_0001"; +} } // namespace \ No newline at end of file -- Gitee