diff --git a/frameworks/native/runtime/utils/src/runtime_extractor.cpp b/frameworks/native/runtime/utils/src/runtime_extractor.cpp index f9ae9d9ab8..db37588813 100644 --- a/frameworks/native/runtime/utils/src/runtime_extractor.cpp +++ b/frameworks/native/runtime/utils/src/runtime_extractor.cpp @@ -178,6 +178,11 @@ bool RuntimeExtractor::ExtractFile(const std::string &fileName, const std::strin bool RuntimeExtractor::GetZipFileNames(std::vector &fileNames) { auto &entryMap = zipFile_.GetAllEntries(); + if (entryMap.empty()) { + HILOG_ERROR("Zip file is empty"); + return false; + } + for (auto &entry : entryMap) { fileNames.emplace_back(entry.first); } diff --git a/test/unittest/ability_manager_service_test/ability_manager_service_test.cpp b/test/unittest/ability_manager_service_test/ability_manager_service_test.cpp index ee71e393fd..10ea2f5af8 100755 --- a/test/unittest/ability_manager_service_test/ability_manager_service_test.cpp +++ b/test/unittest/ability_manager_service_test/ability_manager_service_test.cpp @@ -247,5 +247,168 @@ HWTEST_F(AbilityManagerServiceTest, CheckCallDataAbilityPermission_002, TestSize SetParameter(COMPONENT_STARTUP_NEW_RULES.c_str(), "false"); HILOG_INFO("AbilityManagerServiceTest CheckCallDataAbilityPermission_002 end"); } + +/* + * Feature: AbilityManagerService + * Function: CheckCallOtherExtensionPermission + * SubFunction: NA + * FunctionPoints: AbilityManagerService CheckCallOtherExtensionPermission + */ +HWTEST_F(AbilityManagerServiceTest, CheckCallOtherExtensionPermission_001, TestSize.Level1) +{ + HILOG_INFO("AbilityManagerServiceTest CheckCallOtherExtensionPermission_001 start"); + bool oldFlag = abilityMs_->startUpNewRule_; + abilityMs_->startUpNewRule_ = true; + EXPECT_EQ(abilityMs_->CheckCallOtherExtensionPermission(abilityRequest_), ERR_OK); + abilityMs_->startUpNewRule_ = oldFlag; + HILOG_INFO("AbilityManagerServiceTest CheckCallOtherExtensionPermission_001 end"); +} + +/* + * Feature: AbilityManagerService + * Function: CheckCallOtherExtensionPermission + * SubFunction: NA + * FunctionPoints: AbilityManagerService CheckCallOtherExtensionPermission + */ +HWTEST_F(AbilityManagerServiceTest, CheckCallOtherExtensionPermission_002, TestSize.Level1) +{ + HILOG_INFO("AbilityManagerServiceTest CheckCallOtherExtensionPermission_002 start"); + abilityRequest_.abilityInfo.visible = false; + bool oldFlag = abilityMs_->startUpNewRule_; + abilityMs_->startUpNewRule_ = true; + EXPECT_EQ(abilityMs_->CheckCallOtherExtensionPermission(abilityRequest_), CHECK_PERMISSION_FAILED); + abilityMs_->startUpNewRule_ = oldFlag; + HILOG_INFO("AbilityManagerServiceTest CheckCallOtherExtensionPermission_002 end"); +} + +/* + * Feature: AbilityManagerService + * Function: CheckCallAbilityPermission + * SubFunction: NA + * FunctionPoints: AbilityManagerService CheckCallAbilityPermission + */ +HWTEST_F(AbilityManagerServiceTest, CheckCallAbilityPermission_001, TestSize.Level1) +{ + HILOG_INFO("AbilityManagerServiceTest CheckCallAbilityPermission_001 start"); + bool oldFlag = abilityMs_->startUpNewRule_; + abilityMs_->startUpNewRule_ = true; + EXPECT_EQ(abilityMs_->CheckCallAbilityPermission(abilityRequest_), ERR_OK); + abilityMs_->startUpNewRule_ = oldFlag; + HILOG_INFO("AbilityManagerServiceTest CheckCallAbilityPermission_001 end"); +} + +/* + * Feature: AbilityManagerService + * Function: CheckCallAbilityPermission + * SubFunction: NA + * FunctionPoints: AbilityManagerService CheckCallAbilityPermission + */ +HWTEST_F(AbilityManagerServiceTest, CheckCallAbilityPermission_002, TestSize.Level1) +{ + HILOG_INFO("AbilityManagerServiceTest CheckCallAbilityPermission_002 start"); + bool oldFlag = abilityMs_->startUpNewRule_; + abilityMs_->startUpNewRule_ = false; + EXPECT_EQ(abilityMs_->CheckCallAbilityPermission(abilityRequest_), ERR_OK); + abilityMs_->startUpNewRule_ = oldFlag; + HILOG_INFO("AbilityManagerServiceTest CheckCallAbilityPermission_002 end"); +} + +/* + * Feature: AbilityManagerService + * Function: CheckCallAbilityPermission + * SubFunction: NA + * FunctionPoints: AbilityManagerService CheckCallAbilityPermission + */ +HWTEST_F(AbilityManagerServiceTest, CheckCallAbilityPermission_003, TestSize.Level1) +{ + HILOG_INFO("AbilityManagerServiceTest CheckCallAbilityPermission_003 start"); + abilityRequest_.abilityInfo.visible = false; + bool oldFlag = abilityMs_->startUpNewRule_; + abilityMs_->startUpNewRule_ = true; + EXPECT_EQ(abilityMs_->CheckCallAbilityPermission(abilityRequest_), CHECK_PERMISSION_FAILED); + abilityMs_->startUpNewRule_ = oldFlag; + HILOG_INFO("AbilityManagerServiceTest CheckCallAbilityPermission_003 end"); +} + +/* + * Feature: AbilityManagerService + * Function: CheckCallAbilityPermission + * SubFunction: NA + * FunctionPoints: AbilityManagerService CheckCallAbilityPermission + */ +HWTEST_F(AbilityManagerServiceTest, CheckCallAbilityPermission_004, TestSize.Level1) +{ + HILOG_INFO("AbilityManagerServiceTest CheckCallAbilityPermission_004 start"); + EXPECT_EQ(abilityMs_->CheckCallAbilityPermission(abilityRequest_), ERR_OK); + HILOG_INFO("AbilityManagerServiceTest CheckCallAbilityPermission_004 end"); +} + +/* + * Feature: AbilityManagerService + * Function: CheckStartByCallPermission + * SubFunction: NA + * FunctionPoints: AbilityManagerService CheckStartByCallPermission + */ +HWTEST_F(AbilityManagerServiceTest, CheckStartByCallPermission_001, TestSize.Level1) +{ + HILOG_INFO("AbilityManagerServiceTest CheckStartByCallPermission_001 start"); + EXPECT_EQ(abilityMs_->CheckStartByCallPermission(abilityRequest_), RESOLVE_CALL_ABILITY_TYPE_ERR); + HILOG_INFO("AbilityManagerServiceTest CheckStartByCallPermission_001 end"); +} + +/* + * Feature: AbilityManagerService + * Function: CheckStartByCallPermission + * SubFunction: NA + * FunctionPoints: AbilityManagerService CheckStartByCallPermission + */ +HWTEST_F(AbilityManagerServiceTest, CheckStartByCallPermission_002, TestSize.Level1) +{ + HILOG_INFO("AbilityManagerServiceTest CheckStartByCallPermission_002 start"); + abilityRequest_.abilityInfo.type = AppExecFwk::AbilityType::PAGE; + abilityRequest_.abilityInfo.launchMode = AppExecFwk::LaunchMode::SINGLETON; + EXPECT_EQ(abilityMs_->CheckStartByCallPermission(abilityRequest_), RESOLVE_CALL_NO_PERMISSIONS); + + abilityRequest_.abilityInfo.type = AppExecFwk::AbilityType::PAGE; + abilityRequest_.abilityInfo.launchMode = AppExecFwk::LaunchMode::SPECIFIED; + EXPECT_EQ(abilityMs_->CheckStartByCallPermission(abilityRequest_), RESOLVE_CALL_ABILITY_TYPE_ERR); + + abilityRequest_.abilityInfo.type = AppExecFwk::AbilityType::DATA; + abilityRequest_.abilityInfo.launchMode = AppExecFwk::LaunchMode::SINGLETON; + EXPECT_EQ(abilityMs_->CheckStartByCallPermission(abilityRequest_), RESOLVE_CALL_ABILITY_TYPE_ERR); + + abilityRequest_.abilityInfo.type = AppExecFwk::AbilityType::DATA; + abilityRequest_.abilityInfo.launchMode = AppExecFwk::LaunchMode::SPECIFIED; + EXPECT_EQ(abilityMs_->CheckStartByCallPermission(abilityRequest_), RESOLVE_CALL_ABILITY_TYPE_ERR); + HILOG_INFO("AbilityManagerServiceTest CheckStartByCallPermission_002 end"); +} + +/* + * Feature: AbilityManagerService + * Function: CheckCallerPermissionOldRule + * SubFunction: NA + * FunctionPoints: AbilityManagerService CheckCallerPermissionOldRule + */ +HWTEST_F(AbilityManagerServiceTest, CheckCallerPermissionOldRule_001, TestSize.Level1) +{ + HILOG_INFO("AbilityManagerServiceTest CheckCallerPermissionOldRule_001 start"); + EXPECT_EQ(abilityMs_->CheckCallerPermissionOldRule(abilityRequest_, true), RESOLVE_CALL_NO_PERMISSIONS); + EXPECT_EQ(abilityMs_->CheckCallerPermissionOldRule(abilityRequest_, false), ERR_OK); + HILOG_INFO("AbilityManagerServiceTest CheckCallerPermissionOldRule_001 end"); +} + +/* + * Feature: AbilityManagerService + * Function: CheckCallerPermissionOldRule + * SubFunction: NA + * FunctionPoints: AbilityManagerService CheckCallerPermissionOldRule + */ +HWTEST_F(AbilityManagerServiceTest, CheckCallerPermissionOldRule_002, TestSize.Level1) +{ + HILOG_INFO("AbilityManagerServiceTest CheckCallerPermissionOldRule_002 start"); + abilityRequest_.callerUid = USER_ID_U100; + EXPECT_EQ(abilityMs_->CheckCallerPermissionOldRule(abilityRequest_, true), RESOLVE_CALL_NO_PERMISSIONS); + HILOG_INFO("AbilityManagerServiceTest CheckCallerPermissionOldRule_002 end"); +} } // namespace AAFwk } // namespace OHOS diff --git a/test/unittest/runtime_extractor_test/runtime_extractor_test.cpp b/test/unittest/runtime_extractor_test/runtime_extractor_test.cpp index 60f80a9bef..74e159e994 100755 --- a/test/unittest/runtime_extractor_test/runtime_extractor_test.cpp +++ b/test/unittest/runtime_extractor_test/runtime_extractor_test.cpp @@ -25,9 +25,12 @@ namespace AbilityRuntime { namespace { const std::string TEST_HAP_PATH("/system/app/com.ohos.settings/Settings.hap"); const std::string ERROR_HAP_PATH("/system/app/com.ohos.settings/XXX.hap"); +const std::string TEST_THIRD_HAP_PATH("/data/app/el1/bundle/public/com.ohos.settings/Settings.hap"); const std::string MODULE_JSON_PATH("module.json"); +const std::string CONFIG_JSON_PATH("config.json"); const std::string OUT_PATH("/data/module.json"); const std::string MAIN_ABILITY_PATH("ets/MainAbility"); +const std::string FA_MAIN_ABILITY_PATH("assets/js/default"); const std::string ERROR_PATH("ets/MainAbilityXXX"); const std::string MAIN_ABILITY_FILENAME("ets/MainAbility/MainAbility.abc"); const std::string ERROR_FILENAME("ets/MainAbility/XXX.abc"); @@ -92,6 +95,10 @@ HWTEST_F(RuntimeExtractorTest, RuntimeExtractorCreate_001, TestSize.Level1) loadPath = TEST_HAP_PATH; std::shared_ptr runtimeExtractor3 = RuntimeExtractor::Create(loadPath); EXPECT_TRUE(runtimeExtractor3 != nullptr); + + loadPath = TEST_THIRD_HAP_PATH; + std::shared_ptr runtimeExtractor4 = RuntimeExtractor::Create(loadPath); + EXPECT_TRUE(runtimeExtractor4 == nullptr); } /* @@ -112,6 +119,7 @@ HWTEST_F(RuntimeExtractorTest, GetFileBuffer_001, TestSize.Level1) runtimeExtractor->Init(); EXPECT_FALSE(runtimeExtractor->GetFileBuffer("", outStream)); + EXPECT_FALSE(runtimeExtractor->GetFileBuffer(CONFIG_JSON_PATH, outStream)); EXPECT_TRUE(runtimeExtractor->GetFileBuffer(srcPath, outStream)); EXPECT_TRUE(sizeof(outStream) > 0); } @@ -134,6 +142,8 @@ HWTEST_F(RuntimeExtractorTest, GetFileList_001, TestSize.Level1) runtimeExtractor->Init(); EXPECT_FALSE(runtimeExtractor->GetFileList("", fileList)); + EXPECT_TRUE(runtimeExtractor->GetFileList(FA_MAIN_ABILITY_PATH, fileList)); + EXPECT_TRUE(fileList.size() == 0); EXPECT_TRUE(runtimeExtractor->GetFileList(srcPath, fileList)); EXPECT_TRUE(fileList.size() > 0); } @@ -220,6 +230,7 @@ HWTEST_F(RuntimeExtractorTest, ExtractFile_001, TestSize.Level1) runtimeExtractor->Init(); EXPECT_FALSE(runtimeExtractor->ExtractFile("", outPath)); + EXPECT_FALSE(runtimeExtractor->ExtractFile(srcPath, "")); EXPECT_TRUE(runtimeExtractor->ExtractFile(srcPath, outPath)); std::ifstream f(outPath.c_str()); EXPECT_TRUE(f.good()); @@ -238,7 +249,7 @@ HWTEST_F(RuntimeExtractorTest, GetZipFileNames_001, TestSize.Level1) std::string loadPath = TEST_HAP_PATH; std::shared_ptr runtimeExtractor = std::make_shared(loadPath); std::vector fileList; - EXPECT_TRUE(runtimeExtractor->GetZipFileNames(fileList)); + EXPECT_FALSE(runtimeExtractor->GetZipFileNames(fileList)); EXPECT_TRUE(fileList.size() == 0); runtimeExtractor->Init();