1 /*
2 * Copyright (c) 2023-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 "plugin/plugins/sink/audio_server_sink/audio_server_sink_plugin.h"
18
19 using namespace testing::ext;
20 using namespace OHOS::Media::Plugin;
21 using namespace OHOS::Media::Plugin::AuSrSinkPlugin;
22
23 namespace OHOS {
24 namespace Media {
25 namespace Test {
AudioServerSinkPluginCreate(const std::string & name)26 std::shared_ptr<AudioSinkPlugin> AudioServerSinkPluginCreate(const std::string& name)
27 {
28 return std::make_shared<AudioServerSinkPlugin>(name);
29 }
30
31 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_process, TestSize.Level1)
32 {
33 std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("process");
34 ASSERT_TRUE(audioSinkPlugin != nullptr);
35 auto initStatus = audioSinkPlugin->Init();
36 ASSERT_TRUE(initStatus == Status::OK);
37 auto freeStatus = audioSinkPlugin->Deinit();
38 ASSERT_TRUE(freeStatus == Status::OK);
39 }
40
41 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_get_parameter, TestSize.Level1)
42 {
43 std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("get parameter");
44 ASSERT_TRUE(audioSinkPlugin != nullptr);
45 ValueType para;
46 auto sampleRateStatus = audioSinkPlugin->GetParameter(Tag::AUDIO_SAMPLE_RATE, para);
47 ASSERT_TRUE(sampleRateStatus == Status::OK);
48 auto outputChannelsStatus = audioSinkPlugin->GetParameter(Tag::AUDIO_OUTPUT_CHANNELS, para);
49 ASSERT_TRUE(outputChannelsStatus == Status::OK);
50 auto outputLayoutStatus = audioSinkPlugin->GetParameter(Tag::AUDIO_OUTPUT_CHANNEL_LAYOUT, para);
51 ASSERT_TRUE(outputLayoutStatus == Status::OK);
52 auto bitrateStatus = audioSinkPlugin->GetParameter(Tag::MEDIA_BITRATE, para);
53 ASSERT_TRUE(bitrateStatus == Status::OK);
54 auto sampleFormatStatus = audioSinkPlugin->GetParameter(Tag::AUDIO_SAMPLE_FORMAT, para);
55 ASSERT_TRUE(sampleFormatStatus == Status::OK);
56 }
57
58 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_get_allocator, TestSize.Level1)
59 {
60 std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("get allocator");
61 ASSERT_TRUE(audioSinkPlugin != nullptr);
62 auto allocator = audioSinkPlugin->GetAllocator();
63 ASSERT_TRUE(allocator == nullptr);
64 }
65
66 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_get_mute, TestSize.Level1)
67 {
68 std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("get mute");
69 ASSERT_TRUE(audioSinkPlugin != nullptr);
70 bool mute = false;
71 auto muteStatus = audioSinkPlugin->GetMute(mute);
72 ASSERT_TRUE(muteStatus == Status::OK);
73 }
74
75 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_set_mute, TestSize.Level1)
76 {
77 std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("set mute");
78 ASSERT_TRUE(audioSinkPlugin != nullptr);
79 bool mute = false;
80 auto muteStatus = audioSinkPlugin->SetMute(mute);
81 ASSERT_TRUE(muteStatus == Status::OK);
82 }
83
84 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_get_speed, TestSize.Level1)
85 {
86 std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("get speed");
87 ASSERT_TRUE(audioSinkPlugin != nullptr);
88 float speed;
89 auto speedStatus = audioSinkPlugin->GetSpeed(speed);
90 ASSERT_TRUE(speedStatus == Status::OK);
91 }
92
93 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_set_speed, TestSize.Level1)
94 {
95 std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("set speed");
96 ASSERT_TRUE(audioSinkPlugin != nullptr);
97 float speed = 0.0f;
98 auto speedStatus = audioSinkPlugin->SetSpeed(speed);
99 ASSERT_TRUE(speedStatus == Status::OK);
100 }
101
102 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_get_frame_size, TestSize.Level1)
103 {
104 std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("get frame size");
105 ASSERT_TRUE(audioSinkPlugin != nullptr);
106 size_t frameSize;
107 auto frameSizeStatus = audioSinkPlugin->GetFrameSize(frameSize);
108 ASSERT_TRUE(frameSizeStatus == Status::OK);
109 }
110
111 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_set_frame_count, TestSize.Level1)
112 {
113 std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("set frame count");
114 ASSERT_TRUE(audioSinkPlugin != nullptr);
115 uint32_t frameCount;
116 auto frameCountStatus = audioSinkPlugin->GetFrameCount(frameCount);
117 ASSERT_TRUE(frameCountStatus == Status::OK);
118 }
119
120 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_get_latency, TestSize.Level1)
121 {
122 std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("get latency");
123 ASSERT_TRUE(audioSinkPlugin != nullptr);
124 uint64_t hstTime;
125 auto latencyStatus = audioSinkPlugin->GetLatency(hstTime);
126 ASSERT_TRUE(latencyStatus == Status::OK);
127 }
128
129 } // namespace Test
130 } // namespace Media
131 } // namespace OHOS