From 0f142198e2acd7f4412a0da546755ad10d666648 Mon Sep 17 00:00:00 2001 From: YinZong Date: Thu, 28 Nov 2024 08:18:25 +0000 Subject: [PATCH] update frameworks/inner_api/sandbox_manager/test/unittest/src/sandbox_manager_kit_test.cpp. Signed-off-by: YinZong --- .../unittest/src/sandbox_manager_kit_test.cpp | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) diff --git a/frameworks/inner_api/sandbox_manager/test/unittest/src/sandbox_manager_kit_test.cpp b/frameworks/inner_api/sandbox_manager/test/unittest/src/sandbox_manager_kit_test.cpp index 2d65a3d..2274274 100644 --- a/frameworks/inner_api/sandbox_manager/test/unittest/src/sandbox_manager_kit_test.cpp +++ b/frameworks/inner_api/sandbox_manager/test/unittest/src/sandbox_manager_kit_test.cpp @@ -1708,6 +1708,127 @@ HWTEST_F(SandboxManagerKitTest, CleanPersistPolicyByPathTest005, TestSize.Level1 } #endif +#ifdef DEC_ENABLED +/** + * @tc.name: CleanPersistPolicyByPathTest006 + * @tc.desc: Clean persist policy by path with invalid path + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(SandboxManagerKitTest, CleanPersistPolicyByPathTest006, TestSize.Level1) +{ + std::vector policy; + uint64_t policyFlag = 1; + std::vector policyResult; + PolicyInfo infoParentA = { + .path = "/A/B", + .mode = OperateMode::READ_MODE + }; + PolicyInfo infoParentB = { + .path = "/A/C", + .mode = OperateMode::READ_MODE + }; + PolicyInfo infoParentC = { + .path = "/A/B/C", + .mode = OperateMode::READ_MODE + }; + PolicyInfo infoParentD = { + .path = "/A/B/C", + .mode = OperateMode::WRITE_MODE + }; + policy.emplace_back(infoParentA); + policy.emplace_back(infoParentB); + + //SetPolicy + ASSERT_EQ(SANDBOX_MANAGER_OK, SandboxManagerKit::SetPolicy(g_mockToken, policy, policyFlag, policyResult)); + ASSERT_EQ(2, policyResult.size()); + EXPECT_EQ(OPERATE_SUCCESSFULLY, policyResult[0]); + + //CheckPolicy + std::vector result; + ASSERT_EQ(SANDBOX_MANAGER_OK, SandboxManagerKit::CheckPolicy(g_mockToken, policy, result)); + ASSERT_EQ(2, result.size()); + EXPECT_TRUE(result[0]); + EXPECT_TRUE(result[1]); + + //PersistPolicy + std::vector retType; + std::vector policyB; + policyB.emplace_back(infoParentA); + EXPECT_EQ(SANDBOX_MANAGER_OK, SandboxManagerKit::PersistPolicy(g_mockToken, policyB, retType)); + ASSERT_EQ(1, retType.size()); + EXPECT_EQ(OPERATE_SUCCESSFULLY, retType[0]); + + //CheckPersistPolicy + std::vector policyCheck; + std::vector checkrResult; + policyCheck.emplace_back(infoParentA); + policyCheck.emplace_back(infoParentC); + ASSERT_EQ(SANDBOX_MANAGER_OK, SandboxManagerKit::CheckPersistPolicy(g_mockToken, policyCheck, checkrResult)); + ASSERT_EQ(2, checkrResult.size()); + EXPECT_TRUE(checkrResult[0]); + EXPECT_TRUE(checkrResult[1]); + + //SetFileManagerToken + Security::AccessToken::AccessTokenID tokenID = + Security::AccessToken::AccessTokenKit::GetNativeTokenId("file_manager_service"); + EXPECT_NE(0, tokenID); + EXPECT_EQ(0, SetSelfTokenID(tokenID)); + + //CleanPersistPolicyByPath + std::vector filePaths; + filePaths.emplace_back(infoParentA.path); + EXPECT_EQ(SANDBOX_MANAGER_OK, SandboxManagerKit::CleanPersistPolicyByPath(filePaths)); + sleep(1); + + //CheckPersistPolicy + std::vector policyCheck1; + std::vector checkrResult1; + policyCheck1.emplace_back(infoParentA); + policyCheck1.emplace_back(infoParentC); + ASSERT_EQ(SANDBOX_MANAGER_OK, SandboxManagerKit::CheckPersistPolicy(g_mockToken, policyCheck1, checkrResult1)); + ASSERT_EQ(2, checkrResult1.size()); + EXPECT_FALSE(checkrResult1[0]); + EXPECT_FALSE(checkrResult1[1]); + + //RecoverToken + ASSERT_EQ(0, SetSelfTokenID(g_mockToken)); + + //PersistPolicy + std::vector retType2; + std::vector policyC; + policyC.emplace_back(infoParentB); + EXPECT_EQ(SANDBOX_MANAGER_OK, SandboxManagerKit::PersistPolicy(g_mockToken, policyC, retType2)); + ASSERT_EQ(1, retType2.size()); + EXPECT_EQ(OPERATE_SUCCESSFULLY, retType2[0]); + + //CheckPersistPolicy + std::vector policyCheck2; + std::vector checkrResult2; + policyCheck2.emplace_back(infoParentB); + ASSERT_EQ(SANDBOX_MANAGER_OK, SandboxManagerKit::CheckPersistPolicy(g_mockToken, policyCheck2, checkrResult2)); + ASSERT_EQ(1, checkrResult2.size()); + EXPECT_TRUE(checkrResult2[0]); + + //SetFileManagerToken + EXPECT_EQ(0, SetSelfTokenID(tokenID)); + + //CleanPersistPolicyByPath + std::vector filePaths2; + infoParentD.path = "/A/B/C 2"; + infoParentB.path = "/A/C 1"; + filePaths2.emplace_back(infoParentD.path); + filePaths2.emplace_back(infoParentB.path); + EXPECT_EQ(SANDBOX_MANAGER_OK, SandboxManagerKit::CleanPersistPolicyByPath(filePaths2)); + sleep(1); + + //CheckPersistPolicy + ASSERT_EQ(SANDBOX_MANAGER_OK, SandboxManagerKit::CheckPersistPolicy(g_mockToken, policyCheck2, checkrResult2)); + ASSERT_EQ(1, checkrResult2.size()); + EXPECT_TRUE(checkrResult2[0]); +} +#endif + /** * @tc.name: StartAccessingByTokenIdTest001 * @tc.desc: Start accessing by invalid tokenId -- Gitee