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 "avsession_log.h"
18 #include "avsession_descriptor.h"
19 #include "avsession_errors.h"
20 #include "accesstoken_kit.h"
21 #include "token_setproc.h"
22
23 #define private public
24 #define protected public
25 #include "avsession_stub.h"
26 #undef protected
27 #undef private
28
29 using namespace testing::ext;
30 using namespace OHOS::Security::AccessToken;
31 using namespace OHOS::AVSession;
32
33 static int32_t MAX_IMAGE_SIZE = 10 * 1024 * 1024;
34 static uint64_t g_selfTokenId = 0;
35
36 static HapInfoParams g_info = {
37 .userID = 100,
38 .bundleName = "ohos.permission_test.demo",
39 .instIndex = 0,
40 .appIDDesc = "ohos.permission_test.demo",
41 .isSystemApp = true
42 };
43
44 static HapPolicyParams g_policy = {
45 .apl = APL_NORMAL,
46 .domain = "test.domain",
47 .permList = {
48 {
49 .permissionName = "ohos.permission.MANAGE_MEDIA_RESOURCES",
50 .bundleName = "ohos.permission_test.demo",
51 .grantMode = 1,
52 .availableLevel = APL_NORMAL,
53 .label = "label",
54 .labelId = 1,
55 .description = "test",
56 .descriptionId = 1
57 }
58 },
59 .permStateList = {
60 {
61 .permissionName = "ohos.permission.MANAGE_MEDIA_RESOURCES",
62 .isGeneral = true,
63 .resDeviceID = {"local"},
64 .grantStatus = {PermissionState::PERMISSION_GRANTED},
65 .grantFlags = {1}
66 }
67 }
68 };
69
70 class AVSessionStubTest : public testing::Test {
71 public:
72 static void SetUpTestCase();
73 static void TearDownTestCase();
74 void SetUp() override;
75 void TearDown() override;
76 };
77
SetUpTestCase()78 void AVSessionStubTest::SetUpTestCase()
79 {
80 g_selfTokenId = GetSelfTokenID();
81 AccessTokenKit::AllocHapToken(g_info, g_policy);
82 AccessTokenIDEx tokenID = AccessTokenKit::GetHapTokenIDEx(g_info.userID, g_info.bundleName, g_info.instIndex);
83 SetSelfTokenID(tokenID.tokenIDEx);
84 }
85
TearDownTestCase()86 void AVSessionStubTest::TearDownTestCase()
87 {
88 SetSelfTokenID(g_selfTokenId);
89 auto tokenId = AccessTokenKit::GetHapTokenID(g_info.userID, g_info.bundleName, g_info.instIndex);
90 AccessTokenKit::DeleteToken(tokenId);
91 }
92
SetUp()93 void AVSessionStubTest::SetUp()
94 {
95 }
96
TearDown()97 void AVSessionStubTest::TearDown()
98 {
99 }
100
101 class AVSessionStubDemo : public AVSessionStub {
102 public:
GetSessionId()103 std::string GetSessionId() override { return ""; };
GetSessionType()104 std::string GetSessionType() override { return ""; };
GetAVMetaData(AVMetaData & meta)105 int32_t GetAVMetaData(AVMetaData &meta) override { return 0; };
SetAVMetaData(const AVMetaData & meta)106 int32_t SetAVMetaData(const AVMetaData &meta) override { return 0; };
SetAVCallMetaData(const AVCallMetaData & meta)107 int32_t SetAVCallMetaData(const AVCallMetaData &meta) override { return 0; };
SetAVCallState(const AVCallState & avCallState)108 int32_t SetAVCallState(const AVCallState &avCallState) override { return 0; };
GetAVPlaybackState(AVPlaybackState & state)109 int32_t GetAVPlaybackState(AVPlaybackState &state) override { return 0; };
SetAVPlaybackState(const AVPlaybackState & state)110 int32_t SetAVPlaybackState(const AVPlaybackState &state) override { return 0; };
GetAVQueueItems(std::vector<AVQueueItem> & items)111 int32_t GetAVQueueItems(std::vector<AVQueueItem> &items) override { return 0; };
SetAVQueueItems(const std::vector<AVQueueItem> & items)112 int32_t SetAVQueueItems(const std::vector<AVQueueItem> &items) override { return 0; };
GetAVQueueTitle(std::string & title)113 int32_t GetAVQueueTitle(std::string &title) override { return 0; };
SetAVQueueTitle(const std::string & title)114 int32_t SetAVQueueTitle(const std::string &title) override { return 0; };
SetLaunchAbility(const OHOS::AbilityRuntime::WantAgent::WantAgent & ability)115 int32_t SetLaunchAbility(const OHOS::AbilityRuntime::WantAgent::WantAgent &ability) override { return 0; };
GetExtras(OHOS::AAFwk::WantParams & extras)116 int32_t GetExtras(OHOS::AAFwk::WantParams &extras) override { return 0; };
SetExtras(const OHOS::AAFwk::WantParams & extras)117 int32_t SetExtras(const OHOS::AAFwk::WantParams &extras) override { return 0; };
GetController()118 std::shared_ptr<AVSessionController> GetController() override { return nullptr; };
RegisterCallback(const std::shared_ptr<AVSessionCallback> & callback)119 int32_t RegisterCallback(const std::shared_ptr<AVSessionCallback> &callback) override { return 0; };
Activate()120 int32_t Activate() override { return 0; };
Deactivate()121 int32_t Deactivate() override { return 0; };
IsActive()122 bool IsActive() override { return true; };
Destroy()123 int32_t Destroy() override { return 0; };
AddSupportCommand(const int32_t cmd)124 int32_t AddSupportCommand(const int32_t cmd) override { return 0; };
DeleteSupportCommand(const int32_t cmd)125 int32_t DeleteSupportCommand(const int32_t cmd) override { return 0; };
SetSessionEvent(const std::string & event,const OHOS::AAFwk::WantParams & args)126 int32_t SetSessionEvent(const std::string &event, const OHOS::AAFwk::WantParams &args) override { return 0; };
127
128 #ifdef CASTPLUS_CAST_ENGINE_ENABLE
GetAVCastController()129 std::shared_ptr<AVCastController> GetAVCastController() override { return nullptr; };
ReleaseCast()130 int32_t ReleaseCast() override { return 0; };
StartCastDisplayListener()131 int32_t StartCastDisplayListener() override { return 0; };
StopCastDisplayListener()132 int32_t StopCastDisplayListener() override { return 0; };
GetAllCastDisplays(std::vector<CastDisplayInfo> & castDisplays)133 int32_t GetAllCastDisplays(std::vector<CastDisplayInfo> &castDisplays) override { return 0; };
134 #endif
135
136 protected:
RegisterCallbackInner(const OHOS::sptr<IAVSessionCallback> & callback)137 int32_t RegisterCallbackInner(const OHOS::sptr<IAVSessionCallback> &callback) override { return 0; };
GetControllerInner()138 OHOS::sptr<IRemoteObject> GetControllerInner() override { return nullptr; };
139
140 #ifdef CASTPLUS_CAST_ENGINE_ENABLE
GetAVCastControllerInner()141 OHOS::sptr<IRemoteObject> GetAVCastControllerInner() override { return nullptr; };
142 #endif
143 };
144
145 /**
146 * @tc.name: OnRemoteRequest001
147 * @tc.desc: Test OnRemoteRequest
148 * @tc.type: FUNC
149 */
150 static HWTEST(AVSessionStubTest, OnRemoteRequest001, TestSize.Level1)
151 {
152 SLOGI("OnRemoteRequest001 begin!");
153 uint32_t code = 0;
154 AVSessionStubDemo avSessionStub;
155 OHOS::MessageParcel data;
156 OHOS::MessageParcel reply;
157 OHOS::MessageOption option;
158 int ret = avSessionStub.OnRemoteRequest(code, data, reply, option);
159 EXPECT_EQ(ret, AVSESSION_ERROR);
160 SLOGI("OnRemoteRequest001 end!");
161 }
162
163 /**
164 * @tc.name: OnRemoteRequest002
165 * @tc.desc: Test OnRemoteRequest
166 * @tc.type: FUNC
167 */
168 static HWTEST(AVSessionStubTest, OnRemoteRequest002, TestSize.Level1)
169 {
170 SLOGI("OnRemoteRequest002 begin!");
171 uint32_t code = 25;
172 AVSessionStubDemo avSessionStub;
173 OHOS::MessageParcel data;
174 OHOS::MessageParcel reply;
175 OHOS::MessageOption option;
176 int ret = avSessionStub.OnRemoteRequest(code, data, reply, option);
177 EXPECT_EQ(ret, AVSESSION_ERROR);
178 SLOGI("OnRemoteRequest002 end!");
179 }
180
181 /**
182 * @tc.name: HandleRegisterCallbackInner001
183 * @tc.desc: Test HandleRegisterCallbackInner
184 * @tc.type: FUNC
185 */
186 static HWTEST(AVSessionStubTest, HandleRegisterCallbackInner001, TestSize.Level1)
187 {
188 SLOGI("HandleRegisterCallbackInner001 begin!");
189 AVSessionStubDemo avSessionStub;
190 OHOS::MessageParcel data;
191 OHOS::MessageParcel reply;
192 int ret = avSessionStub.HandleRegisterCallbackInner(data, reply);
193 EXPECT_EQ(ret, OHOS::ERR_NONE);
194 SLOGI("HandleRegisterCallbackInner001 end!");
195 }
196
197 /**
198 * @tc.name: HandleSetAVCallMetaData001
199 * @tc.desc: Test HandleSetAVCallMetaData
200 * @tc.type: FUNC
201 */
202 static HWTEST(AVSessionStubTest, HandleSetAVCallMetaData001, TestSize.Level1)
203 {
204 SLOGI("HandleSetAVCallMetaData001 begin!");
205 AVSessionStubDemo avSessionStub;
206 OHOS::MessageParcel data;
207 OHOS::MessageParcel reply;
208 int ret = avSessionStub.HandleSetAVCallMetaData(data, reply);
209 EXPECT_EQ(ret, OHOS::ERR_NONE);
210 SLOGI("HandleSetAVCallMetaData001 end!");
211 }
212
213 /**
214 * @tc.name: HandleSetAVCallState001
215 * @tc.desc: Test HandleSetAVCallState
216 * @tc.type: FUNC
217 */
218 static HWTEST(AVSessionStubTest, HandleSetAVCallState001, TestSize.Level1)
219 {
220 SLOGI("HandleSetAVCallState001 begin!");
221 AVSessionStubDemo avSessionStub;
222 OHOS::MessageParcel data;
223 OHOS::MessageParcel reply;
224 int ret = avSessionStub.HandleSetAVCallState(data, reply);
225 EXPECT_EQ(ret, OHOS::ERR_NONE);
226 SLOGI("HandleSetAVCallState001 end!");
227 }
228
229 /**
230 * @tc.name: HandleSetAVPlaybackState001
231 * @tc.desc: Test HandleSetAVPlaybackState
232 * @tc.type: FUNC
233 */
234 static HWTEST(AVSessionStubTest, HandleSetAVPlaybackState001, TestSize.Level1)
235 {
236 SLOGI("HandleSetAVPlaybackState001 begin!");
237 AVSessionStubDemo avSessionStub;
238 OHOS::MessageParcel data;
239 OHOS::MessageParcel reply;
240 int ret = avSessionStub.HandleSetAVPlaybackState(data, reply);
241 EXPECT_EQ(ret, OHOS::ERR_NONE);
242 SLOGI("HandleSetAVPlaybackState001 end!");
243 }
244
245 /**
246 * @tc.name: HandleSetLaunchAbility001
247 * @tc.desc: Test HandleSetLaunchAbility
248 * @tc.type: FUNC
249 */
250 static HWTEST(AVSessionStubTest, HandleSetLaunchAbility001, TestSize.Level1)
251 {
252 SLOGI("HandleSetLaunchAbility001 begin!");
253 AVSessionStubDemo avSessionStub;
254 OHOS::MessageParcel data;
255 OHOS::MessageParcel reply;
256 int ret = avSessionStub.HandleSetLaunchAbility(data, reply);
257 EXPECT_EQ(ret, OHOS::ERR_NONE);
258 SLOGI("HandleSetLaunchAbility001 end!");
259 }
260
261 /**
262 * @tc.name: HandleSetAVQueueItems001
263 * @tc.desc: Test HandleSetAVQueueItems
264 * @tc.type: FUNC
265 */
266 static HWTEST(AVSessionStubTest, HandleSetAVQueueItems001, TestSize.Level1)
267 {
268 SLOGI("HandleSetAVQueueItems001 begin!");
269 AVSessionStubDemo avSessionStub;
270 OHOS::MessageParcel data;
271 OHOS::MessageParcel reply;
272 int ret = avSessionStub.HandleSetAVQueueItems(data, reply);
273 EXPECT_EQ(ret, OHOS::ERR_NONE);
274 SLOGI("HandleSetAVQueueItems001 end!");
275 }
276
277 /**
278 * @tc.name: HandleSetExtras001
279 * @tc.desc: Test HandleSetExtras
280 * @tc.type: FUNC
281 */
282 static HWTEST(AVSessionStubTest, HandleSetExtras001, TestSize.Level1)
283 {
284 SLOGI("HandleSetExtras001 begin!");
285 AVSessionStubDemo avSessionStub;
286 OHOS::MessageParcel data;
287 OHOS::MessageParcel reply;
288 int ret = avSessionStub.HandleSetExtras(data, reply);
289 EXPECT_EQ(ret, OHOS::ERR_NONE);
290 SLOGI("HandleSetExtras001 end!");
291 }
292
293 /**
294 * @tc.name: HandleSetSessionEvent001
295 * @tc.desc: Test HandleSetSessionEvent
296 * @tc.type: FUNC
297 */
298 static HWTEST(AVSessionStubTest, HandleSetSessionEvent001, TestSize.Level1)
299 {
300 SLOGI("HandleSetSessionEvent001 begin!");
301 AVSessionStubDemo avSessionStub;
302 OHOS::MessageParcel data;
303 OHOS::MessageParcel reply;
304 int ret = avSessionStub.HandleSetSessionEvent(data, reply);
305 EXPECT_EQ(ret, OHOS::ERR_NONE);
306 SLOGI("HandleSetSessionEvent001 end!");
307 }
308
309 /**
310 * @tc.name: HandleGetController001
311 * @tc.desc: Test HandleGetController
312 * @tc.type: FUNC
313 */
314 static HWTEST(AVSessionStubTest, HandleGetController001, TestSize.Level1)
315 {
316 SLOGI("HandleGetController001 begin!");
317 AVSessionStubDemo avSessionStub;
318 OHOS::MessageParcel data;
319 OHOS::MessageParcel reply;
320 int ret = avSessionStub.HandleGetController(data, reply);
321 EXPECT_EQ(ret, OHOS::ERR_NONE);
322 SLOGI("HandleGetController001 end!");
323 }
324
325 /**
326 * @tc.name: HandleGetAVMetaData001
327 * @tc.desc: Test HandleGetAVMetaData
328 * @tc.type: FUNC
329 */
330 static HWTEST(AVSessionStubTest, HandleGetAVMetaData001, TestSize.Level1)
331 {
332 SLOGI("HandleGetAVMetaData001 begin!");
333 AVSessionStubDemo avSessionStub;
334 OHOS::MessageParcel data;
335 OHOS::MessageParcel reply;
336 int ret = avSessionStub.HandleGetAVMetaData(data, reply);
337 EXPECT_EQ(ret, OHOS::ERR_NONE);
338 SLOGI("HandleGetAVMetaData001 end!");
339 }
340
341 /**
342 * @tc.name: HandleSetAVMetaData001
343 * @tc.desc: Test HandleSetAVMetaData
344 * @tc.type: FUNC
345 */
346 static HWTEST(AVSessionStubTest, HandleSetAVMetaData001, TestSize.Level1)
347 {
348 SLOGI("HandleSetAVMetaData001 begin!");
349 AVSessionStubDemo avSessionStub;
350 OHOS::MessageParcel data;
351 data.WriteInterfaceToken(IAVSession::GetDescriptor());
352 data.WriteInt32(-1);
353 OHOS::MessageParcel reply;
354 int ret = avSessionStub.HandleSetAVMetaData(data, reply);
355 EXPECT_EQ(ret, OHOS::ERR_NONE);
356 SLOGI("HandleSetAVMetaData001 end!");
357 }
358
359 /**
360 * @tc.name: HandleSetAVMetaData002
361 * @tc.desc: Test HandleSetAVMetaData
362 * @tc.type: FUNC
363 */
364 static HWTEST(AVSessionStubTest, HandleSetAVMetaData002, TestSize.Level1)
365 {
366 SLOGI("HandleSetAVMetaData002 begin!");
367 AVSessionStubDemo avSessionStub;
368 OHOS::MessageParcel data;
369 data.WriteInterfaceToken(IAVSession::GetDescriptor());
370 data.WriteInt32(MAX_IMAGE_SIZE + 1);
371 OHOS::MessageParcel reply;
372 int ret = avSessionStub.HandleSetAVMetaData(data, reply);
373 EXPECT_EQ(ret, OHOS::ERR_NONE);
374 SLOGI("HandleSetAVMetaData002 end!");
375 }
376
377 /**
378 * @tc.name: HandleSetAVMetaData003
379 * @tc.desc: Test HandleSetAVMetaData
380 * @tc.type: FUNC
381 */
382 static HWTEST(AVSessionStubTest, HandleSetAVMetaData003, TestSize.Level1)
383 {
384 SLOGI("HandleSetAVMetaData003 begin!");
385 AVSessionStubDemo avSessionStub;
386 OHOS::MessageParcel data;
387 data.WriteInterfaceToken(IAVSession::GetDescriptor());
388 data.WriteInt32(MAX_IMAGE_SIZE - 1);
389 OHOS::MessageParcel reply;
390 int ret = avSessionStub.HandleSetAVMetaData(data, reply);
391 EXPECT_EQ(ret, OHOS::ERR_NONE);
392 SLOGI("HandleSetAVMetaData003 end!");
393 }