1/* 2 * Copyright (c) 2022-2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16#include "UTTest_permission_manager.h" 17#include "accesstoken_kit.h" 18#include "nativetoken_kit.h" 19#include "token_setproc.h" 20 21namespace OHOS { 22namespace DistributedHardware { 23void PermissionManagerTest::SetUp() 24{ 25 const int32_t permsNum = 2; 26 const int32_t indexZero = 0; 27 const int32_t indexOne = 1; 28 uint64_t tokenId; 29 const char *perms[permsNum]; 30 perms[indexZero] = "ohos.permission.ACCESS_SERVICE_DM"; 31 perms[indexOne] = "ohos.permission.DISTRIBUTED_DATASYNC"; 32 NativeTokenInfoParams infoInstance = { 33 .dcapsNum = 0, 34 .permsNum = permsNum, 35 .aclsNum = 0, 36 .dcaps = NULL, 37 .perms = perms, 38 .acls = NULL, 39 .processName = "dsoftbus_service", 40 .aplStr = "system_core", 41 }; 42 tokenId = GetAccessTokenId(&infoInstance); 43 SetSelfTokenID(tokenId); 44 OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo(); 45} 46constexpr int32_t PAKAGE_NAME_SIZE_MAX = 256; 47#define AUTH_CODE_WHITE_LIST_NUM (3) 48constexpr const static char g_authCodeWhiteList[AUTH_CODE_WHITE_LIST_NUM][PAKAGE_NAME_SIZE_MAX] = { 49 "com.huawei.msdp.hmringgenerator", 50 "com.huawei.msdp.hmringdiscriminator", 51 "CollaborationFwk", 52}; 53 54#define PIN_HOLDER_WHITE_LIST_NUM (1) 55constexpr const static char g_pinHolderWhiteList[PIN_HOLDER_WHITE_LIST_NUM][PKG_NAME_SIZE_MAX] = { 56 "CollaborationFwk", 57}; 58 59#define SYSTEM_SA_WHITE_LIST_NUM (4) 60constexpr const static char systemSaWhiteList[SYSTEM_SA_WHITE_LIST_NUM][PAKAGE_NAME_SIZE_MAX] = { 61 "Samgr_Networking", 62 "ohos.distributeddata.service", 63 "ohos.dslm", 64 "ohos.deviceprofile", 65}; 66void PermissionManagerTest::TearDown() 67{ 68} 69 70void PermissionManagerTest::SetUpTestCase() 71{ 72} 73 74void PermissionManagerTest::TearDownTestCase() 75{ 76} 77 78namespace { 79 80/** 81 * @tc.name: PinAuthUi::CheckPermission_001 82 * @tc.desc: the return value is true 83 * @tc.type: FUNC 84 * @tc.require: AR000GHSJK 85 */ 86HWTEST_F(PermissionManagerTest, CheckPermission_001, testing::ext::TestSize.Level0) 87{ 88 bool ret = PermissionManager::GetInstance().CheckPermission(); 89 ASSERT_EQ(ret, true); 90} 91 92/** 93 * @tc.name: PinAuthUi::GetCallerProcessName_001 94 * @tc.desc: the return value is not DM_OK 95 * @tc.type: FUNC 96 * @tc.require: AR000GHSJK 97 */ 98HWTEST_F(PermissionManagerTest, GetCallerProcessName_001, testing::ext::TestSize.Level0) 99{ 100 std::string processName; 101 int32_t ret = PermissionManager::GetInstance().GetCallerProcessName(processName); 102 ASSERT_EQ(ret, DM_OK); 103} 104 105/** 106 * @tc.name: PinAuthUi::CheckProcessNameValidOnAuthCode_001 107 * @tc.desc: the return value is false 108 * @tc.type: FUNC 109 * @tc.require: AR000GHSJK 110 */ 111HWTEST_F(PermissionManagerTest, CheckProcessNameValidOnAuthCode_001, testing::ext::TestSize.Level0) 112{ 113 std::string processName; 114 bool ret = PermissionManager::GetInstance().CheckProcessNameValidOnAuthCode(processName); 115 ASSERT_EQ(ret, false); 116} 117 118/** 119 * @tc.name: PinAuthUi::CheckProcessNameValidOnAuthCode_002 120 * @tc.desc: the return value is false 121 * @tc.type: FUNC 122 * @tc.require: AR000GHSJK 123 */ 124HWTEST_F(PermissionManagerTest, CheckProcessNameValidOnAuthCode_002, testing::ext::TestSize.Level0) 125{ 126 std::string processName = "processName"; 127 bool ret = PermissionManager::GetInstance().CheckProcessNameValidOnAuthCode(processName); 128 ASSERT_EQ(ret, false); 129} 130 131/** 132 * @tc.name: PinAuthUi::CheckProcessNameValidOnAuthCode_003 133 * @tc.desc: the return value is true 134 * @tc.type: FUNC 135 * @tc.require: AR000GHSJK 136 */ 137HWTEST_F(PermissionManagerTest, CheckProcessNameValidOnAuthCode_003, testing::ext::TestSize.Level0) 138{ 139 std::string processName1(g_authCodeWhiteList[0]); 140 bool ret = PermissionManager::GetInstance().CheckProcessNameValidOnAuthCode(processName1); 141 ASSERT_EQ(ret, true); 142 std::string processName2(g_authCodeWhiteList[1]); 143 ret = PermissionManager::GetInstance().CheckProcessNameValidOnAuthCode(processName2); 144 ASSERT_EQ(ret, true); 145 std::string processName3(g_authCodeWhiteList[2]); 146 ret = PermissionManager::GetInstance().CheckProcessNameValidOnAuthCode(processName3); 147 ASSERT_EQ(ret, true); 148} 149 150HWTEST_F(PermissionManagerTest, CheckProcessNameValidOnAuthCode_004, testing::ext::TestSize.Level0) 151{ 152 std::string processName = "CollaborationFwk"; 153 bool ret = PermissionManager::GetInstance().CheckProcessNameValidOnAuthCode(processName); 154 ASSERT_TRUE(ret); 155} 156/** 157 * @tc.name: PinAuthUi::CheckProcessNameValidOnPinHolder_001 158 * @tc.desc: the return value is false 159 * @tc.type: FUNC 160 * @tc.require: AR000GHSJK 161 */ 162HWTEST_F(PermissionManagerTest, CheckProcessNameValidOnPinHolder_001, testing::ext::TestSize.Level0) 163{ 164 std::string processName; 165 bool ret = PermissionManager::GetInstance().CheckProcessNameValidOnPinHolder(processName); 166 ASSERT_EQ(ret, false); 167} 168 169/** 170 * @tc.name: PinAuthUi::CheckProcessNameValidOnPinHolder_002 171 * @tc.desc: the return value is false 172 * @tc.type: FUNC 173 * @tc.require: AR000GHSJK 174 */ 175HWTEST_F(PermissionManagerTest, CheckProcessNameValidOnPinHolder_002, testing::ext::TestSize.Level0) 176{ 177 std::string processName = "processName"; 178 bool ret = PermissionManager::GetInstance().CheckProcessNameValidOnPinHolder(processName); 179 ASSERT_EQ(ret, false); 180} 181 182/** 183 * @tc.name: PinAuthUi::CheckProcessNameValidOnPinHolder_003 184 * @tc.desc: the return value is true 185 * @tc.type: FUNC 186 * @tc.require: AR000GHSJK 187 */ 188HWTEST_F(PermissionManagerTest, CheckProcessNameValidOnPinHolder_003, testing::ext::TestSize.Level0) 189{ 190 std::string processName1(g_pinHolderWhiteList[0]); 191 bool ret = PermissionManager::GetInstance().CheckProcessNameValidOnPinHolder(processName1); 192 ASSERT_EQ(ret, true); 193} 194 195HWTEST_F(PermissionManagerTest, CheckProcessNameValidOnPinHolder_004, testing::ext::TestSize.Level0) 196{ 197 std::string processName = "CollaborationFwk"; 198 bool ret = PermissionManager::GetInstance().CheckProcessNameValidOnPinHolder(processName); 199 ASSERT_TRUE(ret); 200} 201/** 202 * @tc.name: PinAuthUi::CheckSystemSA_001 203 * @tc.desc: the return value is false 204 * @tc.type:FUNC 205 * @tc.require: AR000GHSJK 206*/ 207HWTEST_F(PermissionManagerTest, CheckSystemSA_001, testing::ext::TestSize.Level0) 208{ 209 std::string pkgName; 210 bool ret = PermissionManager::GetInstance().CheckSystemSA(pkgName); 211 ASSERT_EQ(ret, false); 212 pkgName = "pkgName"; 213 ret = PermissionManager::GetInstance().CheckSystemSA(pkgName); 214 ASSERT_EQ(ret, false); 215} 216 217/** 218 * @tc.name: PinAuthUi::CheckSystemSA_002 219 * @tc.desc: the return value is true 220 * @tc.type:FUNC 221 * @tc.require: AR000GHSJK 222*/ 223HWTEST_F(PermissionManagerTest, CheckSystemSA_002, testing::ext::TestSize.Level0) 224{ 225 std::string pkgName1(systemSaWhiteList[0]); 226 bool ret = PermissionManager::GetInstance().CheckSystemSA(pkgName1); 227 ASSERT_EQ(ret, true); 228 std::string pkgName2(systemSaWhiteList[1]); 229 ret = PermissionManager::GetInstance().CheckSystemSA(pkgName2); 230 ASSERT_EQ(ret, true); 231 std::string pkgName3(systemSaWhiteList[2]); 232 ret = PermissionManager::GetInstance().CheckSystemSA(pkgName3); 233 ASSERT_EQ(ret, true); 234 std::string pkgName4(systemSaWhiteList[3]); 235 ret = PermissionManager::GetInstance().CheckSystemSA(pkgName4); 236 ASSERT_EQ(ret, true); 237} 238 239HWTEST_F(PermissionManagerTest, CheckSystemSA_101, testing::ext::TestSize.Level0) 240{ 241 std::string pkgName = "pkgName"; 242 bool ret = PermissionManager::GetInstance().CheckSystemSA(pkgName); 243 ASSERT_FALSE(ret); 244} 245 246HWTEST_F(PermissionManagerTest, CheckSystemSA_102, testing::ext::TestSize.Level0) 247{ 248 std::string pkgName = "ohos.dhardware"; 249 bool ret = PermissionManager::GetInstance().CheckSystemSA(pkgName); 250 ASSERT_TRUE(ret); 251} 252} 253} // namespace DistributedHardware 254} // namespace OHOS