• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include "av_controller_callback_stub.h"
18 #include "avsession_log.h"
19 #include "avsession_descriptor.h"
20 #include "avsession_errors.h"
21 #include "accesstoken_kit.h"
22 #include "token_setproc.h"
23 
24 using namespace testing::ext;
25 using namespace OHOS::AVSession;
26 using namespace OHOS::Security::AccessToken;
27 
28 namespace OHOS {
29 namespace AVSession {
30 static uint64_t g_selfTokenId = 0;
31 static int32_t MAX_IMAGE_SIZE = 10 * 1024 * 1024;
32 static HapInfoParams g_info = {
33     .userID = 100,
34     .bundleName = "ohos.permission_test.demo",
35     .instIndex = 0,
36     .appIDDesc = "ohos.permission_test.demo",
37     .isSystemApp = true
38 };
39 
40 static HapPolicyParams g_policy = {
41     .apl = APL_NORMAL,
42     .domain = "test.domain",
43     .permList = {
44         {
45             .permissionName = "ohos.permission.MANAGE_MEDIA_RESOURCES",
46             .bundleName = "ohos.permission_test.demo",
47             .grantMode = 1,
48             .availableLevel = APL_NORMAL,
49             .label = "label",
50             .labelId = 1,
51             .description = "test",
52             .descriptionId = 1
53         }
54     },
55     .permStateList = {
56         {
57             .permissionName = "ohos.permission.MANAGE_MEDIA_RESOURCES",
58             .isGeneral = true,
59             .resDeviceID = {"local"},
60             .grantStatus = {PermissionState::PERMISSION_GRANTED},
61             .grantFlags = {1}
62         }
63     }
64 };
65 
66 class AVControllerCallbackStubTest : public testing::Test {
67 public:
68     static void SetUpTestCase();
69     static void TearDownTestCase();
70     void SetUp() override;
71     void TearDown() override;
72 };
73 
SetUpTestCase()74 void AVControllerCallbackStubTest::SetUpTestCase()
75 {
76     g_selfTokenId = GetSelfTokenID();
77     AccessTokenKit::AllocHapToken(g_info, g_policy);
78     AccessTokenIDEx tokenID = AccessTokenKit::GetHapTokenIDEx(g_info.userID, g_info.bundleName, g_info.instIndex);
79     SetSelfTokenID(tokenID.tokenIDEx);
80 }
81 
TearDownTestCase()82 void AVControllerCallbackStubTest::TearDownTestCase()
83 {
84     SetSelfTokenID(g_selfTokenId);
85     auto tokenId = AccessTokenKit::GetHapTokenID(g_info.userID, g_info.bundleName, g_info.instIndex);
86     AccessTokenKit::DeleteToken(tokenId);
87 }
88 
SetUp()89 void AVControllerCallbackStubTest::SetUp()
90 {
91 }
92 
TearDown()93 void AVControllerCallbackStubTest::TearDown()
94 {
95 }
96 
97 class AVControllerCallbackStubDemo : public AVControllerCallbackStub {
OnAVCallMetaDataChange(const AVCallMetaData & avCallMetaData)98     ErrCode OnAVCallMetaDataChange(const AVCallMetaData &avCallMetaData) override
99     {
100         return AVSESSION_SUCCESS;
101     };
OnAVCallStateChange(const AVCallState & avCallState)102     ErrCode OnAVCallStateChange(const AVCallState &avCallState) override
103     {
104         return AVSESSION_SUCCESS;
105     };
OnSessionDestroy()106     ErrCode OnSessionDestroy() override
107     {
108         return AVSESSION_SUCCESS;
109     };
OnPlaybackStateChange(const AVPlaybackState & state)110     ErrCode OnPlaybackStateChange(const AVPlaybackState &state) override
111     {
112         return AVSESSION_SUCCESS;
113     };
OnMetaDataChange(const AVMetaData & data)114     ErrCode OnMetaDataChange(const AVMetaData &data) override
115     {
116         return AVSESSION_SUCCESS;
117     };
OnActiveStateChange(bool isActive)118     ErrCode OnActiveStateChange(bool isActive) override
119     {
120         return AVSESSION_SUCCESS;
121     };
OnValidCommandChange(const std::vector<int32_t> & cmds)122     ErrCode OnValidCommandChange(const std::vector<int32_t> &cmds) override
123     {
124         return AVSESSION_SUCCESS;
125     };
OnOutputDeviceChange(const int32_t connectionState,const OutputDeviceInfo & outputDeviceInfo)126     ErrCode OnOutputDeviceChange(const int32_t connectionState, const OutputDeviceInfo &outputDeviceInfo) override
127     {
128         return AVSESSION_SUCCESS;
129     };
OnSessionEventChange(const std::string & event,const OHOS::AAFwk::WantParams & args)130     ErrCode OnSessionEventChange(const std::string &event, const OHOS::AAFwk::WantParams &args) override
131     {
132         return AVSESSION_SUCCESS;
133     };
OnQueueItemsChange(const std::vector<AVQueueItem> & items)134     ErrCode OnQueueItemsChange(const std::vector<AVQueueItem> &items) override
135     {
136         return AVSESSION_SUCCESS;
137     };
OnQueueTitleChange(const std::string & title)138     ErrCode OnQueueTitleChange(const std::string &title) override
139     {
140         return AVSESSION_SUCCESS;
141     };
OnExtrasChange(const OHOS::AAFwk::WantParams & extras)142     ErrCode OnExtrasChange(const OHOS::AAFwk::WantParams &extras) override
143     {
144         return AVSESSION_SUCCESS;
145     };
146 
OnCustomData(const OHOS::AAFwk::WantParams & data)147     ErrCode OnCustomData(const OHOS::AAFwk::WantParams& data) override
148     {
149         return AVSESSION_SUCCESS;
150     };
151 };
152 
153 /**
154  * @tc.name: OnRemoteRequest001
155  * @tc.desc: Test OnRemoteRequest
156  * @tc.type: FUNC
157  */
158 static HWTEST_F(AVControllerCallbackStubTest, OnRemoteRequest001, TestSize.Level0)
159 {
160     SLOGI("OnRemoteRequest001 begin!");
161     uint32_t code = 0;
162     AVControllerCallbackStubDemo avControllerCallbackStub;
163     OHOS::MessageParcel data;
164     OHOS::MessageParcel reply;
165     OHOS::MessageOption option;
166     int ret = avControllerCallbackStub.OnRemoteRequest(code, data, reply, option);
167     EXPECT_EQ(ret, ERR_TRANSACTION_FAILED);
168     SLOGI("OnRemoteRequest001 end!");
169 }
170 
171 /**
172  * @tc.name: OnRemoteRequest002
173  * @tc.desc: Test OnRemoteRequest
174  * @tc.type: FUNC
175  */
176 static HWTEST_F(AVControllerCallbackStubTest, OnRemoteRequest002, TestSize.Level0)
177 {
178     SLOGI("OnRemoteRequest002 begin!");
179     uint32_t code = 10;
180     AVControllerCallbackStubDemo avControllerCallbackStub;
181     OHOS::MessageParcel data;
182     data.WriteInterfaceToken(OHOS::AVSession::IAVControllerCallback::GetDescriptor());
183     data.WriteString("test");
184     OHOS::MessageParcel reply;
185     OHOS::MessageOption option;
186     int ret = avControllerCallbackStub.OnRemoteRequest(code, data, reply, option);
187     EXPECT_EQ(ret, ERR_INVALID_DATA);
188     SLOGI("OnRemoteRequest002 end!");
189 }
190 
191 /**
192  * @tc.name: OnRemoteRequest003
193  * @tc.desc: Test OnRemoteRequest
194  * @tc.type: FUNC
195  */
196 static HWTEST_F(AVControllerCallbackStubTest, OnRemoteRequest003, TestSize.Level0)
197 {
198     SLOGI("OnRemoteRequest003 begin!");
199     uint32_t code = 11;
200     AVControllerCallbackStubDemo avControllerCallbackStub;
201     OHOS::MessageParcel data;
202     data.WriteInterfaceToken(OHOS::AVSession::IAVControllerCallback::GetDescriptor());
203     data.WriteString("test");
204     OHOS::MessageParcel reply;
205     OHOS::MessageOption option;
206     int ret = avControllerCallbackStub.OnRemoteRequest(code, data, reply, option);
207     EXPECT_EQ(ret, OHOS::ERR_NONE);
208     SLOGI("OnRemoteRequest003 end!");
209 }
210 
211 /**
212  * @tc.name: OnRemoteRequest004
213  * @tc.desc: Test OnRemoteRequest
214  * @tc.type: FUNC
215  */
216 static HWTEST_F(AVControllerCallbackStubTest, OnRemoteRequest004, TestSize.Level0)
217 {
218     SLOGI("OnRemoteRequest004 begin!");
219     uint32_t code = 1;
220     AVControllerCallbackStubDemo avControllerCallbackStub;
221     OHOS::MessageParcel data;
222     data.WriteInterfaceToken(OHOS::AVSession::IAVControllerCallback::GetDescriptor());
223     data.WriteString("test");
224     OHOS::MessageParcel reply;
225     OHOS::MessageOption option;
226     int ret = avControllerCallbackStub.OnRemoteRequest(code, data, reply, option);
227     EXPECT_EQ(ret, OHOS::ERR_NONE);
228     SLOGI("OnRemoteRequest004 end!");
229 }
230 
231 /**
232  * @tc.name: OnRemoteRequest005
233  * @tc.desc: Test OnRemoteRequest
234  * @tc.type: FUNC
235  */
236 static HWTEST_F(AVControllerCallbackStubTest, OnRemoteRequest005, TestSize.Level0)
237 {
238     SLOGI("OnRemoteRequest005 begin!");
239     uint32_t code = 1;
240     AVControllerCallbackStubDemo avControllerCallbackStub;
241     OHOS::MessageParcel data;
242     OHOS::MessageParcel reply;
243     OHOS::MessageOption option;
244     int ret = avControllerCallbackStub.OnRemoteRequest(code, data, reply, option);
245     EXPECT_EQ(ret, ERR_TRANSACTION_FAILED);
246     SLOGI("OnRemoteRequest005 end!");
247 }
248 
249 /**
250  * @tc.name: OnRemoteRequest006
251  * @tc.desc: Test OnRemoteRequest
252  * @tc.type: FUNC
253  */
254 static HWTEST_F(AVControllerCallbackStubTest, OnRemoteRequest006, TestSize.Level0)
255 {
256     SLOGI("OnRemoteRequest006 begin!");
257     uint32_t code = 2;
258     AVControllerCallbackStubDemo avControllerCallbackStub;
259     OHOS::MessageParcel data;
260     data.WriteInterfaceToken(OHOS::AVSession::IAVControllerCallback::GetDescriptor());
261     data.WriteString("test");
262     OHOS::MessageParcel reply;
263     OHOS::MessageOption option;
264     int ret = avControllerCallbackStub.OnRemoteRequest(code, data, reply, option);
265     EXPECT_EQ(ret, ERR_INVALID_DATA);
266     SLOGI("OnRemoteRequest006 end!");
267 }
268 
269 /**
270  * @tc.name: OnRemoteRequest007
271  * @tc.desc: Test OnRemoteRequest
272  * @tc.type: FUNC
273  */
274 static HWTEST_F(AVControllerCallbackStubTest, OnRemoteRequest007, TestSize.Level0)
275 {
276     SLOGI("OnRemoteRequest007 begin!");
277     uint32_t code = 2;
278     AVControllerCallbackStubDemo avControllerCallbackStub;
279     OHOS::MessageParcel data;
280     data.WriteInterfaceToken(OHOS::AVSession::IAVControllerCallback::GetDescriptor());
281     data.WriteInt32(-1);
282     OHOS::MessageParcel reply;
283     OHOS::MessageOption option;
284     int ret = avControllerCallbackStub.OnRemoteRequest(code, data, reply, option);
285     EXPECT_EQ(ret, ERR_INVALID_DATA);
286     SLOGI("OnRemoteRequest007 end!");
287 }
288 
289 /**
290  * @tc.name: OnRemoteRequest008
291  * @tc.desc: Test OnRemoteRequest
292  * @tc.type: FUNC
293  */
294 static HWTEST_F(AVControllerCallbackStubTest, OnRemoteRequest008, TestSize.Level0)
295 {
296     SLOGI("OnRemoteRequest008 begin!");
297     uint32_t code = 2;
298     AVControllerCallbackStubDemo avControllerCallbackStub;
299     OHOS::MessageParcel data;
300     data.WriteInterfaceToken(OHOS::AVSession::IAVControllerCallback::GetDescriptor());
301     data.WriteInt32(MAX_IMAGE_SIZE + 1);
302     OHOS::MessageParcel reply;
303     OHOS::MessageOption option;
304     int ret = avControllerCallbackStub.OnRemoteRequest(code, data, reply, option);
305     EXPECT_EQ(ret, ERR_INVALID_DATA);
306     SLOGI("OnRemoteRequest008 end!");
307 }
308 
309 /**
310  * @tc.name: OnRemoteRequest009
311  * @tc.desc: Test OnRemoteRequest
312  * @tc.type: FUNC
313  */
314 static HWTEST_F(AVControllerCallbackStubTest, OnRemoteRequest009, TestSize.Level0)
315 {
316     SLOGI("OnRemoteRequest009 begin!");
317     uint32_t code = 2;
318     AVControllerCallbackStubDemo avControllerCallbackStub;
319     OHOS::MessageParcel data;
320     data.WriteInterfaceToken(OHOS::AVSession::IAVControllerCallback::GetDescriptor());
321     data.WriteInt32(MAX_IMAGE_SIZE - 1);
322     OHOS::MessageParcel reply;
323     OHOS::MessageOption option;
324     int ret = avControllerCallbackStub.OnRemoteRequest(code, data, reply, option);
325     EXPECT_EQ(ret, ERR_INVALID_DATA);
326     SLOGI("OnRemoteRequest009 end!");
327 }
328 
329 /**
330  * @tc.name: OnRemoteRequest010
331  * @tc.desc: Test OnRemoteRequest
332  * @tc.type: FUNC
333  */
334 static HWTEST_F(AVControllerCallbackStubTest, OnRemoteRequest010, TestSize.Level0)
335 {
336     SLOGI("OnRemoteRequest010 begin!");
337     uint32_t code = 5;
338     AVControllerCallbackStubDemo avControllerCallbackStub;
339     OHOS::MessageParcel data;
340     data.WriteInterfaceToken(OHOS::AVSession::IAVControllerCallback::GetDescriptor());
341     data.WriteString("test");
342     OHOS::MessageParcel reply;
343     OHOS::MessageOption option;
344     int ret = avControllerCallbackStub.OnRemoteRequest(code, data, reply, option);
345     EXPECT_EQ(ret, ERR_NONE);
346     SLOGI("OnRemoteRequest010 end!");
347 }
348 
349 /**
350  * @tc.name: OnRemoteRequest011
351  * @tc.desc: Test OnRemoteRequest
352  * @tc.type: FUNC
353  */
354 static HWTEST_F(AVControllerCallbackStubTest, OnRemoteRequest011, TestSize.Level0)
355 {
356     SLOGI("OnRemoteRequest011 begin!");
357     uint32_t code = 6;
358     AVControllerCallbackStubDemo avControllerCallbackStub;
359     OHOS::MessageParcel data;
360     data.WriteInterfaceToken(OHOS::AVSession::IAVControllerCallback::GetDescriptor());
361     data.WriteString("test");
362     OHOS::MessageParcel reply;
363     OHOS::MessageOption option;
364     int ret = avControllerCallbackStub.OnRemoteRequest(code, data, reply, option);
365     EXPECT_EQ(ret, OHOS::ERR_NONE);
366     SLOGI("OnRemoteRequest011 end!");
367 }
368 
369 /**
370  * @tc.name: OnRemoteRequest012
371  * @tc.desc: Test OnRemoteRequest
372  * @tc.type: FUNC
373  */
374 static HWTEST_F(AVControllerCallbackStubTest, OnRemoteRequest012, TestSize.Level0)
375 {
376     SLOGI("OnRemoteRequest012 begin!");
377     uint32_t code = 7;
378     AVControllerCallbackStubDemo avControllerCallbackStub;
379     OHOS::MessageParcel data;
380     data.WriteInterfaceToken(OHOS::AVSession::IAVControllerCallback::GetDescriptor());
381     data.WriteString("test");
382     OHOS::MessageParcel reply;
383     OHOS::MessageOption option;
384     int ret = avControllerCallbackStub.OnRemoteRequest(code, data, reply, option);
385     EXPECT_EQ(ret, OHOS::ERR_NONE);
386     SLOGI("OnRemoteRequest012 end!");
387 }
388 
389 /**
390  * @tc.name: OnRemoteRequest013
391  * @tc.desc: Test OnRemoteRequest
392  * @tc.type: FUNC
393  */
394 static HWTEST_F(AVControllerCallbackStubTest, OnRemoteRequest013, TestSize.Level0)
395 {
396     SLOGI("OnRemoteRequest013 begin!");
397     uint32_t code = 7;
398     AVControllerCallbackStubDemo avControllerCallbackStub;
399     OHOS::MessageParcel data;
400     OHOS::MessageParcel reply;
401     OHOS::MessageOption option;
402     int ret = avControllerCallbackStub.OnRemoteRequest(code, data, reply, option);
403     EXPECT_EQ(ret, ERR_TRANSACTION_FAILED);
404     SLOGI("OnRemoteRequest013 end!");
405 }
406 
407 /**
408  * @tc.name: OnRemoteRequest014
409  * @tc.desc: Test OnRemoteRequest
410  * @tc.type: FUNC
411  */
412 static HWTEST_F(AVControllerCallbackStubTest, OnRemoteRequest014, TestSize.Level0)
413 {
414     SLOGI("OnRemoteRequest014 begin!");
415     uint32_t code = 8;
416     AVControllerCallbackStubDemo avControllerCallbackStub;
417     OHOS::MessageParcel data;
418     data.WriteInterfaceToken(OHOS::AVSession::IAVControllerCallback::GetDescriptor());
419     data.WriteString("test");
420     OHOS::MessageParcel reply;
421     OHOS::MessageOption option;
422     int ret = avControllerCallbackStub.OnRemoteRequest(code, data, reply, option);
423     EXPECT_EQ(ret, OHOS::ERR_NONE);
424     SLOGI("OnRemoteRequest014 end!");
425 }
426 
427 /**
428  * @tc.name: OnRemoteRequest015
429  * @tc.desc: Test OnRemoteRequest
430  * @tc.type: FUNC
431  */
432 static HWTEST_F(AVControllerCallbackStubTest, OnRemoteRequest015, TestSize.Level0)
433 {
434     SLOGI("OnRemoteRequest015 begin!");
435     uint32_t code = 9;
436     AVControllerCallbackStubDemo avControllerCallbackStub;
437     OHOS::MessageParcel data;
438     data.WriteInterfaceToken(OHOS::AVSession::IAVControllerCallback::GetDescriptor());
439     data.WriteString("test");
440     OHOS::MessageParcel reply;
441     OHOS::MessageOption option;
442     int ret = avControllerCallbackStub.OnRemoteRequest(code, data, reply, option);
443     EXPECT_EQ(ret, ERR_INVALID_DATA);
444     SLOGI("OnRemoteRequest015 end!");
445 }
446 } // namespace AVSession
447 } // namespace OHOS