1*1d3bd1e5SMatthias Ringwald #include "CppUTest/TestHarness.h" 2*1d3bd1e5SMatthias Ringwald #include "CppUTest/CommandLineTestRunner.h" 3*1d3bd1e5SMatthias Ringwald 4*1d3bd1e5SMatthias Ringwald #include "classic/hfp.h" 5*1d3bd1e5SMatthias Ringwald 6*1d3bd1e5SMatthias Ringwald #include "mock.h" 7*1d3bd1e5SMatthias Ringwald 8*1d3bd1e5SMatthias Ringwald TEST_GROUP(HFPLinkSettings){ 9*1d3bd1e5SMatthias Ringwald void setup(void){ 10*1d3bd1e5SMatthias Ringwald hfp_set_sco_packet_types(SCO_PACKET_TYPES_ALL); 11*1d3bd1e5SMatthias Ringwald } 12*1d3bd1e5SMatthias Ringwald void teardown(void){ 13*1d3bd1e5SMatthias Ringwald } 14*1d3bd1e5SMatthias Ringwald }; 15*1d3bd1e5SMatthias Ringwald 16*1d3bd1e5SMatthias Ringwald // initial setting 17*1d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, NONE){ 18*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_NONE, hfp_next_link_setting(HFP_LINK_SETTINGS_D1, false, true, true, HFP_CODEC_MSBC)); 19*1d3bd1e5SMatthias Ringwald } 20*1d3bd1e5SMatthias Ringwald 21*1d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, D1){ 22*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_D1, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, false, true, true, HFP_CODEC_CVSD)); 23*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_D1, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, true, false, true, HFP_CODEC_CVSD)); 24*1d3bd1e5SMatthias Ringwald } 25*1d3bd1e5SMatthias Ringwald 26*1d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, S3){ 27*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_S3, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, true, true, false, HFP_CODEC_CVSD)); 28*1d3bd1e5SMatthias Ringwald } 29*1d3bd1e5SMatthias Ringwald 30*1d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, S4){ 31*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_S4, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, true, true, true, HFP_CODEC_CVSD)); 32*1d3bd1e5SMatthias Ringwald } 33*1d3bd1e5SMatthias Ringwald 34*1d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, T2){ 35*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_T2, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, true, true, true, HFP_CODEC_MSBC)); 36*1d3bd1e5SMatthias Ringwald } 37*1d3bd1e5SMatthias Ringwald 38*1d3bd1e5SMatthias Ringwald // regular transition 39*1d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, T2_T1){ 40*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_T1, hfp_next_link_setting(HFP_LINK_SETTINGS_T2, true, true, true, HFP_CODEC_MSBC)); 41*1d3bd1e5SMatthias Ringwald } 42*1d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, T1_NONE){ 43*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_NONE, hfp_next_link_setting(HFP_LINK_SETTINGS_T1, true, true, true, HFP_CODEC_MSBC)); 44*1d3bd1e5SMatthias Ringwald } 45*1d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, S4_S3){ 46*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_S3, hfp_next_link_setting(HFP_LINK_SETTINGS_S4, true, true, true, HFP_CODEC_CVSD)); 47*1d3bd1e5SMatthias Ringwald } 48*1d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, S3_S2){ 49*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_S2, hfp_next_link_setting(HFP_LINK_SETTINGS_S3, true, true, true, HFP_CODEC_CVSD)); 50*1d3bd1e5SMatthias Ringwald } 51*1d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, S2_S1){ 52*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_S1, hfp_next_link_setting(HFP_LINK_SETTINGS_S2, true, true, true, HFP_CODEC_CVSD)); 53*1d3bd1e5SMatthias Ringwald } 54*1d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, D1_D0){ 55*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_D0, hfp_next_link_setting(HFP_LINK_SETTINGS_D1, false, true, true, HFP_CODEC_CVSD)); 56*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_D0, hfp_next_link_setting(HFP_LINK_SETTINGS_D1, true, false, true, HFP_CODEC_CVSD)); 57*1d3bd1e5SMatthias Ringwald } 58*1d3bd1e5SMatthias Ringwald 59*1d3bd1e5SMatthias Ringwald // initial settings based on packet types 60*1d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, HV1){ 61*1d3bd1e5SMatthias Ringwald hfp_set_sco_packet_types(SCO_PACKET_TYPES_HV1); 62*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_D0, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, false, true, true, HFP_CODEC_CVSD)); 63*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_D0, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, true, false, true, HFP_CODEC_CVSD)); 64*1d3bd1e5SMatthias Ringwald } 65*1d3bd1e5SMatthias Ringwald 66*1d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, HV3){ 67*1d3bd1e5SMatthias Ringwald hfp_set_sco_packet_types(SCO_PACKET_TYPES_HV3); 68*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_D1, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, true, true, false, HFP_CODEC_CVSD)); 69*1d3bd1e5SMatthias Ringwald } 70*1d3bd1e5SMatthias Ringwald 71*1d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, EV3){ 72*1d3bd1e5SMatthias Ringwald hfp_set_sco_packet_types(SCO_PACKET_TYPES_EV3); 73*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_S1, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, true, true, true, HFP_CODEC_CVSD)); 74*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_T1, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, true, true, true, HFP_CODEC_MSBC)); 75*1d3bd1e5SMatthias Ringwald } 76*1d3bd1e5SMatthias Ringwald 77*1d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, 2EV3){ 78*1d3bd1e5SMatthias Ringwald hfp_set_sco_packet_types(SCO_PACKET_TYPES_2EV3); 79*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_S3, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, true, true, false, HFP_CODEC_CVSD)); 80*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_S4, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, true, true, true, HFP_CODEC_CVSD)); 81*1d3bd1e5SMatthias Ringwald CHECK_EQUAL(HFP_LINK_SETTINGS_T2, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, true, true, true, HFP_CODEC_MSBC)); 82*1d3bd1e5SMatthias Ringwald } 83*1d3bd1e5SMatthias Ringwald 84*1d3bd1e5SMatthias Ringwald 85*1d3bd1e5SMatthias Ringwald int main (int argc, const char * argv[]){ 86*1d3bd1e5SMatthias Ringwald return CommandLineTestRunner::RunAllTests(argc, argv); 87*1d3bd1e5SMatthias Ringwald } 88