From 66b38174c90841222c392e9223636d85a437d79f Mon Sep 17 00:00:00 2001 From: q00313334 Date: Fri, 20 May 2022 23:06:16 +0800 Subject: [PATCH] quanli125@huawei.com Signed-off-by: q00313334 --- communication/BUILD.gn | 2 +- .../src/main/js/default/pages/index/index.js | 4 +- .../main/js/default/test/BluetoothHid.test.js | 227 ------------------ .../src/main/js/default/pages/index/index.js | 2 +- .../BUILD.gn | 4 +- .../Test.json | 2 +- .../signature/openharmony_sx.p7b | Bin .../src/main/config.json | 0 .../src/main/js/default/app.js | 0 .../src/main/js/default/i18n/en-US.json | 0 .../src/main/js/default/i18n/zh-CN.json | 0 .../src/main/js/default/pages/index/index.css | 0 .../src/main/js/default/pages/index/index.hml | 0 .../src/main/js/default/pages/index/index.js | 4 +- .../js/default/test/BluetoothA2dp.test.js | 198 +++++++++++++++ .../main/js/default/test/BluetoothHfp.test.js | 170 +++++++++++++ .../src/main/js/default/test/List.test.js | 3 +- .../main/resources/base/element/string.json | 0 .../src/main/resources/base/media/icon.png | Bin .../main/js/default/test/Bluetooth.test.js | 2 +- 20 files changed, 382 insertions(+), 236 deletions(-) delete mode 100644 communication/bluetooth_hid/src/main/js/default/test/BluetoothHid.test.js rename communication/{bluetooth_hid => bluetooth_profile}/BUILD.gn (91%) rename communication/{bluetooth_hid => bluetooth_profile}/Test.json (89%) rename communication/{bluetooth_hid => bluetooth_profile}/signature/openharmony_sx.p7b (100%) rename communication/{bluetooth_hid => bluetooth_profile}/src/main/config.json (100%) rename communication/{bluetooth_hid => bluetooth_profile}/src/main/js/default/app.js (100%) rename communication/{bluetooth_hid => bluetooth_profile}/src/main/js/default/i18n/en-US.json (100%) rename communication/{bluetooth_hid => bluetooth_profile}/src/main/js/default/i18n/zh-CN.json (100%) rename communication/{bluetooth_hid => bluetooth_profile}/src/main/js/default/pages/index/index.css (100%) rename communication/{bluetooth_hid => bluetooth_profile}/src/main/js/default/pages/index/index.hml (100%) rename communication/{bluetooth_hid => bluetooth_profile}/src/main/js/default/pages/index/index.js (93%) create mode 100644 communication/bluetooth_profile/src/main/js/default/test/BluetoothA2dp.test.js create mode 100644 communication/bluetooth_profile/src/main/js/default/test/BluetoothHfp.test.js rename communication/{bluetooth_hid => bluetooth_profile}/src/main/js/default/test/List.test.js (87%) rename communication/{bluetooth_hid => bluetooth_profile}/src/main/resources/base/element/string.json (100%) rename communication/{bluetooth_hid => bluetooth_profile}/src/main/resources/base/media/icon.png (100%) diff --git a/communication/BUILD.gn b/communication/BUILD.gn index 362d06173..ffe83db90 100644 --- a/communication/BUILD.gn +++ b/communication/BUILD.gn @@ -17,8 +17,8 @@ group("communication") { if (is_standard_system) { deps = [ "bluetooth_ble:ActsBluetoothBleJsTest", - "bluetooth_hid:ActsBluetoothHidJsTest", "bluetooth_on:ActsBluetoothOnJsTest", + "bluetooth_profile:ActsBluetoothProFileJsTest", "bluetooth_standard:ActsBluetoothJsTest", "dsoftbus/rpc:ActsRpcJsTest", "wifi_p2p:ActsP2PJSTest", diff --git a/communication/bluetooth_ble/src/main/js/default/pages/index/index.js b/communication/bluetooth_ble/src/main/js/default/pages/index/index.js index 6bdd4bdf5..1e1c2e8fb 100644 --- a/communication/bluetooth_ble/src/main/js/default/pages/index/index.js +++ b/communication/bluetooth_ble/src/main/js/default/pages/index/index.js @@ -18,7 +18,8 @@ import {Core, ExpectExtend} from 'deccjsunit/index' export default { data: { - title: "" + title: "", + myTimeout:75000 }, onInit() { this.title = this.$t('strings.world'); @@ -36,6 +37,7 @@ export default { core.init() const configService = core.getDefaultService('config') + this.timeout = this.myTimeout configService.setConfig(this) require('../../test/List.test') diff --git a/communication/bluetooth_hid/src/main/js/default/test/BluetoothHid.test.js b/communication/bluetooth_hid/src/main/js/default/test/BluetoothHid.test.js deleted file mode 100644 index 181ebbc03..000000000 --- a/communication/bluetooth_hid/src/main/js/default/test/BluetoothHid.test.js +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Copyright (C) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import bluetooth from '@ohos.bluetooth'; -import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' - -let hidHostProfile = bluetooth.getProfile(6); - -function on(ON_VALUE_TEST_ELEMENT) { - return new Promise((resolve, reject) => { - hidHostProfile.on(ON_VALUE_TEST_ELEMENT, function (err, data) { - if (err != undefined) { - reject(err); - } else { - resolve(data); - } - }) - }); -} - -function off(OFF_VALUE_TEST_ELEMENT) { - return new Promise((resolve, reject) => { - hidHostProfile.off(OFF_VALUE_TEST_ELEMENT, function (err, data) { - if (err != undefined) { - reject(err); - } else { - resolve(data); - } - }) - }); -} - -let ProfId = { - PROFILE_A2DP_SINK : 0, - PROFILE_A2DP_SOURCE : 1, - PROFILE_AVRCP_CT : 2, - PROFILE_AVRCP_TG : 3, - PROFILE_HANDS_FREE_AUDIO_GATEWAY : 4, - PROFILE_HANDS_FREE_UNIT : 5 -} - - -describe('bluetoothhostTest', function () { - beforeAll(function () { - console.info('beforeAll called') - }) - beforeEach(function () { - console.info('beforeEach called') - }) - afterEach(function () { - console.info('afterEach called') - }) - afterAll(function () { - console.info('afterAll called') - }) - - function sleep(delay) { - return new Promise(resovle => setTimeout(resovle, delay)) - } - - async function tryToEnableBt() { - let sta = bluetooth.getState(); - switch(sta){ - case 0: - console.info('[bluetooth_js] bt turn off:'+ JSON.stringify(sta)); - bluetooth.enableBluetooth(); - await sleep(3000); - break; - case 1: - console.info('[bluetooth_js] bt turning on:'+ JSON.stringify(sta)); - await sleep(3000); - break; - case 2: - console.info('[bluetooth_js] bt turn on:'+ JSON.stringify(sta)); - break; - case 3: - console.info('[bluetooth_js] bt turning off:'+ JSON.stringify(sta)); - bluetooth.enableBluetooth(); - await sleep(3000); - break; - default: - console.info('[bluetooth_js] enable success'); - } - } - - - /** - * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GET_PROFILE_LOOP_0001 - * @tc.name looptestgetprofile(set parameterless) - * @tc.desc Test getProfile api 1000 times. - * @tc.author defu.zheng - * @tc.size SMALL - * @tc.type Function - * @tc.level Level 0 - */ - it('SUB_COMMUNACATION_bluetooth_DEVICE_JS_GET_PROFILE_LOOP_0001', 0, async function (done) { - console.info('[bluetooth_js] loop get profile start'); - await tryToEnableBt(); - let proFile = bluetooth.getProfile(6); - console.info('[bluetooth_js] loop get profile result:' + JSON.stringify(proFile)); - expect(proFile != null).assertEqual(true); - done(); - }) - - - /** - * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GET_CONN_DEV_LOOP_0001 - * @tc.name looptestgetConnectionDevices(bluetooth mode is off) - * @tc.desc Test getConnectionDevices api 1000 times. - * @tc.author defu.zheng - * @tc.size SMALL - * @tc.type Function - * @tc.level Level 0 - */ - it('SUB_COMMUNACATION_bluetooth_DEVICE_JS_GET_CONN_DEV_LOOP_0001', 0, async function (done) { - console.info('[bluetooth_js] loop get connection devices start'); - await tryToEnableBt(); - let arrDev = hidHostProfile.getConnectionDevices(); - console.info('[bluetooth_js] loop getconndev:' + JSON.stringify(arrDev)+ 'length'+ arrDev.length); - expect(arrDev.length).assertEqual(0); - done(); - }) - - - /** - * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GET_DEV_STATE_LOOP_0001 - * @tc.name looptestgetDeviceState(set a null value) - * @tc.desc Test getDeviceState api 1000 times. - * @tc.author defu.zheng - * @tc.size SMALL - * @tc.type Function - * @tc.level Level 0 - */ - it('SUB_COMMUNACATION_bluetooth_DEVICE_JS_GET_DEV_STATE_LOOP_0001', 0, async function (done) { - console.info('[bluetooth_js] loop get device state start'); - await tryToEnableBt(); - let devState = hidHostProfile.getDeviceState(''); - console.info('[bluetooth_js] loop get device state result:' + JSON.stringify(devState)); - expect(devState).assertEqual(3); - done(); - }) - - - /** - * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_HID_HOST_PROFILE_CONN_LOOP_0001 - * @tc.name looptesthidhostprofileconnect(set a null value) - * @tc.desc Test hidHostProfile connect api 1000 times. - * @tc.author defu.zheng - * @tc.size SMALL - * @tc.type Function - * @tc.level Level 0 - */ - it('SUB_COMMUNACATION_bluetooth_DEVICE_JS_HID_HOST_PROFILE_CONN_LOOP_0001', 0, async function (done) { - console.info('[bluetooth_js] loop HidHostProfile the connect start'); - await tryToEnableBt(); - let conn = hidHostProfile.connect(''); - console.info('[bluetooth_js] loop HidHostProfile the connect result:' + JSON.stringify(conn)); - expect(conn).assertFalse(); - done(); - }) - - - /** - * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_HID_HOST_PROFILE_DISCONN_LOOP_0001 - * @tc.name looptesthidhostprofiledisconnect(set a null value) - * @tc.desc Test hidHostProfile disconnect api 1000 times. - * @tc.author defu.zheng - * @tc.size SMALL - * @tc.type Function - * @tc.level Level 0 - */ - it('SUB_COMMUNACATION_bluetooth_DEVICE_JS_HID_HOST_PROFILE_DISCONN_LOOP_0001', 0, async function (done) { - console.info('[bluetooth_js] loop HidHostProfile the disconnect start'); - await tryToEnableBt(); - let disConn = hidHostProfile.disconnect(''); - console.info('[bluetooth_js] loop HidHostProfile the disconnect result:' + JSON.stringify(disConn)); - expect(disConn).assertFalse(); - done(); - }) - - - /** - * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_HID_HOST_PROFILE_ON_LOOP_0001 - * @tc.name looptesthidhostprofileon - * @tc.desc Test hidHostProfile on api 1000 times. - * @tc.author defu.zheng - * @tc.size SMALL - * @tc.type Function - * @tc.level Level 0 - */ - it('SUB_COMMUNACATION_bluetooth_DEVICE_JS_HID_HOST_PROFILE_ON_LOOP_0001', 0, async function (done) { - try { - await tryToEnableBt(); - console.info('[bluetooth_js] loop HidHostProfile the on start'); - on("connectionStateChange", function (data) { - console.info("[bluetooth_js] HidHostProfile_on data " + JSON.stringify(data)); - expect(true).assertEqual(data !=null); - }); - }catch(e) { - expect(null).assertFail(); - } - try { - console.info('[bluetooth_js] HidHostProfile the off test start'); - off("connectionStateChange", function (data) { - console.info("[bluetooth_js] HidHostProfile_off data-> " + JSON.stringify(data)); - expect(true).assertEqual(data ==null); - }); - }catch(e) { - expect(null).assertFail(); - } - done(); - }) - -}) - diff --git a/communication/bluetooth_on/src/main/js/default/pages/index/index.js b/communication/bluetooth_on/src/main/js/default/pages/index/index.js index a29dd313f..b51283e8d 100644 --- a/communication/bluetooth_on/src/main/js/default/pages/index/index.js +++ b/communication/bluetooth_on/src/main/js/default/pages/index/index.js @@ -18,7 +18,7 @@ import {Core, ExpectExtend} from 'deccjsunit/index' export default { data: { title: "", - myTimeout:10000 + myTimeout:60000 }, onInit() { this.title = this.$t('strings.world'); diff --git a/communication/bluetooth_hid/BUILD.gn b/communication/bluetooth_profile/BUILD.gn similarity index 91% rename from communication/bluetooth_hid/BUILD.gn rename to communication/bluetooth_profile/BUILD.gn index 6930c908c..c95193103 100644 --- a/communication/bluetooth_hid/BUILD.gn +++ b/communication/bluetooth_profile/BUILD.gn @@ -12,7 +12,7 @@ # limitations under the License. import("//test/xts/tools/build/suite.gni") -ohos_js_hap_suite("ActsBluetoothHidJsTest") { +ohos_js_hap_suite("ActsBluetoothProFileJsTest") { hap_profile = "./src/main/config.json" deps = [ ":bluetooth_js_assets", @@ -20,7 +20,7 @@ ohos_js_hap_suite("ActsBluetoothHidJsTest") { ] certificate_profile = "./signature/openharmony_sx.p7b" - hap_name = "ActsBluetoothHidHapTest" + hap_name = "ActsBluetoothProFileJsTest" } ohos_js_assets("bluetooth_js_assets") { source_dir = "./src/main/js/default" diff --git a/communication/bluetooth_hid/Test.json b/communication/bluetooth_profile/Test.json similarity index 89% rename from communication/bluetooth_hid/Test.json rename to communication/bluetooth_profile/Test.json index f89856c99..3191e10b9 100644 --- a/communication/bluetooth_hid/Test.json +++ b/communication/bluetooth_profile/Test.json @@ -9,7 +9,7 @@ "kits": [ { "test-file-name": [ - "ActsBluetoothHidHapTest.hap" + "ActsBluetoothProFileJsTest.hap" ], "type": "AppInstallKit", "cleanup-apps": true diff --git a/communication/bluetooth_hid/signature/openharmony_sx.p7b b/communication/bluetooth_profile/signature/openharmony_sx.p7b similarity index 100% rename from communication/bluetooth_hid/signature/openharmony_sx.p7b rename to communication/bluetooth_profile/signature/openharmony_sx.p7b diff --git a/communication/bluetooth_hid/src/main/config.json b/communication/bluetooth_profile/src/main/config.json similarity index 100% rename from communication/bluetooth_hid/src/main/config.json rename to communication/bluetooth_profile/src/main/config.json diff --git a/communication/bluetooth_hid/src/main/js/default/app.js b/communication/bluetooth_profile/src/main/js/default/app.js similarity index 100% rename from communication/bluetooth_hid/src/main/js/default/app.js rename to communication/bluetooth_profile/src/main/js/default/app.js diff --git a/communication/bluetooth_hid/src/main/js/default/i18n/en-US.json b/communication/bluetooth_profile/src/main/js/default/i18n/en-US.json similarity index 100% rename from communication/bluetooth_hid/src/main/js/default/i18n/en-US.json rename to communication/bluetooth_profile/src/main/js/default/i18n/en-US.json diff --git a/communication/bluetooth_hid/src/main/js/default/i18n/zh-CN.json b/communication/bluetooth_profile/src/main/js/default/i18n/zh-CN.json similarity index 100% rename from communication/bluetooth_hid/src/main/js/default/i18n/zh-CN.json rename to communication/bluetooth_profile/src/main/js/default/i18n/zh-CN.json diff --git a/communication/bluetooth_hid/src/main/js/default/pages/index/index.css b/communication/bluetooth_profile/src/main/js/default/pages/index/index.css similarity index 100% rename from communication/bluetooth_hid/src/main/js/default/pages/index/index.css rename to communication/bluetooth_profile/src/main/js/default/pages/index/index.css diff --git a/communication/bluetooth_hid/src/main/js/default/pages/index/index.hml b/communication/bluetooth_profile/src/main/js/default/pages/index/index.hml similarity index 100% rename from communication/bluetooth_hid/src/main/js/default/pages/index/index.hml rename to communication/bluetooth_profile/src/main/js/default/pages/index/index.hml diff --git a/communication/bluetooth_hid/src/main/js/default/pages/index/index.js b/communication/bluetooth_profile/src/main/js/default/pages/index/index.js similarity index 93% rename from communication/bluetooth_hid/src/main/js/default/pages/index/index.js rename to communication/bluetooth_profile/src/main/js/default/pages/index/index.js index 6bdd4bdf5..59a617c21 100644 --- a/communication/bluetooth_hid/src/main/js/default/pages/index/index.js +++ b/communication/bluetooth_profile/src/main/js/default/pages/index/index.js @@ -18,7 +18,8 @@ import {Core, ExpectExtend} from 'deccjsunit/index' export default { data: { - title: "" + title: "", + myTimeout:50000 }, onInit() { this.title = this.$t('strings.world'); @@ -36,6 +37,7 @@ export default { core.init() const configService = core.getDefaultService('config') + this.timeout = this.myTimeout configService.setConfig(this) require('../../test/List.test') diff --git a/communication/bluetooth_profile/src/main/js/default/test/BluetoothA2dp.test.js b/communication/bluetooth_profile/src/main/js/default/test/BluetoothA2dp.test.js new file mode 100644 index 000000000..77cc07661 --- /dev/null +++ b/communication/bluetooth_profile/src/main/js/default/test/BluetoothA2dp.test.js @@ -0,0 +1,198 @@ +/* + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import bluetooth from '@ohos.bluetooth'; +import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' + + + +let ProfileId = { + PROFILE_A2DP_SINK : 0, + PROFILE_A2DP_SOURCE : 1, + PROFILE_AVRCP_CT : 2, + PROFILE_AVRCP_TG : 3, + PROFILE_HANDS_FREE_AUDIO_GATEWAY : 4, + PROFILE_HANDS_FREE_UNIT : 5, + PROFILE_HID_HOST : 6, + PROFILE_PAN_NETWORK : 7 +} + +let PlayingState = { + STATE_NOT_PLAYING : 0x0000 , + STATE_PLAYING : 0x0001, + } + +let a2dpSourceProfile = bluetooth.getProfile(1); + + +function on(ON_VALUE_TEST_ELEMENT) { + return new Promise((resolve, reject) => { + a2dpSourceProfile.on(ON_VALUE_TEST_ELEMENT, function (err, data) { + if (err != undefined) { + reject(err); + } else { + resolve(data); + } + }) + }); +} + +function off(OFF_VALUE_TEST_ELEMENT) { + return new Promise((resolve, reject) => { + a2dpSourceProfile.off(OFF_VALUE_TEST_ELEMENT, function (err, data) { + if (err != undefined) { + reject(err); + } else { + resolve(data); + } + }) + }); +} + + +describe('bluetoothhostTest', function () { + beforeAll(function () { + console.info('beforeAll called') + }) + beforeEach(function () { + console.info('beforeEach called') + }) + afterEach(function () { + console.info('afterEach called') + }) + afterAll(function () { + console.info('afterAll called') + }) + + function sleep(delay) { + return new Promise(resovle => setTimeout(resovle, delay)) + } + + async function tryToEnableBt() { + let sta = bluetooth.getState(); + switch(sta){ + case 0: + console.info('[bluetooth_js] bt turn off:'+ JSON.stringify(sta)); + bluetooth.enableBluetooth(); + await sleep(3000); + break; + case 1: + console.info('[bluetooth_js] bt turning on:'+ JSON.stringify(sta)); + await sleep(3000); + break; + case 2: + console.info('[bluetooth_js] bt turn on:'+ JSON.stringify(sta)); + break; + case 3: + console.info('[bluetooth_js] bt turning off:'+ JSON.stringify(sta)); + bluetooth.enableBluetooth(); + await sleep(3000); + break; + default: + console.info('[bluetooth_js] enable success'); + } + } + + + /** + * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_A2DP_GET_PROFILE_0001 + * @tc.name testgetprofile + * @tc.desc Test getProfile api. + * @tc.type Function + * @tc.level Level 0 + */ + it('SUB_COMMUNACATION_bluetooth_DEVICE_JS_A2DP_GET_PROFILE_0001', 0, async function (done) { + console.info('[bluetooth_js] a2dp get profile start'); + await tryToEnableBt(); + let proFile = bluetooth.getProfile(1); + console.info('[bluetooth_js] a2dp get profile result:' + JSON.stringify(proFile)); + expect(proFile != null).assertEqual(true); + done(); + }) + + + /** + * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_A2DP_SOURCCE_PROFILE_CONN_0001 + * @tc.name testa2dpSourceProfileconnect + * @tc.desc Test a2dpSourceProfile connect api. + * @tc.type Function + * @tc.level Level 0 + */ + it('SUB_COMMUNACATION_bluetooth_DEVICE_JS_A2DP_SOURCCE_PROFILE_CONN_0001', 0, async function (done) { + console.info('[bluetooth_js] a2dpSourceProfile the connect start'); + await tryToEnableBt(); + let conn = a2dpSourceProfile.connect('00:00:00:00:00:02'); + expect(conn).assertTrue(); + await sleep(3000); + let disConn = a2dpSourceProfile.disconnect('00:00:00:00:00:02'); + console.info('[bluetooth_js] a2dpSourceProfile disconnect:' + JSON.stringify(disConn)); + expect(disConn).assertTrue(); + done(); + }) + + + + /** + * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_A2DP_GET_PLAYING_STATE_0001 + * @tc.name testgetPlayingState + * @tc.desc Test getPlayingState api. + * @tc.type Function + * @tc.level Level 0 + */ + it('SUB_COMMUNACATION_bluetooth_DEVICE_JS_A2DP_GET_PLAYING_STATE_0001', 0, async function (done) { + console.info('[bluetooth_js] a2dpSourceProfile getPlayingState start'); + await tryToEnableBt(); + let state = a2dpSourceProfile.getPlayingState('00:00:00:00:00:02'); + console.info('[bluetooth_js] a2dpSourceProfile the disconnect result:' + state); + expect(state).assertEqual(0); + await sleep(3000); + done(); + }) + + + /** + * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_A2DP_SOURCCE_PROFILE_ON_0001 + * @tc.name testa2dpSourceProfileon + * @tc.desc Test a2dpSourceProfile on api. + * @tc.type Function + * @tc.level Level 0 + */ + it('SUB_COMMUNACATION_bluetooth_DEVICE_JS_A2DP_SOURCCE_PROFILE_ON_0001', 0, async function (done) { + try { + await tryToEnableBt(); + console.info('[bluetooth_js] a2dpSourceProfile the on start'); + on("connectionStateChange", function (data) { + console.info("[bluetooth_js] a2dpSource_on data " + JSON.stringify(data)); + expect(true).assertEqual(data !=null); + console.info("[bluetooth_js] StateChangeParam deviceId" + data.deviceId + + "ProfileConnectionState" + data.state); + }); + }catch(e) { + expect(null).assertFail(); + } + try { + console.info('[bluetooth_js] a2dpSourceProfile the off test start'); + off("connectionStateChange", function (data) { + console.info("[bluetooth_js] a2dpSource_off data-> " + JSON.stringify(data)); + expect(true).assertEqual(data ==null); + }); + }catch(e) { + expect(null).assertFail(); + } + done(); + }) + +}) + diff --git a/communication/bluetooth_profile/src/main/js/default/test/BluetoothHfp.test.js b/communication/bluetooth_profile/src/main/js/default/test/BluetoothHfp.test.js new file mode 100644 index 000000000..b38326d56 --- /dev/null +++ b/communication/bluetooth_profile/src/main/js/default/test/BluetoothHfp.test.js @@ -0,0 +1,170 @@ +/* + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import bluetooth from '@ohos.bluetooth'; +import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' + +let hfpGatewayProfile = bluetooth.getProfile(4); + + +let ProfileId = { + PROFILE_A2DP_SINK : 0, + PROFILE_A2DP_SOURCE : 1, + PROFILE_AVRCP_CT : 2, + PROFILE_AVRCP_TG : 3, + PROFILE_HANDS_FREE_AUDIO_GATEWAY : 4, + PROFILE_HANDS_FREE_UNIT : 5, + PROFILE_HID_HOST : 6, + PROFILE_PAN_NETWORK : 7 +} + +function on(ON_VALUE_TEST_ELEMENT) { + return new Promise((resolve, reject) => { + hfpGatewayProfile.on(ON_VALUE_TEST_ELEMENT, function (err, data) { + if (err != undefined) { + reject(err); + } else { + resolve(data); + } + }) + }); +} + +function off(OFF_VALUE_TEST_ELEMENT) { + return new Promise((resolve, reject) => { + hfpGatewayProfile.off(OFF_VALUE_TEST_ELEMENT, function (err, data) { + if (err != undefined) { + reject(err); + } else { + resolve(data); + } + }) + }); +} + +describe('bluetoothhostTest', function () { + beforeAll(function () { + console.info('beforeAll called') + }) + beforeEach(function () { + console.info('beforeEach called') + }) + afterEach(function () { + console.info('afterEach called') + }) + afterAll(function () { + console.info('afterAll called') + }) + + function sleep(delay) { + return new Promise(resovle => setTimeout(resovle, delay)) + } + + async function tryToEnableBt() { + let sta = bluetooth.getState(); + switch(sta){ + case 0: + console.info('[bluetooth_js] bt turn off:'+ JSON.stringify(sta)); + bluetooth.enableBluetooth(); + await sleep(3000); + break; + case 1: + console.info('[bluetooth_js] bt turning on:'+ JSON.stringify(sta)); + await sleep(3000); + break; + case 2: + console.info('[bluetooth_js] bt turn on:'+ JSON.stringify(sta)); + break; + case 3: + console.info('[bluetooth_js] bt turning off:'+ JSON.stringify(sta)); + bluetooth.enableBluetooth(); + await sleep(3000); + break; + default: + console.info('[bluetooth_js] enable success'); + } + } + + + /** + * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GET_PROFILE_0001 + * @tc.name testgetprofile + * @tc.desc Test getProfile api. + * @tc.type Function + * @tc.level Level 0 + */ + it('SUB_COMMUNACATION_bluetooth_DEVICE_JS_HFP_GET_PROFILE_0001', 0, async function (done) { + console.info('[bluetooth_js] hfp get profile start'); + await tryToEnableBt(); + let proFile = bluetooth.getProfile(4); + console.info('[bluetooth_js] get profile:' + JSON.stringify(proFile)); + expect(proFile != null).assertEqual(true); + done(); + }) + + + /** + * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_HFP_GATWAY_PROFILE_CONN_0001 + * @tc.name testhfpGatewayProfileconnect + * @tc.desc Test hfpGatewayProfile connect api. + * @tc.type Function + * @tc.level Level 0 + */ + it('SUB_COMMUNACATION_bluetooth_DEVICE_JS_HFP_GATWAY_PROFILE_CONN_0001', 0, async function (done) { + console.info('[bluetooth_js] hfpGatewayProfile the connect start'); + await tryToEnableBt(); + let conn = hfpGatewayProfile.connect('00:00:00:00:00:01'); + expect(conn).assertTrue(); + await sleep(2000); + let disConn = hfpGatewayProfile.disconnect('00:00:00:00:00:01'); + console.info('[bluetooth_js] hfpGatewayProfile disconnect:' + disConn); + expect(disConn).assertTrue(); + await sleep(2000); + done(); + }) + + + /** + * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_HFP_GATWAY_PROFILE_ON_0001 + * @tc.name testhfpGatewayProfileon + * @tc.desc Test hfpGatewayProfile on api. + * @tc.type Function + * @tc.level Level 0 + */ + it('SUB_COMMUNACATION_bluetooth_DEVICE_JS_HFP_GATWAY_PROFILE_ON_0001', 0, async function (done) { + try { + await tryToEnableBt(); + console.info('[bluetooth_js] hfpGatewayProfile the on start'); + on("connectionStateChange", function (data) { + console.info("[bluetooth_js] hfpGateway_on data " + JSON.stringify(data)); + expect(true).assertEqual(data !=null); + }); + }catch(e) { + expect(null).assertFail(); + } + try { + console.info('[bluetooth_js] hfpGatewayProfile the off test start'); + off("connectionStateChange", function (data) { + console.info("[bluetooth_js] hfpGateway_off data-> " + JSON.stringify(data)); + expect(true).assertEqual(data ==null); + }); + }catch(e) { + expect(null).assertFail(); + } + done(); + }) + +}) + diff --git a/communication/bluetooth_hid/src/main/js/default/test/List.test.js b/communication/bluetooth_profile/src/main/js/default/test/List.test.js similarity index 87% rename from communication/bluetooth_hid/src/main/js/default/test/List.test.js rename to communication/bluetooth_profile/src/main/js/default/test/List.test.js index 8e3d351d4..2b7b73eca 100644 --- a/communication/bluetooth_hid/src/main/js/default/test/List.test.js +++ b/communication/bluetooth_profile/src/main/js/default/test/List.test.js @@ -13,4 +13,5 @@ * limitations under the License. */ -require('./BluetoothHid.test.js') +require('./BluetoothHfp.test.js') +require('./BluetoothA2dp.test.js') diff --git a/communication/bluetooth_hid/src/main/resources/base/element/string.json b/communication/bluetooth_profile/src/main/resources/base/element/string.json similarity index 100% rename from communication/bluetooth_hid/src/main/resources/base/element/string.json rename to communication/bluetooth_profile/src/main/resources/base/element/string.json diff --git a/communication/bluetooth_hid/src/main/resources/base/media/icon.png b/communication/bluetooth_profile/src/main/resources/base/media/icon.png similarity index 100% rename from communication/bluetooth_hid/src/main/resources/base/media/icon.png rename to communication/bluetooth_profile/src/main/resources/base/media/icon.png diff --git a/communication/bluetooth_standard/src/main/js/default/test/Bluetooth.test.js b/communication/bluetooth_standard/src/main/js/default/test/Bluetooth.test.js index 945d2feea..1a59cdd90 100644 --- a/communication/bluetooth_standard/src/main/js/default/test/Bluetooth.test.js +++ b/communication/bluetooth_standard/src/main/js/default/test/Bluetooth.test.js @@ -453,7 +453,7 @@ describe('bluetoothhostTest', function() { let name = bluetooth.setLocalName(); console.info('[bluetooth_js] getName result2 = '+ JSON.stringify(localName) + 'setName result2 =' + JSON.stringify(name)); - expect(name).assertNull(); + expect(name).assertFalse(); done(); }) -- GitLab