1 /*
2 * Copyright (c) 2021 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 "distributed_sched_permission_test.h"
17
18 #include "distributed_sched_interface.h"
19 #include "distributed_sched_permission.h"
20 #include "dtbschedmgr_log.h"
21 #include "test_log.h"
22
23 using namespace testing;
24 using namespace testing::ext;
25
26 namespace OHOS {
27 namespace DistributedSchedule {
28 namespace {
29 const string GROUP_ID = "TEST_GROUP_ID";
30 }
31
SetUpTestCase()32 void DistributedSchedPermissionTest::SetUpTestCase()
33 {
34 DTEST_LOG << "DistributedSchedPermissionTest::SetUpTestCase" << std::endl;
35 }
36
TearDownTestCase()37 void DistributedSchedPermissionTest::TearDownTestCase()
38 {
39 DTEST_LOG << "DistributedSchedPermissionTest::TearDownTestCase" << std::endl;
40 }
41
TearDown()42 void DistributedSchedPermissionTest::TearDown()
43 {
44 DTEST_LOG << "DistributedSchedPermissionTest::TearDown" << std::endl;
45 }
46
SetUp()47 void DistributedSchedPermissionTest::SetUp()
48 {
49 DTEST_LOG << "DistributedSchedPermissionTest::SetUp" << std::endl;
50 }
51
52 /**
53 * @tc.name: CheckDPermission_001
54 * @tc.desc: input invalid params
55 * @tc.type: FUNC
56 */
57 HWTEST_F(DistributedSchedPermissionTest, CheckDPermission_001, TestSize.Level0)
58 {
59 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_001 begin" << std::endl;
60 AAFwk::Want want;
61 CallerInfo callerInfo;
62 IDistributedSched::AccountInfo accountInfo;
63 accountInfo.accountType = IDistributedSched::DIFF_ACCOUNT_TYPE;
64 AppExecFwk::AbilityInfo abilityInfo;
65 abilityInfo.visible = true;
66 std::string localDeviceId = "255.255.255.255";
67 int32_t ret = DistributedSchedPermission::GetInstance().CheckDPermission(want,
68 callerInfo, accountInfo, abilityInfo, localDeviceId);
69 EXPECT_TRUE(ret != ERR_OK);
70 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_001 end ret:" << ret << std::endl;
71 }
72
73 /**
74 * @tc.name: CheckDPermission_002
75 * @tc.desc: input invalid params
76 * @tc.type: FUNC
77 */
78 HWTEST_F(DistributedSchedPermissionTest, CheckDPermission_002, TestSize.Level0)
79 {
80 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_002 begin" << std::endl;
81 AAFwk::Want want;
82 CallerInfo callerInfo;
83 IDistributedSched::AccountInfo accountInfo;
84 accountInfo.accountType = IDistributedSched::DIFF_ACCOUNT_TYPE;
85 AppExecFwk::AbilityInfo abilityInfo;
86 abilityInfo.visible = false;
87 std::string localDeviceId = "255.255.255.255";
88 int32_t ret = DistributedSchedPermission::GetInstance().CheckDPermission(want,
89 callerInfo, accountInfo, abilityInfo, localDeviceId);
90 EXPECT_TRUE(ret != ERR_OK);
91 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_002 end ret:" << ret << std::endl;
92 }
93
94 /**
95 * @tc.name: CheckDPermission_003
96 * @tc.desc: input invalid params
97 * @tc.type: FUNC
98 */
99 HWTEST_F(DistributedSchedPermissionTest, CheckDPermission_003, TestSize.Level0)
100 {
101 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_003 begin" << std::endl;
102 AAFwk::Want want;
103 CallerInfo callerInfo;
104 IDistributedSched::AccountInfo accountInfo;
105 accountInfo.accountType = IDistributedSched::DIFF_ACCOUNT_TYPE;
106 AppExecFwk::AbilityInfo abilityInfo;
107 abilityInfo.visible = true;
108 std::string localDeviceId = "";
109 int32_t ret = DistributedSchedPermission::GetInstance().CheckDPermission(want,
110 callerInfo, accountInfo, abilityInfo, localDeviceId);
111 EXPECT_TRUE(ret == INVALID_PARAMETERS_ERR);
112 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_003 end ret:" << ret << std::endl;
113 }
114
115 /**
116 * @tc.name: CheckDPermission_004
117 * @tc.desc: input invalid params
118 * @tc.type: FUNC
119 */
120 HWTEST_F(DistributedSchedPermissionTest, CheckDPermission_004, TestSize.Level0)
121 {
122 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_004 begin" << std::endl;
123 AAFwk::Want want;
124 CallerInfo callerInfo;
125 IDistributedSched::AccountInfo accountInfo;
126 accountInfo.accountType = IDistributedSched::DIFF_ACCOUNT_TYPE;
127 AppExecFwk::AbilityInfo abilityInfo;
128 abilityInfo.visible = false;
129 std::string localDeviceId = "";
130 int32_t ret = DistributedSchedPermission::GetInstance().CheckDPermission(want,
131 callerInfo, accountInfo, abilityInfo, localDeviceId);
132 EXPECT_TRUE(ret == INVALID_PARAMETERS_ERR);
133 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_004 end ret:" << ret << std::endl;
134 }
135
136 /**
137 * @tc.name: CheckDPermission_005
138 * @tc.desc: call CheckDPermission with illegal parameter
139 * @tc.type: FUNC
140 * @tc.require: SR000GK79C
141 */
142 HWTEST_F(DistributedSchedPermissionTest, CheckDPermission_005, TestSize.Level0)
143 {
144 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_005 begin" << std::endl;
145 AAFwk::Want want;
146 CallerInfo callerInfo;
147 callerInfo.accessToken = 0;
148 IDistributedSched::AccountInfo accountInfo;
149 AppExecFwk::AbilityInfo abilityInfo;
150 std::string localDeviceId = "255.255.255.255";
151 int32_t ret = DistributedSchedPermission::GetInstance().CheckDPermission(want, callerInfo, accountInfo, abilityInfo,
152 localDeviceId);
153 EXPECT_TRUE(ret != ERR_OK);
154 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_005 end result:" << ret << std::endl;
155 }
156
157 /**
158 * @tc.name: CheckDPermission_006
159 * @tc.desc: call CheckDPermission with different account type
160 * @tc.type: FUNC
161 * @tc.require: AR000GK79E
162 */
163 HWTEST_F(DistributedSchedPermissionTest, CheckDPermission_006, TestSize.Level1)
164 {
165 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_006 begin" << std::endl;
166 AAFwk::Want want;
167 CallerInfo callerInfo;
168 callerInfo.accessToken = 0;
169 IDistributedSched::AccountInfo accountInfo;
170 accountInfo.accountType = IDistributedSched::DIFF_ACCOUNT_TYPE;
171 AppExecFwk::AbilityInfo abilityInfo;
172 string localDeviceId = "255.255.255.255";
173 int32_t ret = DistributedSchedPermission::GetInstance().CheckDPermission(want, callerInfo, accountInfo, abilityInfo,
174 localDeviceId);
175 EXPECT_TRUE(ret != ERR_OK);
176 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_006 end result:" << ret << std::endl;
177 }
178
179 /**
180 * @tc.name: CheckDPermission_007
181 * @tc.desc: call CheckDPermission with illegal ability info
182 * @tc.type: FUNC
183 * @tc.require: AR000GK79E
184 */
185 HWTEST_F(DistributedSchedPermissionTest, CheckDPermission_007, TestSize.Level1)
186 {
187 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_007 begin" << std::endl;
188 AAFwk::Want want;
189 CallerInfo callerInfo;
190 callerInfo.accessToken = 0;
191 IDistributedSched::AccountInfo accountInfo;
192 AppExecFwk::AbilityInfo abilityInfo;
193 abilityInfo.visible = true;
194 string localDeviceId = "255.255.255.255";
195 int32_t ret = DistributedSchedPermission::GetInstance().CheckDPermission(want, callerInfo, accountInfo, abilityInfo,
196 localDeviceId);
197 EXPECT_TRUE(ret != ERR_OK);
198 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_007 end result:" << ret << std::endl;
199 }
200
201 /**
202 * @tc.name: CheckDPermission_008
203 * @tc.desc: call CheckDPermission with same account type
204 * @tc.type: FUNC
205 * @tc.require: SR000H1FJV
206 */
207 HWTEST_F(DistributedSchedPermissionTest, CheckDPermission_008, TestSize.Level0)
208 {
209 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_008 begin" << std::endl;
210 AAFwk::Want want;
211 CallerInfo callerInfo;
212 callerInfo.accessToken = 0;
213 IDistributedSched::AccountInfo accountInfo;
214 accountInfo.accountType = IDistributedSched::SAME_ACCOUNT_TYPE;
215 AppExecFwk::AbilityInfo abilityInfo;
216 string localDeviceId = "255.255.255.255";
217 int32_t ret = DistributedSchedPermission::GetInstance().CheckDPermission(want, callerInfo, accountInfo, abilityInfo,
218 localDeviceId);
219 EXPECT_TRUE(ret != ERR_OK);
220 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_008 end result:" << ret << std::endl;
221 }
222
223 /**
224 * @tc.name: CheckDPermission_009
225 * @tc.desc: call CheckDPermission with illegal account info
226 * @tc.type: FUNC
227 * @tc.require: AR000H1RID
228 */
229 HWTEST_F(DistributedSchedPermissionTest, CheckDPermission_009, TestSize.Level1)
230 {
231 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_009 begin" << std::endl;
232 AAFwk::Want want;
233 CallerInfo callerInfo;
234 callerInfo.accessToken = 0;
235 IDistributedSched::AccountInfo accountInfo;
236 accountInfo.accountType = IDistributedSched::DIFF_ACCOUNT_TYPE;
237 std::string groupId = GROUP_ID;
238 accountInfo.groupIdList.push_back(groupId);
239 AppExecFwk::AbilityInfo abilityInfo;
240 abilityInfo.visible = true;
241 string localDeviceId = "255.255.255.255";
242 int32_t ret = DistributedSchedPermission::GetInstance().CheckDPermission(want, callerInfo, accountInfo, abilityInfo,
243 localDeviceId);
244 EXPECT_TRUE(ret != ERR_OK);
245 DTEST_LOG << "DistributedSchedPermissionTest CheckDPermission_009 end result:" << ret << std::endl;
246 }
247 } // namespace DistributedSchedule
248 } // namespace OHOS