1 /*
2 * Copyright (c) 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 <gtest/gtest.h>
17
18 #include "admin.h"
19
20 using namespace testing::ext;
21 using namespace testing;
22
23 namespace OHOS {
24 namespace EDM {
25 namespace TEST {
26 const std::string TEST_PERMISSION = "ohos.permission.EDM_TEST_PERMISSION";
27 const std::string TEST_PERMISSION_FAIL = "ohos.permission.EDM_TEST_PERMISSION_FAIL";
28 const std::string TEST_BUNDLE_NAME = "com.edm.test.demo";
29 const std::string TEST_ABILITY_NAME = "com.edm.test.demo.Ability";
30 class AdminTest : public testing::Test {};
31 /**
32 * @tc.name: TestCheckPermissionWithPermissionEmpty
33 * @tc.desc: Test AdminManager::CheckPermission.
34 * @tc.type: FUNC
35 */
HWTEST_F(AdminTest, TestCheckPermissionWithPermissionEmpty, TestSize.Level1)36 HWTEST_F(AdminTest, TestCheckPermissionWithPermissionEmpty, TestSize.Level1)
37 {
38 AppExecFwk::ExtensionAbilityInfo abilityInfo;
39 EntInfo entInfo;
40 std::vector<std::string> permissions;
41 std::shared_ptr<Admin> admin = std::make_shared<Admin>(abilityInfo, AdminType::ENT, entInfo, permissions, true);
42 bool ret = admin->CheckPermission(TEST_PERMISSION);
43 ASSERT_FALSE(ret);
44 }
45
46 /**
47 * @tc.name: TestCheckPermissionWithInvalidPermission
48 * @tc.desc: Test AdminManager::CheckPermission.
49 * @tc.type: FUNC
50 */
HWTEST_F(AdminTest, TestCheckPermissionWithInvalidPermission, TestSize.Level1)51 HWTEST_F(AdminTest, TestCheckPermissionWithInvalidPermission, TestSize.Level1)
52 {
53 AppExecFwk::ExtensionAbilityInfo abilityInfo;
54 EntInfo entInfo;
55 std::vector<std::string> permissions;
56 permissions.push_back(TEST_PERMISSION_FAIL);
57 std::shared_ptr<Admin> admin = std::make_shared<Admin>(abilityInfo, AdminType::ENT, entInfo, permissions, true);
58 bool ret = admin->CheckPermission(TEST_PERMISSION);
59 ASSERT_FALSE(ret);
60 }
61
62 /**
63 * @tc.name: TestCheckPermission
64 * @tc.desc: Test AdminManager::CheckPermission.
65 * @tc.type: FUNC
66 */
HWTEST_F(AdminTest, TestCheckPermission, TestSize.Level1)67 HWTEST_F(AdminTest, TestCheckPermission, TestSize.Level1)
68 {
69 AppExecFwk::ExtensionAbilityInfo abilityInfo;
70 EntInfo entInfo;
71 std::vector<std::string> permissions;
72 permissions.push_back(TEST_PERMISSION);
73 std::shared_ptr<Admin> admin = std::make_shared<Admin>(abilityInfo, AdminType::ENT, entInfo, permissions, true);
74 bool ret = admin->CheckPermission(TEST_PERMISSION);
75 ASSERT_TRUE(ret);
76 }
77
78 /**
79 * @tc.name: TestGetAdminTypeWithSuperAdmin
80 * @tc.desc: Test AdminManager::GetAdminType.
81 * @tc.type: FUNC
82 */
HWTEST_F(AdminTest, TestGetAdminTypeWithSuperAdmin, TestSize.Level1)83 HWTEST_F(AdminTest, TestGetAdminTypeWithSuperAdmin, TestSize.Level1)
84 {
85 AppExecFwk::ExtensionAbilityInfo abilityInfo;
86 EntInfo entInfo;
87 std::vector<std::string> permissions;
88 std::shared_ptr<Admin> admin = std::make_shared<Admin>(abilityInfo, AdminType::ENT, entInfo, permissions, true);
89 AdminType adminType = admin->GetAdminType();
90 ASSERT_TRUE(adminType == AdminType::ENT);
91 }
92
93 /**
94 * @tc.name: TestGetAdminTypeWithNormalAdmin
95 * @tc.desc: Test AdminManager::GetAdminType.
96 * @tc.type: FUNC
97 */
HWTEST_F(AdminTest, TestGetAdminTypeWithNormalAdmin, TestSize.Level1)98 HWTEST_F(AdminTest, TestGetAdminTypeWithNormalAdmin, TestSize.Level1)
99 {
100 AppExecFwk::ExtensionAbilityInfo abilityInfo;
101 EntInfo entInfo;
102 std::vector<std::string> permissions;
103 std::shared_ptr<Admin> admin = std::make_shared<Admin>(abilityInfo, AdminType::NORMAL, entInfo, permissions, true);
104 AdminType adminType = admin->GetAdminType();
105 ASSERT_TRUE(adminType == AdminType::NORMAL);
106 }
107
108 /**
109 * @tc.name: TestGetAdminTypeWithUnknownAdmin
110 * @tc.desc: Test AdminManager::GetAdminType.
111 * @tc.type: FUNC
112 */
HWTEST_F(AdminTest, TestGetAdminTypeWithUnknownAdmin, TestSize.Level1)113 HWTEST_F(AdminTest, TestGetAdminTypeWithUnknownAdmin, TestSize.Level1)
114 {
115 AppExecFwk::ExtensionAbilityInfo abilityInfo;
116 EntInfo entInfo;
117 std::vector<std::string> permissions;
118 std::shared_ptr<Admin> admin = std::make_shared<Admin>(abilityInfo, AdminType::UNKNOWN, entInfo, permissions, true);
119 AdminType adminType = admin->GetAdminType();
120 ASSERT_TRUE(adminType == AdminType::UNKNOWN);
121 }
122
123 /**
124 * @tc.name: TestGetParentAdminNameWithSuperAdmin
125 * @tc.desc: Test AdminManager::GetParentAdminName.
126 * @tc.type: FUNC
127 */
HWTEST_F(AdminTest, TestGetParentAdminNameWithSuperAdmin, TestSize.Level1)128 HWTEST_F(AdminTest, TestGetParentAdminNameWithSuperAdmin, TestSize.Level1)
129 {
130 AppExecFwk::ExtensionAbilityInfo abilityInfo;
131 EntInfo entInfo;
132 std::vector<std::string> permissions;
133 std::shared_ptr<Admin> admin = std::make_shared<Admin>(abilityInfo, AdminType::ENT, entInfo, permissions, true);
134 std::string parentAdminName = admin->GetParentAdminName();
135 ASSERT_TRUE(parentAdminName.empty());
136 }
137
138 /**
139 * @tc.name: TestGetParentAdminNameWithNormalAdmin
140 * @tc.desc: Test AdminManager::GetParentAdminName.
141 * @tc.type: FUNC
142 */
HWTEST_F(AdminTest, TestGetParentAdminNameWithNormalAdmin, TestSize.Level1)143 HWTEST_F(AdminTest, TestGetParentAdminNameWithNormalAdmin, TestSize.Level1)
144 {
145 AppExecFwk::ExtensionAbilityInfo abilityInfo;
146 EntInfo entInfo;
147 std::vector<std::string> permissions;
148 std::shared_ptr<Admin> admin = std::make_shared<Admin>(abilityInfo, AdminType::NORMAL, entInfo, permissions, true);
149 std::string parentAdminName = admin->GetParentAdminName();
150 ASSERT_TRUE(parentAdminName.empty());
151 }
152
153 /**
154 * @tc.name: TestGetParentAdminNameWithUnknownAdmin
155 * @tc.desc: Test AdminManager::GetParentAdminName.
156 * @tc.type: FUNC
157 */
HWTEST_F(AdminTest, TestGetParentAdminNameWithUnknownAdmin, TestSize.Level1)158 HWTEST_F(AdminTest, TestGetParentAdminNameWithUnknownAdmin, TestSize.Level1)
159 {
160 AppExecFwk::ExtensionAbilityInfo abilityInfo;
161 EntInfo entInfo;
162 std::vector<std::string> permissions;
163 std::shared_ptr<Admin> admin = std::make_shared<Admin>(abilityInfo, AdminType::UNKNOWN, entInfo, permissions, true);
164 std::string parentAdminName = admin->GetParentAdminName();
165 ASSERT_TRUE(parentAdminName.empty());
166 }
167 } // namespace TEST
168 } // namespace EDM
169 } // namespace OHOS