diff --git a/communication/BUILD.gn b/communication/BUILD.gn index 362d0617394d439f65dcbaf323a614ddea5b1ef3..ffe83db90eeaca17eadf6dfe4fba131cec90dd2f 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 6bdd4bdf51eb53aa247c142dca9b6cfaee61163d..e61e93563e51bcc137809e00765ad21adae2db21 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:60000 }, 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_on/src/main/js/default/pages/index/index.js b/communication/bluetooth_on/src/main/js/default/pages/index/index.js index a29dd313f22cc0666efe927abea98372ad43b066..edc85768147a96d9023e55f8af520eb119fc4765 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:70000 }, 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 6930c908c1feaef44923c9672084dda017c5e188..c95193103bd7808349c451dfdf5f70c2769cd3a1 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 f89856c996953dd71e675fba2b689a3fc2f92336..3191e10b989527290328c0d36de5b29cab4fc52b 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 6bdd4bdf51eb53aa247c142dca9b6cfaee61163d..59a617c21153b070775c21cfe400393e740274c1 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 0000000000000000000000000000000000000000..77cc07661df00790ec815488714532e913c440eb --- /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 0000000000000000000000000000000000000000..b38326d564b399408d8a93c479f386b35fe5e9ba --- /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/BluetoothHid.test.js b/communication/bluetooth_profile/src/main/js/default/test/BluetoothHid.test.js similarity index 99% rename from communication/bluetooth_hid/src/main/js/default/test/BluetoothHid.test.js rename to communication/bluetooth_profile/src/main/js/default/test/BluetoothHid.test.js index 181ebbc039c3c662bf1a54751700f1a1ee6bf120..f28e1a5f020e86c42c1b77e7269fb64663fa5050 100644 --- a/communication/bluetooth_hid/src/main/js/default/test/BluetoothHid.test.js +++ b/communication/bluetooth_profile/src/main/js/default/test/BluetoothHid.test.js @@ -225,3 +225,4 @@ describe('bluetoothhostTest', function () { }) + 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 88% 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 8e3d351d40e1dd78e0991e021f8cac0fa1a70c18..4c972b1480ffdaccf670c2be5ac6871960f3a474 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,6 @@ * limitations under the License. */ +require('./BluetoothHfp.test.js') +require('./BluetoothA2dp.test.js') require('./BluetoothHid.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 945d2feea8b2f81960c5f7bbf36813072f5ea1e8..1a59cdd90b0f8448993cb6cd4b3fd65044d08eaa 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(); })