diff --git a/services/accesstokenmanager/test/BUILD.gn b/services/accesstokenmanager/test/BUILD.gn index 14a41d363b5a2bd5864f1c8a78d260684ba8a180..acbb43f0d6215475013a4c2ac54c33cd309256f8 100644 --- a/services/accesstokenmanager/test/BUILD.gn +++ b/services/accesstokenmanager/test/BUILD.gn @@ -49,6 +49,10 @@ ohos_unittest("libaccesstoken_manager_service_standard_test") { configs = [ "//base/security/access_token/config:coverage_flags" ] + if (token_sync_enable == true) { + cflags_cc += [ "-DTOKEN_SYNC_ENABLE" ] + } + deps = [ "//base/security/access_token/interfaces/innerkits/nativetoken:libnativetoken", "//base/security/access_token/services/accesstokenmanager/:accesstoken_manager_service", diff --git a/services/accesstokenmanager/test/unittest/cpp/src/accesstoken_info_manager_test.cpp b/services/accesstokenmanager/test/unittest/cpp/src/accesstoken_info_manager_test.cpp index fbe8f922a2c8c95e24469d510bb711e4753eb80e..680c1fed545ccbec94060ed4a65c509917fac1fe 100644 --- a/services/accesstokenmanager/test/unittest/cpp/src/accesstoken_info_manager_test.cpp +++ b/services/accesstokenmanager/test/unittest/cpp/src/accesstoken_info_manager_test.cpp @@ -227,6 +227,93 @@ HWTEST_F(AccessTokenInfoManagerTest, CreateHapTokenInfo001, TestSize.Level1) ASSERT_EQ(nullptr, tokenInfo); } +/** + * @tc.name: IsTokenIdExist001 + * @tc.desc: Verify the IsTokenIdExist exist accesstokenid. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(AccessTokenInfoManagerTest, IsTokenIdExist001, TestSize.Level1) +{ + AccessTokenID testId = 1; + ASSERT_EQ(AccessTokenInfoManager::GetInstance().IsTokenIdExist(testId), false); +} + +/** + * @tc.name: GetHapTokenInfo001 + * @tc.desc: Verify the GetHapTokenInfo abnormal and normal branch. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(AccessTokenInfoManagerTest, GetHapTokenInfo001, TestSize.Level1) +{ + AccessTokenIDEx tokenIdEx = {0}; + int result; + HapTokenInfo hapInfo; + result = AccessTokenInfoManager::GetInstance().GetHapTokenInfo(tokenIdEx.tokenIdExStruct.tokenID, hapInfo); + ASSERT_EQ(result, RET_FAILED); + + result = AccessTokenInfoManager::GetInstance().CreateHapTokenInfo( + g_infoManagerTestInfoParms, g_infoManagerTestPolicyPrams, tokenIdEx); + ASSERT_EQ(RET_SUCCESS, result); + GTEST_LOG_(INFO) << "add a hap token"; + result = AccessTokenInfoManager::GetInstance().GetHapTokenInfo(tokenIdEx.tokenIdExStruct.tokenID, hapInfo); + ASSERT_EQ(result, RET_SUCCESS); + result = AccessTokenInfoManager::GetInstance().RemoveHapTokenInfo(tokenIdEx.tokenIdExStruct.tokenID); + ASSERT_EQ(RET_SUCCESS, result); + GTEST_LOG_(INFO) << "remove the token info"; +} + +/** + * @tc.name: GetHapTokenInfo001 + * @tc.desc: Verify the GetHapTokenInfo abnormal and normal branch. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(AccessTokenInfoManagerTest, GetHapPermissionPolicySet001, TestSize.Level1) +{ + AccessTokenIDEx tokenIdEx = {0}; + std::shared_ptr permPolicySet = + AccessTokenInfoManager::GetInstance().GetHapPermissionPolicySet(tokenIdEx.tokenIdExStruct.tokenID); + ASSERT_EQ(permPolicySet, nullptr); + + int ret = AccessTokenInfoManager::GetInstance().CreateHapTokenInfo( + g_infoManagerTestInfoParms, g_infoManagerTestPolicyPrams, tokenIdEx); + ASSERT_EQ(RET_SUCCESS, ret); + GTEST_LOG_(INFO) << "add a hap token"; + permPolicySet = AccessTokenInfoManager::GetInstance().GetHapPermissionPolicySet(tokenIdEx.tokenIdExStruct.tokenID); + ASSERT_EQ(permPolicySet != nullptr, true); + ret = AccessTokenInfoManager::GetInstance().RemoveHapTokenInfo(tokenIdEx.tokenIdExStruct.tokenID); + ASSERT_EQ(RET_SUCCESS, ret); + GTEST_LOG_(INFO) << "remove the token info"; +} + +/** + * @tc.name: GetNativePermissionPolicySet001 + * @tc.desc: Verify the GetNativePermissionPolicySet abnormal branch tokenID is invalid. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(AccessTokenInfoManagerTest, GetNativePermissionPolicySet001, TestSize.Level1) +{ + AccessTokenIDEx tokenIdEx = {0}; + std::shared_ptr permPolicySet = + AccessTokenInfoManager::GetInstance().GetNativePermissionPolicySet(tokenIdEx.tokenIdExStruct.tokenID); + ASSERT_EQ(permPolicySet, nullptr); +} + +/** + * @tc.name: RemoveHapTokenInfo001 + * @tc.desc: Verify the RemoveHapTokenInfo abnormal branch tokenID type is not true. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(AccessTokenInfoManagerTest, RemoveHapTokenInfo001, TestSize.Level1) +{ + AccessTokenIDEx tokenIdEx = {0}; + ASSERT_EQ(AccessTokenInfoManager::GetInstance().RemoveHapTokenInfo(tokenIdEx.tokenIdExStruct.tokenID), RET_FAILED); +} + /** * @tc.name: CreateHapTokenInfo002 * @tc.desc: Verify the CreateHapTokenInfo add one hap token twice function. @@ -325,6 +412,77 @@ HWTEST_F(AccessTokenInfoManagerTest, UpdateHapToken001, TestSize.Level1) GTEST_LOG_(INFO) << "remove the token info"; } +/** + * @tc.name: UpdateHapToken002 + * @tc.desc: Verify the UpdateHapToken token function abnormal branch. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(AccessTokenInfoManagerTest, UpdateHapToken002, TestSize.Level1) +{ + AccessTokenIDEx tokenIdEx = {0}; + HapPolicyParams policy = g_infoManagerTestPolicyPrams; + policy.apl = APL_SYSTEM_BASIC; + int ret = AccessTokenInfoManager::GetInstance().UpdateHapToken( + tokenIdEx.tokenIdExStruct.tokenID, std::string(""), DEFAULT_API_VERSION, policy); + ASSERT_EQ(RET_FAILED, ret); + + ret = AccessTokenInfoManager::GetInstance().UpdateHapToken( + tokenIdEx.tokenIdExStruct.tokenID, std::string("updateAppId"), DEFAULT_API_VERSION, policy); + ASSERT_EQ(RET_FAILED, ret); +} +#ifdef TOKEN_SYNC_ENABLE +/** + * @tc.name: GetHapTokenSync001 + * @tc.desc: Verify the GetHapTokenSync token function and abnormal branch. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(AccessTokenInfoManagerTest, GetHapTokenSync001, TestSize.Level1) +{ + AccessTokenIDEx tokenIdEx = {0}; + int result; + result = AccessTokenInfoManager::GetInstance().CreateHapTokenInfo( + g_infoManagerTestInfoParms, g_infoManagerTestPolicyPrams, tokenIdEx); + ASSERT_EQ(RET_SUCCESS, result); + GTEST_LOG_(INFO) << "add a hap token"; + + HapTokenInfoForSync hapSync; + result = AccessTokenInfoManager::GetInstance().GetHapTokenSync(tokenIdEx.tokenIdExStruct.tokenID, hapSync); + ASSERT_EQ(result, RET_SUCCESS); + + result = AccessTokenInfoManager::GetInstance().RemoveHapTokenInfo(tokenIdEx.tokenIdExStruct.tokenID); + ASSERT_EQ(RET_SUCCESS, result); + GTEST_LOG_(INFO) << "remove the token info"; + + result = AccessTokenInfoManager::GetInstance().GetHapTokenSync(tokenIdEx.tokenIdExStruct.tokenID, hapSync); + ASSERT_EQ(result, RET_FAILED); +} + +/** + * @tc.name: GetHapTokenInfoFromRemote001 + * @tc.desc: Verify the GetHapTokenInfoFromRemote token function . + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(AccessTokenInfoManagerTest, GetHapTokenInfoFromRemote001, TestSize.Level1) +{ + AccessTokenIDEx tokenIdEx = {0}; + int ret = AccessTokenInfoManager::GetInstance().CreateHapTokenInfo( + g_infoManagerTestInfoParms, g_infoManagerTestPolicyPrams, tokenIdEx); + ASSERT_EQ(RET_SUCCESS, ret); + GTEST_LOG_(INFO) << "add a hap token"; + + HapTokenInfoForSync hapSync; + ret = AccessTokenInfoManager::GetInstance().GetHapTokenInfoFromRemote(tokenIdEx.tokenIdExStruct.tokenID, hapSync); + ASSERT_EQ(ret, RET_SUCCESS); + + ret = AccessTokenInfoManager::GetInstance().RemoveHapTokenInfo(tokenIdEx.tokenIdExStruct.tokenID); + ASSERT_EQ(RET_SUCCESS, ret); + GTEST_LOG_(INFO) << "remove the token info"; +} +#endif + #ifdef SUPPORT_SANDBOX_APP static void PrepareJsonData1() { diff --git a/services/accesstokenmanager/test/unittest/cpp/src/native_token_receptor_test.cpp b/services/accesstokenmanager/test/unittest/cpp/src/native_token_receptor_test.cpp index 3ff81802ec61b3a8adf4a5fec6045356698c11d2..041d821bfe5392433885b2f47888cba5130bcce1 100644 --- a/services/accesstokenmanager/test/unittest/cpp/src/native_token_receptor_test.cpp +++ b/services/accesstokenmanager/test/unittest/cpp/src/native_token_receptor_test.cpp @@ -311,6 +311,53 @@ HWTEST_F(NativeTokenReceptorTest, ProcessNativeTokenInfos001, TestSize.Level1) ASSERT_EQ(ret, RET_SUCCESS); } +/** + * @tc.name: CheckNativeDCap001 + * @tc.desc: Verify CheckNativeDCap normal and abnormal branch + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(NativeTokenReceptorTest, CheckNativeDCap001, TestSize.Level1) +{ + ACCESSTOKEN_LOG_INFO(LABEL, "test CheckNativeDCap001!"); + + // test tokenInfo = nullptr + std::vector> tokenInfos; + tokenInfos.emplace_back(nullptr); + AccessTokenInfoManager::GetInstance().ProcessNativeTokenInfos(tokenInfos); + + // test process one + NativeTokenInfo info = {.apl = APL_NORMAL, + .ver = 1, + .processName = "native_token_test0", + .tokenID = 0x28100000, + .tokenAttr = 0, + .dcap = {"AT_CAP", "ST_CAP"}}; + + std::vector permStateList = {}; + std::shared_ptr nativeToken = std::make_shared(info, permStateList); + tokenInfos.emplace_back(nativeToken); + AccessTokenInfoManager::GetInstance().ProcessNativeTokenInfos(tokenInfos); + NativeTokenInfo findInfo; + int ret = AccessTokenInfoManager::GetInstance().GetNativeTokenInfo(info.tokenID, findInfo); + ASSERT_EQ(ret, RET_SUCCESS); + ASSERT_EQ(findInfo.apl, info.apl); + ASSERT_EQ(findInfo.ver, info.ver); + ASSERT_EQ(findInfo.processName, info.processName); + ASSERT_EQ(findInfo.tokenID, info.tokenID); + ASSERT_EQ(findInfo.tokenAttr, info.tokenAttr); + ASSERT_EQ(findInfo.dcap, info.dcap); + + std::string dcap = "AT_CAP"; + ASSERT_EQ(AccessTokenInfoManager::GetInstance().CheckNativeDCap(findInfo.tokenID, dcap), RET_SUCCESS); + std::string ndcap = "AT"; + ASSERT_EQ(AccessTokenInfoManager::GetInstance().CheckNativeDCap(findInfo.tokenID, ndcap), RET_FAILED); + AccessTokenID testId = 1; + ASSERT_EQ(AccessTokenInfoManager::GetInstance().CheckNativeDCap(testId, dcap), RET_FAILED); + ret = AccessTokenInfoManager::GetInstance().RemoveNativeTokenInfo(info.tokenID); + ASSERT_EQ(ret, RET_SUCCESS); +} + /** * @tc.name: ProcessNativeTokenInfos002 * @tc.desc: test add two native tokens.