• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 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 "dms_token_callback_test.h"
17 
18 #include "distributed_sched_test_util.h"
19 #include "dms_token_callback.h"
20 #include "dtbschedmgr_log.h"
21 #include "multi_user_manager.h"
22 #include "test_log.h"
23 
24 using namespace testing;
25 using namespace testing::ext;
26 
27 namespace OHOS {
28 namespace DistributedSchedule {
29 namespace {
30 const char* DISTSCHED_PROCESS_NAME = "distributedsched";
31 const char* FOUNDATION_PROCESS_NAME = "foundation";
32 const char* INVALID_PROCESS_NAME = "invalid_process";
33 }
34 
SetUpTestCase()35 void DmsTokenCallbackTest::SetUpTestCase()
36 {
37     DTEST_LOG << "DmsTokenCallbackTest::SetUpTestCase" << std::endl;
38     multiUserMgrMock_ = std::make_shared<MultiUserManagerMock>();
39     MultiUserManagerMock::multiUserMgrMock = multiUserMgrMock_;
40 }
41 
TearDownTestCase()42 void DmsTokenCallbackTest::TearDownTestCase()
43 {
44     DTEST_LOG << "DmsTokenCallbackTest::TearDownTestCase" << std::endl;
45     MultiUserManagerMock::multiUserMgrMock = nullptr;
46     multiUserMgrMock_ = nullptr;
47 }
48 
TearDown()49 void DmsTokenCallbackTest::TearDown()
50 {
51     DTEST_LOG << "DmsTokenCallbackTest::TearDown" << std::endl;
52 }
53 
SetUp()54 void DmsTokenCallbackTest::SetUp()
55 {
56     DTEST_LOG << "DmsTokenCallbackTest::SetUp" << std::endl;
57     dmsTokenCallback_ = new DmsTokenCallback();
58     DistributedSchedUtil::MockProcess(FOUNDATION_PROCESS_NAME);
59 }
60 
61 /**
62  * @tc.name: SendResultTest_001
63  * @tc.desc: call SendResult from distributedsched
64  * @tc.type: FUNC
65  * @tc.require: I5RWIV
66  */
67 HWTEST_F(DmsTokenCallbackTest, SendResultTest_001, TestSize.Level3)
68 {
69     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_001 begin" << std::endl;
70     ASSERT_NE(dmsTokenCallback_, nullptr);
71     AAFwk::Want want;
72     int32_t callerUid = 0;
73     int32_t requestCode = 0;
74     uint32_t accessToken = 0;
75     int32_t resultCode = 0;
76     DistributedSchedUtil::MockProcess(DISTSCHED_PROCESS_NAME);
77     EXPECT_CALL(*multiUserMgrMock_, IsCallerForeground(_)).WillRepeatedly(Return(true));
78     int32_t result = dmsTokenCallback_->SendResult(want, callerUid, requestCode, accessToken, resultCode);
79     EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
80     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_001 end" << std::endl;
81 }
82 
83 /**
84  * @tc.name: SendResultTest_002
85  * @tc.desc: call SendResult from foundation
86  * @tc.type: FUNC
87  * @tc.require: I5RWIV
88  */
89 HWTEST_F(DmsTokenCallbackTest, SendResultTest_002, TestSize.Level3)
90 {
91     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_002 begin" << std::endl;
92     ASSERT_NE(dmsTokenCallback_, nullptr);
93     AAFwk::Want want;
94     int32_t callerUid = 0;
95     int32_t requestCode = 0;
96     uint32_t accessToken = 0;
97     int32_t resultCode = 0;
98     int32_t result = dmsTokenCallback_->SendResult(want, callerUid, requestCode, accessToken, resultCode);
99     EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
100     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_002 end" << std::endl;
101 }
102 
103 /**
104  * @tc.name: SendResultTest_003
105  * @tc.desc: call SendResult with local device id
106  * @tc.type: FUNC
107  * @tc.require: I5WKCK
108  */
109 HWTEST_F(DmsTokenCallbackTest, SendResultTest_003, TestSize.Level3)
110 {
111     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_003 begin" << std::endl;
112     ASSERT_NE(dmsTokenCallback_, nullptr);
113     AAFwk::Want want;
114     string localDeviceId;
115     dmsTokenCallback_->GetLocalDeviceId(localDeviceId);
116     want.SetParam("dmsSrcNetworkId", localDeviceId);
117     int32_t callerUid = 0;
118     int32_t requestCode = 0;
119     uint32_t accessToken = 0;
120     int32_t resultCode = 0;
121     int32_t result = dmsTokenCallback_->SendResult(want, callerUid, requestCode, accessToken, resultCode);
122     EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
123     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_003 end" << std::endl;
124 }
125 
126 /**
127  * @tc.name: SendResultTest_004
128  * @tc.desc: call SendResult from invalid process
129  * @tc.type: FUNC
130  * @tc.require: I64FU7
131  */
132 HWTEST_F(DmsTokenCallbackTest, SendResultTest_004, TestSize.Level3)
133 {
134     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_004 begin" << std::endl;
135     ASSERT_NE(dmsTokenCallback_, nullptr);
136     AAFwk::Want want;
137     int32_t callerUid = 0;
138     int32_t requestCode = 0;
139     uint32_t accessToken = 0;
140     int32_t resultCode = 0;
141     DistributedSchedUtil::MockProcess(INVALID_PROCESS_NAME);
142     int32_t result = dmsTokenCallback_->SendResult(want, callerUid, requestCode, accessToken, resultCode);
143     EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
144     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_004 end" << std::endl;
145 }
146 
147 /**
148  * @tc.name: SendResultTest_005
149  * @tc.desc: call SendResult with remote device id
150  * @tc.type: FUNC
151  * @tc.require: I64FU7
152  */
153 HWTEST_F(DmsTokenCallbackTest, SendResultTest_005, TestSize.Level3)
154 {
155     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_005 begin" << std::endl;
156     ASSERT_NE(dmsTokenCallback_, nullptr);
157     AAFwk::Want want;
158     string remoteDeviceId = "remoteDeviceId";
159     want.SetParam("dmsSrcNetworkId", remoteDeviceId);
160     int32_t callerUid = 0;
161     int32_t requestCode = 0;
162     uint32_t accessToken = 0;
163     int32_t resultCode = 0;
164     int32_t result = dmsTokenCallback_->SendResult(want, callerUid, requestCode, accessToken, resultCode);
165     EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
166     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_005 end" << std::endl;
167 }
168 
169 /**
170  * @tc.name: SendResultTest_006
171  * @tc.desc: call SendResult with user is not foreground
172  * @tc.type: FUNC
173  */
174 HWTEST_F(DmsTokenCallbackTest, SendResultTest_006, TestSize.Level3)
175 {
176     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_006 begin" << std::endl;
177     ASSERT_NE(dmsTokenCallback_, nullptr);
178     AAFwk::Want want;
179     string remoteDeviceId = "remoteDeviceId";
180     want.SetParam("dmsSrcNetworkId", remoteDeviceId);
181     int32_t callerUid = 0;
182     int32_t requestCode = 0;
183     uint32_t accessToken = 0;
184     int32_t resultCode = 0;
185     EXPECT_CALL(*multiUserMgrMock_, IsCallerForeground(_)).WillOnce(Return(false));
186     int32_t result = dmsTokenCallback_->SendResult(want, callerUid, requestCode, accessToken, resultCode);
187     EXPECT_EQ(result, DMS_NOT_FOREGROUND_USER);
188     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_006 end" << std::endl;
189 }
190 
191 /**
192  * @tc.name: CheckDeviceIdTest_001
193  * @tc.desc: call CheckDeviceId with empty deviceId
194  * @tc.type: FUNC
195  * @tc.require: I5RWIV
196  */
197 HWTEST_F(DmsTokenCallbackTest, CheckDeviceIdTest_001, TestSize.Level3)
198 {
199     DTEST_LOG << "DmsTokenCallbackTest CheckDeviceIdTest_001 begin" << std::endl;
200     ASSERT_NE(dmsTokenCallback_, nullptr);
201     std::string localDeviceId;
202     std::string remoteDeviceId;
203     bool result = dmsTokenCallback_->CheckDeviceId(localDeviceId, remoteDeviceId);
204     EXPECT_EQ(result, false);
205     DTEST_LOG << "DmsTokenCallbackTest CheckDeviceIdTest_001 end" << std::endl;
206 }
207 
208 /**
209  * @tc.name: CheckDeviceIdTest_002
210  * @tc.desc: call CheckDeviceId with same deviceId
211  * @tc.type: FUNC
212  * @tc.require: I5RWIV
213  */
214 HWTEST_F(DmsTokenCallbackTest, CheckDeviceIdTest_002, TestSize.Level3)
215 {
216     DTEST_LOG << "DmsTokenCallbackTest CheckDeviceIdTest_002 begin" << std::endl;
217     ASSERT_NE(dmsTokenCallback_, nullptr);
218     std::string localDeviceId = "1";
219     std::string remoteDeviceId = "1";
220     bool result = dmsTokenCallback_->CheckDeviceId(localDeviceId, remoteDeviceId);
221     EXPECT_EQ(result, false);
222     DTEST_LOG << "DmsTokenCallbackTest CheckDeviceIdTest_002 end" << std::endl;
223 }
224 
225 /**
226  * @tc.name: CheckDeviceIdTest_003
227  * @tc.desc: call CheckDeviceId with different deviceId
228  * @tc.type: FUNC
229  * @tc.require: I5RWIV
230  */
231 HWTEST_F(DmsTokenCallbackTest, CheckDeviceIdTest_003, TestSize.Level3)
232 {
233     DTEST_LOG << "DmsTokenCallbackTest CheckDeviceIdTest_003 begin" << std::endl;
234     ASSERT_NE(dmsTokenCallback_, nullptr);
235     std::string localDeviceId = "1";
236     std::string remoteDeviceId = "2";
237     bool result = dmsTokenCallback_->CheckDeviceId(localDeviceId, remoteDeviceId);
238     EXPECT_EQ(result, true);
239     DTEST_LOG << "DmsTokenCallbackTest CheckDeviceIdTest_003 end" << std::endl;
240 }
241 
242 /**
243  * @tc.name: GetRemoteDmsTest_001
244  * @tc.desc: call GetRemoteDms with empty deviceId
245  * @tc.type: FUNC
246  * @tc.require: I5RWIV
247  */
248 HWTEST_F(DmsTokenCallbackTest, GetRemoteDmsTest_001, TestSize.Level3)
249 {
250     DTEST_LOG << "DmsTokenCallbackTest GetRemoteDmsTest_001 begin" << std::endl;
251     ASSERT_NE(dmsTokenCallback_, nullptr);
252     std::string remoteDeviceId;
253     sptr<IDistributedSched> result = dmsTokenCallback_->GetRemoteDms(remoteDeviceId);
254     EXPECT_EQ(result, nullptr);
255     DTEST_LOG << "DmsTokenCallbackTest GetRemoteDmsTest_001 end" << std::endl;
256 }
257 
258 /**
259  * @tc.name: GetRemoteDmsTest_002
260  * @tc.desc: call GetRemoteDms with invalid deviceId
261  * @tc.type: FUNC
262  * @tc.require: I5RWIV
263  */
264 HWTEST_F(DmsTokenCallbackTest, GetRemoteDmsTest_002, TestSize.Level3)
265 {
266     DTEST_LOG << "DmsTokenCallbackTest GetRemoteDmsTest_002 begin" << std::endl;
267     ASSERT_NE(dmsTokenCallback_, nullptr);
268     std::string remoteDeviceId = "1";
269     sptr<IDistributedSched> result = dmsTokenCallback_->GetRemoteDms(remoteDeviceId);
270     EXPECT_EQ(result, nullptr);
271     DTEST_LOG << "DmsTokenCallbackTest GetRemoteDmsTest_002 end" << std::endl;
272 }
273 }
274 }