From 08d059f6e2086f34cf6c810328ab3b561ca1c545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=95=E6=8C=AF=E6=9D=B0?= Date: Wed, 18 Jun 2025 10:22:32 +0800 Subject: [PATCH] =?UTF-8?q?CleanBundleTempDir=E5=A2=9E=E5=8A=A0=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 吕振杰 --- .../backup_sa/src/module_ipc/sub_service.cpp | 8 +- .../module_ipc/service_other_test.cpp | 187 ++++++++---------- .../backup_sa/module_ipc/sub_service_test.cpp | 89 +++++++++ 3 files changed, 177 insertions(+), 107 deletions(-) diff --git a/services/backup_sa/src/module_ipc/sub_service.cpp b/services/backup_sa/src/module_ipc/sub_service.cpp index f1c5780ec..b9398edd5 100644 --- a/services/backup_sa/src/module_ipc/sub_service.cpp +++ b/services/backup_sa/src/module_ipc/sub_service.cpp @@ -1399,13 +1399,17 @@ ErrCode Service::CleanBundleTempDir(const string &bundleName) { HILOGI("Service::CleanBundleTempDir"); HITRACE_METER_NAME(HITRACE_TAG_FILEMANAGEMENT, __PRETTY_FUNCTION__); - + ErrCode err = VerifyCaller(); + if (err != ERR_OK) { + HILOGE("VerifyCaller failed"); + return err; + } if (session_ == nullptr) { HILOGE("session is empty."); return BError(BError::Codes::SA_INVAL_ARG); } sptr backupConnection; - ErrCode err = TryToConnectExt(bundleName, backupConnection); + err = TryToConnectExt(bundleName, backupConnection); if (err != BError(BError::Codes::OK)) {return err;} std::unique_lock lock(getBackupInfoSyncLock_); diff --git a/tests/unittests/backup_sa/module_ipc/service_other_test.cpp b/tests/unittests/backup_sa/module_ipc/service_other_test.cpp index 168f24159..355a02547 100644 --- a/tests/unittests/backup_sa/module_ipc/service_other_test.cpp +++ b/tests/unittests/backup_sa/module_ipc/service_other_test.cpp @@ -2379,10 +2379,6 @@ HWTEST_F(ServiceTest, SUB_Service_TryToConnectExt_0100, testing::ext::TestSize.L EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(svcProxy)); EXPECT_CALL(*connect, IsExtAbilityConnected()).WillOnce(Return(true)); EXPECT_CALL(*session, CreateBackupConnection(_)).WillRepeatedly(Return(nullptr)); - EXPECT_CALL(*connect, DisconnectBackupExtAbility()).WillOnce(Return(BError(BError::Codes::OK).GetCode())); - EXPECT_CALL(*session, GetScenario()).WillRepeatedly(Return(IServiceReverseType::Scenario::UNDEFINED)); - EXPECT_CALL(*connect, ConnectBackupExtAbility(_, _, _)) - .WillOnce(Return(BError(BError::Codes::EXT_INVAL_ARG).GetCode())); auto res = service->TryToConnectExt(bundleName, connectPtr); EXPECT_EQ(res, BError(BError::Codes::SA_INVAL_ARG).GetCode()); } catch (...) { @@ -2409,9 +2405,10 @@ HWTEST_F(ServiceTest, SUB_Service_TryToConnectExt_0200, testing::ext::TestSize.L auto callDied = [](const string &&bundleName, bool isCleanCalled) {}; auto callConnected = [](const string &&bundleName) {}; auto connectPtr = sptr(new SvcBackupConnection(callDied, callConnected, bundleName)); - EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(wptr(connect))); + EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(wptr(connectPtr))); EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(svcProxy)); - EXPECT_CALL(*connect, IsExtAbilityConnected()).WillOnce(Return(false)); + EXPECT_CALL(*connect, IsExtAbilityConnected()).WillOnce(Return(true)); + EXPECT_CALL(*session, CreateBackupConnection(_)).WillOnce(Return(connectPtr)); EXPECT_CALL(*session, GetSessionUserId()).WillRepeatedly(Return(0)); EXPECT_CALL(*param, GetBackupDebugOverrideAccount()) .WillRepeatedly(Return(make_pair(true, DEBUG_ID + 1))); @@ -2420,7 +2417,7 @@ HWTEST_F(ServiceTest, SUB_Service_TryToConnectExt_0200, testing::ext::TestSize.L EXPECT_CALL(*session, GetScenario()).WillRepeatedly(Return(IServiceReverseType::Scenario::UNDEFINED)); EXPECT_CALL(*connect, ConnectBackupExtAbility(_, _, _)).WillOnce(Return(BError(BError::Codes::OK).GetCode())); auto res = service->TryToConnectExt(bundleName, connectPtr); - EXPECT_EQ(res, BError(BError::Codes::SA_INVAL_ARG).GetCode()); + EXPECT_EQ(res, BError(BError::Codes::OK).GetCode()); } catch (...) { EXPECT_TRUE(false); GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by TryToConnectExt."; @@ -2445,9 +2442,9 @@ HWTEST_F(ServiceTest, SUB_Service_TryToConnectExt_0300, testing::ext::TestSize.L auto callDied = [](const string &&bundleName, bool isCleanCalled) {}; auto callConnected = [](const string &&bundleName) {}; auto connectPtr = sptr(new SvcBackupConnection(callDied, callConnected, bundleName)); - EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(wptr(connect))); + EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(wptr(connectPtr))); EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(svcProxy)); - EXPECT_CALL(*connect, IsExtAbilityConnected()).WillOnce(Return(false)); + EXPECT_CALL(*connect, IsExtAbilityConnected()).WillOnce(Return(true)); EXPECT_CALL(*session, GetSessionUserId()).WillRepeatedly(Return(0)); EXPECT_CALL(*param, GetBackupDebugOverrideAccount()) .WillRepeatedly(Return(make_pair(true, DEBUG_ID + 1))); @@ -2457,7 +2454,7 @@ HWTEST_F(ServiceTest, SUB_Service_TryToConnectExt_0300, testing::ext::TestSize.L EXPECT_CALL(*connect, ConnectBackupExtAbility(_, _, _)) .WillOnce(Return(BError(BError::Codes::SA_BOOT_EXT_FAIL).GetCode())); auto res = service->TryToConnectExt(bundleName, connectPtr); - EXPECT_EQ(res, BError(BError::Codes::SA_INVAL_ARG).GetCode()); + EXPECT_EQ(res, BError(BError::Codes::SA_BOOT_EXT_FAIL).GetCode()); } catch (...) { EXPECT_TRUE(false); GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by TryToConnectExt."; @@ -2477,12 +2474,75 @@ HWTEST_F(ServiceTest, SUB_Service_TryToConnectExt_0300, testing::ext::TestSize.L HWTEST_F(ServiceTest, SUB_Service_CleanBundleTempDir_0000, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_CleanBundleTempDir_0000"; + try { + std::string bundleName = "123"; + EXPECT_CALL(*skeleton, GetCallingTokenID()).WillOnce(Return(0)); + EXPECT_CALL(*token, GetTokenType(_)).WillOnce(Return(Security::AccessToken::ATokenTypeEnum::TOKEN_NATIVE)); + EXPECT_CALL(*token, VerifyAccessToken(_, _)) + .WillOnce(Return(Security::AccessToken::PermissionState::PERMISSION_DENIED)); + EXPECT_CALL(*param, GetBackupDebugOverrideAccount()) + .WillOnce(Return(make_pair(true, DEBUG_ID + 1))); + auto res = service->CleanBundleTempDir(bundleName); + EXPECT_EQ(res, BError(BError::Codes::SA_REFUSED_ACT).GetCode()); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by CleanBundleTempDir."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_CleanBundleTempDir_0000"; +} + +/** + * @tc.number: SUB_Service_CleanBundleTempDir_0100 + * @tc.name: SUB_Service_CleanBundleTempDir_0100 + * @tc.desc: 测试 CleanBundleTempDir 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: IC7RHQ + */ +HWTEST_F(ServiceTest, SUB_Service_CleanBundleTempDir_0100, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_CleanBundleTempDir_0100"; + try { + std::string bundleName = "123"; + auto session_ = service->session_; + service->session_ = nullptr; + EXPECT_CALL(*skeleton, GetCallingTokenID()).WillOnce(Return(0)); + EXPECT_CALL(*token, GetTokenType(_)).WillOnce(Return(Security::AccessToken::ATokenTypeEnum::TOKEN_NATIVE)); + EXPECT_CALL(*token, VerifyAccessToken(_, _)) + .WillOnce(Return(Security::AccessToken::PermissionState::PERMISSION_GRANTED)); + auto res = service->CleanBundleTempDir(bundleName); + service->session_ = session_; + EXPECT_EQ(res, BError(BError::Codes::SA_INVAL_ARG).GetCode()); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by CleanBundleTempDir."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_CleanBundleTempDir_0100"; +} + +/** + * @tc.number: SUB_Service_CleanBundleTempDir_0200 + * @tc.name: SUB_Service_CleanBundleTempDir_0200 + * @tc.desc: 测试 CleanBundleTempDir 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: IC7RHQ + */ +HWTEST_F(ServiceTest, SUB_Service_CleanBundleTempDir_0200, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_CleanBundleTempDir_0200"; try { std::string bundleName = "123"; auto callDied = [](const string &&bundleName, bool isCleanCalled) {}; auto callConnected = [](const string &&bundleName) {}; auto connectPtr = sptr(new SvcBackupConnection(callDied, callConnected, bundleName)); - EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(wptr(connect))); + EXPECT_CALL(*skeleton, GetCallingTokenID()).WillOnce(Return(0)); + EXPECT_CALL(*token, GetTokenType(_)).WillOnce(Return(Security::AccessToken::ATokenTypeEnum::TOKEN_NATIVE)); + EXPECT_CALL(*token, VerifyAccessToken(_, _)) + .WillOnce(Return(Security::AccessToken::PermissionState::PERMISSION_GRANTED)); + EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(wptr(connectPtr))); EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(svcProxy)); EXPECT_CALL(*connect, IsExtAbilityConnected()).WillOnce(Return(true)); EXPECT_CALL(*connect, DisconnectBackupExtAbility()).WillOnce(Return(BError(BError::Codes::OK).GetCode())); @@ -2494,27 +2554,31 @@ HWTEST_F(ServiceTest, SUB_Service_CleanBundleTempDir_0000, testing::ext::TestSiz EXPECT_TRUE(false); GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by CleanBundleTempDir."; } - GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_CleanBundleTempDir_0000"; + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_CleanBundleTempDir_0200"; } /** - * @tc.number: SUB_Service_CleanBundleTempDir_0100 - * @tc.name: SUB_Service_CleanBundleTempDir_0100 + * @tc.number: SUB_Service_CleanBundleTempDir_0300 + * @tc.name: SUB_Service_CleanBundleTempDir_0300 * @tc.desc: 测试 CleanBundleTempDir 的正常/异常分支 * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 * @tc.require: IC7RHQ */ -HWTEST_F(ServiceTest, SUB_Service_CleanBundleTempDir_0100, testing::ext::TestSize.Level1) +HWTEST_F(ServiceTest, SUB_Service_CleanBundleTempDir_0300, testing::ext::TestSize.Level1) { - GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_CleanBundleTempDir_0100"; + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_CleanBundleTempDir_0300"; try { std::string bundleName = "123"; auto callDied = [](const string &&bundleName, bool isCleanCalled) {}; auto callConnected = [](const string &&bundleName) {}; auto connectPtr = sptr(new SvcBackupConnection(callDied, callConnected, bundleName)); - EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(wptr(connect))); + EXPECT_CALL(*skeleton, GetCallingTokenID()).WillOnce(Return(0)); + EXPECT_CALL(*token, GetTokenType(_)).WillOnce(Return(Security::AccessToken::ATokenTypeEnum::TOKEN_NATIVE)); + EXPECT_CALL(*token, VerifyAccessToken(_, _)) + .WillOnce(Return(Security::AccessToken::PermissionState::PERMISSION_GRANTED)); + EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(wptr(connectPtr))); EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(nullptr)); EXPECT_CALL(*connect, IsExtAbilityConnected()).WillOnce(Return(true)); EXPECT_CALL(*connect, DisconnectBackupExtAbility()).WillOnce(Return(BError(BError::Codes::OK).GetCode())); @@ -2526,7 +2590,7 @@ HWTEST_F(ServiceTest, SUB_Service_CleanBundleTempDir_0100, testing::ext::TestSiz EXPECT_TRUE(false); GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by CleanBundleTempDir."; } - GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_CleanBundleTempDir_0100"; + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_CleanBundleTempDir_0300"; } /** @@ -2646,91 +2710,4 @@ HWTEST_F(ServiceTest, SUB_Service_HandleExtDisconnect_0300, testing::ext::TestSi } GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_HandleExtDisconnect_0300"; } - -/** - * @tc.number: SUB_Service_GetExtOnRelease_0000 - * @tc.name: SUB_Service_GetExtOnRelease_0000 - * @tc.desc: 测试 GetExtOnRelease 的正常/异常分支 - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: IC7RHQ - */ -HWTEST_F(ServiceTest, SUB_Service_GetExtOnRelease_0000, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_GetExtOnRelease_0000"; - try { - bool isExtOnRelease = false; - EXPECT_CALL(*skeleton, GetCallingTokenID()).WillOnce(Return(0)); - EXPECT_CALL(*token, GetTokenType(_)).WillOnce(Return(Security::AccessToken::ATokenTypeEnum::TOKEN_HAP)); - EXPECT_CALL(*token, GetHapTokenInfo(_, _)).WillOnce(Return(1)); - EXPECT_CALL(*param, GetBackupDebugOverrideAccount()).WillOnce(Return(make_pair(false, -1))); - EXPECT_CALL(*skeleton, GetCallingUid()).WillOnce(Return(BConstants::SYSTEM_UID)); - auto ret = service->GetExtOnRelease(isExtOnRelease); - EXPECT_EQ(ret, BError(BError::Codes::SA_INVAL_ARG).GetCode()); - EXPECT_EQ(isExtOnRelease, false); - } catch (...) { - EXPECT_TRUE(false); - GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by GetExtOnRelease."; - } - GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_GetExtOnRelease_0000"; -} - -/** - * @tc.number: SUB_Service_GetExtOnRelease_0100 - * @tc.name: SUB_Service_GetExtOnRelease_0100 - * @tc.desc: 测试 GetExtOnRelease 的正常/异常分支 - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: IC7RHQ - */ -HWTEST_F(ServiceTest, SUB_Service_GetExtOnRelease_0100, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_GetExtOnRelease_0100"; - try { - bool isExtOnRelease = false; - EXPECT_CALL(*skeleton, GetCallingTokenID()).WillOnce(Return(0)); - EXPECT_CALL(*token, GetTokenType(_)).WillOnce(Return(Security::AccessToken::ATokenTypeEnum::TOKEN_HAP)); - EXPECT_CALL(*token, GetHapTokenInfo(_, _)).WillOnce(Return(0)); - EXPECT_CALL(*jsonUtil, BuildBundleNameIndexInfo(_, _)).WillOnce(Return("")); - auto ret = service->GetExtOnRelease(isExtOnRelease); - EXPECT_EQ(ret, BError(BError::Codes::OK).GetCode()); - EXPECT_EQ(isExtOnRelease, false); - } catch (...) { - EXPECT_TRUE(false); - GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by GetExtOnRelease."; - } - GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_GetExtOnRelease_0100"; -} - -/** - * @tc.number: SUB_Service_GetExtOnRelease_0200 - * @tc.name: SUB_Service_GetExtOnRelease_0200 - * @tc.desc: 测试 GetExtOnRelease 的正常/异常分支 - * @tc.size: MEDIUM - * @tc.type: FUNC - * @tc.level Level 1 - * @tc.require: IC7RHQ - */ -HWTEST_F(ServiceTest, SUB_Service_GetExtOnRelease_0200, testing::ext::TestSize.Level1) -{ - GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_GetExtOnRelease_0200"; - try { - bool isExtOnRelease = false; - EXPECT_CALL(*skeleton, GetCallingTokenID()).WillOnce(Return(0)); - EXPECT_CALL(*token, GetTokenType(_)).WillOnce(Return(Security::AccessToken::ATokenTypeEnum::TOKEN_HAP)); - EXPECT_CALL(*token, GetHapTokenInfo(_, _)).WillOnce(Return(0)); - EXPECT_CALL(*jsonUtil, BuildBundleNameIndexInfo(_, _)).WillOnce(Return("bundleName")); - service->SetExtOnRelease("bundleName", true); - auto ret = service->GetExtOnRelease(isExtOnRelease); - EXPECT_EQ(ret, BError(BError::Codes::OK).GetCode()); - EXPECT_EQ(isExtOnRelease, true); - service->RemoveExtOnRelease("bundleName"); - } catch (...) { - EXPECT_TRUE(false); - GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by GetExtOnRelease."; - } - GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_GetExtOnRelease_0200"; -} } \ No newline at end of file diff --git a/tests/unittests/backup_sa/module_ipc/sub_service_test.cpp b/tests/unittests/backup_sa/module_ipc/sub_service_test.cpp index 1911c623d..9c4d3fb16 100644 --- a/tests/unittests/backup_sa/module_ipc/sub_service_test.cpp +++ b/tests/unittests/backup_sa/module_ipc/sub_service_test.cpp @@ -2082,10 +2082,99 @@ HWTEST_F(ServiceTest, SUB_Service_HandleOnReleaseAndDisconnect_0000, testing::ex EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(connect)); EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(svcProxy)); + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverseType::Scenario::RESTORE)); + EXPECT_CALL(*connect, DisconnectBackupExtAbility()).WillOnce(Return(BError(BError::Codes::OK).GetCode())); service->HandleOnReleaseAndDisconnect(sessionPtr, bundleName); } catch (...) { EXPECT_TRUE(false); GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by HandleOnReleaseAndDisconnect."; } GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_HandleOnReleaseAndDisconnect_0000"; +} + +/** + * @tc.number: SUB_Service_GetExtOnRelease_0000 + * @tc.name: SUB_Service_GetExtOnRelease_0000 + * @tc.desc: 测试 GetExtOnRelease 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: IC7RHQ + */ +HWTEST_F(ServiceTest, SUB_Service_GetExtOnRelease_0000, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_GetExtOnRelease_0000"; + try { + bool isExtOnRelease = false; + EXPECT_CALL(*skeleton, GetCallingTokenID()).WillOnce(Return(0)); + EXPECT_CALL(*token, GetTokenType(_)).WillOnce(Return(Security::AccessToken::ATokenTypeEnum::TOKEN_HAP)); + EXPECT_CALL(*token, GetHapTokenInfo(_, _)).WillOnce(Return(1)); + EXPECT_CALL(*param, GetBackupDebugOverrideAccount()).WillOnce(Return(make_pair(false, -1))); + EXPECT_CALL(*skeleton, GetCallingUid()).WillOnce(Return(BConstants::SYSTEM_UID)); + auto ret = service->GetExtOnRelease(isExtOnRelease); + EXPECT_EQ(ret, BError(BError::Codes::SA_INVAL_ARG).GetCode()); + EXPECT_EQ(isExtOnRelease, false); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by GetExtOnRelease."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_GetExtOnRelease_0000"; +} + +/** + * @tc.number: SUB_Service_GetExtOnRelease_0100 + * @tc.name: SUB_Service_GetExtOnRelease_0100 + * @tc.desc: 测试 GetExtOnRelease 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: IC7RHQ + */ +HWTEST_F(ServiceTest, SUB_Service_GetExtOnRelease_0100, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_GetExtOnRelease_0100"; + try { + bool isExtOnRelease = false; + EXPECT_CALL(*skeleton, GetCallingTokenID()).WillOnce(Return(0)); + EXPECT_CALL(*token, GetTokenType(_)).WillOnce(Return(Security::AccessToken::ATokenTypeEnum::TOKEN_HAP)); + EXPECT_CALL(*token, GetHapTokenInfo(_, _)).WillOnce(Return(0)); + EXPECT_CALL(*jsonUtil, BuildBundleNameIndexInfo(_, _)).WillOnce(Return("")); + auto ret = service->GetExtOnRelease(isExtOnRelease); + EXPECT_EQ(ret, BError(BError::Codes::OK).GetCode()); + EXPECT_EQ(isExtOnRelease, false); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by GetExtOnRelease."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_GetExtOnRelease_0100"; +} + +/** + * @tc.number: SUB_Service_GetExtOnRelease_0200 + * @tc.name: SUB_Service_GetExtOnRelease_0200 + * @tc.desc: 测试 GetExtOnRelease 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: IC7RHQ + */ +HWTEST_F(ServiceTest, SUB_Service_GetExtOnRelease_0200, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_GetExtOnRelease_0200"; + try { + bool isExtOnRelease = false; + EXPECT_CALL(*skeleton, GetCallingTokenID()).WillOnce(Return(0)); + EXPECT_CALL(*token, GetTokenType(_)).WillOnce(Return(Security::AccessToken::ATokenTypeEnum::TOKEN_HAP)); + EXPECT_CALL(*token, GetHapTokenInfo(_, _)).WillOnce(Return(0)); + EXPECT_CALL(*jsonUtil, BuildBundleNameIndexInfo(_, _)).WillOnce(Return("bundleName")); + service->SetExtOnRelease("bundleName", true); + auto ret = service->GetExtOnRelease(isExtOnRelease); + EXPECT_EQ(ret, BError(BError::Codes::OK).GetCode()); + EXPECT_EQ(isExtOnRelease, true); + service->RemoveExtOnRelease("bundleName"); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by GetExtOnRelease."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_GetExtOnRelease_0200"; } \ No newline at end of file -- Gitee