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