1 /*
2  * Copyright (c) 2022-2023 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 <memory>
18 #include <fstream>
19 #include <cstdio>
20 
21 #include "avsession_log.h"
22 #include "input_manager.h"
23 #include "key_event.h"
24 #include "avsession_manager.h"
25 #include "avsession_errors.h"
26 #include "avmeta_data.h"
27 #include "avplayback_state.h"
28 #include "avmedia_description.h"
29 #include "avqueue_item.h"
30 #include "avsession_log.h"
31 #include "nativetoken_kit.h"
32 #include "token_setproc.h"
33 #include "accesstoken_kit.h"
34 #include "system_ability_definition.h"
35 #include "audio_info.h"
36 #include "avsession_callback_client.h"
37 #include "avsession_pixel_map.h"
38 #include "avsession_pixel_map_adapter.h"
39 
40 #define private public
41 #define protected public
42 #include "avsession_service.h"
43 #undef protected
44 #undef private
45 
46 using namespace testing::ext;
47 using namespace OHOS::AVSession;
48 using namespace OHOS::Security::AccessToken;
49 using namespace OHOS::AudioStandard;
50 static AVMetaData g_metaData;
51 static AVPlaybackState g_playbackState;
52 static char g_testSessionTag[] = "test";
53 static char g_testAnotherBundleName[] = "testAnother.ohos.avsession";
54 static char g_testAnotherAbilityName[] = "testAnother.ability";
55 static int32_t g_playOnCall = AVSESSION_ERROR;
56 static int32_t g_pauseOnCall = AVSESSION_ERROR;
57 static int32_t g_nextOnCall = AVSESSION_ERROR;
58 static int32_t g_previousOnCall = AVSESSION_ERROR;
59 static AVSessionService *avservice_;
60 
61 class AVSessionServiceTest : public testing::Test {
62 public:
63     static void SetUpTestCase();
64     static void TearDownTestCase();
65     void SetUp() override;
66     void TearDown() override;
67 
68     std::shared_ptr<AVSession> avsession_ = nullptr;
69 };
70 
SetUpTestCase()71 void AVSessionServiceTest::SetUpTestCase()
72 {
73     SLOGI("set up AVSessionServiceTest");
74     system("killall -9 com.example.hiMusicDemo");
75     sleep(1);
76     avservice_ = new AVSessionService(OHOS::AVSESSION_SERVICE_ID);
77     avservice_->InitKeyEvent();
78 }
79 
TearDownTestCase()80 void AVSessionServiceTest::TearDownTestCase()
81 {
82 }
83 
SetUp()84 void AVSessionServiceTest::SetUp()
85 {
86     SLOGI("set up test function in AVSessionServiceTest");
87 }
88 
TearDown()89 void AVSessionServiceTest::TearDown()
90 {
91     SLOGI("tear down test function in AVSessionServiceTest");
92     [[maybe_unused]] int32_t ret = AVSESSION_ERROR;
93     if (avsession_ != nullptr) {
94         ret = avsession_->Destroy();
95         avsession_ = nullptr;
96     }
97 }
98 
99 class AVSessionCallbackImpl : public AVSessionCallback {
100 public:
101     void OnPlay() override;
102     void OnPause() override;
103     void OnStop() override {};
104     void OnPlayNext() override;
105     void OnPlayPrevious() override;
106     void OnFastForward(int64_t time) override {};
107     void OnRewind(int64_t time) override {};
108     void OnSeek(int64_t time) override {};
109     void OnSetSpeed(double speed) override {};
110     void OnSetLoopMode(int32_t loopMode) override {};
111     void OnToggleFavorite(const std::string& mediaId) override {};
112     void OnMediaKeyEvent(const OHOS::MMI::KeyEvent& keyEvent) override {};
113     void OnOutputDeviceChange(const int32_t connectionState,
114         const OHOS::AVSession::OutputDeviceInfo& outputDeviceInfo) override {};
115     void OnCommonCommand(const std::string& commonCommand, const OHOS::AAFwk::WantParams& commandArgs) override {};
116     void OnSkipToQueueItem(int32_t itemId) override {};
117     void OnAVCallAnswer() override {};
118     void OnAVCallHangUp() override {};
119     void OnAVCallToggleCallMute() override {};
120     void OnPlayFromAssetId(int64_t assetId) override {};
121     void OnCastDisplayChange(const CastDisplayInfo& castDisplayInfo) override {};
122 
123     ~AVSessionCallbackImpl() override;
124 };
125 
OnPlay()126 void AVSessionCallbackImpl::OnPlay()
127 {
128     g_playOnCall = AVSESSION_SUCCESS;
129     SLOGI("OnPlay %{public}d", g_playOnCall);
130 }
131 
OnPause()132 void AVSessionCallbackImpl::OnPause()
133 {
134     g_pauseOnCall = AVSESSION_SUCCESS;
135     SLOGI("OnPause %{public}d", g_pauseOnCall);
136 }
137 
OnPlayNext()138 void AVSessionCallbackImpl::OnPlayNext()
139 {
140     g_nextOnCall = AVSESSION_SUCCESS;
141     SLOGI("OnPlayNext %{public}d", g_nextOnCall);
142 }
143 
OnPlayPrevious()144 void AVSessionCallbackImpl::OnPlayPrevious()
145 {
146     g_previousOnCall = AVSESSION_SUCCESS;
147     SLOGI("OnPlayPrevious %{public}d", g_previousOnCall);
148 }
149 
~AVSessionCallbackImpl()150 AVSessionCallbackImpl::~AVSessionCallbackImpl()
151 {
152 }
153 
154 /**
155 * @tc.name: SendSystemAVKeyEvent001
156 * @tc.desc: verifying send system keyEvent
157 * @tc.type: FUNC
158 * @tc.require: #I5Y4MZ
159 */
HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent001, TestSize.Level1)160 static HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent001, TestSize.Level1)
161 {
162     SLOGI("SendSystemAVKeyEvent001 begin!");
163     OHOS::AppExecFwk::ElementName elementName;
164     elementName.SetBundleName(g_testAnotherBundleName);
165     elementName.SetAbilityName(g_testAnotherAbilityName);
166     OHOS::sptr<AVSessionItem> avsessionHere_ =
167         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
168     avsessionHere_->Activate();
169     avservice_->UpdateTopSession(avsessionHere_);
170 
171     g_metaData.Reset();
172     g_metaData.SetAssetId("123");
173     g_metaData.SetTitle("Black Humor");
174     g_metaData.SetArtist("zhoujielun");
175     g_metaData.SetAuthor("zhoujielun");
176     g_metaData.SetAlbum("Jay");
177     g_metaData.SetWriter("zhoujielun");
178     g_metaData.SetComposer("zhoujielun");
179     g_metaData.SetDuration(40000);
180     g_metaData.SetMediaImageUri("xxxxx");
181     g_metaData.SetSubTitle("fac");
182     g_metaData.SetDescription("for friends");
183     g_metaData.SetLyric("xxxxx");
184     avsessionHere_->SetAVMetaData(g_metaData);
185 
186     g_playbackState.SetState(AVPlaybackState::PLAYBACK_STATE_PLAY);
187     g_playbackState.SetSpeed(1.5);
188     g_playbackState.SetPosition({80000, 0});
189     g_playbackState.SetBufferedTime(60000);
190     g_playbackState.SetLoopMode(2);
191     g_playbackState.SetFavorite(true);
192     avsessionHere_->SetAVPlaybackState(g_playbackState);
193 
194     std::shared_ptr<AVSessionCallback> callback = std::make_shared<AVSessionCallbackImpl>();
195     OHOS::sptr<IAVSessionCallback> callbackClient = new(std::nothrow) AVSessionCallbackClient(callback);
196     EXPECT_EQ(avsessionHere_->RegisterCallbackInner(callbackClient), AVSESSION_SUCCESS);
197 
198     auto keyEvent = OHOS::MMI::KeyEvent::Create();
199     ASSERT_NE(keyEvent, nullptr);
200     keyEvent->SetKeyCode(OHOS::MMI::KeyEvent::KEYCODE_HEADSETHOOK);
201     keyEvent->SetKeyAction(OHOS::MMI::KeyEvent::KEY_ACTION_DOWN);
202     OHOS::MMI::KeyEvent::KeyItem item;
203     item.SetKeyCode(OHOS::MMI::KeyEvent::KEYCODE_HEADSETHOOK);
204     item.SetDownTime(0);
205     item.SetPressed(true);
206     keyEvent->AddPressedKeyItems(item);
207     OHOS::MMI::InputManager::GetInstance()->SimulateInputEvent(keyEvent);
208     sleep(1);
209     EXPECT_EQ(g_pauseOnCall, AVSESSION_SUCCESS);
210     g_pauseOnCall = false;
211     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
212     SLOGI("SendSystemAVKeyEvent001 end!");
213 }
214 
215 /**
216 * @tc.name: SendSystemAVKeyEvent002
217 * @tc.desc: verifying send system keyEvent
218 * @tc.type: FUNC
219 * @tc.require: #I5Y4MZ
220 */
221 
HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent002, TestSize.Level1)222 static HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent002, TestSize.Level1)
223 {
224     SLOGI("SendSystemAVKeyEvent002 begin!");
225     OHOS::AppExecFwk::ElementName elementName;
226     elementName.SetBundleName(g_testAnotherBundleName);
227     elementName.SetAbilityName(g_testAnotherAbilityName);
228     OHOS::sptr<AVSessionItem> avsessionHere_ =
229         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
230     avsessionHere_->Activate();
231     avservice_->UpdateTopSession(avsessionHere_);
232 
233     g_metaData.Reset();
234     g_metaData.SetAssetId("123");
235     g_metaData.SetTitle("Black Humor");
236     g_metaData.SetArtist("zhoujielun");
237     g_metaData.SetAuthor("zhoujielun");
238     g_metaData.SetAlbum("Jay");
239     g_metaData.SetWriter("zhoujielun");
240     g_metaData.SetComposer("zhoujielun");
241     g_metaData.SetDuration(40000);
242     g_metaData.SetMediaImageUri("xxxxx");
243     g_metaData.SetSubTitle("fac");
244     g_metaData.SetDescription("for friends");
245     g_metaData.SetLyric("xxxxx");
246     avsessionHere_->SetAVMetaData(g_metaData);
247 
248     g_playbackState.SetState(AVPlaybackState::PLAYBACK_STATE_PAUSE);
249     g_playbackState.SetSpeed(1.5);
250     g_playbackState.SetPosition({80000, 0});
251     g_playbackState.SetBufferedTime(60000);
252     g_playbackState.SetLoopMode(2);
253     g_playbackState.SetFavorite(true);
254     avsessionHere_->SetAVPlaybackState(g_playbackState);
255 
256     std::shared_ptr<AVSessionCallback> callback = std::make_shared<AVSessionCallbackImpl>();
257     OHOS::sptr<IAVSessionCallback> callbackClient = new(std::nothrow) AVSessionCallbackClient(callback);
258     EXPECT_EQ(avsessionHere_->RegisterCallbackInner(callbackClient), AVSESSION_SUCCESS);
259 
260     auto keyEvent = OHOS::MMI::KeyEvent::Create();
261     ASSERT_NE(keyEvent, nullptr);
262     keyEvent->SetKeyCode(OHOS::MMI::KeyEvent::KEYCODE_HEADSETHOOK);
263     keyEvent->SetKeyAction(OHOS::MMI::KeyEvent::KEY_ACTION_DOWN);
264     OHOS::MMI::KeyEvent::KeyItem item;
265     item.SetKeyCode(OHOS::MMI::KeyEvent::KEYCODE_HEADSETHOOK);
266     item.SetDownTime(0);
267     item.SetPressed(true);
268     keyEvent->AddPressedKeyItems(item);
269     OHOS::MMI::InputManager::GetInstance()->SimulateInputEvent(keyEvent);
270     sleep(1);
271     EXPECT_EQ(g_playOnCall, AVSESSION_SUCCESS);
272     g_playOnCall = false;
273     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
274     SLOGI("SendSystemAVKeyEvent002 end!");
275 }
276 
277 /**
278 * @tc.name: SendSystemAVKeyEvent003
279 * @tc.desc: verifying send system keyEvent
280 * @tc.type: FUNC
281 * @tc.require: #I5Y4MZ
282 */
HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent003, TestSize.Level1)283 static HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent003, TestSize.Level1)
284 {
285     SLOGI("SendSystemAVKeyEvent003 begin!");
286     OHOS::AppExecFwk::ElementName elementName;
287     elementName.SetBundleName(g_testAnotherBundleName);
288     elementName.SetAbilityName(g_testAnotherAbilityName);
289     OHOS::sptr<AVSessionItem> avsessionHere_ =
290         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
291     avsessionHere_->Activate();
292     avservice_->UpdateTopSession(avsessionHere_);
293 
294     g_metaData.Reset();
295     g_metaData.SetAssetId("123");
296     g_metaData.SetTitle("Black Humor");
297     g_metaData.SetArtist("zhoujielun");
298     g_metaData.SetAuthor("zhoujielun");
299     g_metaData.SetAlbum("Jay");
300     g_metaData.SetWriter("zhoujielun");
301     g_metaData.SetComposer("zhoujielun");
302     g_metaData.SetDuration(40000);
303     g_metaData.SetMediaImageUri("xxxxx");
304     g_metaData.SetSubTitle("fac");
305     g_metaData.SetDescription("for friends");
306     g_metaData.SetLyric("xxxxx");
307     avsessionHere_->SetAVMetaData(g_metaData);
308 
309     g_playbackState.SetState(AVPlaybackState::PLAYBACK_STATE_PLAY);
310     g_playbackState.SetSpeed(1.5);
311     g_playbackState.SetPosition({80000, 0});
312     g_playbackState.SetBufferedTime(60000);
313     g_playbackState.SetLoopMode(2);
314     g_playbackState.SetFavorite(true);
315     avsessionHere_->SetAVPlaybackState(g_playbackState);
316 
317     std::shared_ptr<AVSessionCallback> callback = std::make_shared<AVSessionCallbackImpl>();
318     OHOS::sptr<IAVSessionCallback> callbackClient = new(std::nothrow) AVSessionCallbackClient(callback);
319     EXPECT_EQ(avsessionHere_->RegisterCallbackInner(callbackClient), AVSESSION_SUCCESS);
320 
321     auto keyEvent = OHOS::MMI::KeyEvent::Create();
322     ASSERT_NE(keyEvent, nullptr);
323     keyEvent->SetKeyCode(OHOS::MMI::KeyEvent::KEYCODE_HEADSETHOOK);
324     keyEvent->SetKeyAction(OHOS::MMI::KeyEvent::KEY_ACTION_DOWN);
325     OHOS::MMI::KeyEvent::KeyItem item;
326     item.SetKeyCode(OHOS::MMI::KeyEvent::KEYCODE_HEADSETHOOK);
327     item.SetDownTime(0);
328     item.SetPressed(true);
329     keyEvent->AddPressedKeyItems(item);
330     OHOS::MMI::InputManager::GetInstance()->SimulateInputEvent(keyEvent);
331     OHOS::MMI::InputManager::GetInstance()->SimulateInputEvent(keyEvent);
332     sleep(1);
333     EXPECT_EQ(g_nextOnCall, AVSESSION_SUCCESS);
334     g_nextOnCall = false;
335     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
336     SLOGI("SendSystemAVKeyEvent003 end!");
337 }
338 
339 /**
340 * @tc.name: SendSystemAVKeyEvent004
341 * @tc.desc: verifying send system keyEvent
342 * @tc.type: FUNC
343 * @tc.require: #I5Y4MZ
344 */
HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent004, TestSize.Level1)345 static HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent004, TestSize.Level1)
346 {
347     SLOGI("SendSystemAVKeyEvent004 begin!");
348     OHOS::AppExecFwk::ElementName elementName;
349     elementName.SetBundleName(g_testAnotherBundleName);
350     elementName.SetAbilityName(g_testAnotherAbilityName);
351     OHOS::sptr<AVSessionItem> avsessionHere_ =
352         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
353     avsessionHere_->Activate();
354     avservice_->UpdateTopSession(avsessionHere_);
355     g_metaData.SetAssetId("123");
356     g_metaData.SetTitle("Black Humor");
357     g_metaData.SetArtist("zhoujielun");
358     g_metaData.SetAuthor("zhoujielun");
359     g_metaData.SetAlbum("Jay");
360     g_metaData.SetWriter("zhoujielun");
361     g_metaData.SetComposer("zhoujielun");
362     g_metaData.SetDuration(40000);
363     g_metaData.SetSubTitle("fac");
364     g_metaData.SetDescription("for friends");
365     g_metaData.SetLyric("xxxxx");
366     avsessionHere_->SetAVMetaData(g_metaData);
367     g_playbackState.SetState(AVPlaybackState::PLAYBACK_STATE_PLAY);
368     g_playbackState.SetSpeed(1.5);
369     g_playbackState.SetPosition({80000, 0});
370     g_playbackState.SetBufferedTime(60000);
371     g_playbackState.SetLoopMode(2);
372     g_playbackState.SetFavorite(true);
373     avsessionHere_->SetAVPlaybackState(g_playbackState);
374     std::shared_ptr<AVSessionCallback> callback = std::make_shared<AVSessionCallbackImpl>();
375     OHOS::sptr<IAVSessionCallback> callbackClient = new(std::nothrow) AVSessionCallbackClient(callback);
376     EXPECT_EQ(avsessionHere_->RegisterCallbackInner(callbackClient), AVSESSION_SUCCESS);
377     auto keyEvent = OHOS::MMI::KeyEvent::Create();
378     ASSERT_NE(keyEvent, nullptr);
379     keyEvent->SetKeyCode(OHOS::MMI::KeyEvent::KEYCODE_HEADSETHOOK);
380     keyEvent->SetKeyAction(OHOS::MMI::KeyEvent::KEY_ACTION_DOWN);
381     OHOS::MMI::KeyEvent::KeyItem item;
382     item.SetKeyCode(OHOS::MMI::KeyEvent::KEYCODE_HEADSETHOOK);
383     item.SetDownTime(0);
384     item.SetPressed(true);
385     keyEvent->AddPressedKeyItems(item);
386     OHOS::MMI::InputManager::GetInstance()->SimulateInputEvent(keyEvent);
387     OHOS::MMI::InputManager::GetInstance()->SimulateInputEvent(keyEvent);
388     OHOS::MMI::InputManager::GetInstance()->SimulateInputEvent(keyEvent);
389     sleep(1);
390     EXPECT_EQ(g_previousOnCall, AVSESSION_SUCCESS);
391     g_previousOnCall = false;
392     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
393     SLOGI("SendSystemAVKeyEvent004 end!");
394 }
395 
396 /**
397 * @tc.name: SendSystemAVKeyEvent005
398 * @tc.desc: verifying send system keyEvent
399 * @tc.type: FUNC
400 * @tc.require: #I5Y4MZ
401 */
HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent005, TestSize.Level1)402 static HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent005, TestSize.Level1)
403 {
404     SLOGI("SendSystemAVKeyEvent005 begin!");
405     OHOS::AppExecFwk::ElementName elementName;
406     elementName.SetBundleName(g_testAnotherBundleName);
407     elementName.SetAbilityName(g_testAnotherAbilityName);
408     OHOS::sptr<AVSessionItem> avsessionHere_ =
409         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
410     avsessionHere_->Activate();
411     avservice_->UpdateTopSession(avsessionHere_);
412     g_metaData.SetAssetId("123");
413     g_metaData.SetTitle("Black Humor");
414     g_metaData.SetArtist("zhoujielun");
415     g_metaData.SetAuthor("zhoujielun");
416     g_metaData.SetAlbum("Jay");
417     g_metaData.SetWriter("zhoujielun");
418     g_metaData.SetComposer("zhoujielun");
419     g_metaData.SetDuration(40000);
420     g_metaData.SetMediaImageUri("xxxxx");
421     g_metaData.SetDescription("for friends");
422     avsessionHere_->SetAVMetaData(g_metaData);
423     g_playbackState.SetState(AVPlaybackState::PLAYBACK_STATE_PLAY);
424     g_playbackState.SetSpeed(1.5);
425     g_playbackState.SetPosition({80000, 0});
426     g_playbackState.SetBufferedTime(60000);
427     g_playbackState.SetLoopMode(2);
428     g_playbackState.SetFavorite(true);
429     avsessionHere_->SetAVPlaybackState(g_playbackState);
430     std::shared_ptr<AVSessionCallback> callback = std::make_shared<AVSessionCallbackImpl>();
431     OHOS::sptr<IAVSessionCallback> callbackClient = new(std::nothrow) AVSessionCallbackClient(callback);
432     EXPECT_EQ(avsessionHere_->RegisterCallbackInner(callbackClient), AVSESSION_SUCCESS);
433     auto keyEvent = OHOS::MMI::KeyEvent::Create();
434     ASSERT_NE(keyEvent, nullptr);
435     keyEvent->SetKeyCode(OHOS::MMI::KeyEvent::KEYCODE_HEADSETHOOK);
436     keyEvent->SetKeyAction(OHOS::MMI::KeyEvent::KEY_ACTION_DOWN);
437     OHOS::MMI::KeyEvent::KeyItem item;
438     item.SetKeyCode(OHOS::MMI::KeyEvent::KEYCODE_HEADSETHOOK);
439     item.SetDownTime(0);
440     item.SetPressed(true);
441     keyEvent->AddPressedKeyItems(item);
442     OHOS::MMI::InputManager::GetInstance()->SimulateInputEvent(keyEvent);
443     OHOS::MMI::InputManager::GetInstance()->SimulateInputEvent(keyEvent);
444     OHOS::MMI::InputManager::GetInstance()->SimulateInputEvent(keyEvent);
445     OHOS::MMI::InputManager::GetInstance()->SimulateInputEvent(keyEvent);
446     sleep(1);
447     EXPECT_EQ(g_previousOnCall, AVSESSION_SUCCESS);
448     g_previousOnCall = false;
449     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
450     SLOGI("SendSystemAVKeyEvent005 end!");
451 }
452 
453 /**
454 * @tc.name: SendSystemAVKeyEvent006
455 * @tc.desc: verifying send system keyEvent
456 * @tc.type: FUNC
457 * @tc.require: #I5Y4MZ
458 */
HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent006, TestSize.Level1)459 static HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent006, TestSize.Level1)
460 {
461     SLOGI("SendSystemAVKeyEvent006 begin!");
462     OHOS::AppExecFwk::ElementName elementName;
463     elementName.SetBundleName(g_testAnotherBundleName);
464     elementName.SetAbilityName(g_testAnotherAbilityName);
465     OHOS::sptr<AVSessionItem> avsessionHere_ =
466         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
467     avsessionHere_->Activate();
468     avservice_->UpdateTopSession(avsessionHere_);
469     g_metaData.SetAssetId("123");
470     g_metaData.SetTitle("Black Humor");
471     g_metaData.SetArtist("zhoujielun");
472     g_metaData.SetAuthor("zhoujielun");
473     g_metaData.SetAlbum("Jay");
474     g_metaData.SetWriter("zhoujielun");
475     g_metaData.SetComposer("zhoujielun");
476     g_metaData.SetDuration(40000);
477     avsessionHere_->SetAVMetaData(g_metaData);
478     g_playbackState.SetState(AVPlaybackState::PLAYBACK_STATE_PLAY);
479     g_playbackState.SetSpeed(1.5);
480     g_playbackState.SetPosition({80000, 0});
481     g_playbackState.SetBufferedTime(60000);
482     g_playbackState.SetLoopMode(2);
483     g_playbackState.SetFavorite(true);
484     avsessionHere_->SetAVPlaybackState(g_playbackState);
485     std::shared_ptr<AVSessionCallback> callback = std::make_shared<AVSessionCallbackImpl>();
486     OHOS::sptr<IAVSessionCallback> callbackClient = new(std::nothrow) AVSessionCallbackClient(callback);
487     EXPECT_EQ(avsessionHere_->RegisterCallbackInner(callbackClient), AVSESSION_SUCCESS);
488     auto keyEvent = OHOS::MMI::KeyEvent::Create();
489     ASSERT_NE(keyEvent, nullptr);
490     keyEvent->SetKeyCode(OHOS::MMI::KeyEvent::KEYCODE_HEADSETHOOK);
491     keyEvent->SetKeyAction(OHOS::MMI::KeyEvent::KEY_ACTION_DOWN);
492     OHOS::MMI::KeyEvent::KeyItem item;
493     item.SetKeyCode(OHOS::MMI::KeyEvent::KEYCODE_HEADSETHOOK);
494     item.SetDownTime(0);
495     item.SetPressed(true);
496     keyEvent->AddPressedKeyItems(item);
497     OHOS::MMI::InputManager::GetInstance()->SimulateInputEvent(keyEvent);
498     OHOS::MMI::InputManager::GetInstance()->SimulateInputEvent(keyEvent);
499     sleep(1);
500     EXPECT_EQ(g_nextOnCall, AVSESSION_SUCCESS);
501     g_nextOnCall = false;
502     OHOS::MMI::InputManager::GetInstance()->SimulateInputEvent(keyEvent);
503     sleep(1);
504     EXPECT_EQ(g_pauseOnCall, AVSESSION_SUCCESS);
505     g_pauseOnCall = false;
506     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
507     SLOGI("SendSystemAVKeyEvent006 end!");
508 }
509 
HWTEST_F(AVSessionServiceTest, NotifyDeviceAvailable001, TestSize.Level1)510 static HWTEST_F(AVSessionServiceTest, NotifyDeviceAvailable001, TestSize.Level1)
511 {
512     SLOGI("NotifyDeviceAvailable001 begin!");
513 #ifdef CASTPLUS_CAST_ENGINE_ENABLE
514     SLOGI("NotifyDeviceAvailable001 in!");
515     OutputDeviceInfo outputDeviceInfo;
516     OHOS::AVSession::DeviceInfo deviceInfo;
517     deviceInfo.castCategory_ = 1;
518     deviceInfo.deviceId_ = "deviceId";
519     outputDeviceInfo.deviceInfos_.push_back(deviceInfo);
520     avservice_->NotifyDeviceAvailable(outputDeviceInfo);
521     EXPECT_EQ(0, AVSESSION_SUCCESS);
522 #endif
523     EXPECT_EQ(0, AVSESSION_SUCCESS);
524     SLOGI("NotifyDeviceAvailable001 end!");
525 }
526 
HWTEST_F(AVSessionServiceTest, NotifyMirrorToStreamCast001, TestSize.Level1)527 static HWTEST_F(AVSessionServiceTest, NotifyMirrorToStreamCast001, TestSize.Level1)
528 {
529     SLOGI("NotifyMirrorToStreamCast001 begin!");
530 #ifdef CASTPLUS_CAST_ENGINE_ENABLE
531     SLOGI("NotifyMirrorToStreamCast001 in!");
532     avservice_->NotifyMirrorToStreamCast();
533 #endif
534     EXPECT_EQ(0, AVSESSION_SUCCESS);
535     SLOGI("NotifyMirrorToStreamCast001 end!");
536 }
537 
HWTEST_F(AVSessionServiceTest, NotifyMirrorToStreamCast002, TestSize.Level1)538 static HWTEST_F(AVSessionServiceTest, NotifyMirrorToStreamCast002, TestSize.Level1)
539 {
540     SLOGI("NotifyMirrorToStreamCast002 begin!");
541 #ifdef CASTPLUS_CAST_ENGINE_ENABLE
542     SLOGI("NotifyMirrorToStreamCast002 in!");
543     OHOS::AppExecFwk::ElementName elementName;
544     elementName.SetBundleName(g_testAnotherBundleName);
545     elementName.SetAbilityName(g_testAnotherAbilityName);
546     OHOS::sptr<AVSessionItem> avsessionHere_ =
547         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
548     EXPECT_EQ(avsessionHere_ != nullptr, true);
549     avservice_->UpdateTopSession(avsessionHere_);
550     avservice_->NotifyMirrorToStreamCast();
551     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
552 #endif
553     EXPECT_EQ(0, AVSESSION_SUCCESS);
554     SLOGI("NotifyMirrorToStreamCast002 end!");
555 }
556 
HWTEST_F(AVSessionServiceTest, NotifyMirrorToStreamCast003, TestSize.Level1)557 static HWTEST_F(AVSessionServiceTest, NotifyMirrorToStreamCast003, TestSize.Level1)
558 {
559     SLOGI("NotifyMirrorToStreamCast003 begin!");
560 #ifdef CASTPLUS_CAST_ENGINE_ENABLE
561     SLOGI("NotifyMirrorToStreamCast002 in!");
562     OHOS::AppExecFwk::ElementName elementName;
563     elementName.SetBundleName(g_testAnotherBundleName);
564     elementName.SetAbilityName(g_testAnotherAbilityName);
565     OHOS::sptr<AVSessionItem> avsessionHere_ =
566         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_VIDEO, false, elementName);
567     EXPECT_EQ(avsessionHere_ != nullptr, true);
568     avservice_->UpdateTopSession(avsessionHere_);
569     avservice_->NotifyMirrorToStreamCast();
570     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
571 #endif
572     EXPECT_EQ(0, AVSESSION_SUCCESS);
573     SLOGI("NotifyMirrorToStreamCast003 end!");
574 }
575 
HWTEST_F(AVSessionServiceTest, RefreshFocusSessionSort001, TestSize.Level1)576 static HWTEST_F(AVSessionServiceTest, RefreshFocusSessionSort001, TestSize.Level1)
577 {
578     SLOGI("RefreshFocusSessionSort001 begin!");
579     OHOS::AppExecFwk::ElementName elementName;
580     elementName.SetBundleName(g_testAnotherBundleName);
581     elementName.SetAbilityName(g_testAnotherAbilityName);
582     OHOS::sptr<AVSessionItem> avsessionHere_ =
583         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
584     EXPECT_EQ(avsessionHere_ != nullptr, true);
585     avservice_->RefreshFocusSessionSort(avsessionHere_);
586     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
587     EXPECT_EQ(0, AVSESSION_SUCCESS);
588     SLOGI("RefreshFocusSessionSort001 end!");
589 }
590 
HWTEST_F(AVSessionServiceTest, SelectSessionByUid001, TestSize.Level1)591 static HWTEST_F(AVSessionServiceTest, SelectSessionByUid001, TestSize.Level1)
592 {
593     SLOGI("SelectSessionByUid001 begin!");
594     OHOS::AppExecFwk::ElementName elementName;
595     elementName.SetBundleName(g_testAnotherBundleName);
596     elementName.SetAbilityName(g_testAnotherAbilityName);
597     OHOS::sptr<AVSessionItem> avsessionHere_ =
598         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
599     EXPECT_EQ(avsessionHere_ != nullptr, true);
600     AudioRendererChangeInfo info = {};
601     info.clientUID = 0;
602     avservice_->SelectSessionByUid(info);
603     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
604     EXPECT_EQ(0, AVSESSION_SUCCESS);
605     SLOGI("SelectSessionByUid001 end!");
606 }
607 
HWTEST_F(AVSessionServiceTest, SelectSessionByUid002, TestSize.Level1)608 static HWTEST_F(AVSessionServiceTest, SelectSessionByUid002, TestSize.Level1)
609 {
610     SLOGI("SelectSessionByUid002 begin!");
611     OHOS::AppExecFwk::ElementName elementName;
612     elementName.SetBundleName(g_testAnotherBundleName);
613     elementName.SetAbilityName(g_testAnotherAbilityName);
614     OHOS::sptr<AVSessionItem> avsessionHere_ =
615         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
616     EXPECT_EQ(avsessionHere_ != nullptr, true);
617     AudioRendererChangeInfo info = {};
618     info.clientUID = avsessionHere_->GetUid();
619     avservice_->SelectSessionByUid(info);
620     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
621     EXPECT_EQ(0, AVSESSION_SUCCESS);
622     SLOGI("SelectSessionByUid002 end!");
623 }
624 
HWTEST_F(AVSessionServiceTest, InitBMS001, TestSize.Level1)625 static HWTEST_F(AVSessionServiceTest, InitBMS001, TestSize.Level1)
626 {
627     SLOGI("InitBMS001 stop to prevent crash in SubscribeBundleStatusEvent");
628     EXPECT_EQ(0, AVSESSION_SUCCESS);
629     SLOGI("InitBMS001 end!");
630 }
631 
HWTEST_F(AVSessionServiceTest, ReleaseCastSession001, TestSize.Level1)632 static HWTEST_F(AVSessionServiceTest, ReleaseCastSession001, TestSize.Level1)
633 {
634     SLOGI("ReleaseCastSession001 begin!");
635     OHOS::AppExecFwk::ElementName elementName;
636     elementName.SetBundleName(g_testAnotherBundleName);
637     elementName.SetAbilityName(g_testAnotherAbilityName);
638     OHOS::sptr<AVSessionItem> avsessionHere_ =
639         avservice_->CreateSessionInner("RemoteCast", AVSession::SESSION_TYPE_AUDIO, false, elementName);
640     EXPECT_EQ(avsessionHere_ != nullptr, true);
641 #ifdef CASTPLUS_CAST_ENGINE_ENABLE
642     SLOGI("ReleaseCastSession001 in!");
643     avservice_->ReleaseCastSession();
644 #endif
645     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
646     EXPECT_EQ(0, AVSESSION_SUCCESS);
647     SLOGI("ReleaseCastSession001 end!");
648 }
649 
HWTEST_F(AVSessionServiceTest, CreateSessionByCast001, TestSize.Level1)650 static HWTEST_F(AVSessionServiceTest, CreateSessionByCast001, TestSize.Level1)
651 {
652     SLOGI("CreateSessionByCast001 begin!");
653 #ifdef CASTPLUS_CAST_ENGINE_ENABLE
654     SLOGI("CreateSessionByCast001 in!");
655     avservice_->CreateSessionByCast(0);
656     avservice_->ClearSessionForClientDiedNoLock(getpid());
657 #endif
658     EXPECT_EQ(0, AVSESSION_SUCCESS);
659     SLOGI("CreateSessionByCast001 end!");
660 }
661 
HWTEST_F(AVSessionServiceTest, MirrorToStreamCast001, TestSize.Level1)662 static HWTEST_F(AVSessionServiceTest, MirrorToStreamCast001, TestSize.Level1)
663 {
664     SLOGI("MirrorToStreamCast001 begin!");
665 #ifdef CASTPLUS_CAST_ENGINE_ENABLE
666     SLOGI("MirrorToStreamCast001 in!");
667     OHOS::AppExecFwk::ElementName elementName;
668     elementName.SetBundleName(g_testAnotherBundleName);
669     elementName.SetAbilityName(g_testAnotherAbilityName);
670     OHOS::sptr<AVSessionItem> avsessionHere_ =
671         avservice_->CreateSessionInner("RemoteCast", AVSession::SESSION_TYPE_AUDIO, false, elementName);
672     EXPECT_EQ(avsessionHere_ != nullptr, true);
673     avservice_->is2in1_ = true;
674     avservice_->MirrorToStreamCast(avsessionHere_);
675     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
676 #endif
677     EXPECT_EQ(0, AVSESSION_SUCCESS);
678     SLOGI("MirrorToStreamCast001 end!");
679 }
680 
HWTEST_F(AVSessionServiceTest, MirrorToStreamCast002, TestSize.Level1)681 static HWTEST_F(AVSessionServiceTest, MirrorToStreamCast002, TestSize.Level1)
682 {
683     SLOGI("MirrorToStreamCast002 begin!");
684 #ifdef CASTPLUS_CAST_ENGINE_ENABLE
685     SLOGI("MirrorToStreamCast002 in!");
686     OHOS::AppExecFwk::ElementName elementName;
687     elementName.SetBundleName(g_testAnotherBundleName);
688     elementName.SetAbilityName(g_testAnotherAbilityName);
689     OHOS::sptr<AVSessionItem> avsessionHere_ =
690         avservice_->CreateSessionInner("RemoteCast", AVSession::SESSION_TYPE_AUDIO, false, elementName);
691     EXPECT_EQ(avsessionHere_ != nullptr, true);
692     avservice_->is2in1_ = false;
693     avservice_->MirrorToStreamCast(avsessionHere_);
694     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
695 #endif
696     EXPECT_EQ(0, AVSESSION_SUCCESS);
697     SLOGI("MirrorToStreamCast002 end!");
698 }
699 
HWTEST_F(AVSessionServiceTest, MirrorToStreamCast003, TestSize.Level1)700 static HWTEST_F(AVSessionServiceTest, MirrorToStreamCast003, TestSize.Level1)
701 {
702     SLOGI("MirrorToStreamCast003 begin!");
703 #ifdef CASTPLUS_CAST_ENGINE_ENABLE
704     SLOGI("MirrorToStreamCast003 in!");
705     OHOS::AppExecFwk::ElementName elementName;
706     elementName.SetBundleName(g_testAnotherBundleName);
707     elementName.SetAbilityName(g_testAnotherAbilityName);
708     OHOS::sptr<AVSessionItem> avsessionHere_ =
709         avservice_->CreateSessionInner("RemoteCast", AVSession::SESSION_TYPE_AUDIO, false, elementName);
710     EXPECT_EQ(avsessionHere_ != nullptr, true);
711     avservice_->is2in1_ = true;
712     avservice_->MirrorToStreamCast(avsessionHere_);
713     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
714 #endif
715     EXPECT_EQ(0, AVSESSION_SUCCESS);
716     SLOGI("MirrorToStreamCast003 end!");
717 }
718 
HWTEST_F(AVSessionServiceTest, SaveSessionInfoInFile001, TestSize.Level1)719 static HWTEST_F(AVSessionServiceTest, SaveSessionInfoInFile001, TestSize.Level1)
720 {
721     SLOGI("SaveSessionInfoInFile001 begin!");
722     OHOS::AppExecFwk::ElementName elementName;
723     elementName.SetBundleName(g_testAnotherBundleName);
724     elementName.SetAbilityName(g_testAnotherAbilityName);
725     OHOS::sptr<AVSessionItem> avsessionHere_ =
726         avservice_->CreateSessionInner("RemoteCast", AVSession::SESSION_TYPE_AUDIO, false, elementName);
727     EXPECT_EQ(avsessionHere_ != nullptr, true);
728     avservice_->SaveSessionInfoInFile(avsessionHere_->GetSessionId(),
729         "audio", elementName);
730     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
731     EXPECT_EQ(0, AVSESSION_SUCCESS);
732     SLOGI("SaveSessionInfoInFile001 end!");
733 }
734 
HWTEST_F(AVSessionServiceTest, GetHistoricalAVQueueInfos001, TestSize.Level1)735 static HWTEST_F(AVSessionServiceTest, GetHistoricalAVQueueInfos001, TestSize.Level1)
736 {
737     SLOGI("GetHistoricalAVQueueInfos001 begin!");
738     std::vector<AVQueueInfo> avQueueInfos_;
739     avservice_->GetHistoricalAVQueueInfos(0, 0, avQueueInfos_);
740     EXPECT_EQ(0, AVSESSION_SUCCESS);
741     SLOGI("GetHistoricalAVQueueInfos001 end!");
742 }
743 
HWTEST_F(AVSessionServiceTest, SaveAvQueueInfo001, TestSize.Level1)744 static HWTEST_F(AVSessionServiceTest, SaveAvQueueInfo001, TestSize.Level1)
745 {
746     SLOGI("SaveAvQueueInfo001 begin!");
747     OHOS::AppExecFwk::ElementName elementName;
748     elementName.SetBundleName(g_testAnotherBundleName);
749     elementName.SetAbilityName(g_testAnotherAbilityName);
750     OHOS::sptr<AVSessionItem> avsessionHere_ =
751         avservice_->CreateSessionInner("RemoteCast", AVSession::SESSION_TYPE_AUDIO, false, elementName);
752     EXPECT_EQ(avsessionHere_ != nullptr, true);
753     AVMetaData meta = avsessionHere_->GetMetaData();
754     std::string oldContent;
755     if (!avservice_->LoadStringFromFileEx(avservice_->GetAVQueueDir(), oldContent)) {
756         SLOGE("SaveAvQueueInfo001 read avqueueinfo fail, Return!");
757         avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
758         return;
759     }
760     avservice_->SaveAvQueueInfo(oldContent, g_testAnotherBundleName, meta,
761         avservice_->GetUsersManager().GetCurrentUserId());
762     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
763     EXPECT_EQ(0, AVSESSION_SUCCESS);
764     SLOGI("SaveAvQueueInfo001 end!");
765 }
766 
HWTEST_F(AVSessionServiceTest, AddAvQueueInfoToFile001, TestSize.Level1)767 static HWTEST_F(AVSessionServiceTest, AddAvQueueInfoToFile001, TestSize.Level1)
768 {
769     SLOGI("AddAvQueueInfoToFile001 begin!");
770     OHOS::AppExecFwk::ElementName elementName;
771     elementName.SetBundleName(g_testAnotherBundleName);
772     elementName.SetAbilityName(g_testAnotherAbilityName);
773     OHOS::sptr<AVSessionItem> avsessionHere_ =
774         avservice_->CreateSessionInner("RemoteCast", AVSession::SESSION_TYPE_AUDIO, false, elementName);
775     EXPECT_EQ(avsessionHere_ != nullptr, true);
776     avservice_->AddAvQueueInfoToFile(*avsessionHere_);
777     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
778     EXPECT_EQ(0, AVSESSION_SUCCESS);
779     SLOGI("AddAvQueueInfoToFile001 end!");
780 }
781 
HWTEST_F(AVSessionServiceTest, StartAVPlayback001, TestSize.Level1)782 static HWTEST_F(AVSessionServiceTest, StartAVPlayback001, TestSize.Level1)
783 {
784     SLOGI("StartAVPlayback001 begin!");
785     avservice_->StartAVPlayback(g_testAnotherBundleName, "FAKE_ASSET_NAME");
786     EXPECT_EQ(0, AVSESSION_SUCCESS);
787     SLOGI("StartAVPlayback001 end!");
788 }
789 
HWTEST_F(AVSessionServiceTest, GetSubNode001, TestSize.Level1)790 static HWTEST_F(AVSessionServiceTest, GetSubNode001, TestSize.Level1)
791 {
792     SLOGI("GetSubNode001 begin!");
793     nlohmann::json value;
794     value["bundleName"] = g_testAnotherBundleName;
795     avservice_->GetSubNode(value, "FAKE_NAME");
796     EXPECT_EQ(0, AVSESSION_SUCCESS);
797     SLOGI("GetSubNode001 end!");
798 }
799 
HWTEST_F(AVSessionServiceTest, Close001, TestSize.Level1)800 static HWTEST_F(AVSessionServiceTest, Close001, TestSize.Level1)
801 {
802     SLOGI("Close001 begin!");
803     avservice_->Close();
804     EXPECT_EQ(0, AVSESSION_SUCCESS);
805     SLOGI("Close001 end!");
806 }
807 
HWTEST_F(AVSessionServiceTest, DeleteHistoricalRecord001, TestSize.Level1)808 static HWTEST_F(AVSessionServiceTest, DeleteHistoricalRecord001, TestSize.Level1)
809 {
810     SLOGI("DeleteHistoricalRecord001 begin!");
811     avservice_->DeleteHistoricalRecord(g_testAnotherBundleName);
812     EXPECT_EQ(0, AVSESSION_SUCCESS);
813     SLOGI("DeleteHistoricalRecord001 end!");
814 }
815 
HWTEST_F(AVSessionServiceTest, Dump001, TestSize.Level1)816 static HWTEST_F(AVSessionServiceTest, Dump001, TestSize.Level1)
817 {
818     SLOGI("Dump001 begin!");
819     std::vector<std::u16string> argsList;
820     avservice_->Dump(1, argsList);
821     EXPECT_EQ(0, AVSESSION_SUCCESS);
822     SLOGI("Dump001 end!");
823 }
824 
HWTEST_F(AVSessionServiceTest, ProcessCastAudioCommand001, TestSize.Level1)825 static HWTEST_F(AVSessionServiceTest, ProcessCastAudioCommand001, TestSize.Level1)
826 {
827     SLOGI("ProcessCastAudioCommand001 begin!");
828     std::string sourceSessionInfo = "SOURCE";
829     std::string sinkSessionInfo = " SINK";
830     avservice_->ProcessCastAudioCommand(
831         OHOS::AVSession::AVSessionServiceStub::RemoteServiceCommand::COMMAND_CAST_AUDIO,
832         sourceSessionInfo, sinkSessionInfo);
833     EXPECT_EQ(0, AVSESSION_SUCCESS);
834     SLOGI("ProcessCastAudioCommand001 end!");
835 }
836 
HWTEST_F(AVSessionServiceTest, ProcessCastAudioCommand002, TestSize.Level1)837 static HWTEST_F(AVSessionServiceTest, ProcessCastAudioCommand002, TestSize.Level1)
838 {
839     SLOGI("ProcessCastAudioCommand002 begin!");
840     std::string sourceSessionInfo = "SOURCE";
841     std::string sinkSessionInfo = " SINK";
842     avservice_->ProcessCastAudioCommand(
843         OHOS::AVSession::AVSessionServiceStub::RemoteServiceCommand::COMMAND_CANCEL_CAST_AUDIO,
844         sourceSessionInfo, sinkSessionInfo);
845     EXPECT_EQ(0, AVSESSION_SUCCESS);
846     SLOGI("ProcessCastAudioCommand002 end!");
847 }
848 
HWTEST_F(AVSessionServiceTest, HandleDeviceChange001, TestSize.Level1)849 static HWTEST_F(AVSessionServiceTest, HandleDeviceChange001, TestSize.Level1)
850 {
851     SLOGI("HandleDeviceChange001 begin!");
852     DeviceChangeAction deviceChange;
853     deviceChange.type = static_cast<DeviceChangeType>(0);
854     deviceChange.flag = static_cast<DeviceFlag>(0);
855     avservice_->HandleDeviceChange(deviceChange);
856     EXPECT_EQ(0, AVSESSION_SUCCESS);
857     SLOGI("HandleDeviceChange001 end!");
858 }
859 
HWTEST_F(AVSessionServiceTest, HandleDeviceChange002, TestSize.Level1)860 static HWTEST_F(AVSessionServiceTest, HandleDeviceChange002, TestSize.Level1)
861 {
862     SLOGI("HandleDeviceChange002 begin!");
863     DeviceChangeAction deviceChange;
864     std::vector<OHOS::sptr<AudioDeviceDescriptor>> audioDeviceDescriptors;
865     OHOS::sptr<AudioDeviceDescriptor> descriptor = new(std::nothrow) AudioDeviceDescriptor();
866     descriptor->deviceType_ = OHOS::AudioStandard::DEVICE_TYPE_WIRED_HEADSET;
867     deviceChange.type = static_cast<DeviceChangeType>(0);
868     deviceChange.flag = static_cast<DeviceFlag>(0);
869 
870     audioDeviceDescriptors.push_back(descriptor);
871     deviceChange.deviceDescriptors = audioDeviceDescriptors;
872     avservice_->HandleDeviceChange(deviceChange);
873     EXPECT_EQ(0, AVSESSION_SUCCESS);
874     SLOGI("HandleDeviceChange002 end!");
875 }
876 
HWTEST_F(AVSessionServiceTest, OnReceiveEvent001, TestSize.Level1)877 static HWTEST_F(AVSessionServiceTest, OnReceiveEvent001, TestSize.Level1)
878 {
879     SLOGI("OnReceiveEvent001 begin!");
880     OHOS::EventFwk::CommonEventData eventData;
881     string action = OHOS::EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_ON;
882     OHOS::AAFwk::Want want = eventData.GetWant();
883     want.SetAction(action);
884     eventData.SetWant(want);
885     OHOS::EventFwk::MatchingSkills matchingSkills;
886     OHOS::EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
887     EventSubscriber eventSubscriber(subscriberInfo, avservice_);
888     eventSubscriber.OnReceiveEvent(eventData);
889     EXPECT_EQ(0, AVSESSION_SUCCESS);
890     SLOGI("OnReceiveEvent001 end!");
891 }
892 
HWTEST_F(AVSessionServiceTest, OnReceiveEvent002, TestSize.Level1)893 static HWTEST_F(AVSessionServiceTest, OnReceiveEvent002, TestSize.Level1)
894 {
895     SLOGI("OnReceiveEvent002 begin!");
896     OHOS::EventFwk::CommonEventData eventData;
897     string action = OHOS::EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_OFF;
898     OHOS::AAFwk::Want want = eventData.GetWant();
899     want.SetAction(action);
900     eventData.SetWant(want);
901     OHOS::EventFwk::MatchingSkills matchingSkills;
902     OHOS::EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
903     EventSubscriber eventSubscriber(subscriberInfo, avservice_);
904     eventSubscriber.OnReceiveEvent(eventData);
905     EXPECT_EQ(0, AVSESSION_SUCCESS);
906     SLOGI("OnReceiveEvent002 end!");
907 }
908 
HWTEST_F(AVSessionServiceTest, UnSubscribeCommonEvent001, TestSize.Level1)909 static HWTEST_F(AVSessionServiceTest, UnSubscribeCommonEvent001, TestSize.Level1)
910 {
911     SLOGI("SubscribeCommonEvent001 begin!");
912     EXPECT_TRUE(avservice_ != nullptr);
913     avservice_->SubscribeCommonEvent();
914     avservice_->UnSubscribeCommonEvent();
915     SLOGI("SubscribeCommonEvent001 end!");
916 }
917 
HWTEST_F(AVSessionServiceTest, UnSubscribeCommonEvent002, TestSize.Level1)918 static HWTEST_F(AVSessionServiceTest, UnSubscribeCommonEvent002, TestSize.Level1)
919 {
920     SLOGI("SubscribeCommonEvent002 begin!");
921     EXPECT_TRUE(avservice_ != nullptr);
922     avservice_->UnSubscribeCommonEvent();
923     SLOGI("SubscribeCommonEvent002 end!");
924 }
925 
HWTEST_F(AVSessionServiceTest, OnRemoveSystemAbility001, TestSize.Level1)926 static HWTEST_F(AVSessionServiceTest, OnRemoveSystemAbility001, TestSize.Level1)
927 {
928     SLOGI("OnRemoveSystemAbility001 begin!");
929     EXPECT_TRUE(avservice_ != nullptr);
930     int32_t systemAbilityId = 65546;
931     std::string deviceId = "";
932     avservice_->OnRemoveSystemAbility(systemAbilityId, deviceId);
933     SLOGI("OnRemoveSystemAbility001 end!");
934 }
935 
HWTEST_F(AVSessionServiceTest, OnRemoveSystemAbility002, TestSize.Level1)936 static HWTEST_F(AVSessionServiceTest, OnRemoveSystemAbility002, TestSize.Level1)
937 {
938     SLOGI("OnRemoveSystemAbility002 begin!");
939     EXPECT_TRUE(avservice_ != nullptr);
940     int32_t systemAbilityId = 111222;
941     std::string deviceId = "";
942     avservice_->OnRemoveSystemAbility(systemAbilityId, deviceId);
943     SLOGI("OnRemoveSystemAbility002 end!");
944 }
945 
HWTEST_F(AVSessionServiceTest, GetHistoricalSessionDescriptorsFromFile001, TestSize.Level1)946 static HWTEST_F(AVSessionServiceTest, GetHistoricalSessionDescriptorsFromFile001, TestSize.Level1)
947 {
948     SLOGI("GetHistoricalSessionDescriptorsFromFile001 begin!");
949     std::vector<AVSessionDescriptor> descriptors;
950     int32_t ret = avservice_->GetHistoricalSessionDescriptorsFromFile(descriptors);
951     EXPECT_EQ(ret, AVSESSION_SUCCESS);
952     SLOGI("GetHistoricalSessionDescriptorsFromFile001 end!");
953 }
954 
HWTEST_F(AVSessionServiceTest, GetHistoricalSessionDescriptors001, TestSize.Level1)955 static HWTEST_F(AVSessionServiceTest, GetHistoricalSessionDescriptors001, TestSize.Level1)
956 {
957     SLOGI("GetHistoricalSessionDescriptors001 begin!");
958     int32_t maxSize = -1;
959     std::vector<AVSessionDescriptor> descriptors;
960     int32_t ret = avservice_->GetHistoricalSessionDescriptors(maxSize, descriptors);
961     EXPECT_EQ(ret, AVSESSION_SUCCESS);
962     SLOGI("GetHistoricalSessionDescriptors001 end!");
963 }
964 
HWTEST_F(AVSessionServiceTest, GetHistoricalSessionDescriptors002, TestSize.Level1)965 static HWTEST_F(AVSessionServiceTest, GetHistoricalSessionDescriptors002, TestSize.Level1)
966 {
967     SLOGI("GetHistoricalSessionDescriptors002 begin!");
968     int32_t maxSize = 50;
969     std::vector<AVSessionDescriptor> descriptors;
970     int32_t ret = avservice_->GetHistoricalSessionDescriptors(maxSize, descriptors);
971     EXPECT_EQ(ret, AVSESSION_SUCCESS);
972     SLOGI("GetHistoricalSessionDescriptors002 end!");
973 }
974 
HWTEST_F(AVSessionServiceTest, GetHistoricalSessionDescriptors003, TestSize.Level1)975 static HWTEST_F(AVSessionServiceTest, GetHistoricalSessionDescriptors003, TestSize.Level1)
976 {
977     SLOGI("GetHistoricalSessionDescriptors003 begin!");
978     int32_t maxSize = 10;
979     std::vector<AVSessionDescriptor> descriptors;
980     for (int i = 0; i <= maxSize; i++) {
981         AVSessionDescriptor aVSessionDescriptor;
982         descriptors.emplace_back(aVSessionDescriptor);
983     }
984     int32_t ret = avservice_->GetHistoricalSessionDescriptors(maxSize, descriptors);
985     EXPECT_EQ(ret, AVSESSION_SUCCESS);
986     SLOGI("GetHistoricalSessionDescriptors003 end!");
987 }
988 
HWTEST_F(AVSessionServiceTest, DoMetadataImgClean001, TestSize.Level1)989 static HWTEST_F(AVSessionServiceTest, DoMetadataImgClean001, TestSize.Level1)
990 {
991     SLOGI("DoMetadataImgClean001 begin!");
992     EXPECT_TRUE(avservice_ != nullptr);
993     OHOS::AVSession::AVMetaData metaData;
994 
995     std::shared_ptr<AVSessionPixelMap> avQueuePixelMap = std::make_shared<AVSessionPixelMap>();
996     std::vector<uint8_t> imgBuffer = {1, 1, 0, 1, 1};
997     avQueuePixelMap->SetInnerImgBuffer(imgBuffer);
998     metaData.SetAVQueueImage(avQueuePixelMap);
999 
1000     std::shared_ptr<AVSessionPixelMap> mediaPixelMap = std::make_shared<AVSessionPixelMap>();
1001     std::vector<uint8_t> imgBuffer2 = {1, 0, 0, 0, 1};
1002     mediaPixelMap->SetInnerImgBuffer(imgBuffer2);
1003     metaData.SetMediaImage(mediaPixelMap);
1004 
1005     avservice_->DoMetadataImgClean(metaData);
1006     SLOGI("DoMetadataImgClean001 end!");
1007 }
1008 
HWTEST_F(AVSessionServiceTest, DoMetadataImgClean002, TestSize.Level1)1009 static HWTEST_F(AVSessionServiceTest, DoMetadataImgClean002, TestSize.Level1)
1010 {
1011     SLOGI("DoMetadataImgClean002 begin!");
1012     OHOS::AVSession::AVMetaData metaData;
1013     avservice_->DoMetadataImgClean(metaData);
1014     SLOGI("DoMetadataImgClean002 end!");
1015 }
1016 
HWTEST_F(AVSessionServiceTest, Dump002, TestSize.Level1)1017 static HWTEST_F(AVSessionServiceTest, Dump002, TestSize.Level1)
1018 {
1019     SLOGI("Dump002 begin!");
1020     int32_t fd = -1;
1021     std::vector<std::u16string> argsList;
1022     int32_t ret = avservice_->Dump(fd, argsList);
1023     EXPECT_EQ(ret, ERR_INVALID_PARAM);
1024     SLOGI("Dump002 end!");
1025 }
1026 
HWTEST_F(AVSessionServiceTest, GetTrustedDeviceName001, TestSize.Level1)1027 static HWTEST_F(AVSessionServiceTest, GetTrustedDeviceName001, TestSize.Level1)
1028 {
1029     SLOGI("GetTrustedDeviceName001 begin!");
1030     std::string networkId = "";
1031     std::string deviceName = "";
1032     int32_t ret = avservice_->GetTrustedDeviceName(networkId, deviceName);
1033     EXPECT_EQ(ret, AVSESSION_SUCCESS);
1034     SLOGI("GetTrustedDeviceName001 end!");
1035 }
1036 
HWTEST_F(AVSessionServiceTest, HandleFocusSession001, TestSize.Level1)1037 static HWTEST_F(AVSessionServiceTest, HandleFocusSession001, TestSize.Level1)
1038 {
1039     SLOGI("HandleFocusSession001 begin!");
1040     EXPECT_TRUE(avservice_ != nullptr);
1041     int32_t pid = 201;
1042     OHOS::AppExecFwk::ElementName elementName;
1043     elementName.SetBundleName(g_testAnotherBundleName);
1044     elementName.SetAbilityName(g_testAnotherAbilityName);
1045     OHOS::sptr<AVSessionItem> avsessionHere_ =
1046         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1047     avsessionHere_->SetUid(pid);
1048     avservice_->UpdateTopSession(avsessionHere_);
1049     FocusSessionStrategy::FocusSessionChangeInfo info;
1050     info.uid = pid;
1051     avservice_->HandleFocusSession(info);
1052     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1053     avsessionHere_->Destroy();
1054     SLOGI("HandleFocusSession001 end!");
1055 }
1056 
HWTEST_F(AVSessionServiceTest, HandleFocusSession002, TestSize.Level1)1057 static HWTEST_F(AVSessionServiceTest, HandleFocusSession002, TestSize.Level1)
1058 {
1059     SLOGI("HandleFocusSession002 begin!");
1060     EXPECT_TRUE(avservice_ != nullptr);
1061     int32_t pid = 202;
1062     OHOS::AppExecFwk::ElementName elementName;
1063     elementName.SetBundleName(g_testAnotherBundleName);
1064     elementName.SetAbilityName(g_testAnotherAbilityName);
1065     OHOS::sptr<AVSessionItem> avsessionHere_ =
1066         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_VOICE_CALL, false, elementName);
1067     avsessionHere_->SetUid(pid);
1068     avservice_->UpdateTopSession(avsessionHere_);
1069     FocusSessionStrategy::FocusSessionChangeInfo info;
1070     info.uid = 203;
1071     avservice_->HandleFocusSession(info);
1072     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1073     avsessionHere_->Destroy();
1074     SLOGI("HandleFocusSession002 end!");
1075 }
1076 
HWTEST_F(AVSessionServiceTest, UpdateFrontSession001, TestSize.Level1)1077 static HWTEST_F(AVSessionServiceTest, UpdateFrontSession001, TestSize.Level1)
1078 {
1079     SLOGI("HandleFocusSession001 begin!");
1080     EXPECT_TRUE(avservice_ != nullptr);
1081     int32_t pid = 203;
1082     OHOS::AppExecFwk::ElementName elementName;
1083     elementName.SetBundleName(g_testAnotherBundleName);
1084     elementName.SetAbilityName(g_testAnotherAbilityName);
1085     OHOS::sptr<AVSessionItem> avsessionHere_ =
1086         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1087     avsessionHere_->SetUid(pid);
1088     FocusSessionStrategy::FocusSessionChangeInfo info;
1089     info.uid = pid;
1090     avservice_->HandleFocusSession(info);
1091     avservice_->UpdateFrontSession(avsessionHere_, true);
1092     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1093     avsessionHere_->Destroy();
1094     SLOGI("HandleFocusSession001 end!");
1095 }
1096 
HWTEST_F(AVSessionServiceTest, UpdateFrontSession002, TestSize.Level1)1097 static HWTEST_F(AVSessionServiceTest, UpdateFrontSession002, TestSize.Level1)
1098 {
1099     SLOGI("UpdateFrontSession002 begin!");
1100     EXPECT_TRUE(avservice_ != nullptr);
1101     int32_t pid = 204;
1102     OHOS::AppExecFwk::ElementName elementName;
1103     elementName.SetBundleName(g_testAnotherBundleName);
1104     elementName.SetAbilityName(g_testAnotherAbilityName);
1105     OHOS::sptr<AVSessionItem> avsessionHere_ =
1106         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1107     avsessionHere_->SetUid(pid);
1108     FocusSessionStrategy::FocusSessionChangeInfo info;
1109     info.uid = 205;
1110     avservice_->HandleFocusSession(info);
1111     avservice_->UpdateFrontSession(avsessionHere_, true);
1112     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1113     avsessionHere_->Destroy();
1114     SLOGI("UpdateFrontSession002 end!");
1115 }
1116 
HWTEST_F(AVSessionServiceTest, SelectFocusSession001, TestSize.Level1)1117 static HWTEST_F(AVSessionServiceTest, SelectFocusSession001, TestSize.Level1)
1118 {
1119     SLOGI("SelectFocusSession001 begin!");
1120     int32_t pid = 205;
1121     OHOS::AppExecFwk::ElementName elementName;
1122     elementName.SetBundleName(g_testAnotherBundleName);
1123     elementName.SetAbilityName(g_testAnotherAbilityName);
1124     OHOS::sptr<AVSessionItem> avsessionHere_ =
1125         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1126     avsessionHere_->SetUid(pid);
1127     FocusSessionStrategy::FocusSessionChangeInfo info;
1128     info.uid = pid;
1129     bool ret = avservice_->SelectFocusSession(info);
1130     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1131     avsessionHere_->Destroy();
1132     EXPECT_EQ(ret, true);
1133     SLOGI("SelectFocusSession001 end!");
1134 }
1135 
HWTEST_F(AVSessionServiceTest, SelectFocusSession002, TestSize.Level1)1136 static HWTEST_F(AVSessionServiceTest, SelectFocusSession002, TestSize.Level1)
1137 {
1138     SLOGI("SelectFocusSession002 begin!");
1139     int32_t pid = 206;
1140     OHOS::AppExecFwk::ElementName elementName;
1141     elementName.SetBundleName(g_testAnotherBundleName);
1142     elementName.SetAbilityName(g_testAnotherAbilityName);
1143     OHOS::sptr<AVSessionItem> avsessionHere_ =
1144         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1145     avsessionHere_->SetUid(pid);
1146     FocusSessionStrategy::FocusSessionChangeInfo info;
1147     info.uid = 207;
1148     bool ret = avservice_->SelectFocusSession(info);
1149     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1150     avsessionHere_->Destroy();
1151     EXPECT_EQ(ret, false);
1152     SLOGI("SelectFocusSession002 end!");
1153 }
1154 
HWTEST_F(AVSessionServiceTest, SelectSessionByUid003, TestSize.Level1)1155 static HWTEST_F(AVSessionServiceTest, SelectSessionByUid003, TestSize.Level1)
1156 {
1157     SLOGI("SelectSessionByUid003 begin!");
1158     int32_t pid = 207;
1159     OHOS::AppExecFwk::ElementName elementName;
1160     elementName.SetBundleName(g_testAnotherBundleName);
1161     elementName.SetAbilityName(g_testAnotherAbilityName);
1162     OHOS::sptr<AVSessionItem> avsessionHere_ =
1163         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1164     EXPECT_EQ(avsessionHere_ != nullptr, true);
1165     avsessionHere_->SetUid(pid);
1166     AudioRendererChangeInfo info = {};
1167     info.clientUID = 208;
1168     auto ret = avservice_->SelectSessionByUid(info);
1169     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1170     avsessionHere_->Destroy();
1171     EXPECT_EQ(ret, nullptr);
1172     SLOGI("SelectSessionByUid003 end!");
1173 }
1174 
HWTEST_F(AVSessionServiceTest, GetSessionDescriptorsBySessionId001, TestSize.Level1)1175 static HWTEST_F(AVSessionServiceTest, GetSessionDescriptorsBySessionId001, TestSize.Level1)
1176 {
1177     SLOGI("GetSessionDescriptorsBySessionId001 begin!");
1178     int32_t pid = 206;
1179     OHOS::AppExecFwk::ElementName elementName;
1180     elementName.SetBundleName(g_testAnotherBundleName);
1181     elementName.SetAbilityName(g_testAnotherAbilityName);
1182     OHOS::sptr<AVSessionItem> avsessionHere_ =
1183         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1184     avsessionHere_->SetUid(pid);
1185     std::string sessionId = "";
1186     AVSessionDescriptor descriptor;
1187     int32_t ret = avservice_->GetSessionDescriptorsBySessionId(sessionId, descriptor);
1188     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1189     avsessionHere_->Destroy();
1190     EXPECT_EQ(ret, AVSESSION_ERROR);
1191     SLOGI("GetSessionDescriptorsBySessionId001 end!");
1192 }
1193 
HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent007, TestSize.Level1)1194 static HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent007, TestSize.Level1)
1195 {
1196     SLOGI("SendSystemAVKeyEvent007 begin!");
1197     OHOS::AppExecFwk::ElementName elementName;
1198     elementName.SetBundleName(g_testAnotherBundleName);
1199     elementName.SetAbilityName(g_testAnotherAbilityName);
1200     OHOS::sptr<AVSessionItem> avsessionHere_ =
1201         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_VOICE_CALL, false, elementName);
1202     auto keyEvent = OHOS::MMI::KeyEvent::Create();
1203     ASSERT_NE(keyEvent, nullptr);
1204     bool ret = avservice_->SendSystemAVKeyEvent(*keyEvent);
1205     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1206     avsessionHere_->Destroy();
1207     EXPECT_EQ(ret, AVSESSION_SUCCESS);
1208     SLOGI("SendSystemAVKeyEvent007 end!");
1209 }
1210 
1211 
HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent008, TestSize.Level1)1212 static HWTEST_F(AVSessionServiceTest, SendSystemAVKeyEvent008, TestSize.Level1)
1213 {
1214     SLOGI("SendSystemAVKeyEvent008 begin!");
1215     OHOS::AppExecFwk::ElementName elementName;
1216     elementName.SetBundleName(g_testAnotherBundleName);
1217     elementName.SetAbilityName(g_testAnotherAbilityName);
1218     OHOS::sptr<AVSessionItem> avsessionHere_ =
1219         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1220     auto keyEvent = OHOS::MMI::KeyEvent::Create();
1221     ASSERT_NE(keyEvent, nullptr);
1222     avservice_->UpdateTopSession(avsessionHere_);
1223     bool ret = avservice_->SendSystemAVKeyEvent(*keyEvent);
1224     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1225     avsessionHere_->Destroy();
1226     EXPECT_EQ(ret, AVSESSION_SUCCESS);
1227     SLOGI("SendSystemAVKeyEvent008 end!");
1228 }
1229 
HWTEST_F(AVSessionServiceTest, PullMigrateStub001, TestSize.Level1)1230 static HWTEST_F(AVSessionServiceTest, PullMigrateStub001, TestSize.Level1)
1231 {
1232     SLOGI("PullMigrateStub001 begin!");
1233     EXPECT_TRUE(avservice_ != nullptr);
1234     avservice_->PullMigrateStub();
1235     SLOGI("PullMigrateStub001 end!");
1236 }
1237 
HWTEST_F(AVSessionServiceTest, UpdateFrontSession003, TestSize.Level1)1238 static HWTEST_F(AVSessionServiceTest, UpdateFrontSession003, TestSize.Level1)
1239 {
1240     SLOGI("UpdateFrontSession003 begin!");
1241     EXPECT_TRUE(avservice_ != nullptr);
1242     int32_t pid = 304;
1243     OHOS::AppExecFwk::ElementName elementName;
1244     elementName.SetBundleName(g_testAnotherBundleName);
1245     elementName.SetAbilityName(g_testAnotherAbilityName);
1246     OHOS::sptr<AVSessionItem> avsessionHere_ =
1247         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_VOICE_CALL, false, elementName);
1248     avsessionHere_->SetUid(pid);
1249     avservice_->UpdateFrontSession(avsessionHere_, true);
1250     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1251     avsessionHere_->Destroy();
1252     SLOGI("UpdateFrontSession003 end!");
1253 }
1254 
HWTEST_F(AVSessionServiceTest, CreateSessionInner001, TestSize.Level1)1255 static HWTEST_F(AVSessionServiceTest, CreateSessionInner001, TestSize.Level1)
1256 {
1257     SLOGI("CreateSessionInner001 begin!");
1258     OHOS::sptr<AVSessionItem> sessionItem = nullptr;
1259     OHOS::AppExecFwk::ElementName elementName;
1260     elementName.SetBundleName("######");
1261     elementName.SetAbilityName(g_testAnotherAbilityName);
1262     int32_t ret = avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO,
1263                     false, elementName, sessionItem);
1264     EXPECT_EQ(ret, ERR_INVALID_PARAM);
1265     SLOGI("CreateSessionInner001 end!");
1266 }
1267 
HWTEST_F(AVSessionServiceTest, CreateSessionInner002, TestSize.Level1)1268 static HWTEST_F(AVSessionServiceTest, CreateSessionInner002, TestSize.Level1)
1269 {
1270     SLOGI("CreateSessionInner001 begin!");
1271     OHOS::sptr<AVSessionItem> sessionItem = nullptr;
1272     OHOS::AppExecFwk::ElementName elementName;
1273     elementName.SetBundleName(g_testAnotherBundleName);
1274     elementName.SetAbilityName("######");
1275     int32_t ret = avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO,
1276                     false, elementName, sessionItem);
1277     EXPECT_EQ(ret, ERR_INVALID_PARAM);
1278     SLOGI("CreateSessionInner001 end!");
1279 }
1280 
HWTEST_F(AVSessionServiceTest, ReportSessionInfo001, TestSize.Level1)1281 static HWTEST_F(AVSessionServiceTest, ReportSessionInfo001, TestSize.Level1)
1282 {
1283     SLOGI("ReportSessionInfo001 begin!");
1284     EXPECT_TRUE(avservice_ != nullptr);
1285     OHOS::sptr<AVSessionItem> avsessionHere_ = nullptr;
1286     avservice_->ReportSessionInfo(avsessionHere_, true);
1287     SLOGI("ReportSessionInfo001 end!");
1288 }
1289 
HWTEST_F(AVSessionServiceTest, CreateNewControllerForSession001, TestSize.Level1)1290 static HWTEST_F(AVSessionServiceTest, CreateNewControllerForSession001, TestSize.Level1)
1291 {
1292     SLOGI("CreateNewControllerForSession001 begin!");
1293     OHOS::AppExecFwk::ElementName elementName;
1294     elementName.SetBundleName(g_testAnotherBundleName);
1295     elementName.SetAbilityName(g_testAnotherAbilityName);
1296     OHOS::sptr<AVSessionItem> avsessionHere_ =
1297         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_VOICE_CALL, false, elementName);
1298     pid_t pid = 2222;
1299     auto ret = avservice_->CreateNewControllerForSession(pid, avsessionHere_);
1300     EXPECT_NE(ret, nullptr);
1301     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1302     avsessionHere_->Destroy();
1303     SLOGI("CreateNewControllerForSession001 end!");
1304 }
1305 
HWTEST_F(AVSessionServiceTest, IsHistoricalSession001, TestSize.Level1)1306 static HWTEST_F(AVSessionServiceTest, IsHistoricalSession001, TestSize.Level1)
1307 {
1308     SLOGI("IsHistoricalSession001 begin!");
1309     OHOS::AppExecFwk::ElementName elementName;
1310     elementName.SetBundleName(g_testAnotherBundleName);
1311     elementName.SetAbilityName(g_testAnotherAbilityName);
1312     OHOS::sptr<AVSessionItem> avsessionHere_ =
1313         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1314     std::string sessionId = avsessionHere_->GetSessionId();
1315     bool ret = avservice_->IsHistoricalSession(sessionId);
1316     EXPECT_EQ(ret, false);
1317     avservice_->HandleSessionRelease(sessionId);
1318     avsessionHere_->Destroy();
1319     SLOGI("IsHistoricalSession001 end!");
1320 }
1321 
HWTEST_F(AVSessionServiceTest, StartDefaultAbilityByCall001, TestSize.Level1)1322 static HWTEST_F(AVSessionServiceTest, StartDefaultAbilityByCall001, TestSize.Level1)
1323 {
1324     SLOGI("StartDefaultAbilityByCall001 begin!");
1325     OHOS::AppExecFwk::ElementName elementName;
1326     elementName.SetBundleName(g_testAnotherBundleName);
1327     elementName.SetAbilityName(g_testAnotherAbilityName);
1328     OHOS::sptr<AVSessionItem> avsessionHere_ =
1329         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1330     std::string sessionId = avsessionHere_->GetSessionId();
1331     int32_t ret = avservice_->StartDefaultAbilityByCall(sessionId);
1332     // startability may go with mediaintent, will return AVSESSION_ERROR
1333     EXPECT_TRUE(ret == ERR_ABILITY_NOT_AVAILABLE || ret == AVSESSION_ERROR);
1334     avservice_->HandleSessionRelease(sessionId);
1335     avsessionHere_->Destroy();
1336     SLOGI("StartDefaultAbilityByCall001 end!");
1337 }
1338 
HWTEST_F(AVSessionServiceTest, StartAbilityByCall001, TestSize.Level1)1339 static HWTEST_F(AVSessionServiceTest, StartAbilityByCall001, TestSize.Level1)
1340 {
1341     SLOGI("StartAbilityByCall001 begin!");
1342     OHOS::AppExecFwk::ElementName elementName;
1343     elementName.SetBundleName(g_testAnotherBundleName);
1344     elementName.SetAbilityName(g_testAnotherAbilityName);
1345     OHOS::sptr<AVSessionItem> avsessionHere_ =
1346         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1347     std::string sessionIdNeeded = "";
1348     std::string sessionId = "";
1349     int32_t ret = avservice_->StartAbilityByCall(sessionIdNeeded, sessionId);
1350     EXPECT_EQ(ret, AVSESSION_ERROR);
1351     avsessionHere_->Destroy();
1352     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1353     SLOGI("StartAbilityByCall001 end!");
1354 }
1355 
HWTEST_F(AVSessionServiceTest, HandleSystemKeyColdStart001, TestSize.Level1)1356 static HWTEST_F(AVSessionServiceTest, HandleSystemKeyColdStart001, TestSize.Level1)
1357 {
1358     SLOGI("HandleSystemKeyColdStart001 begin!");
1359     EXPECT_TRUE(avservice_ != nullptr);
1360     OHOS::AppExecFwk::ElementName elementName;
1361     elementName.SetBundleName(g_testAnotherBundleName);
1362     elementName.SetAbilityName(g_testAnotherAbilityName);
1363     OHOS::sptr<AVSessionItem> avsessionHere_ =
1364         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1365     AVControlCommand command;
1366     avservice_->HandleSystemKeyColdStart(command);
1367     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1368     avsessionHere_->Destroy();
1369     SLOGI("HandleSystemKeyColdStart001 end!");
1370 }
1371 
HWTEST_F(AVSessionServiceTest, SendSystemControlCommand001, TestSize.Level1)1372 static HWTEST_F(AVSessionServiceTest, SendSystemControlCommand001, TestSize.Level1)
1373 {
1374     SLOGI("SendSystemControlCommand001 begin!");
1375     OHOS::AppExecFwk::ElementName elementName;
1376     elementName.SetBundleName(g_testAnotherBundleName);
1377     elementName.SetAbilityName(g_testAnotherAbilityName);
1378     OHOS::sptr<AVSessionItem> avsessionHere_ =
1379         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1380     avservice_->UpdateFrontSession(avsessionHere_, true);
1381     AVControlCommand command;
1382     command.SetCommand(1000);
1383     int32_t ret = avservice_->SendSystemControlCommand(command);
1384     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1385     avsessionHere_->Destroy();
1386     EXPECT_EQ(ret, AVSESSION_SUCCESS);
1387     SLOGI("SendSystemControlCommand001 end!");
1388 }
1389 
HWTEST_F(AVSessionServiceTest, HandleControllerRelease001, TestSize.Level1)1390 static HWTEST_F(AVSessionServiceTest, HandleControllerRelease001, TestSize.Level1)
1391 {
1392     SLOGI("HandleControllerRelease001 begin!");
1393     EXPECT_TRUE(avservice_ != nullptr);
1394     OHOS::AppExecFwk::ElementName elementName;
1395     elementName.SetBundleName(g_testAnotherBundleName);
1396     elementName.SetAbilityName(g_testAnotherAbilityName);
1397     OHOS::sptr<AVSessionItem> avsessionHere_ =
1398         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_VOICE_CALL, false, elementName);
1399     OHOS::sptr<AVControllerItem> avcontrollerHere_ =
1400         avservice_->CreateNewControllerForSession(avsessionHere_->GetPid(), avsessionHere_);
1401     avservice_->HandleControllerRelease(*avcontrollerHere_);
1402     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1403     avsessionHere_->Destroy();
1404     SLOGI("HandleControllerRelease001 end!");
1405 }
1406 
HWTEST_F(AVSessionServiceTest, GetDeviceInfo001, TestSize.Level1)1407 static HWTEST_F(AVSessionServiceTest, GetDeviceInfo001, TestSize.Level1)
1408 {
1409     SLOGI("GetDeviceInfo001 begin!");
1410     EXPECT_TRUE(avservice_ != nullptr);
1411     OHOS::AppExecFwk::ElementName elementName;
1412     elementName.SetBundleName(g_testAnotherBundleName);
1413     elementName.SetAbilityName(g_testAnotherAbilityName);
1414     OHOS::sptr<AVSessionItem> avsessionHere_ =
1415         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_VOICE_CALL, false, elementName);
1416     std::vector<OHOS::AudioStandard::AudioDeviceDescriptor> descriptors;
1417     avservice_->GetDeviceInfo(avsessionHere_, descriptors, descriptors, descriptors);
1418     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1419     avsessionHere_->Destroy();
1420     SLOGI("GetDeviceInfo001 end!");
1421 }
1422 
HWTEST_F(AVSessionServiceTest, CreateControllerInner001, TestSize.Level1)1423 static HWTEST_F(AVSessionServiceTest, CreateControllerInner001, TestSize.Level1)
1424 {
1425     SLOGI("CreateControllerInner001 begin!");
1426     std::string sessionId = "default";
1427     OHOS::sptr<IRemoteObject> object = nullptr;
1428     int32_t ret = avservice_->CreateControllerInner(sessionId, object);
1429     // startability may go with mediaintent, will return AVSESSION_ERROR
1430     EXPECT_TRUE(ret == ERR_ABILITY_NOT_AVAILABLE || ret == AVSESSION_ERROR);
1431     SLOGI("CreateControllerInner001 end!");
1432 }
1433 
HWTEST_F(AVSessionServiceTest, ClearControllerForClientDiedNoLock001, TestSize.Level1)1434 static HWTEST_F(AVSessionServiceTest, ClearControllerForClientDiedNoLock001, TestSize.Level1)
1435 {
1436     SLOGI("ClearControllerForClientDiedNoLock001 begin!");
1437     EXPECT_TRUE(avservice_ != nullptr);
1438     OHOS::AppExecFwk::ElementName elementName;
1439     elementName.SetBundleName(g_testAnotherBundleName);
1440     elementName.SetAbilityName(g_testAnotherAbilityName);
1441     OHOS::sptr<AVSessionItem> avsessionHere_ =
1442         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_VOICE_CALL, false, elementName);
1443     std::string sessionId = avsessionHere_->GetSessionId();
1444     OHOS::sptr<IRemoteObject> object = nullptr;
1445     int32_t ret = avservice_->CreateControllerInner(sessionId, object);
1446     ASSERT_EQ(ret, AVSESSION_SUCCESS);
1447     avservice_->ClearControllerForClientDiedNoLock(avsessionHere_->GetPid());
1448     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1449     avsessionHere_->Destroy();
1450     SLOGI("ClearControllerForClientDiedNoLock001 end!");
1451 }
1452 
HWTEST_F(AVSessionServiceTest, LoadStringFromFileEx001, TestSize.Level1)1453 static HWTEST_F(AVSessionServiceTest, LoadStringFromFileEx001, TestSize.Level1)
1454 {
1455     SLOGI("LoadStringFromFileEx001 begin!");
1456     OHOS::AppExecFwk::ElementName elementName;
1457     elementName.SetBundleName(g_testAnotherBundleName);
1458     elementName.SetAbilityName(g_testAnotherAbilityName);
1459     OHOS::sptr<AVSessionItem> avsessionHere_ =
1460         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1461     EXPECT_EQ(avsessionHere_ != nullptr, true);
1462 
1463     std::string filePath = avservice_->GetUsersManager().GetDirForCurrentUser() + "test1.txt";
1464     std::string content;
1465     bool ret = avservice_->LoadStringFromFileEx(filePath, content);
1466     EXPECT_EQ(ret, true);
1467     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1468     avsessionHere_->Destroy();
1469     SLOGI("LoadStringFromFileEx001 end!");
1470 }
1471 
HWTEST_F(AVSessionServiceTest, LoadStringFromFileEx002, TestSize.Level1)1472 static HWTEST_F(AVSessionServiceTest, LoadStringFromFileEx002, TestSize.Level1)
1473 {
1474     SLOGI("LoadStringFromFileEx002 begin!");
1475     OHOS::AppExecFwk::ElementName elementName;
1476     elementName.SetBundleName(g_testAnotherBundleName);
1477     elementName.SetAbilityName(g_testAnotherAbilityName);
1478     OHOS::sptr<AVSessionItem> avsessionHere_ =
1479         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1480     EXPECT_EQ(avsessionHere_ != nullptr, true);
1481     int32_t maxFileLength = 32 * 1024 * 1024;
1482     std::string filePath = avservice_->GetUsersManager().GetDirForCurrentUser() + "test2.txt";
1483     ofstream ofs;
1484     ofs.open(filePath, ios::out);
1485     for (int32_t i = 0; i <= maxFileLength; i++) {
1486         ofs << "A";
1487     }
1488     ofs.close();
1489     std::string content;
1490     bool ret = avservice_->LoadStringFromFileEx(filePath, content);
1491     EXPECT_EQ(ret, false);
1492     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1493     avsessionHere_->Destroy();
1494     SLOGI("LoadStringFromFileEx002 end!");
1495 }
1496 
HWTEST_F(AVSessionServiceTest, LoadStringFromFileEx003, TestSize.Level1)1497 static HWTEST_F(AVSessionServiceTest, LoadStringFromFileEx003, TestSize.Level1)
1498 {
1499     SLOGI("LoadStringFromFileEx003 begin!");
1500     OHOS::AppExecFwk::ElementName elementName;
1501     elementName.SetBundleName(g_testAnotherBundleName);
1502     elementName.SetAbilityName(g_testAnotherAbilityName);
1503     OHOS::sptr<AVSessionItem> avsessionHere_ =
1504         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1505     EXPECT_EQ(avsessionHere_ != nullptr, true);
1506 
1507     std::string filePath = "/test3.txt";
1508     std::string content;
1509     ifstream file(filePath, ios_base::in);
1510     bool ret = avservice_->LoadStringFromFileEx(filePath, content);
1511     file.close();
1512     // file not exist for no permission to create file at root dir
1513     EXPECT_EQ(ret, false);
1514     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1515     avsessionHere_->Destroy();
1516     SLOGI("LoadStringFromFileEx003 end!");
1517 }
1518 
HWTEST_F(AVSessionServiceTest, CheckStringAndCleanFile001, TestSize.Level1)1519 static HWTEST_F(AVSessionServiceTest, CheckStringAndCleanFile001, TestSize.Level1)
1520 {
1521     SLOGI("CheckStringAndCleanFile001 begin!");
1522     OHOS::AppExecFwk::ElementName elementName;
1523     elementName.SetBundleName(g_testAnotherBundleName);
1524     elementName.SetAbilityName(g_testAnotherAbilityName);
1525     OHOS::sptr<AVSessionItem> avsessionHere_ =
1526         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1527     EXPECT_EQ(avsessionHere_ != nullptr, true);
1528 
1529     std::string filePath = avservice_->GetUsersManager().GetDirForCurrentUser() + "test6.txt";
1530     bool ret = avservice_->CheckStringAndCleanFile(filePath);
1531     EXPECT_EQ(ret, true);
1532     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1533     avsessionHere_->Destroy();
1534     SLOGI("CheckStringAndCleanFile001 end!");
1535 }
1536 
HWTEST_F(AVSessionServiceTest, CheckStringAndCleanFile002, TestSize.Level1)1537 static HWTEST_F(AVSessionServiceTest, CheckStringAndCleanFile002, TestSize.Level1)
1538 {
1539     SLOGI("CheckStringAndCleanFile002 begin!");
1540     OHOS::AppExecFwk::ElementName elementName;
1541     elementName.SetBundleName(g_testAnotherBundleName);
1542     elementName.SetAbilityName(g_testAnotherAbilityName);
1543     OHOS::sptr<AVSessionItem> avsessionHere_ =
1544         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1545     EXPECT_EQ(avsessionHere_ != nullptr, true);
1546 
1547     std::string filePath = avservice_->GetUsersManager().GetDirForCurrentUser() + "adcdXYZ123/test7.txt";
1548     ifstream file(filePath, ios_base::in);
1549     bool ret = avservice_->CheckStringAndCleanFile(filePath);
1550     file.close();
1551     // file not exist for ifstream file can not create file in non-existent folder
1552     EXPECT_EQ(ret, false);
1553     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1554     avsessionHere_->Destroy();
1555     SLOGI("CheckStringAndCleanFile002 end!");
1556 }
1557 
HWTEST_F(AVSessionServiceTest, ReportStartCastEnd001, TestSize.Level1)1558 static HWTEST_F(AVSessionServiceTest, ReportStartCastEnd001, TestSize.Level1)
1559 {
1560     SLOGI("NotifyDeviceAvailable001 begin!");
1561     OHOS::AppExecFwk::ElementName elementName;
1562     elementName.SetBundleName(g_testAnotherBundleName);
1563     elementName.SetAbilityName(g_testAnotherAbilityName);
1564     OHOS::sptr<AVSessionItem> avsessionHere_ =
1565         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1566     EXPECT_EQ(avsessionHere_ != nullptr, true);
1567     std::string func = "";
1568     int32_t uid = avsessionHere_->GetUid();
1569     int ret = 1;
1570     OutputDeviceInfo outputDeviceInfo;
1571     OHOS::AVSession::DeviceInfo deviceInfo;
1572     deviceInfo.castCategory_ = 1;
1573     deviceInfo.deviceId_ = "deviceId";
1574     avservice_->ReportStartCastEnd(func, outputDeviceInfo, uid, ret);
1575     avservice_->HandleSessionRelease(avsessionHere_->GetSessionId());
1576     avsessionHere_->Destroy();
1577     SLOGI("NotifyDeviceAvailable001 end!");
1578 }
1579 
1580 #ifdef BLUETOOTH_ENABLE
HWTEST_F(AVSessionServiceTest, OnStateChanged001, TestSize.Level1)1581 static HWTEST_F(AVSessionServiceTest, OnStateChanged001, TestSize.Level1)
1582 {
1583     SLOGI("OnStateChanged001 begin!");
1584     DetectBluetoothHostObserver detectBluetoothHostObserver(avservice_);
1585     int transport = 111222;
1586     int status = 111222;
1587     detectBluetoothHostObserver.OnStateChanged(transport, status);
1588     SLOGI("OnStateChanged001 end!");
1589 }
1590 
HWTEST_F(AVSessionServiceTest, OnStateChanged002, TestSize.Level1)1591 static HWTEST_F(AVSessionServiceTest, OnStateChanged002, TestSize.Level1)
1592 {
1593     SLOGI("OnStateChanged002 begin!");
1594     DetectBluetoothHostObserver detectBluetoothHostObserver(avservice_);
1595     int transport = OHOS::Bluetooth::BTTransport::ADAPTER_BREDR;
1596     int status = 111222;
1597     detectBluetoothHostObserver.OnStateChanged(transport, status);
1598     SLOGI("OnStateChanged002 end!");
1599 }
1600 
HWTEST_F(AVSessionServiceTest, OnStateChanged003, TestSize.Level1)1601 static HWTEST_F(AVSessionServiceTest, OnStateChanged003, TestSize.Level1)
1602 {
1603     SLOGI("OnStateChanged003 begin!");
1604     DetectBluetoothHostObserver detectBluetoothHostObserver(avservice_);
1605     int transport = OHOS::Bluetooth::BTTransport::ADAPTER_BREDR;
1606     int status = OHOS::Bluetooth::BTStateID::STATE_TURN_ON;
1607     detectBluetoothHostObserver.OnStateChanged(transport, status);
1608     SLOGI("OnStateChanged003 end!");
1609 }
1610 
HWTEST_F(AVSessionServiceTest, OnStateChanged004, TestSize.Level1)1611 static HWTEST_F(AVSessionServiceTest, OnStateChanged004, TestSize.Level1)
1612 {
1613     SLOGI("OnStateChanged004 begin!");
1614     AVSessionService *avservice = nullptr;
1615     DetectBluetoothHostObserver detectBluetoothHostObserver(avservice);
1616     int transport = OHOS::Bluetooth::BTTransport::ADAPTER_BREDR;
1617     int status = OHOS::Bluetooth::BTStateID::STATE_TURN_ON;
1618     detectBluetoothHostObserver.OnStateChanged(transport, status);
1619     SLOGI("OnStateChanged004 end!");
1620 }
1621 #endif
1622 
HWTEST_F(AVSessionServiceTest, OnReceiveEvent003, TestSize.Level1)1623 static HWTEST_F(AVSessionServiceTest, OnReceiveEvent003, TestSize.Level1)
1624 {
1625     SLOGD("OnReceiveEvent003 begin!");
1626     OHOS::EventFwk::CommonEventData eventData;
1627     string action = OHOS::EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_LOCKED;
1628     OHOS::AAFwk::Want want = eventData.GetWant();
1629     want.SetAction(action);
1630     eventData.SetWant(want);
1631     OHOS::EventFwk::MatchingSkills matchingSkills;
1632     OHOS::EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
1633     EventSubscriber eventSubscriber(subscriberInfo, avservice_);
1634     eventSubscriber.OnReceiveEvent(eventData);
1635     int32_t ret = action.compare(OHOS::EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_LOCKED);
1636     EXPECT_EQ(ret, 0);
1637     SLOGD("OnReceiveEvent003 end!");
1638 }
1639 
HWTEST_F(AVSessionServiceTest, UpdateFrontSession004, TestSize.Level1)1640 static HWTEST_F(AVSessionServiceTest, UpdateFrontSession004, TestSize.Level1)
1641 {
1642     SLOGD("UpdateFrontSession004 begin!");
1643     OHOS::AppExecFwk::ElementName elementName;
1644     elementName.SetBundleName(g_testAnotherBundleName);
1645     elementName.SetAbilityName(g_testAnotherAbilityName);
1646     OHOS::sptr<AVSessionItem> avsessionHere =
1647         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_VOICE_CALL, false, elementName);
1648     EXPECT_EQ(avsessionHere != nullptr, true);
1649     avservice_->UpdateTopSession(avsessionHere);
1650     avservice_->UpdateFrontSession(avsessionHere, false);
1651     avservice_->HandleSessionRelease(avsessionHere->GetSessionId());
1652     avsessionHere->Destroy();
1653     SLOGD("UpdateFrontSession004 end!");
1654 }
1655 
HWTEST_F(AVSessionServiceTest, CheckAncoAudio001, TestSize.Level1)1656 static HWTEST_F(AVSessionServiceTest, CheckAncoAudio001, TestSize.Level1)
1657 {
1658     SLOGD("CheckAncoAudio001 begin!");
1659     OHOS::AppExecFwk::ElementName elementName;
1660     elementName.SetBundleName(g_testAnotherBundleName);
1661     elementName.SetAbilityName(g_testAnotherAbilityName);
1662     OHOS::sptr<AVSessionItem> avsessionHere =
1663         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_VOICE_CALL, false, elementName);
1664     bool ret = avservice_->CheckAncoAudio();
1665     EXPECT_EQ(ret, false);
1666     avsessionHere->Destroy();
1667     SLOGD("CheckAncoAudio001 end!");
1668 }
1669 
HWTEST_F(AVSessionServiceTest, SendSystemControlCommand002, TestSize.Level1)1670 static HWTEST_F(AVSessionServiceTest, SendSystemControlCommand002, TestSize.Level1)
1671 {
1672     SLOGD("SendSystemControlCommand002 begin!");
1673     OHOS::AppExecFwk::ElementName elementName;
1674     elementName.SetBundleName(g_testAnotherBundleName);
1675     elementName.SetAbilityName(g_testAnotherAbilityName);
1676     OHOS::sptr<AVSessionItem> avsessionHere =
1677         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1678     avservice_->UpdateTopSession(avsessionHere);
1679     AVControlCommand command;
1680     command.SetCommand(1000);
1681     int32_t ret = avservice_->SendSystemControlCommand(command);
1682     avservice_->HandleSessionRelease(avsessionHere->GetSessionId());
1683     avsessionHere->Destroy();
1684     EXPECT_EQ(ret, AVSESSION_SUCCESS);
1685     SLOGD("SendSystemControlCommand002 end!");
1686 }
1687 
HWTEST_F(AVSessionServiceTest, CreateWantAgent001, TestSize.Level1)1688 static HWTEST_F(AVSessionServiceTest, CreateWantAgent001, TestSize.Level1)
1689 {
1690     SLOGD("CreateWantAgent001 begin!");
1691     std::shared_ptr<AVSessionDescriptor> histroyDescriptor(nullptr);
1692     auto ret = avservice_->CreateWantAgent(histroyDescriptor.get());
1693     EXPECT_EQ(ret, nullptr);
1694     SLOGD("CreateWantAgent001 end!");
1695 }
1696 
HWTEST_F(AVSessionServiceTest, CreateWantAgent002, TestSize.Level1)1697 static HWTEST_F(AVSessionServiceTest, CreateWantAgent002, TestSize.Level1)
1698 {
1699     SLOGD("CreateWantAgent001 begin!");
1700     std::shared_ptr<AVSessionDescriptor> histroyDescriptor = std::make_shared<AVSessionDescriptor>();
1701     auto ret = avservice_->CreateWantAgent(histroyDescriptor.get());
1702     EXPECT_EQ(ret, nullptr);
1703     SLOGD("CreateWantAgent001 end!");
1704 }
1705 
HWTEST_F(AVSessionServiceTest, CreateWantAgent003, TestSize.Level1)1706 static HWTEST_F(AVSessionServiceTest, CreateWantAgent003, TestSize.Level1)
1707 {
1708     SLOGD("CreateWantAgent003 begin!");
1709     OHOS::AppExecFwk::ElementName elementName;
1710     elementName.SetBundleName(g_testAnotherBundleName);
1711     elementName.SetAbilityName(g_testAnotherAbilityName);
1712     OHOS::sptr<AVSessionItem> avsessionHere =
1713         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1714     avservice_->UpdateTopSession(avsessionHere);
1715     std::shared_ptr<AVSessionDescriptor> histroyDescriptor(nullptr);
1716     auto ret = avservice_->CreateWantAgent(histroyDescriptor.get());
1717     avsessionHere->Destroy();
1718     EXPECT_EQ(ret, nullptr);
1719     SLOGD("CreateWantAgent003 end!");
1720 }
1721 
HWTEST_F(AVSessionServiceTest, CreateWantAgent004, TestSize.Level1)1722 static HWTEST_F(AVSessionServiceTest, CreateWantAgent004, TestSize.Level1)
1723 {
1724     SLOGD("CreateWantAgent004 begin!");
1725     OHOS::AppExecFwk::ElementName elementName;
1726     elementName.SetBundleName(g_testAnotherBundleName);
1727     elementName.SetAbilityName(g_testAnotherAbilityName);
1728     OHOS::sptr<AVSessionItem> avsessionHere =
1729         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1730     avservice_->UpdateTopSession(avsessionHere);
1731     std::shared_ptr<AVSessionDescriptor> histroyDescriptor = std::make_shared<AVSessionDescriptor>();
1732     auto ret = avservice_->CreateWantAgent(histroyDescriptor.get());
1733     avsessionHere->Destroy();
1734     EXPECT_EQ(ret, nullptr);
1735     SLOGD("CreateWantAgent004 end!");
1736 }
1737 
HWTEST_F(AVSessionServiceTest, HandleSystemKeyColdStart002, TestSize.Level1)1738 static HWTEST_F(AVSessionServiceTest, HandleSystemKeyColdStart002, TestSize.Level1)
1739 {
1740     SLOGD("HandleSystemKeyColdStart002 begin!");
1741     OHOS::AppExecFwk::ElementName elementName;
1742     elementName.SetBundleName(g_testAnotherBundleName);
1743     elementName.SetAbilityName(g_testAnotherAbilityName);
1744     OHOS::sptr<AVSessionItem> avsessionHere =
1745         avservice_->CreateSessionInner(g_testSessionTag, AVSession::SESSION_TYPE_AUDIO, false, elementName);
1746     EXPECT_EQ(avsessionHere != nullptr, true);
1747     AVControlCommand command;
1748     command.SetCommand(AVControlCommand::SESSION_CMD_PLAY);
1749     avservice_->HandleSystemKeyColdStart(command);
1750     avservice_->HandleSessionRelease(avsessionHere->GetSessionId());
1751     avsessionHere->Destroy();
1752     SLOGD("HandleSystemKeyColdStart002 end!");
1753 }