1 #include <android_bluetooth_sysprop.h>
2 #include <gtest/gtest.h>
3 
4 #include "bta_hfp_api.h"
5 
6 #undef LOG_TAG
7 #include "btif/src/btif_hf_client.cc"
8 
9 static tBTA_HF_CLIENT_FEAT gFeatures;
10 
get_default_hfp_version()11 int get_default_hfp_version() {
12   return android::sysprop::bluetooth::Hfp::version().value_or(HFP_VERSION_1_7);
13 }
14 
get_default_hf_client_features()15 int get_default_hf_client_features() {
16 #define DEFAULT_BTIF_HF_CLIENT_FEATURES                                         \
17   (BTA_HF_CLIENT_FEAT_ECNR | BTA_HF_CLIENT_FEAT_3WAY | BTA_HF_CLIENT_FEAT_CLI | \
18    BTA_HF_CLIENT_FEAT_VREC | BTA_HF_CLIENT_FEAT_VOL | BTA_HF_CLIENT_FEAT_ECS |  \
19    BTA_HF_CLIENT_FEAT_ECC | BTA_HF_CLIENT_FEAT_CODEC)
20 
21   return android::sysprop::bluetooth::Hfp::hf_client_features().value_or(
22           DEFAULT_BTIF_HF_CLIENT_FEATURES);
23 }
24 
BTA_HfClientEnable(tBTA_HF_CLIENT_CBACK *,tBTA_HF_CLIENT_FEAT features,const char *)25 tBTA_STATUS BTA_HfClientEnable(tBTA_HF_CLIENT_CBACK* /*p_cback*/, tBTA_HF_CLIENT_FEAT features,
26                                const char* /*p_service_name*/) {
27   gFeatures = features;
28   return BTA_SUCCESS;
29 }
BTA_HfClientDisable(void)30 void BTA_HfClientDisable(void) {}
btif_transfer_context(tBTIF_CBACK *,uint16_t,char *,int,tBTIF_COPY_CBACK *)31 bt_status_t btif_transfer_context(tBTIF_CBACK* /*p_cback*/, uint16_t /*event*/, char* /*p_params*/,
32                                   int /*param_len*/, tBTIF_COPY_CBACK* /*p_copy_cback*/) {
33   return BT_STATUS_SUCCESS;
34 }
btif_queue_advance()35 void btif_queue_advance() {}
dump_hf_client_event(uint16_t)36 std::string dump_hf_client_event(uint16_t /*event*/) { return "UNKNOWN MSG ID"; }
37 
38 class BtifHfClientTest : public ::testing::Test {
39 protected:
SetUp()40   void SetUp() override { gFeatures = get_default_hf_client_features(); }
41 
TearDown()42   void TearDown() override {}
43 };
44 
TEST_F(BtifHfClientTest,test_btif_hf_cleint_service)45 TEST_F(BtifHfClientTest, test_btif_hf_cleint_service) {
46   bool enable = true;
47 
48   btif_hf_client_execute_service(enable);
49   ASSERT_EQ((gFeatures & BTA_HF_CLIENT_FEAT_ESCO_S4) > 0,
50             get_default_hfp_version() >= HFP_VERSION_1_7);
51 
52   ASSERT_EQ((gFeatures & BTA_HF_CLIENT_FEAT_SWB) > 0, get_default_hfp_version() >= HFP_VERSION_1_9);
53 }
54