1 /*
2 * Copyright (c) 2024-2025 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 "playback_capturer_adapter.h"
18 #include "playback_capturer_manager.h"
19 #include "audio_info.h"
20 #include "audio_errors.h"
21
22 using namespace testing::ext;
23 namespace OHOS {
24 namespace AudioStandard {
25 static PlaybackCapturerManager *playbackCapturerMgr_ = PlaybackCapturerManager::GetInstance();
26
27 class PlaybackPlaybackCapturerManagerUnitTest : public testing::Test {
28 public:
29 static void SetUpTestCase(void);
30 static void TearDownTestCase(void);
31 void SetUp();
32 void TearDown();
33 };
34
SetUpTestCase(void)35 void PlaybackPlaybackCapturerManagerUnitTest::SetUpTestCase(void)
36 {
37 // input testsuit setup step,setup invoked before all testcases
38 }
39
TearDownTestCase(void)40 void PlaybackPlaybackCapturerManagerUnitTest::TearDownTestCase(void)
41 {
42 // input testsuit teardown step,teardown invoked after all testcases
43 }
44
SetUp(void)45 void PlaybackPlaybackCapturerManagerUnitTest::SetUp(void)
46 {
47 // input testcase setup step,setup invoked before each testcases
48 }
49
TearDown(void)50 void PlaybackPlaybackCapturerManagerUnitTest::TearDown(void)
51 {
52 // input testcase teardown step,teardown invoked after each testcases
53 }
54
55 /**
56 * @tc.name : Test IsPrivacySupportInnerCapturer API via legal state
57 * @tc.type : FUNC
58 * @tc.number: IsPrivacySupportInnerCapturer_001
59 * @tc.desc : Test IsPrivacySupportInnerCapturer interface. Is privacy support innter capturer and return ret.
60 */
61 HWTEST(PlaybackPlaybackCapturerManagerUnitTest, IsPrivacySupportInnerCapturer_001, TestSize.Level1)
62 {
63 bool ret = IsPrivacySupportInnerCapturer(PRIVACY_TYPE_PUBLIC);
64 EXPECT_TRUE(ret);
65 }
66
67 /**
68 * @tc.name : Test IsPrivacySupportInnerCapturer API via legal state
69 * @tc.type : FUNC
70 * @tc.number: IsPrivacySupportInnerCapturer_002
71 * @tc.desc : Test IsPrivacySupportInnerCapturer interface. Is privacy support innter capturer and return ret.
72 */
73 HWTEST(PlaybackPlaybackCapturerManagerUnitTest, IsPrivacySupportInnerCapturer_002, TestSize.Level1)
74 {
75 bool ret = IsPrivacySupportInnerCapturer(PRIVACY_TYPE_PRIVATE);
76 EXPECT_FALSE(ret);
77 }
78
79 /**
80 * @tc.name : Test SetInnerCapturerState API via legal and illegal state
81 * @tc.type : FUNC
82 * @tc.number: SetInnerCapturerState_001
83 * @tc.desc : Test SetInnerCapturerState interface. Set inner capturer state.
84 */
85 HWTEST(PlaybackPlaybackCapturerManagerUnitTest, SetInnerCapturerState_001, TestSize.Level1)
86 {
87 SetInnerCapturerState(true);
88 bool ret = GetInnerCapturerState();
89 EXPECT_TRUE(ret);
90 SetInnerCapturerState(false);
91 ret = GetInnerCapturerState();
92 EXPECT_FALSE(ret);
93 }
94
95 /**
96 * @tc.name : Test RegisterCapturerFilterListener API via legal and illegal state
97 * @tc.type : FUNC
98 * @tc.number: RegisterCapturerFilterListener_001
99 * @tc.desc : Test RegisterCapturerFilterListener interface
100 */
101 HWTEST(PlaybackPlaybackCapturerManagerUnitTest, RegisterCapturerFilterListener_001, TestSize.Level1)
102 {
103 bool ret = playbackCapturerMgr_->RegisterCapturerFilterListener(nullptr);
104 EXPECT_FALSE(ret);
105 }
106
107 /**
108 * @tc.name : Test CheckCaptureLimit API
109 * @tc.type : FUNC
110 * @tc.number: CheckCaptureLimit_001
111 * @tc.desc : Test CheckCaptureLimit interface
112 */
113 HWTEST(PlaybackPlaybackCapturerManagerUnitTest, CheckCaptureLimit_001, TestSize.Level1)
114 {
115 AudioPlaybackCaptureConfig config;
116 int32_t innerCapId = 0;
117 int32_t ret = playbackCapturerMgr_->CheckCaptureLimit(config, innerCapId);
118 EXPECT_EQ(ret, SUCCESS);
119 ret = playbackCapturerMgr_->SetInnerCapLimit(++innerCapId);
120 EXPECT_EQ(ret, SUCCESS);
121 ret = playbackCapturerMgr_->CheckCaptureLimit(config, innerCapId);
122 EXPECT_EQ(ret, SUCCESS);
123 config.filterOptions.usages.push_back(STREAM_USAGE_MUSIC);
124 ret = playbackCapturerMgr_->CheckCaptureLimit(config, innerCapId);
125 EXPECT_EQ(ret, SUCCESS);
126 playbackCapturerMgr_->CheckReleaseUnloadModernInnerCapSink(innerCapId--);
127 playbackCapturerMgr_->CheckReleaseUnloadModernInnerCapSink(innerCapId);
128 bool checkRet = playbackCapturerMgr_->CheckReleaseUnloadModernInnerCapSink(1);
129 EXPECT_TRUE(checkRet);
130 }
131
132 }
133 }