• 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 "avsession_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::Security::AccessToken;
26 
27 namespace OHOS {
28 namespace AVSession {
29 static uint64_t g_selfTokenId = 0;
30 static HapInfoParams g_info = {
31     .userID = 100,
32     .bundleName = "ohos.permission_test.demo",
33     .instIndex = 0,
34     .appIDDesc = "ohos.permission_test.demo",
35     .isSystemApp = true
36 };
37 
38 static HapPolicyParams g_policy = {
39     .apl = APL_NORMAL,
40     .domain = "test.domain",
41     .permList = {
42         {
43             .permissionName = "ohos.permission.MANAGE_MEDIA_RESOURCES",
44             .bundleName = "ohos.permission_test.demo",
45             .grantMode = 1,
46             .availableLevel = APL_NORMAL,
47             .label = "label",
48             .labelId = 1,
49             .description = "test",
50             .descriptionId = 1
51         }
52     },
53     .permStateList = {
54         {
55             .permissionName = "ohos.permission.MANAGE_MEDIA_RESOURCES",
56             .isGeneral = true,
57             .resDeviceID = {"local"},
58             .grantStatus = {PermissionState::PERMISSION_GRANTED},
59             .grantFlags = {1}
60         }
61     }
62 };
63 
64 class AVSessionCallbackStubTest : public testing::Test {
65 public:
66     static void SetUpTestCase();
67     static void TearDownTestCase();
68     void SetUp() override;
69     void TearDown() override;
70 };
71 
SetUpTestCase()72 void AVSessionCallbackStubTest::SetUpTestCase()
73 {
74     g_selfTokenId = GetSelfTokenID();
75     AccessTokenKit::AllocHapToken(g_info, g_policy);
76     AccessTokenIDEx tokenID = AccessTokenKit::GetHapTokenIDEx(g_info.userID, g_info.bundleName, g_info.instIndex);
77     SetSelfTokenID(tokenID.tokenIDEx);
78 }
79 
TearDownTestCase()80 void AVSessionCallbackStubTest::TearDownTestCase()
81 {
82     SetSelfTokenID(g_selfTokenId);
83     auto tokenId = AccessTokenKit::GetHapTokenID(g_info.userID, g_info.bundleName, g_info.instIndex);
84     AccessTokenKit::DeleteToken(tokenId);
85 }
86 
SetUp()87 void AVSessionCallbackStubTest::SetUp()
88 {
89 }
90 
TearDown()91 void AVSessionCallbackStubTest::TearDown()
92 {
93 }
94 
95 class AVSessionCallbackStubDemo : public AVSessionCallbackStub {
OnPlay()96     void OnPlay() override {};
OnPause()97     void OnPause() override {};
OnStop()98     void OnStop() override {};
OnPlayNext()99     void OnPlayNext() override {};
OnPlayPrevious()100     void OnPlayPrevious() override {};
OnFastForward(int64_t time)101     void OnFastForward(int64_t time) override {};
OnRewind(int64_t time)102     void OnRewind(int64_t time) override {};
OnSeek(int64_t time)103     void OnSeek(int64_t time) override {};
OnSetSpeed(double speed)104     void OnSetSpeed(double speed) override {};
OnSetLoopMode(int32_t loopMode)105     void OnSetLoopMode(int32_t loopMode) override {};
OnSetTargetLoopMode(int32_t targetLoopMode)106     void OnSetTargetLoopMode(int32_t targetLoopMode) override {};
OnToggleFavorite(const std::string & mediaId)107     void OnToggleFavorite(const std::string &mediaId) override {};
OnMediaKeyEvent(const OHOS::MMI::KeyEvent & keyEvent)108     void OnMediaKeyEvent(const OHOS::MMI::KeyEvent &keyEvent) override {};
OnOutputDeviceChange(const int32_t connectionState,const OutputDeviceInfo & outputDeviceInfo)109     void OnOutputDeviceChange(const int32_t connectionState, const OutputDeviceInfo &outputDeviceInfo) override {};
OnCommonCommand(const std::string & commonCommand,const OHOS::AAFwk::WantParams & commandArgs)110     void OnCommonCommand(const std::string &commonCommand, const OHOS::AAFwk::WantParams &commandArgs) override {};
OnSkipToQueueItem(int32_t itemId)111     void OnSkipToQueueItem(int32_t itemId) override {};
OnAVCallAnswer()112     void OnAVCallAnswer() override {};
OnAVCallHangUp()113     void OnAVCallHangUp() override {};
OnAVCallToggleCallMute()114     void OnAVCallToggleCallMute() override {};
OnPlayFromAssetId(int64_t assetId)115     void OnPlayFromAssetId(int64_t assetId) override {};
OnCastDisplayChange(const CastDisplayInfo & castDisplayInfo)116     void OnCastDisplayChange(const CastDisplayInfo &castDisplayInfo) override {};
117 };
118 
119 /**
120  * @tc.name: OnRemoteRequest000
121  * @tc.desc: Test OnRemoteRequest
122  * @tc.type: FUNC
123  */
124 static HWTEST_F(AVSessionCallbackStubTest, OnRemoteRequest000, TestSize.Level1)
125 {
126     SLOGI("OnRemoteRequest000 begin!");
127     uint32_t code = 0;
128     AVSessionCallbackStubDemo avSessionCallbackStub;
129     OHOS::MessageParcel data;
130     OHOS::MessageParcel reply;
131     OHOS::MessageOption option;
132     int ret = avSessionCallbackStub.OnRemoteRequest(code, data, reply, option);
133     EXPECT_EQ(ret, AVSESSION_ERROR);
134     SLOGI("OnRemoteRequest000 end!");
135 }
136 /**
137  * @tc.name: OnRemoteRequest001
138  * @tc.desc: Test OnRemoteRequest
139  * @tc.type: FUNC
140  */
141 static HWTEST_F(AVSessionCallbackStubTest, OnRemoteRequest001, TestSize.Level1)
142 {
143     SLOGI("OnRemoteRequest001 begin!");
144     uint32_t code = 11;
145     AVSessionCallbackStubDemo avSessionCallbackStub;
146     OHOS::MessageParcel data;
147     data.WriteInterfaceToken(IAVSessionCallback::GetDescriptor());
148     data.WriteString("test");
149     OHOS::MessageParcel reply;
150     OHOS::MessageOption option;
151     int ret = avSessionCallbackStub.OnRemoteRequest(code, data, reply, option);
152     EXPECT_EQ(ret, OHOS::ERR_NONE);
153     SLOGI("OnRemoteRequest001 end!");
154 }
155 
156 /**
157  * @tc.name: OnRemoteRequest002
158  * @tc.desc: Test OnRemoteRequest
159  * @tc.type: FUNC
160  */
161 static HWTEST_F(AVSessionCallbackStubTest, OnRemoteRequest002, TestSize.Level1)
162 {
163     SLOGI("OnRemoteRequest002 begin!");
164     uint32_t code = 12;
165     AVSessionCallbackStubDemo avSessionCallbackStub;
166     OHOS::MessageParcel data;
167     data.WriteInterfaceToken(IAVSessionCallback::GetDescriptor());
168     SLOGI("OnRemoteRequest002");
169     data.WriteString("test");
170     OHOS::MessageParcel reply;
171     OHOS::MessageOption option;
172     int ret = avSessionCallbackStub.OnRemoteRequest(code, data, reply, option);
173     EXPECT_EQ(ret, OHOS::ERR_NONE);
174     SLOGI("OnRemoteRequest002 end!");
175 }
176 
177 /**
178  * @tc.name: OnRemoteRequest003
179  * @tc.desc: Test OnRemoteRequest
180  * @tc.type: FUNC
181  */
182 static HWTEST_F(AVSessionCallbackStubTest, OnRemoteRequest003, TestSize.Level1)
183 {
184     SLOGI("OnRemoteRequest003 begin!");
185     uint32_t code = 13;
186     AVSessionCallbackStubDemo avSessionCallbackStub;
187     OHOS::MessageParcel data;
188     data.WriteInterfaceToken(IAVSessionCallback::GetDescriptor());
189     data.WriteString("test");
190     OHOS::MessageParcel reply;
191     OHOS::MessageOption option;
192     int ret = avSessionCallbackStub.OnRemoteRequest(code, data, reply, option);
193     EXPECT_EQ(ret, OHOS::ERR_NONE);
194     SLOGI("OnRemoteRequest003 end!");
195 }
196 
197 /**
198  * @tc.name: OnRemoteRequest004
199  * @tc.desc: Test OnRemoteRequest
200  * @tc.type: FUNC
201  */
202 static HWTEST_F(AVSessionCallbackStubTest, OnRemoteRequest004, TestSize.Level1)
203 {
204     SLOGI("OnRemoteRequest004 begin!");
205     uint32_t code = 14;
206     AVSessionCallbackStubDemo avSessionCallbackStub;
207     OHOS::MessageParcel data;
208     data.WriteInterfaceToken(IAVSessionCallback::GetDescriptor());
209     data.WriteString("test");
210     OHOS::MessageParcel reply;
211     OHOS::MessageOption option;
212     int ret = avSessionCallbackStub.OnRemoteRequest(code, data, reply, option);
213     EXPECT_EQ(ret, OHOS::ERR_NONE);
214     SLOGI("OnRemoteRequest004 end!");
215 }
216 
217 /**
218  * @tc.name: OnRemoteRequest005
219  * @tc.desc: Test OnRemoteRequest
220  * @tc.type: FUNC
221  */
222 static HWTEST_F(AVSessionCallbackStubTest, OnRemoteRequest005, TestSize.Level1)
223 {
224     SLOGI("OnRemoteRequest005 begin!");
225     uint32_t code = 19;
226     AVSessionCallbackStubDemo avSessionCallbackStub;
227     OHOS::MessageParcel data;
228     data.WriteInterfaceToken(IAVSessionCallback::GetDescriptor());
229     data.WriteString("test");
230     OHOS::MessageParcel reply;
231     OHOS::MessageOption option;
232     int ret = avSessionCallbackStub.OnRemoteRequest(code, data, reply, option);
233     EXPECT_EQ(ret, OHOS::ERR_NONE);
234     SLOGI("OnRemoteRequest005 end!");
235 }
236 
237 /**
238  * @tc.name: OnRemoteRequest006
239  * @tc.desc: Test OnRemoteRequest
240  * @tc.type: FUNC
241  */
242 static HWTEST_F(AVSessionCallbackStubTest, OnRemoteRequest006, TestSize.Level1)
243 {
244     SLOGI("OnRemoteRequest006 begin!");
245     uint32_t code = 25;
246     AVSessionCallbackStubDemo avSessionCallbackStub;
247     OHOS::MessageParcel data;
248     data.WriteInterfaceToken(IAVSessionCallback::GetDescriptor());
249     data.WriteString("test");
250     OHOS::MessageParcel reply;
251     OHOS::MessageOption option;
252     int ret = avSessionCallbackStub.OnRemoteRequest(code, data, reply, option);
253     EXPECT_EQ(ret, 305);
254     SLOGI("OnRemoteRequest006 end!");
255 }
256 }
257 }