119e95205Sopenharmony_ci/* 219e95205Sopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 319e95205Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 419e95205Sopenharmony_ci * you may not use this file except in compliance with the License. 519e95205Sopenharmony_ci * You may obtain a copy of the License at 619e95205Sopenharmony_ci * 719e95205Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 819e95205Sopenharmony_ci * 919e95205Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1019e95205Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1119e95205Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1219e95205Sopenharmony_ci * See the License for the specific language governing permissions and 1319e95205Sopenharmony_ci * limitations under the License. 1419e95205Sopenharmony_ci */ 1519e95205Sopenharmony_ci#include <gmock/gmock.h> 1619e95205Sopenharmony_ci#include <gtest/gtest.h> 1719e95205Sopenharmony_ci#include "bluetooth_a2dp_src.h" 1819e95205Sopenharmony_ci#include "bluetooth_host.h" 1919e95205Sopenharmony_ci#include "bluetooth_errorcode.h" 2019e95205Sopenharmony_ci 2119e95205Sopenharmony_ciusing namespace testing; 2219e95205Sopenharmony_ciusing namespace testing::ext; 2319e95205Sopenharmony_ci 2419e95205Sopenharmony_cinamespace OHOS { 2519e95205Sopenharmony_cinamespace Bluetooth { 2619e95205Sopenharmony_ciusing namespace std; 2719e95205Sopenharmony_ci 2819e95205Sopenharmony_ciconstexpr int TIME = 2; 2919e95205Sopenharmony_ci 3019e95205Sopenharmony_ciclass A2dpSourceObserverCommon : public A2dpSourceObserver { 3119e95205Sopenharmony_cipublic: 3219e95205Sopenharmony_ci A2dpSourceObserverCommon() = default; 3319e95205Sopenharmony_ci virtual ~A2dpSourceObserverCommon() = default; 3419e95205Sopenharmony_ci 3519e95205Sopenharmony_ci virtual void OnConnectionStateChanged(const BluetoothRemoteDevice &device, int state, int cause) {} 3619e95205Sopenharmony_ci virtual void OnConfigurationChanged(const BluetoothRemoteDevice &device, const A2dpCodecInfo &info, int error){} 3719e95205Sopenharmony_ci virtual void OnPlayingStatusChanged(const BluetoothRemoteDevice &device, int playingState, int error){} 3819e95205Sopenharmony_ci 3919e95205Sopenharmony_ciprivate: 4019e95205Sopenharmony_ci}; 4119e95205Sopenharmony_ci 4219e95205Sopenharmony_ci 4319e95205Sopenharmony_cistatic std::shared_ptr<A2dpSourceObserverCommon> observer_ = std::make_shared<A2dpSourceObserverCommon>(); 4419e95205Sopenharmony_cistatic A2dpSource *profile_; 4519e95205Sopenharmony_cistatic BluetoothHost *host_; 4619e95205Sopenharmony_ci 4719e95205Sopenharmony_ciclass A2dpSourceTest : public testing::Test { 4819e95205Sopenharmony_cipublic: 4919e95205Sopenharmony_ci A2dpSourceTest() 5019e95205Sopenharmony_ci {} 5119e95205Sopenharmony_ci ~A2dpSourceTest() 5219e95205Sopenharmony_ci {} 5319e95205Sopenharmony_ci 5419e95205Sopenharmony_ci static void SetUpTestCase(void); 5519e95205Sopenharmony_ci static void TearDownTestCase(void); 5619e95205Sopenharmony_ci void SetUp(); 5719e95205Sopenharmony_ci void TearDown(); 5819e95205Sopenharmony_ci}; 5919e95205Sopenharmony_ci 6019e95205Sopenharmony_ci 6119e95205Sopenharmony_civoid A2dpSourceTest::SetUpTestCase(void) 6219e95205Sopenharmony_ci{ 6319e95205Sopenharmony_ci 6419e95205Sopenharmony_ci} 6519e95205Sopenharmony_civoid A2dpSourceTest::TearDownTestCase(void) 6619e95205Sopenharmony_ci{ 6719e95205Sopenharmony_ci 6819e95205Sopenharmony_ci} 6919e95205Sopenharmony_civoid A2dpSourceTest::SetUp() 7019e95205Sopenharmony_ci{ 7119e95205Sopenharmony_ci host_ = &BluetoothHost::GetDefaultHost(); 7219e95205Sopenharmony_ci host_->EnableBt(); 7319e95205Sopenharmony_ci host_->EnableBle(); 7419e95205Sopenharmony_ci sleep(TIME); 7519e95205Sopenharmony_ci} 7619e95205Sopenharmony_ci 7719e95205Sopenharmony_civoid A2dpSourceTest::TearDown() 7819e95205Sopenharmony_ci{ 7919e95205Sopenharmony_ci host_->DisableBt(); 8019e95205Sopenharmony_ci host_->DisableBle(); 8119e95205Sopenharmony_ci host_ = nullptr; 8219e95205Sopenharmony_ci sleep(TIME); 8319e95205Sopenharmony_ci} 8419e95205Sopenharmony_ci 8519e95205Sopenharmony_ci/* 8619e95205Sopenharmony_ci * @tc.number: A2dpSource001 8719e95205Sopenharmony_ci * @tc.name: GetProfile 8819e95205Sopenharmony_ci * @tc.desc: Get a2dp sink instance 8919e95205Sopenharmony_ci*/ 9019e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_GetProfile, TestSize.Level1) 9119e95205Sopenharmony_ci{ 9219e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetProfile start"; 9319e95205Sopenharmony_ci 9419e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 9519e95205Sopenharmony_ci 9619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetProfile end"; 9719e95205Sopenharmony_ci} 9819e95205Sopenharmony_ci 9919e95205Sopenharmony_ci/* 10019e95205Sopenharmony_ci * @tc.number: A2dpSource002 10119e95205Sopenharmony_ci * @tc.name: GetPlayingState 10219e95205Sopenharmony_ci * @tc.desc: Get device playing state by address when peer device is on connected 10319e95205Sopenharmony_ci*/ 10419e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_GetPlayingState, TestSize.Level1) 10519e95205Sopenharmony_ci{ 10619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetPlayingState start"; 10719e95205Sopenharmony_ci 10819e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 10919e95205Sopenharmony_ci BluetoothRemoteDevice device; 11019e95205Sopenharmony_ci int state = profile_->GetPlayingState(device); 11119e95205Sopenharmony_ci EXPECT_EQ(state, BT_SUCCESS); 11219e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetPlayingState end"; 11319e95205Sopenharmony_ci} 11419e95205Sopenharmony_ci 11519e95205Sopenharmony_ci/* 11619e95205Sopenharmony_ci * @tc.number: A2dpSource003 11719e95205Sopenharmony_ci * @tc.name: RegisterObserver 11819e95205Sopenharmony_ci * @tc.desc: Register callback function of framework 11919e95205Sopenharmony_ci*/ 12019e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_RegisterObserver, TestSize.Level1) 12119e95205Sopenharmony_ci{ 12219e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_RegisterObserver start"; 12319e95205Sopenharmony_ci 12419e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 12519e95205Sopenharmony_ci profile_->RegisterObserver(observer_); 12619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_RegisterObserver end"; 12719e95205Sopenharmony_ci} 12819e95205Sopenharmony_ci 12919e95205Sopenharmony_ci/* 13019e95205Sopenharmony_ci * @tc.number: A2dpSource004 13119e95205Sopenharmony_ci * @tc.name: DeregisterObserver 13219e95205Sopenharmony_ci * @tc.desc: Deregister callback function of framework 13319e95205Sopenharmony_ci*/ 13419e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_DeregisterObserver, TestSize.Level1) 13519e95205Sopenharmony_ci{ 13619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_DeregisterObserver start"; 13719e95205Sopenharmony_ci 13819e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 13919e95205Sopenharmony_ci profile_->DeregisterObserver(observer_); 14019e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_DeregisterObserver end"; 14119e95205Sopenharmony_ci} 14219e95205Sopenharmony_ci 14319e95205Sopenharmony_ci/* 14419e95205Sopenharmony_ci * @tc.number: A2dpSource005 14519e95205Sopenharmony_ci * @tc.name: GetDeviceState 14619e95205Sopenharmony_ci * @tc.desc: Get device connection state by address 14719e95205Sopenharmony_ci*/ 14819e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_GetDeviceState, TestSize.Level1) 14919e95205Sopenharmony_ci{ 15019e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetDeviceState start"; 15119e95205Sopenharmony_ci 15219e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 15319e95205Sopenharmony_ci BluetoothRemoteDevice device; 15419e95205Sopenharmony_ci EXPECT_EQ(profile_->GetDeviceState(device), 0); 15519e95205Sopenharmony_ci 15619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetDeviceState end"; 15719e95205Sopenharmony_ci} 15819e95205Sopenharmony_ci 15919e95205Sopenharmony_ci/* 16019e95205Sopenharmony_ci * @tc.number: A2dpSource006 16119e95205Sopenharmony_ci * @tc.name: GetDevicesByStates 16219e95205Sopenharmony_ci * @tc.desc: Get devices by connection states 16319e95205Sopenharmony_ci*/ 16419e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_GetDevicesByStates, TestSize.Level1) 16519e95205Sopenharmony_ci{ 16619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetDevicesByStates start"; 16719e95205Sopenharmony_ci 16819e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 16919e95205Sopenharmony_ci BluetoothRemoteDevice device; 17019e95205Sopenharmony_ci vector<int> states = {static_cast<int>(BTConnectState::CONNECTED)}; 17119e95205Sopenharmony_ci vector<BluetoothRemoteDevice> devices = profile_->GetDevicesByStates(states); 17219e95205Sopenharmony_ci 17319e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetDevicesByStates end"; 17419e95205Sopenharmony_ci} 17519e95205Sopenharmony_ci 17619e95205Sopenharmony_ci/* 17719e95205Sopenharmony_ci * @tc.number: A2dpSource007 17819e95205Sopenharmony_ci * @tc.name: Connect 17919e95205Sopenharmony_ci * @tc.desc: Connect to the peer bluetooth device 18019e95205Sopenharmony_ci*/ 18119e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_Connect, TestSize.Level1) 18219e95205Sopenharmony_ci{ 18319e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_Connect start"; 18419e95205Sopenharmony_ci 18519e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 18619e95205Sopenharmony_ci BluetoothRemoteDevice device; 18719e95205Sopenharmony_ci int32_t ret = profile_->Connect(device); 18819e95205Sopenharmony_ci EXPECT_NE(ret, BT_SUCCESS); 18919e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_Connect end"; 19019e95205Sopenharmony_ci} 19119e95205Sopenharmony_ci 19219e95205Sopenharmony_ci/* 19319e95205Sopenharmony_ci * @tc.number: A2dpSource008 19419e95205Sopenharmony_ci * @tc.name: Disconnect 19519e95205Sopenharmony_ci * @tc.desc: Disconnect with the peer bluetooth service 19619e95205Sopenharmony_ci*/ 19719e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_Disconnect, TestSize.Level1) 19819e95205Sopenharmony_ci{ 19919e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_Disconnect start"; 20019e95205Sopenharmony_ci 20119e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 20219e95205Sopenharmony_ci BluetoothRemoteDevice device; 20319e95205Sopenharmony_ci int32_t ret = profile_->Disconnect(device); 20419e95205Sopenharmony_ci EXPECT_NE(ret, BT_SUCCESS); 20519e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_Disconnect end"; 20619e95205Sopenharmony_ci} 20719e95205Sopenharmony_ci 20819e95205Sopenharmony_ci/* 20919e95205Sopenharmony_ci * @tc.number: A2dpSource009 21019e95205Sopenharmony_ci * @tc.name: SetActiveSinkDevice 21119e95205Sopenharmony_ci * @tc.desc: Set the active sink device for audio connection. 21219e95205Sopenharmony_ci*/ 21319e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_SetActiveSinkDevice, TestSize.Level1) 21419e95205Sopenharmony_ci{ 21519e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_SetActiveSinkDevice start"; 21619e95205Sopenharmony_ci 21719e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 21819e95205Sopenharmony_ci BluetoothRemoteDevice device; 21919e95205Sopenharmony_ci EXPECT_EQ(profile_->SetActiveSinkDevice(device), -3); 22019e95205Sopenharmony_ci 22119e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_SetActiveSinkDevice end"; 22219e95205Sopenharmony_ci} 22319e95205Sopenharmony_ci 22419e95205Sopenharmony_ci/* 22519e95205Sopenharmony_ci * @tc.number: A2dpSource010 22619e95205Sopenharmony_ci * @tc.name: GetActiveSinkDevice 22719e95205Sopenharmony_ci * @tc.desc: Get the active sink device for audio connection. 22819e95205Sopenharmony_ci*/ 22919e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSource_UnitTest_GetActiveSinkDevice, TestSize.Level1) 23019e95205Sopenharmony_ci{ 23119e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetActiveSinkDevice start"; 23219e95205Sopenharmony_ci 23319e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 23419e95205Sopenharmony_ci BluetoothRemoteDevice device = profile_->GetActiveSinkDevice(); 23519e95205Sopenharmony_ci 23619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSource_UnitTest_GetActiveSinkDevice end"; 23719e95205Sopenharmony_ci} 23819e95205Sopenharmony_ci 23919e95205Sopenharmony_ci/* 24019e95205Sopenharmony_ci * @tc.number: A2dpSource011 24119e95205Sopenharmony_ci * @tc.name: GetConnectStrategy 24219e95205Sopenharmony_ci * @tc.desc: Get connect strategy by address 24319e95205Sopenharmony_ci*/ 24419e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_GetConnectStrategy, TestSize.Level1) 24519e95205Sopenharmony_ci{ 24619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetConnectStrategy start"; 24719e95205Sopenharmony_ci 24819e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 24919e95205Sopenharmony_ci BluetoothRemoteDevice device; 25019e95205Sopenharmony_ci EXPECT_EQ(profile_->GetConnectStrategy(device), 0); 25119e95205Sopenharmony_ci 25219e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetConnectStrategy end"; 25319e95205Sopenharmony_ci} 25419e95205Sopenharmony_ci 25519e95205Sopenharmony_ci/* 25619e95205Sopenharmony_ci * @tc.number: A2dpSource012 25719e95205Sopenharmony_ci * @tc.name: SetConnectStrategy 25819e95205Sopenharmony_ci * @tc.desc: Set connect strategy by address 25919e95205Sopenharmony_ci*/ 26019e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_SetConnectStrategy, TestSize.Level1) 26119e95205Sopenharmony_ci{ 26219e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SetConnectStrategy start"; 26319e95205Sopenharmony_ci 26419e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 26519e95205Sopenharmony_ci BluetoothRemoteDevice device; 26619e95205Sopenharmony_ci bool isOK = profile_->SetConnectStrategy(device,2); 26719e95205Sopenharmony_ci EXPECT_EQ(isOK, false); 26819e95205Sopenharmony_ci 26919e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SetConnectStrategy end"; 27019e95205Sopenharmony_ci} 27119e95205Sopenharmony_ci 27219e95205Sopenharmony_ci/* 27319e95205Sopenharmony_ci * @tc.number: A2dpSource013 27419e95205Sopenharmony_ci * @tc.name: GetCodecStatus 27519e95205Sopenharmony_ci * @tc.desc: Get codec status by address 27619e95205Sopenharmony_ci*/ 27719e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_GetCodecStatus, TestSize.Level1) 27819e95205Sopenharmony_ci{ 27919e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetCodecStatus start"; 28019e95205Sopenharmony_ci 28119e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 28219e95205Sopenharmony_ci BluetoothRemoteDevice device; 28319e95205Sopenharmony_ci A2dpCodecStatus ret = profile_->GetCodecStatus(device); 28419e95205Sopenharmony_ci 28519e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetCodecStatus end"; 28619e95205Sopenharmony_ci} 28719e95205Sopenharmony_ci 28819e95205Sopenharmony_ci/* 28919e95205Sopenharmony_ci * @tc.number: A2dpSource014 29019e95205Sopenharmony_ci * @tc.name: SetCodecPreference 29119e95205Sopenharmony_ci * @tc.desc: Set codec preference by address 29219e95205Sopenharmony_ci*/ 29319e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_SetCodecPreference, TestSize.Level1) 29419e95205Sopenharmony_ci{ 29519e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SetCodecPreference start"; 29619e95205Sopenharmony_ci 29719e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 29819e95205Sopenharmony_ci BluetoothRemoteDevice device; 29919e95205Sopenharmony_ci A2dpCodecInfo info; 30019e95205Sopenharmony_ci info.codecPriority = 0; 30119e95205Sopenharmony_ci info.codecType = 1; 30219e95205Sopenharmony_ci info.sampleRate = 2; 30319e95205Sopenharmony_ci info.bitsPerSample = 3; 30419e95205Sopenharmony_ci info.channelMode = 4; 30519e95205Sopenharmony_ci info.codecSpecific1 = 5; 30619e95205Sopenharmony_ci info.codecSpecific2 = 6; 30719e95205Sopenharmony_ci info.codecSpecific3 = 7; 30819e95205Sopenharmony_ci info.codecSpecific4 = 8; 30919e95205Sopenharmony_ci EXPECT_EQ(profile_->SetCodecPreference(device, info), 0); 31019e95205Sopenharmony_ci 31119e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SetCodecPreference end"; 31219e95205Sopenharmony_ci} 31319e95205Sopenharmony_ci 31419e95205Sopenharmony_ci/* 31519e95205Sopenharmony_ci * @tc.number: A2dpSource015 31619e95205Sopenharmony_ci * @tc.name: SwitchOptionalCodecs 31719e95205Sopenharmony_ci * @tc.desc: Switch optional codecs by address 31819e95205Sopenharmony_ci*/ 31919e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_SwitchOptionalCodecs, TestSize.Level1) 32019e95205Sopenharmony_ci{ 32119e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SwitchOptionalCodecs start"; 32219e95205Sopenharmony_ci 32319e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 32419e95205Sopenharmony_ci BluetoothRemoteDevice device; 32519e95205Sopenharmony_ci bool isEnable = true; 32619e95205Sopenharmony_ci profile_->SwitchOptionalCodecs(device, isEnable); 32719e95205Sopenharmony_ci 32819e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SwitchOptionalCodecs end"; 32919e95205Sopenharmony_ci} 33019e95205Sopenharmony_ci 33119e95205Sopenharmony_ci/* 33219e95205Sopenharmony_ci * @tc.number: A2dpSource016 33319e95205Sopenharmony_ci * @tc.name: GetOptionalCodecsSupportState 33419e95205Sopenharmony_ci * @tc.desc: Get optional codecs support state by address 33519e95205Sopenharmony_ci*/ 33619e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_GetOptionalCodecsSupportState, TestSize.Level1) 33719e95205Sopenharmony_ci{ 33819e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetOptionalCodecsSupportState start"; 33919e95205Sopenharmony_ci 34019e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 34119e95205Sopenharmony_ci BluetoothRemoteDevice device; 34219e95205Sopenharmony_ci EXPECT_EQ(profile_->GetOptionalCodecsSupportState(device), 0); 34319e95205Sopenharmony_ci 34419e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetOptionalCodecsSupportState end"; 34519e95205Sopenharmony_ci} 34619e95205Sopenharmony_ci 34719e95205Sopenharmony_ci/* 34819e95205Sopenharmony_ci * @tc.number: A2dpSource017 34919e95205Sopenharmony_ci * @tc.name: StartPlaying 35019e95205Sopenharmony_ci * @tc.desc: Start playing 35119e95205Sopenharmony_ci*/ 35219e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_StartPlaying, TestSize.Level1) 35319e95205Sopenharmony_ci{ 35419e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_StartPlaying start"; 35519e95205Sopenharmony_ci 35619e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 35719e95205Sopenharmony_ci BluetoothRemoteDevice device; 35819e95205Sopenharmony_ci EXPECT_EQ(profile_->StartPlaying(device), 0); 35919e95205Sopenharmony_ci 36019e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_StartPlaying end"; 36119e95205Sopenharmony_ci} 36219e95205Sopenharmony_ci 36319e95205Sopenharmony_ci/* 36419e95205Sopenharmony_ci * @tc.number: A2dpSource018 36519e95205Sopenharmony_ci * @tc.name: SuspendPlaying 36619e95205Sopenharmony_ci * @tc.desc: Suspend playing 36719e95205Sopenharmony_ci*/ 36819e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_SuspendPlaying, TestSize.Level1) 36919e95205Sopenharmony_ci{ 37019e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SuspendPlaying start"; 37119e95205Sopenharmony_ci 37219e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 37319e95205Sopenharmony_ci BluetoothRemoteDevice device; 37419e95205Sopenharmony_ci EXPECT_EQ(profile_->SuspendPlaying(device), 0); 37519e95205Sopenharmony_ci 37619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SuspendPlaying end"; 37719e95205Sopenharmony_ci} 37819e95205Sopenharmony_ci 37919e95205Sopenharmony_ci/* 38019e95205Sopenharmony_ci * @tc.number: A2dpSource019 38119e95205Sopenharmony_ci * @tc.name: StopPlaying 38219e95205Sopenharmony_ci * @tc.desc: Stop playing 38319e95205Sopenharmony_ci*/ 38419e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_StopPlaying, TestSize.Level1) 38519e95205Sopenharmony_ci{ 38619e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_StopPlaying start"; 38719e95205Sopenharmony_ci 38819e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 38919e95205Sopenharmony_ci BluetoothRemoteDevice device; 39019e95205Sopenharmony_ci EXPECT_EQ(profile_->StopPlaying(device), 0); 39119e95205Sopenharmony_ci 39219e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_StopPlaying end"; 39319e95205Sopenharmony_ci} 39419e95205Sopenharmony_ci 39519e95205Sopenharmony_ci/* 39619e95205Sopenharmony_ci * @tc.number: A2dpSource020 39719e95205Sopenharmony_ci * @tc.name: SetAudioConfigure 39819e95205Sopenharmony_ci * @tc.desc: Set audio configure 39919e95205Sopenharmony_ci*/ 40019e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_SetAudioConfigure, TestSize.Level1) 40119e95205Sopenharmony_ci{ 40219e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SetAudioConfigure start"; 40319e95205Sopenharmony_ci 40419e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 40519e95205Sopenharmony_ci BluetoothRemoteDevice device; 40619e95205Sopenharmony_ci profile_->SetAudioConfigure(device, 1, 2, 3); 40719e95205Sopenharmony_ci 40819e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_SetAudioConfigure end"; 40919e95205Sopenharmony_ci} 41019e95205Sopenharmony_ci 41119e95205Sopenharmony_ci/* 41219e95205Sopenharmony_ci * @tc.number: A2dpSource021 41319e95205Sopenharmony_ci * @tc.name: WriteFrame 41419e95205Sopenharmony_ci * @tc.desc: Write frame data to a2dp 41519e95205Sopenharmony_ci*/ 41619e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_WriteFrame, TestSize.Level1) 41719e95205Sopenharmony_ci{ 41819e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_WriteFrame start"; 41919e95205Sopenharmony_ci 42019e95205Sopenharmony_ci uint8_t str[4] = {'1', '2', '3', '4'}; 42119e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 42219e95205Sopenharmony_ci profile_->WriteFrame(str, 4); 42319e95205Sopenharmony_ci 42419e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_WriteFrame end"; 42519e95205Sopenharmony_ci} 42619e95205Sopenharmony_ci 42719e95205Sopenharmony_ci/* 42819e95205Sopenharmony_ci * @tc.number: A2dpSource022 42919e95205Sopenharmony_ci * @tc.name: GetRenderPosition 43019e95205Sopenharmony_ci * @tc.desc: Get delayValue, sendDataSize and timeStamp from a2dp 43119e95205Sopenharmony_ci*/ 43219e95205Sopenharmony_ciHWTEST_F(A2dpSourceTest, A2dpSourceTest_UnitTest_GetRenderPosition, TestSize.Level1) 43319e95205Sopenharmony_ci{ 43419e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetRenderPosition start"; 43519e95205Sopenharmony_ci 43619e95205Sopenharmony_ci uint16_t delayValue = 0; 43719e95205Sopenharmony_ci uint16_t sendDataSize = 0; 43819e95205Sopenharmony_ci uint32_t timeStamp = 0; 43919e95205Sopenharmony_ci profile_ = A2dpSource::GetProfile(); 44019e95205Sopenharmony_ci profile_->GetRenderPosition(delayValue, sendDataSize, timeStamp); 44119e95205Sopenharmony_ci GTEST_LOG_(INFO) << "delayValue =" << delayValue << ",sendDataSize =" << sendDataSize << 44219e95205Sopenharmony_ci ",timeStamp =" << timeStamp; 44319e95205Sopenharmony_ci 44419e95205Sopenharmony_ci GTEST_LOG_(INFO) << "A2dpSourceTest_UnitTest_GetRenderPosition end"; 44519e95205Sopenharmony_ci} 44619e95205Sopenharmony_ci} // namespace Bluetooth 44719e95205Sopenharmony_ci} // namespace OHOS