diff --git a/communication/BUILD.gn b/communication/BUILD.gn
index 8ba2f3f9d4517138d7ee17e03072b9843b33e6ab..37ad5254de8aada9dbf60e110f3eefb2b71a594e 100644
--- a/communication/BUILD.gn
+++ b/communication/BUILD.gn
@@ -16,8 +16,12 @@ group("communication") {
testonly = true
if (is_standard_system) {
deps = [
+ "bluetooth_ble:ActsBluetoothBleJsTest",
+ "bluetooth_on:ActsBluetoothOnJsTest",
"bluetooth_standard:ActsBluetoothJsTest",
"dsoftbus/rpc:ActsRpcJsTest",
+ "wifi_hotspot:ActsHotSpotJSTest",
+ "wifi_p2p:ActsP2PJSTest",
"wifi_standard:ActsWifiJSTest",
]
} else {
diff --git a/communication/bluetooth_ble/BUILD.gn b/communication/bluetooth_ble/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..e8c142a4d2b90d823533b673906c7187845a6ed9
--- /dev/null
+++ b/communication/bluetooth_ble/BUILD.gn
@@ -0,0 +1,31 @@
+# Copyright (C) 2021 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("//test/xts/tools/build/suite.gni")
+ohos_js_hap_suite("ActsBluetoothBleJsTest") {
+ hap_profile = "./src/main/config.json"
+ deps = [
+ ":bluetooth_js_assets",
+ ":bluetooth_resources",
+ ]
+
+ certificate_profile = "./signature/openharmony_sx.p7b"
+ hap_name = "ActsBluetoothBleHapTest"
+}
+ohos_js_assets("bluetooth_js_assets") {
+ source_dir = "./src/main/js/default"
+}
+ohos_resources("bluetooth_resources") {
+ sources = [ "./src/main/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/communication/bluetooth_ble/Test.json b/communication/bluetooth_ble/Test.json
new file mode 100644
index 0000000000000000000000000000000000000000..d3f0292e79097cab7d5b25518908cc0ccb749ec7
--- /dev/null
+++ b/communication/bluetooth_ble/Test.json
@@ -0,0 +1,18 @@
+{
+ "description": "Configuration for bluetooth js api Tests",
+ "driver": {
+ "type": "JSUnitTest",
+ "test-timeout": "600000",
+ "package": "ohos.acts.communication.bluetooth.bluetoothhost",
+ "shell-timeout": "60000"
+ },
+ "kits": [
+ {
+ "test-file-name": [
+ "ActsBluetoothBleHapTest.hap"
+ ],
+ "type": "AppInstallKit",
+ "cleanup-apps": true
+ }
+ ]
+}
diff --git a/communication/bluetooth_ble/signature/openharmony_sx.p7b b/communication/bluetooth_ble/signature/openharmony_sx.p7b
new file mode 100644
index 0000000000000000000000000000000000000000..9be1e98fa4c0c28ca997ed660112fa16b194f0f5
Binary files /dev/null and b/communication/bluetooth_ble/signature/openharmony_sx.p7b differ
diff --git a/communication/bluetooth_ble/src/main/config.json b/communication/bluetooth_ble/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..0cdb831450385686d61f6e1027245be388ac694e
--- /dev/null
+++ b/communication/bluetooth_ble/src/main/config.json
@@ -0,0 +1,60 @@
+{
+ "app": {
+ "bundleName": "ohos.acts.communication.bluetooth.bluetoothhost",
+ "vendor": "acts",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 5
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "ohos.acts.communication.bluetooth.bluetoothhost",
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "abilities": [
+ {
+ "visible": true,
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "name": "ohos.acts.communication.bluetooth.bluetoothhost.MainAbility",
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "standard"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
diff --git a/communication/bluetooth_ble/src/main/js/default/app.js b/communication/bluetooth_ble/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..363f2555b1badec9fec342a93141db084083fcb8
--- /dev/null
+++ b/communication/bluetooth_ble/src/main/js/default/app.js
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+export default {
+ onCreate() {
+ console.info('AceApplication onCreate');
+ },
+ onDestroy() {
+ console.info('AceApplication onDestroy');
+ }
+};
diff --git a/communication/bluetooth_ble/src/main/js/default/i18n/en-US.json b/communication/bluetooth_ble/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/communication/bluetooth_ble/src/main/js/default/i18n/en-US.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "Hello",
+ "world": "World"
+ }
+}
\ No newline at end of file
diff --git a/communication/bluetooth_ble/src/main/js/default/i18n/zh-CN.json b/communication/bluetooth_ble/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/communication/bluetooth_ble/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/communication/bluetooth_ble/src/main/js/default/pages/index/index.css b/communication/bluetooth_ble/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..6fda792753f2e15f22b529c7b90a82185b2770bf
--- /dev/null
+++ b/communication/bluetooth_ble/src/main/js/default/pages/index/index.css
@@ -0,0 +1,9 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.title {
+ font-size: 100px;
+}
diff --git a/communication/bluetooth_ble/src/main/js/default/pages/index/index.hml b/communication/bluetooth_ble/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184
--- /dev/null
+++ b/communication/bluetooth_ble/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
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
new file mode 100644
index 0000000000000000000000000000000000000000..0b183159696d3347a6a31ff04a879a9e6b7e994b
--- /dev/null
+++ b/communication/bluetooth_ble/src/main/js/default/pages/index/index.js
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2021 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 app from '@system.app'
+
+import {Core, ExpectExtend} from 'deccjsunit/index'
+
+export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ this.title = this.$t('strings.world');
+ },
+ onShow() {
+ console.info('onShow finish')
+ },
+ onReady() {
+ console.info('onReady finish')
+ const core = Core.getInstance()
+ const expectExtend = new ExpectExtend({
+ 'id': 'extend'
+ })
+ core.addService('expect', expectExtend)
+ core.init()
+
+ const configService = core.getDefaultService('config')
+ configService.setConfig(this)
+
+ require('../../test/List.test')
+ core.execute()
+
+ },
+}
+
diff --git a/communication/bluetooth_ble/src/main/js/default/test/BluetoothBle.test.js b/communication/bluetooth_ble/src/main/js/default/test/BluetoothBle.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..21d4926ac5cb217ac2a91a5e50bd9a8cd80d8ed3
--- /dev/null
+++ b/communication/bluetooth_ble/src/main/js/default/test/BluetoothBle.test.js
@@ -0,0 +1,692 @@
+/*
+ * Copyright (C) 2021 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'
+
+
+
+var SppType = {
+ SPP_RFCOMM : 0
+}
+
+var MatchMode = {
+ MATCH_MODE_AGGRESSIVE : 1,
+ MATCH_MODE_STICKY : 2
+}
+
+var MajorClass = {
+ MAJOR_MISC : 0x0000,
+ MAJOR_COMPUTER : 0x0100,
+ MAJOR_PHONE : 0x0200,
+ MAJOR_NETWORKING : 0x0300,
+ MAJOR_AUDIO_VIDEO : 0x0400,
+ MAJOR_PERIPHERAL : 0x0500,
+ MAJOR_IMAGING : 0x0600,
+ MAJOR_WEARABLE : 0x0700,
+ MAJOR_TOY : 0x0800,
+ MAJOR_HEALTH : 0x0900,
+ MAJOR_UNCATEGORIZED : 0x1F00
+}
+
+describe('bluetoothhostTest', function() {
+
+ var gattServer = null;
+ var gattClient = null;
+ beforeAll(function () {
+ console.info('beforeAll called')
+ gattServer = bluetooth.BLE.createGattServer();
+ console.info('[bluetooth_js] gattServer beforeAll is:' + JSON.stringify(gattServer));
+
+ gattClient = bluetooth.BLE.createGattClientDevice("00:00:00:00:00:00");
+ console.info('[bluetooth_js] GattClientDevice beforeAll is:' + JSON.stringify(gattClient));
+ })
+ 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))
+ }
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_ENABLE_0001
+ * @tc.name testEnableBluetooth
+ * @tc.desc Test EnableBluetooth api by promise.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_classic_enable_bluetooth_001', 0, async function (done) {
+ console.info('[bluetooth_js] enable start');
+ var enable = bluetooth.enableBluetooth();
+ expect(enable).assertEqual(true);
+ console.info('[bluetooth_js] enable On = '+ JSON.stringify(enable));
+ await sleep(2000);
+ var state = bluetooth.getState();
+ console.info('[bluetooth_js] getState On = '+ JSON.stringify(state));
+ console.info('[bluetooth_js]state on:' + JSON.stringify(bluetooth.BluetoothState.STATE_ON));
+ console.info('[bluetooth_js]off :' + JSON.stringify(bluetooth.BluetoothState.STATE_OFF));
+ console.info('[bluetooth_js] turning on :'
+ + JSON.stringify(bluetooth.BluetoothState.STATE_TURNING_ON));
+ console.info('[bluetooth_js] turning off :'
+ + JSON.stringify(bluetooth.BluetoothState.STATE_TURNING_OFF));
+ console.info('[bluetooth_js] ble turning on :'
+ + JSON.stringify(bluetooth.BluetoothState.STATE_BLE_TURNING_ON));
+ console.info('[bluetooth_js] ble on:'
+ + JSON.stringify(bluetooth.BluetoothState.STATE_BLE_ON));
+ console.info('[bluetooth_js] ble turning off :'
+ + JSON.stringify(bluetooth.BluetoothState.STATE_BLE_TURNING_OFF));
+ console.info('bluetooth enable done');
+ })
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetoothble_DEVICE_JS_GET_CONNECTED_BLEDEVICES_0001
+ * @tc.name testGetConnectedBLEDevices
+ * @tc.desc Test getConnectedBLEDevices api .
+ * @tc.author zhangyujie zwx1079266
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_getConnectedBLEDevices_test_001', 0, function () {
+ console.info('[bluetooth_js] getConnectedBLEDevices test start ...');
+ var result = bluetooth.BLE.getConnectedBLEDevices();
+ console.info("[bluetooth_js] getConnectedBLEDevices:" + JSON.stringify(result));
+ console.info("[bluetooth_js] getConnectedBLEDevices length:" + result.length);
+ expect(result.length).assertEqual(0);
+ console.info('[bluetooth_js] getConnectedBLEDevices end');
+ })
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetoothble_DEVICE_JS_CREATE_GATT_SERVER_0002
+ * @tc.name testCreateGattServer
+ * @tc.desc Test CreateGattServer api .
+ * @tc.author zhangyujie zwx1079266
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_createGattServer_test_001', 0, function () {
+ console.info('[bluetooth_js] createGattServer test start ...');
+ var result = bluetooth.BLE.createGattServer();
+ console.info("[bluetooth_js] createGattServer:" + JSON.stringify(result));
+ var resultLength = Object.keys(result).length;
+ console.info("[bluetooth_js] createGattServer length:" + resultLength);
+ expect(resultLength).assertEqual(1);
+ console.info('[bluetooth_js] createGattServer end');
+ })
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_STOP_BLESCAN_0001
+ * @tc.name testClassicStopBLEScan
+ * @tc.desc Test ClassicStopBLEScan api.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_ble_stop_scan', 0, function () {
+ console.info('[bluetooth_js] BLE stop scan start');
+ var result = bluetooth.BLE.stopBLEScan();
+ console.info("[bluetooth_js] onStopBLEScan -> " + JSON.stringify(result));
+ expect(result).assertNull();
+ console.info('[bluetooth_js] BLE stop scan end');
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_STOP_ADVERTISING_0001
+ * @tc.name testStopAdvertising
+ * @tc.desc Test StopAdvertising api.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_ble_stop_advertising', 0, function () {
+ console.info('[bluetooth_js] BLE stop advertising start');
+ var gattServer = bluetooth.BLE.createGattServer();
+ gattServer.stopAdvertising();
+ console.info('[bluetooth_js] BLE stop advertising end');
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GET_DEVICE_NAME_PROMISE_0001
+ * @tc.name testGetDeviceName
+ * @tc.desc Test GetDeviceName api by promise.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_ble_get_device_name_promise', 0, async function (done) {
+ console.info('BLE get device name promise start');
+ var gattClient = bluetooth.BLE.createGattClientDevice("00:00:00:00:00:00");
+ await gattClient.getDeviceName().then((data) => {
+ console.info('[bluetooth_js] device name' + JSON.stringify(data))
+ done();
+ })
+ console.info('BLE get device name promise end')
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GET_RSSI_VALUE_CALLBACK
+ * @tc.name testGetRssiValue
+ * @tc.desc Test GetRssiValue api by callback.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_ble_read_rssi', 0, async function (done) {
+ console.info('[bluetooth_js] BLE get rssi1 start');
+ var gattClient = bluetooth.BLE.createGattClientDevice("00:00:00:00:00:00");
+ gattClient.getRssiValue((err, data)=> {
+ console.info('[bluetooth_js] rssi err:' + JSON.stringify(err));
+ console.info('[bluetooth_js] rssi value:' + JSON.stringify(data));
+ expect(data).assertNull();
+ console.info('[bluetooth_js] BLE read rssi1 end');
+ done();
+ });
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GET_RSSI_VALUE_PROMISE_0001
+ * @tc.name testGetRssiValue
+ * @tc.desc Test GetRssiValue api by promise.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_ble_read_rssi_promise', 0, async function (done) {
+ console.info('[bluetooth_js] BLE get rssi start');
+ var gattClient = bluetooth.BLE.createGattClientDevice("00:00:00:00:00:00");
+ await gattClient.getRssiValue().then((data) => {
+ if (data != null) {
+ console.info('[bluetooth_js] rssi' + JSON.stringify(data));
+ done();
+ expect(true).assertEqual(true);
+ } else {
+ console.info('[bluetooth_js] BLE read rssi ' + JSON.stringify(data));
+ var rssiLength = Object.keys(data).length;
+ console.info("[bluetooth_js] ble rssi_length -> " + rssiLength);
+ expect(rssiLength).assertEqual(0);
+ done();
+ }
+ }).catch(err => {
+ console.error(`bluetooth getRssiValue has error: ${err}`);
+ expect(true).assertEqual(true);
+ done();
+ });
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_CONNRCT_0001
+ * @tc.name testConnect
+ * @tc.desc Test Connect api.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_gatt_connect', 0, function () {
+ console.info('[bluetooth_js] gatt connect start');
+ gattClient = bluetooth.BLE.createGattClientDevice("00:00:00:00:00:00");
+ let ret = gattClient.connect();
+ console.info('[bluetooth_js] gatt connect ret : ' + ret);
+ expect(ret).assertEqual(true);
+ console.info('[bluetooth_js] gatt connect end');
+ })
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_GETSERVICES_CALLBACK_0001
+ * @tc.name testGetServices
+ * @tc.desc Test GetServices api by callback.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_ble_get_services_callback_001', 0, async function (done) {
+ console.info('[bluetooth_js] getServices callback start');
+ var gattClient = bluetooth.BLE.createGattClientDevice("00:00:00:00:00:00");
+ gattClient.getServices((err, data)=> {
+ console.info('[bluetooth_js] device name err1 ' + JSON.stringify(err));
+ console.info('[bluetooth_js] device name1' + JSON.stringify(data));
+ done();
+ })
+ console.info('[bluetooth_js] getServices callback end');
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_GETSERVICES_PROMISE_0001
+ * @tc.name testGetServices
+ * @tc.desc Test GetServices api by promise.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_gatt_getServices_promise', 0, async function (done) {
+ console.info('[bluetooth_js] getServices promise start');
+ var gattClient = bluetooth.BLE.createGattClientDevice("00:00:00:00:00:00");
+ await gattClient.getServices().then((object) => {
+ if (object != null) {
+ console.info('[bluetooth_js] getServices is null');
+ expect(true).assertEqual(true);
+ } else {
+ console.info('[bluetooth_js] getServices is successfully');
+ console.info('[bluetooth_js] getServices data:' + JSON.stringify(object));
+ expect(null).assertFail();
+ }
+ done();
+ }).catch(err => {
+ console.error(`bluetooth getServices has error: ${err}`);
+ expect(true).assertEqual(true);
+ done();
+ });
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_READ_CHARA_VALUE_0001
+ * @tc.name testReadCharacteristicValue
+ * @tc.desc Test ReadCharacteristicValue api by promise.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_gatt_readCharacteristicValue', 0, async function (done) {
+ console.info('[bluetooth_js] readCharacteristicValue start');
+
+ let descriptors = [];
+ let arrayBuffer = new ArrayBuffer(8);
+ let desValue = new Uint8Array(arrayBuffer);
+ desValue[0] = 11;
+
+ let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
+ descriptorUuid: '00001830-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
+ descriptors[0] = descriptor;
+
+ let arrayBufferCCC = new ArrayBuffer(8);
+ let cccValue = new Uint8Array(arrayBufferCCC);
+ cccValue[0] = 32;
+ let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
+ characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB',
+ characteristicValue: arrayBufferCCC, descriptors:descriptors};
+ for (var key in characteristic ){
+ console.info('[bluetooth_js] readCharValue:' +characteristic[key]);
+ }
+ gattClient.readCharacteristicValue(characteristic).then((object) => {
+ if (object != null) {
+ console.info('[bluetooth_js] bluetooth BLECharacteristic is null');
+ expect(true).assertEqual(true);
+ } else {
+ console.info('[bluetooth_js] BLECharacteristic uuid is successfully');
+ console.info('[bluetooth_js] readCharacValue data:' + JSON.stringify(data));
+ expect(null).assertFail();
+ }
+ done();
+ }).catch(err => {
+ console.error(`bluetooth readCharacteristicValue has error: ${err}`);
+ expect(true).assertEqual(true);
+ done();
+ });
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_READ_DESCRI_VALUE_0001
+ * @tc.name testReadDescriptorValue
+ * @tc.desc Test ReadDescriptorValue api by promise.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_gatt_readDescriptorValue', 0, async function (done) {
+ console.info('[bluetooth_js] readDescriptorValue start');
+ let arrayBuffer = new ArrayBuffer(8);
+ let desValue = new Uint8Array(arrayBuffer);
+ desValue[0] = 11;
+ let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
+ descriptorUuid: '00001830-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
+ gattClient.readDescriptorValue(descriptor).then((object) => {
+ if (object != null) {
+ console.info('[bluetooth_js] BLEDescriptor is null');
+ expect(true).assertEqual(true);
+ } else {
+ console.info('[bluetooth_js] BLEDescriptor uuid is successfully');
+ console.info('[bluetooth_js] BLEDescriptor data:' + JSON.stringify(object));
+ expect(null).assertFail();
+ }
+ done();
+ }).catch(err => {
+ console.error(`bluetooth readDescriptorValue has error: ${err}`);
+ expect(true).assertEqual(true);
+ done();
+ });
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_WRITE_CHARACT_VALUE_0001
+ * @tc.name testWriteCharacteristicValue
+ * @tc.desc Test WriteCharacteristicValue api.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_gatt_writeCharacteristicValue', 0, function () {
+ console.info('[bluetooth_js] writeCharacteristicValue start');
+ let descriptors = [];
+ let arrayBuffer = new ArrayBuffer(8);
+ let desValue = new Uint8Array(arrayBuffer);
+ desValue[0] = 11;
+ let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
+ descriptorUuid: '00001830-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
+ descriptors[0] = descriptor;
+ let arrayBufferCCC = new ArrayBuffer(8);
+ let cccValue = new Uint8Array(arrayBufferCCC);
+ cccValue[0] = 32;
+ let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
+ characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB',
+ characteristicValue: arrayBufferCCC, descriptors:descriptors};
+ for (var key in characteristic ){
+ console.info('[bluetooth_js] writeCharValue:' +characteristic[key]);
+ }
+
+ let ret = gattClient.writeCharacteristicValue(characteristic);
+ console.info('[bluetooth_js] bluetooth writeCharacteristicValue ret : ' + ret);
+ expect(ret).assertEqual(false);
+ console.info('[bluetooth_js] writeCharacteristicValue end');
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_WRITE_DESC_VALUE_0001
+ * @tc.name testWriteDescriptorValue
+ * @tc.desc Test WriteDescriptorValue api.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_gatt_writeDescriptorValue', 0, function () {
+ console.info('[bluetooth_js] writeDescriptorValue start');
+ let arrayBuffer = new ArrayBuffer(8);
+ let desValue = new Uint8Array(arrayBuffer);
+ desValue[0] = 11;
+ let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
+ descriptorUuid: '00001830-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
+ let ret = gattClient.writeDescriptorValue(descriptor);
+ console.info('[bluetooth_js] bluetooth writeDescriptorValue ret : ' + ret);
+ expect(ret).assertEqual(false);
+ console.info('[bluetooth_js] writeDescriptorValue end');
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_SET_BLE_MTUSIZE_0001
+ * @tc.name testSetBLEMtuSize
+ * @tc.desc Test SetBLEMtuSize api.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_gatt_setBLEMtuSize', 0, function () {
+ console.info('[bluetooth_js] setBLEMtuSize start');
+ let ret = gattClient.setBLEMtuSize(128);
+ console.info('[bluetooth_js] bluetooth setBLEMtuSize ret : ' + ret);
+ expect(ret).assertEqual(false);
+ console.info('[bluetooth_js] setBLEMtuSize end');
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_SET_NOTIFY_CHARA_CHANGED_0001
+ * @tc.name testSetNotifyCharacteristicChanged
+ * @tc.desc Test SetNotifyCharacteristicChanged api.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_gatt_setNotifyCharacteristicChanged', 0, function () {
+ console.info('[bluetooth_js] setNotifyCharacteristicChanged start');
+ let descriptors = [];
+ let arrayBuffer = new ArrayBuffer(8);
+ let desValue = new Uint8Array(arrayBuffer);
+ desValue[0] = 11;
+ let arrayBufferNotify = new ArrayBuffer(8);
+ let descNotifyValue = new Uint8Array(arrayBufferNotify);
+ descNotifyValue[0] = 1
+ let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
+ descriptorUuid: '00001830-0000-1000-8000-00805F9B34FB',
+ descriptorValue: arrayBuffer};
+ let descriptorNotify = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
+ descriptorUuid: '00002902-0000-1000-8000-00805F9B34FB',
+ descriptorValue: arrayBufferNotify};
+ descriptors[0] = descriptor;
+ descriptors[1] = descriptorNotify;
+ let arrayBufferCCC = new ArrayBuffer(8);
+ let cccValue = new Uint8Array(arrayBufferCCC);
+ cccValue[0] = 1;
+ let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
+ characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB',
+ characteristicValue: arrayBufferCCC, descriptors:descriptors};
+ let ret = gattClient.setNotifyCharacteristicChanged(characteristic, false);
+ console.info('[bluetooth_js] setNotifyCharacteristicChanged ret:' + ret);
+ expect(ret).assertEqual(false);
+ console.info('[bluetooth_js] setNotifyCharacteristicChanged end');
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_ADD_SERVICE_0001
+ * @tc.name testAddService
+ * @tc.desc Test AddService api.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_gatt_addService', 0, function () {
+ console.info('[bluetooth_js] addService start');
+ gattServer = bluetooth.BLE.createGattServer();
+
+ let descriptors = [];
+ let arrayBuffer = new ArrayBuffer(8);
+ let desValue = new Uint8Array(arrayBuffer);
+ desValue[0] = 11;
+
+ let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
+ characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB',
+ descriptorUuid: '00001830-0000-1000-8000-00805F9B34FB',
+ descriptorValue: arrayBuffer};
+ descriptors[0] = descriptor;
+
+ let characteristics = [];
+ let arrayBufferCCC = new ArrayBuffer(8);
+ let cccValue = new Uint8Array(arrayBufferCCC);
+ cccValue[0] = 1;
+ let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
+ characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB',
+ characteristicValue: arrayBufferCCC, descriptors:descriptors};
+ characteristics[0] = characteristic;
+
+ let service = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
+ isPrimary: true, characteristics: characteristics, includeServices: []};
+ for (var key in service ){
+ console.info('[bluetooth_js] addService:' +service[key]);
+ }
+ let ret = gattServer.addService(service);
+ console.info('[bluetooth_js] bluetooth addService ret : ' + ret);
+ expect(ret).assertEqual(true);
+ console.info('[bluetooth_js] addService end');
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_REMOVE_SERVICE_0001
+ * @tc.name testRemoveService
+ * @tc.desc Test RemoveService api.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_gatt_removeService', 0, function () {
+ console.info('[bluetooth_js] removeService start');
+ gattServer = bluetooth.BLE.createGattServer();
+ let ret = gattServer.removeService('00001810-0000-1000-8000-008000000000');
+ console.info('[bluetooth_js] removeService ret : ' + ret);
+ expect(ret).assertEqual(false);
+ console.info('[bluetooth_js] removeService end');
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_NOTIFY_CHARA_CHANGED_0001
+ * @tc.name testNotifyCharacteristicChanged
+ * @tc.desc Test NotifyCharacteristicChanged api.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_gatt_notifyCharacteristicChanged', 0, function () {
+ console.info('[bluetooth_js] notifyCharacteristicChanged start');
+ let descriptors = [];
+ let arrayBufferDesc = new ArrayBuffer(8);
+ let desValue = new Uint8Array(arrayBufferDesc);
+ desValue[0] = 11;
+ let arrayBufferNotifyDesc = new ArrayBuffer(8);
+ let descNotifyValue = new Uint8Array(arrayBufferNotifyDesc);
+ descNotifyValue[0] = 1
+ let
+ descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
+ descriptorUuid: '00001830-0000-1000-8000-00805F9B34FB', descriptorValue: desValue};
+ let descriptorNotify = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
+ descriptorUuid: '00002902-0000-1000-8000-00805F9B34FB',
+ descriptorValue: descNotifyValue};
+ descriptors[0] = descriptor;
+ descriptors[1] = descriptorNotify;
+
+ let arrayBufferCCC = new ArrayBuffer(8);
+ let cccValue = new Uint8Array(arrayBufferCCC);
+ cccValue[0] = 1;
+ let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
+ characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB',
+ characteristicValue: cccValue,
+ descriptors:descriptors,confirm:'false'};
+ for (var key in characteristic ){
+ console.info('[bluetooth_js] notifyCharChanged:' + characteristic[key]);
+ }
+ let ret = gattServer.notifyCharacteristicChanged('00:00:00:00:00:00', characteristic);
+ console.info('[bluetooth_js] notifyCharacteristicChanged ret : ' + ret);
+ expect(ret).assertEqual(false);
+ console.info('[bluetooth_js] notifyCharacteristicChanged end');
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_SEND_RESPONSE_0001
+ * @tc.name testSendResponse
+ * @tc.desc Test SendResponse api.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_gatt_sendResponse', 0, function () {
+ console.info('[bluetooth_js] sendResponse start');
+ let arrayBuffer = new ArrayBuffer(8);
+ let value = new Uint8Array(arrayBuffer);
+ value[0] = 1;
+ let serverResponse = {deviceId: '00:00:00:00:00', transId: 1,
+ status: 0, offset: 0, value: arrayBuffer};
+ for (var key in serverResponse ){
+ console.info('[bluetooth_js] serverResponse:'+ serverResponse[key]);
+ }
+ let ret = gattServer.sendResponse(serverResponse);
+ console.info('[bluetooth_js] sendResponse ret : ' + ret);
+ expect(ret).assertEqual(false);
+ console.info('[bluetooth_js] sendResponse end');
+ })
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetoothble_DEVICE_JS_BLE_PERIPHERA_MANAGER_CLOSE_0001
+ * @tc.name testBlePeripheralManagerClose
+ * @tc.desc Test BlePeripheralManagerClose api .
+ * @tc.author zhangyujie zwx1079266
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetoothble_gattserver_close_test_001', 0, function () {
+ console.info('[bluetooth_js] GattserverClose test start ...');
+ if (gattServer == null) {
+ console.info("[bluetooth_js] GattserverClose: please CreateGattServer first!");
+ }
+ console.info('[bluetooth_js] gattclose_server is:' + JSON.stringify(gattServer));
+ try{
+ var result = gattServer.close();
+ console.info("[bluetooth_js] GattserverClose res:"+ JSON.stringify(result));
+ expect(result).assertTrue();
+ console.info("[bluetooth_js] GattserverClose end.");
+ }catch(error){
+ console.info("[bluetooth_js] GattserverClose err:" + JSON.stringify(error));
+ expect(null).assertFail();
+ }
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_CLIENT_CLOSE_0001
+ * @tc.name testGattClientClose
+ * @tc.desc Test GattClientClose api .
+ * @tc.author zhangyujie zwx1079266
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_gattclient_close_test_001', 0, function () {
+ console.info('[bluetooth_js] GattclientClose test start ...');
+ if (gattClient == null) {
+ console.info("[bluetooth_js] GattclientClose: please CreateGatt first!");
+ }
+ console.info('[bluetooth_js] gattClient is:' + JSON.stringify(gattServer));
+ try{
+ var result = gattClient.close();
+ console.info("[bluetooth_js] GattclientClose result: " + result);
+ console.info("[bluetooth_js] GattclientClose json_result:" + JSON.stringify(result));
+ expect(result).assertTrue();
+ console.info("[bluetooth_js] GattclientClose end.");
+ }catch(error){
+ console.info("[bluetooth_js] GattclientClose err:" + JSON.stringify(error));
+ expect(null).assertFail();
+ }
+ })
+
+})
+
diff --git a/communication/bluetooth_ble/src/main/js/default/test/List.test.js b/communication/bluetooth_ble/src/main/js/default/test/List.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..ce59fc6b44896f4684f01fbbf671845c7b721be3
--- /dev/null
+++ b/communication/bluetooth_ble/src/main/js/default/test/List.test.js
@@ -0,0 +1,16 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+require('./BluetoothBle.test.js')
diff --git a/communication/bluetooth_ble/src/main/resources/base/element/string.json b/communication/bluetooth_ble/src/main/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..14f9c3a9210f78b12caf3b945dc2b2c0f63f7d3d
--- /dev/null
+++ b/communication/bluetooth_ble/src/main/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "OsAccountTest"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Phone_Empty Feature Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/communication/bluetooth_ble/src/main/resources/base/media/icon.png b/communication/bluetooth_ble/src/main/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/communication/bluetooth_ble/src/main/resources/base/media/icon.png differ
diff --git a/communication/bluetooth_on/BUILD.gn b/communication/bluetooth_on/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..6f41a315d7d13696addc2401b8e57877509a70e6
--- /dev/null
+++ b/communication/bluetooth_on/BUILD.gn
@@ -0,0 +1,31 @@
+# Copyright (C) 2021 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("//test/xts/tools/build/suite.gni")
+ohos_js_hap_suite("ActsBluetoothOnJsTest") {
+ hap_profile = "./src/main/config.json"
+ deps = [
+ ":bluetooth_js_assets",
+ ":bluetooth_resources",
+ ]
+
+ certificate_profile = "./signature/openharmony_sx.p7b"
+ hap_name = "ActsBluetoothOnHapTest"
+}
+ohos_js_assets("bluetooth_js_assets") {
+ source_dir = "./src/main/js/default"
+}
+ohos_resources("bluetooth_resources") {
+ sources = [ "./src/main/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/communication/bluetooth_on/Test.json b/communication/bluetooth_on/Test.json
new file mode 100644
index 0000000000000000000000000000000000000000..eb1655d3ea1fda28eb3d5647ce9ec4c033f0de34
--- /dev/null
+++ b/communication/bluetooth_on/Test.json
@@ -0,0 +1,18 @@
+{
+ "description": "Configuration for bluetooth js api Tests",
+ "driver": {
+ "type": "JSUnitTest",
+ "test-timeout": "600000",
+ "package": "ohos.acts.communication.bluetooth.bluetoothhost",
+ "shell-timeout": "60000"
+ },
+ "kits": [
+ {
+ "test-file-name": [
+ "ActsBluetoothOnHapTest.hap"
+ ],
+ "type": "AppInstallKit",
+ "cleanup-apps": true
+ }
+ ]
+}
diff --git a/communication/bluetooth_on/signature/openharmony_sx.p7b b/communication/bluetooth_on/signature/openharmony_sx.p7b
new file mode 100644
index 0000000000000000000000000000000000000000..9be1e98fa4c0c28ca997ed660112fa16b194f0f5
Binary files /dev/null and b/communication/bluetooth_on/signature/openharmony_sx.p7b differ
diff --git a/communication/bluetooth_on/src/main/config.json b/communication/bluetooth_on/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..0cdb831450385686d61f6e1027245be388ac694e
--- /dev/null
+++ b/communication/bluetooth_on/src/main/config.json
@@ -0,0 +1,60 @@
+{
+ "app": {
+ "bundleName": "ohos.acts.communication.bluetooth.bluetoothhost",
+ "vendor": "acts",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 5
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "ohos.acts.communication.bluetooth.bluetoothhost",
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "abilities": [
+ {
+ "visible": true,
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "name": "ohos.acts.communication.bluetooth.bluetoothhost.MainAbility",
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "standard"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
diff --git a/communication/bluetooth_on/src/main/js/default/app.js b/communication/bluetooth_on/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..363f2555b1badec9fec342a93141db084083fcb8
--- /dev/null
+++ b/communication/bluetooth_on/src/main/js/default/app.js
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+export default {
+ onCreate() {
+ console.info('AceApplication onCreate');
+ },
+ onDestroy() {
+ console.info('AceApplication onDestroy');
+ }
+};
diff --git a/communication/bluetooth_on/src/main/js/default/i18n/en-US.json b/communication/bluetooth_on/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/communication/bluetooth_on/src/main/js/default/i18n/en-US.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "Hello",
+ "world": "World"
+ }
+}
\ No newline at end of file
diff --git a/communication/bluetooth_on/src/main/js/default/i18n/zh-CN.json b/communication/bluetooth_on/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/communication/bluetooth_on/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/communication/bluetooth_on/src/main/js/default/pages/index/index.css b/communication/bluetooth_on/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..6fda792753f2e15f22b529c7b90a82185b2770bf
--- /dev/null
+++ b/communication/bluetooth_on/src/main/js/default/pages/index/index.css
@@ -0,0 +1,9 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.title {
+ font-size: 100px;
+}
diff --git a/communication/bluetooth_on/src/main/js/default/pages/index/index.hml b/communication/bluetooth_on/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184
--- /dev/null
+++ b/communication/bluetooth_on/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
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
new file mode 100644
index 0000000000000000000000000000000000000000..0b183159696d3347a6a31ff04a879a9e6b7e994b
--- /dev/null
+++ b/communication/bluetooth_on/src/main/js/default/pages/index/index.js
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2021 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 app from '@system.app'
+
+import {Core, ExpectExtend} from 'deccjsunit/index'
+
+export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ this.title = this.$t('strings.world');
+ },
+ onShow() {
+ console.info('onShow finish')
+ },
+ onReady() {
+ console.info('onReady finish')
+ const core = Core.getInstance()
+ const expectExtend = new ExpectExtend({
+ 'id': 'extend'
+ })
+ core.addService('expect', expectExtend)
+ core.init()
+
+ const configService = core.getDefaultService('config')
+ configService.setConfig(this)
+
+ require('../../test/List.test')
+ core.execute()
+
+ },
+}
+
diff --git a/communication/bluetooth_on/src/main/js/default/test/BluetoothOn.test.js b/communication/bluetooth_on/src/main/js/default/test/BluetoothOn.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..65e99845643fb0a3de5b63c07fa845be17ac9ea1
--- /dev/null
+++ b/communication/bluetooth_on/src/main/js/default/test/BluetoothOn.test.js
@@ -0,0 +1,660 @@
+/*
+ * Copyright (C) 2021 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'
+
+
+
+var SppType = {
+ SPP_RFCOMM : 0
+}
+
+var MatchMode = {
+ MATCH_MODE_AGGRESSIVE : 1,
+ MATCH_MODE_STICKY : 2
+}
+
+var MajorClass = {
+ MAJOR_MISC : 0x0000,
+ MAJOR_COMPUTER : 0x0100,
+ MAJOR_PHONE : 0x0200,
+ MAJOR_NETWORKING : 0x0300,
+ MAJOR_AUDIO_VIDEO : 0x0400,
+ MAJOR_PERIPHERAL : 0x0500,
+ MAJOR_IMAGING : 0x0600,
+ MAJOR_WEARABLE : 0x0700,
+ MAJOR_TOY : 0x0800,
+ MAJOR_HEALTH : 0x0900,
+ MAJOR_UNCATEGORIZED : 0x1F00
+}
+
+describe('bluetoothhostTest', function() {
+
+ var gattServer = null;
+ var gattClient = null;
+ beforeAll(function () {
+ console.info('beforeAll called')
+ gattServer = bluetooth.BLE.createGattServer();
+ console.info('[bluetooth_js] gattServer beforeAll is:' + JSON.stringify(gattServer));
+
+ gattClient = bluetooth.BLE.createGattClientDevice("00:00:00:00:00:00");
+ console.info('[bluetooth_js] GattClientDevice beforeAll is:' + JSON.stringify(gattClient));
+ })
+ 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))
+ }
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_ENABLE_0001
+ * @tc.name testEnableBluetooth
+ * @tc.desc Test EnableBluetooth api by promise.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_classic_enable_bluetooth_001', 0, async function (done) {
+ console.info('[bluetooth_js] enable start');
+ console.info('[bluetooth_js] enable register');
+ await bluetooth.on("stateChange", onReceiveEvent);
+ function onReceiveEvent(data) {
+ console.info('[bluetooth_js] enable data = '+ JSON.stringify(data));
+ if (data == bluetooth.BluetoothState.STATE_ON) {
+ console.info('enable bluetooth');
+ done();
+ }
+ }
+ console.info('[bluetooth_js]state on:' + JSON.stringify(bluetooth.BluetoothState.STATE_ON));
+ console.info('[bluetooth_js]off :' + JSON.stringify(bluetooth.BluetoothState.STATE_OFF));
+ console.info('[bluetooth_js] turning on :'
+ + JSON.stringify(bluetooth.BluetoothState.STATE_TURNING_ON));
+ console.info('[bluetooth_js] turning off :'
+ + JSON.stringify(bluetooth.BluetoothState.STATE_TURNING_OFF));
+ console.info('[bluetooth_js] ble turning on :'
+ + JSON.stringify(bluetooth.BluetoothState.STATE_BLE_TURNING_ON));
+ console.info('[bluetooth_js] ble on:'
+ + JSON.stringify(bluetooth.BluetoothState.STATE_BLE_ON));
+ console.info('[bluetooth_js] ble turning off :'
+ + JSON.stringify(bluetooth.BluetoothState.STATE_BLE_TURNING_OFF));
+ var enable = bluetooth.enableBluetooth();
+ expect(enable).assertEqual(true);
+ console.info('[bluetooth_js] enable On = '+ JSON.stringify(enable));
+ await sleep(10000);
+ var state = bluetooth.getState();
+ console.info('[bluetooth_js] getState On = '+ JSON.stringify(state));
+ await bluetooth.off('stateChange', result => {
+ console.info("stateChange off:" + JSON.stringify(result));
+ expect(true).assertEqual(result ==null);
+ done();
+ });
+ console.info('bluetooth enable done');
+ })
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_START_BLUETOOTH_DISCOVERY_0001
+ * @tc.name testClassicStartBluetoothDiscovery
+ * @tc.desc Test ClassicStartBluetoothDiscovery api.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_classic_start_discovery', 0, async function (done) {
+ console.info('[bluetooth_js] discovery start');
+ await bluetooth.on("bluetoothDeviceFind", onReceiveEvent)
+ console.info('[bluetooth_js] DeviceFind register');
+ function onReceiveEvent(data) {
+ console.info('[bluetooth_js] start discovery bluetoothDeviceFind '+ JSON.stringify(data))
+ console.info("[bluetooth_js] bluetooth discovery length -> " + data.length);
+ expect(data.length).assertLarger(0);
+ done();
+ }
+ await bluetooth.startBluetoothDiscovery();
+
+ await bluetooth.off('bluetoothDeviceFind', result => {
+ console.info("bluetoothDeviceFind off:" + JSON.stringify(result));
+ expect(true).assertEqual(result ==null);
+ done();
+ });
+ console.info('[bluetooth_js] discovery end');
+ done();
+ })
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_START_BLESCAN_WITHOUT_PARAM_0001
+ * @tc.name testClassicStartBLEScan
+ * @tc.desc Test ClassicStartBLEScan api.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_ble_start_scan_without_param', 0, async function (done) {
+ console.info('[bluetooth_js] BLE scan start without scan options start');
+ var enable = bluetooth.enableBluetooth();
+ expect(enable).assertEqual(true);
+ console.info('[bluetooth_js] enable On1 = '+ JSON.stringify(enable));
+ await sleep(5000);
+ var state = bluetooth.getState();
+ console.info('[bluetooth_js] getState On1 = '+ JSON.stringify(state));
+
+ await bluetooth.BLE.on("BLEDeviceFind", onReceiveEvent)
+ function onReceiveEvent(data) {
+ console.info('[bluetooth_js] BLE scan device find result3 = '+ JSON.stringify(data))
+ expect(data.length).assertLarger(0);
+ //bluetooth.BLE.stopBLEScan();
+ done();
+ }
+ bluetooth.BLE.startBLEScan([{}]);
+ bluetooth.BLE.off('BLEDeviceFind', result => {
+ console.info("[bluetooth_js] BLE scan device find off2:" + JSON.stringify(result));
+ expect(true).assertEqual(result ==null);
+ done();
+ });
+ console.info('[bluetooth_js] BLE scan start end');
+ done();
+ })
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_PAIR_DEVICE_0001
+ * @tc.name testClassicPairDevice
+ * @tc.desc Test ClassicPairDevice api.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_classic_pair_device_0001', 0, async function (done) {
+ console.info('[bluetooth_js] pair device start');
+ await bluetooth.BLE.on('pinRequired', result => {
+ console.info("[bluetooth_js] pinRequired on:" + JSON.stringify(result));
+ bluetooth.setDevicePairingConfirmation(result,false);
+ expect(true).assertEqual(result !=null);
+ done();
+ });
+ var enable = bluetooth.pairDevice("00:00:00:00:00:00")
+ bluetooth.BLE.off('pinRequired', result => {
+ console.info("[bluetooth_js] pinRequired off:" + JSON.stringify(result));
+ expect(true).assertEqual(result ==null);
+ done();
+ });
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_PAIR_DEVICE_0002
+ * @tc.name testClassicPairDevice
+ * @tc.desc Test ClassicPairDevice api.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_classic_pair_device_0002', 0, async function (done) {
+ console.info('[bluetooth_js] pair device start');
+ await bluetooth.BLE.on('bondStateChange', result => {
+ console.info("[bluetooth_js] bondStateChange on:" + JSON.stringify(result));
+ console.info('[bluetooth_js] bondStateChange deviceId: ' + data.deviceId);
+ console.info('[bluetooth_js] bondStateChange state: ' + data.state);
+ expect(true).assertEqual(result !=null);
+ done();
+ });
+ var enable = bluetooth.pairDevice("00:00:00:00:00:00")
+ bluetooth.BLE.off('bondStateChange', result => {
+ console.info("[bluetooth_js] bondStateChange off:" + JSON.stringify(result));
+ expect(true).assertEqual(result ==null);
+ done();
+ });
+ console.info('[bluetooth_js]INVALID' + JSON.stringify(bluetooth.BondState.BOND_STATE_INVALID));
+ console.info('[bluetooth_js]BONDING' + JSON.stringify(bluetooth.BondState.BOND_STATE_BONDING));
+ console.info('[bluetooth_js]BONDED' + JSON.stringify(bluetooth.BondState.BOND_STATE_BONDED));
+ })
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_SPP_LISTEN_0001
+ * @tc.name testSppListen
+ * @tc.desc Test SppListen api by callback.
+ * @tc.author quanli 00313334
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_spp_listen', 0, async function (done) {
+ console.log("[bluetooth_js]: spp listen start");
+ let sppOption = {uuid: '00001810-0000-1000-8000-00805F9B34FB',
+ secure: false, type: 0};
+ for (var key in sppOption ){
+ console.info('[bluetooth_js] sppListen:'+ sppOption[key]);
+ }
+ bluetooth.sppListen('server1', sppOption, function(code, serverSocketNumber) {
+ if (code.code == 0) {
+ console.info('[bluetooth_js] code is success');
+ console.info('[bluetooth_js] code is: ' + code.code);
+ expect(true).assertEqual(true);
+ done();
+ } else {
+ console.info('[bluetooth_js] code is failed');
+ console.info('[bluetooth_js] code is: ' + code.code);
+ expect(true).assertEqual(false);
+ done();
+ }
+ });
+ console.log("[bluetooth_js] spp listen end");
+ })
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetoothble_DEVICE_JS_CHARAC_READ_ON_0001
+ * @tc.name testonCharacteristicReadOn
+ * @tc.desc Test CharacteristicReadOn api .
+ * @tc.author zhangyujie zwx1079266
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetoothble_CharacteristicReadOn_test_001', 0, async function (done) {
+ try {
+ console.info('[bluetooth_js] CharacteristicReadOn test start');
+ if (gattServer == null) {
+ console.info("[bluetooth_js] : click onCreateGattServer first!");
+ }
+ await gattServer.on('characteristicRead', function (data) {
+ console.info('[bluetooth_js] charRead callback data ->');
+ console.info('[bluetooth_js] CharRedReq deviceId: ' + data.deviceId);
+ console.info('[bluetooth_js] CharRedReq transId: ' + data.transId);
+ console.info('[bluetooth_js] CharRedReq offset: ' + data.offset);
+ console.info('[bluetooth_js] CharRedReq charUuid: ' + data.characteristicUuid);
+ console.info('[bluetooth_js] CharRedReq serviceUuid: ' + data.serviceUuid);
+ var serverResponse = {
+ "deviceId": data.deviceId,
+ "transId": data.transId,
+ "status": 0,
+ "offset": data.offset,
+ "value": str2ab("characteristic read response", data.offset),
+ };
+ var result = gattServer.sendResponse(serverResponse);
+ console.info("[bluetooth_js] sendResponse -> " + JSON.stringify(result));
+ expect(JSON.stringify(result)).assertContain("true");
+ console.info("[bluetooth_js] onBlePeripheralManagerClose .");
+ });
+ }catch(e) {
+ expect(null).assertFail();
+ }
+
+ try {
+ console.info('[bluetooth_js] characteristicRead test1 start');
+ if (gattServer == null) {
+ console.info("[bluetooth_js] :plese CreateGattServer first!");
+ }
+ await gattServer.off('characteristicRead', function (data) {
+ console.info("[bluetooth_js] charaRead off jsdata1:" + JSON.stringify(data));
+ console.info("[bluetooth_js] charaRead off data1:" + data);
+ expect(true).assertEqual(data ==null);
+ });
+ }catch(e) {
+ expect(null).assertFail();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetoothble_DEVICE_JS_CHARAC_WRITE_ON_0001
+ * @tc.name testonCharacteristicwriteOn
+ * @tc.desc Test CharacteristicwriteOn api .
+ * @tc.author zhangyujie zwx1079266
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetoothble_CharacteristicwriteOn_test_001', 0, async function (done) {
+ try {
+ console.info('[bluetooth_js] CharacteristicwriteOn test start');
+ if (gattServer == null) {
+ console.info("[bluetooth_js] : click onCreateGattServer first!");
+ }
+ await gattServer.on('characteristicWrite', function (data) {
+ console.info('[bluetooth_js] characteristicWrite callback data ->');
+ console.info('[bluetooth_js] CharWriReq deviceId: ' + data.deviceId);
+ console.info('[bluetooth_js] CharWriReq transId: ' + data.transId);
+ console.info('[bluetooth_js] CharWriReq offset: ' + data.offset);
+ console.info('[bluetooth_js] CharWriReq isPrep: ' + data.isPrep);
+ console.info('[bluetooth_js] CharWriReq chaticUuid: ' + data.characteristicUuid);
+ console.info('[bluetooth_js] CharWriReq serviceUuid: ' + data.serviceUuid);
+ console.info('[bluetooth_js] CharWriReq value: ' + data.value);
+ console.info('[bluetooth_js] CharWriReq needRsp: ' + data.needRsp);
+ if (data.value instanceof ArrayBuffer) {
+ console.log(`[bluetooth_js] value: ${ab2hex(data.value)}`)
+ }
+ console.info('[bluetooth_js] characteristicUuid: ' + data.characteristicUuid);
+ console.info('[bluetooth_js] serviceUuid: ' + data.serviceUuid);
+ if (data.needRsp == false) {
+ return;
+ }
+ console.log(`data.value is ArraryBuffer: ${ab2hex(data.value)}`)
+ var serverResponse = {
+ "deviceId": data.deviceId,
+ "transId": data.transId,
+ "status": 0,
+ "offset": data.offset,
+ "value": data.value,
+ };
+ var result = gattServer.sendResponse(serverResponse);
+ console.info("[bluetooth_js] sendResponse:" + JSON.stringify(result));
+ expect(JSON.stringify(result)).assertContain("true");
+ console.info("[bluetooth_js] characteristicWrite end");
+ });
+ }catch(e) {
+ expect(null).assertFail();
+ }
+
+ try {
+ console.info('[bluetooth_js] characteristicWrite test1 start');
+ if (gattServer == null) {
+ console.info("[bluetooth_js] :plese CreateGattServer first!");
+ }
+ await gattServer.off('characteristicWrite', function (data) {
+ console.info("[bluetooth_js] charaWrite off jsdata2:" + JSON.stringify(data));
+ console.info("[bluetooth_js] charaWrite off data2:" + data);
+ expect(true).assertEqual(data ==null);
+ });
+ }catch(e) {
+ expect(null).assertFail();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_DESC_READ_ON_0001
+ * @tc.name testDescriptorReadOn
+ * @tc.desc Test DescriptorReadOn api .
+ * @tc.author zhangyujie zwx1079266
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_descriptorRead_On_test_001', 0, async function (done) {
+ try {
+ console.info('[bluetooth_js] descriptorReadOn test start ...');
+ if (gattServer == null) {
+ console.info("[bluetooth_js] onAddServiceHelper: click onCreateGattServer first!");
+ }
+ await gattServer.on('descriptorRead', function (data) {
+ console.info("[bluetooth_js] DesRedon jsondata:" + JSON.stringify(data));
+ console.info("[bluetooth_js] DesRedon data:" + data);
+ expect(true).assertEqual(data !=null);
+ console.info('[bluetooth_js] desRead callback data ->');
+ console.info('[bluetooth_js] DesRedReq deviceId:' + data.deviceId);
+ console.info('[bluetooth_js] DesRedReq transId:' + data.transId);
+ console.info('[bluetooth_js] DesRedReq offset:' + data.offset);
+ console.info('[bluetooth_js] DesRedReq desUuid:' + data.descriptorUuid);
+ console.info('[bluetooth_js] DesRedReq charUuid:' + data.characteristicUuid);
+ console.info('[bluetooth_js] DesRedReq serUuid:' + data.serviceUuid);
+ });
+ }catch(e) {
+ expect(null).assertFail();
+ }
+
+ try {
+ console.info('[bluetooth_js] descriptorReadOff test start ...');
+ if (gattServer == null) {
+ console.info("[bluetooth_js] onAddServiceHelper:click onCreateGattServer first!");
+ }
+ await gattServer.off('descriptorRead', function (data) {
+ console.info("[bluetooth_js] descriptorRead_off json_data-> " + JSON.stringify(data));
+ console.info("[bluetooth_js] descriptorRead_off data -> " + data);
+ expect(true).assertEqual(data ==null);
+ });
+ }catch(e) {
+ expect(null).assertFail();
+ }
+ done();
+ })
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_DESC_WRITE_ON_0001
+ * @tc.name testDescriptorWriteOn
+ * @tc.desc Test DescriptorWriteOn api .
+ * @tc.author zhangyujie zwx1079266
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_descriptorWrite_On_test_001', 0, async function (done) {
+ try {
+ console.info('[bluetooth_js] descriptorWriteOn test start ...');
+ if (gattServer == null) {
+ console.info("[bluetooth_js] onAddServiceHelper: click onCreateGattServer first!");
+ }
+ await gattServer.on('descriptorWrite', function (data) {
+ console.info("[bluetooth_js] desWriOn jsondata: " + JSON.stringify(data));
+ console.info("[bluetooth_js] desWriOn data:" + data);
+ expect(true).assertEqual(data !=null);
+
+ console.info('[bluetooth_js] desWrite callback data ->');
+ console.info('[bluetooth_js] desWriOn deviceId: ' + data.deviceId);
+ console.info('[bluetooth_js] desWriOn transId: ' + data.transId);
+ console.info('[bluetooth_js] desWriOn offset: ' + data.offset);
+ console.info('[bluetooth_js] desWriOn desUuid: ' + data.descriptorUuid);
+ console.info('[bluetooth_js] desWriOn serUuid: ' + data.serviceUuid);
+ console.info('[bluetooth_js] desWriOn charUuid: ' + data.characteristicUuid);
+ console.info('[bluetooth_js] desWriOn value: ' + data.value);
+ console.info('[bluetooth_js] desWriOn needRsp: ' + data.needRsp);
+ console.info('[bluetooth_js] desWriOn isPrep: ' + data.isPrep);
+ });
+ }catch(e) {
+ expect(null).assertFail();
+ }
+
+ try {
+ console.info('[bluetooth_js] descriptorWriteOff test start ...');
+ if (gattServer == null) {
+ console.info("[bluetooth_js] onAddServiceHelper: please click CreateGattServer first!");
+ }
+ await gattServer.off('descriptorWrite', function (data) {
+ console.info("[bluetooth_js] desWriOff jsonData-> " + JSON.stringify(data));
+ console.info("[bluetooth_js] desWriOff data -> " + data);
+ expect(true).assertEqual(data ==null);
+ });
+ }catch(e) {
+ expect(null).assertFail();
+ }
+ done();
+ })
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_CONNE_STATE_CHANGE_ON_0001
+ * @tc.name testConnectStateChangeOn
+ * @tc.desc Test ConnectStateChangeOn api .
+ * @tc.author zhangyujie zwx1079266
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_connectStateChange_On_test_001', 0, async function (done) {
+ try {
+ console.info('[bluetooth_js] ConnectStateChangeOn test start ...');
+ if (gattServer == null) {
+ console.info("[bluetooth_js] on: click CreateGattServer first!");
+ }
+ await gattServer.on('connectStateChange', function (data) {
+ console.info("[bluetooth_js] connectStaOn jsonData -> " + JSON.stringify(data));
+ console.info("[bluetooth_js] connectStaOn data -> " + data);
+ expect(true).assertEqual(data !=null);
+ console.info('[bluetooth_js] connectStaOn callback data ->');
+ console.info('[bluetooth_js] connectStaOn deviceId: ' + data.deviceId);
+ console.info('[bluetooth_js] connectStaOn state: ' + data.state);
+ });
+ }catch(e) {
+ expect(null).assertFail();
+ }
+
+ try {
+ console.info('[bluetooth_js] ConnectStateChangeOff test start ...');
+ if (gattServer == null) {
+ console.info("[bluetooth_js] on: please click onCreateGattServer first!");
+ }
+ await gattServer.off('connectStateChange', function (data) {
+ console.info("[bluetooth_js] connectStateChange_off jsonData-> " + JSON.stringify(data));
+ console.info("[bluetooth_js] connectStateChange_off data -> " + data);
+ expect(true).assertEqual(data ==null);
+ });
+ }catch(e) {
+ expect(null).assertFail();
+ }
+ done();
+ })
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_BLE_CHAR_CHANGE_ON_0001
+ * @tc.name testBLECharacteristicChangeOn
+ * @tc.desc Test BLECharacteristicChangeOn api .
+ * @tc.author zhangyujie zwx1079266
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_BLECharacteristicChange_On_test_001', 0, async function (done) {
+ try {
+ console.info('[bluetooth_js] BLECharacteristicChangeOn test start ...');
+ if (gattClient == null) {
+ console.info("[bluetooth_js] OnGattclientClose:click onCreateGattClientDevice first!");
+ }
+ await gattClient.on('BLECharacteristicChange', function (data) {
+ console.info("[bluetooth_js] BLECharacteristicChange data " + JSON.stringify(data));
+ console.info("[bluetooth_js] BLECharacteristicChange_on data -> " + data);
+ expect(true).assertEqual(data !=null);
+ });
+ }catch(e) {
+ expect(null).assertFail();
+ }
+
+ try {
+ console.info('[bluetooth_js] BLECharacteristicChangeOff test start');
+ if (gattClient == null) {
+ console.info("[bluetooth_js] OnGattclientClose: CreateGattClientDevice first!");
+ }
+ await gattClient.off('BLECharacteristicChange', function (data) {
+ console.info("[bluetooth_js] BLECharcChange_off json_data-> " + JSON.stringify(data));
+ console.info("[bluetooth_js] BLECharcChange_off data -> " + data);
+ expect(true).assertEqual(data ==null);
+ });
+ }catch(e) {
+ expect(null).assertFail();
+ }
+ done();
+ })
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_BLE_CONNE_STATE_CHANGE_ON_0001
+ * @tc.name testBLEConnectionStateChangeOn
+ * @tc.desc Test BLEConnectionStateChangeOn api .
+ * @tc.author zhangyujie zwx1079266
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_BLEConnectionStateChange_On_test_001', 0, async function (done) {
+ try {
+ console.info('[bluetooth_js] BLEConnectionStateChangeOn test start');
+ if (gattClient == null) {
+ console.info("[bluetooth_js] GattclientClose:CreateGattClientDevice first!");
+ }
+ await gattClient.on('BLEConnectionStateChange', function (data) {
+ console.info("[bluetooth_js] BLEConnecStateChange_on data " + JSON.stringify(data));
+ console.info("[bluetooth_js] BLEConneStateChange_on data -> " + data);
+ expect(true).assertEqual(data !=null);
+
+ console.info('[bluetooth_js] BLEConneStateChange deviceId : ' + data.deviceId);
+ console.info('[bluetooth_js] BLEConneStateChange state : ' + data.state);
+ });
+ }catch(e) {
+ expect(null).assertFail();
+ }
+
+ try {
+ console.info('[bluetooth_js] BLEConnectionStateChangeOff test start');
+ if (gattClient == null) {
+ console.info("[bluetooth_js] GattclientClose:click CreateGattClientDevice first!");
+ }
+ await gattClient.off('BLEConnectionStateChange', function (data) {
+ console.info("[bluetooth_js] BLEConneStateChange_off data-> " + JSON.stringify(data));
+ console.info("[bluetooth_js] BLEConneStateChange_off data -> " + data);
+ expect(true).assertEqual(data ==null);
+ });
+ }catch(e) {
+
+ expect(null).assertFail();
+ }
+ done();
+ })
+
+
+ /**
+ * @tc.number SUB_COMMUNACATION_bluetoothble_DEVICE_JS_SPP_READ_ON_0001
+ * @tc.name testonsppReadOn
+ * @tc.desc Test sppReadOn api .
+ * @tc.author zhangyujie zwx1079266
+ * @tc.size MEDIUM
+ * @tc.type Function
+ * @tc.level Level 2
+ */
+ it('bluetooth_sppReadOn_test_001', 0, async function (done) {
+ try {
+ console.info('[bluetooth_js] sppReadOn test start');
+ console.info('bluetooth sppReadOn test start ...');
+ await bluetooth.on("sppRead",-1, (result) => {
+ console.info("[bluetooth_js] sppReadOn json_result -> " + JSON.stringify(result));
+ console.info("[bluetooth_js] sppReadOn result -> " + result);
+ expect(true).assertEqual(result !=null);
+ });
+ }catch(e) {
+ expect(null).assertFail();
+ }
+
+ try {
+ console.info('[bluetooth_js] sppReadOff test start ...');
+ await bluetooth.off("sppRead",-1, (result) => {
+ console.info("[bluetooth_js] sppReadOff json_result -> " + JSON.stringify(result));
+ console.info("[bluetooth_js] sppReadOff result -> " + result);
+ expect(true).assertEqual(result ==null);
+ });
+ }catch(e) {
+ expect(null).assertFail();
+ }
+ done();
+ })
+
+})
+
diff --git a/communication/bluetooth_on/src/main/js/default/test/List.test.js b/communication/bluetooth_on/src/main/js/default/test/List.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..bd39458f3a158c2195f8fb4188e526971f9833c7
--- /dev/null
+++ b/communication/bluetooth_on/src/main/js/default/test/List.test.js
@@ -0,0 +1,16 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+require('./BluetoothOn.test.js')
diff --git a/communication/bluetooth_on/src/main/resources/base/element/string.json b/communication/bluetooth_on/src/main/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..14f9c3a9210f78b12caf3b945dc2b2c0f63f7d3d
--- /dev/null
+++ b/communication/bluetooth_on/src/main/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "OsAccountTest"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Phone_Empty Feature Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/communication/bluetooth_on/src/main/resources/base/media/icon.png b/communication/bluetooth_on/src/main/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/communication/bluetooth_on/src/main/resources/base/media/icon.png differ
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 664f1cc9e85567cf5c60ae9434260512ec9c4734..7f50d400a6e707b9edc36ce36e50f5021e5ad2e8 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
@@ -47,11 +47,6 @@ describe('bluetoothhostTest', function() {
var gattClient = null;
beforeAll(function () {
console.info('beforeAll called')
- gattServer = bluetooth.BLE.createGattServer();
- console.info('[bluetooth_js] gattServer beforeAll is:' + JSON.stringify(gattServer));
-
- gattClient = bluetooth.BLE.createGattClientDevice("00:00:00:00:00:00");
- console.info('[bluetooth_js] GattClientDevice beforeAll is:' + JSON.stringify(gattClient));
})
beforeEach(function () {
console.info('beforeEach called')
@@ -68,8 +63,8 @@ describe('bluetoothhostTest', function() {
return new Promise(resovle => setTimeout(resovle, delay))
}
-
- /**
+
+ /**
* @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_ENABLE_0001
* @tc.name testEnableBluetooth
* @tc.desc Test EnableBluetooth api by promise.
@@ -80,15 +75,12 @@ describe('bluetoothhostTest', function() {
*/
it('bluetooth_classic_enable_bluetooth_001', 0, async function (done) {
console.info('[bluetooth_js] enable start');
- console.info('[bluetooth_js] enable register');
- await bluetooth.on("stateChange", onReceiveEvent);
- function onReceiveEvent(data) {
- console.info('[bluetooth_js] enable data = '+ JSON.stringify(data));
- if (data == bluetooth.BluetoothState.STATE_ON) {
- console.info('enable bluetooth');
- done();
- }
- }
+ var enable = bluetooth.enableBluetooth();
+ expect(enable).assertEqual(true);
+ console.info('[bluetooth_js] enable On = '+ JSON.stringify(enable));
+ await sleep(2000);
+ var state = bluetooth.getState();
+ console.info('[bluetooth_js] getState On = '+ JSON.stringify(state));
console.info('[bluetooth_js]state on:' + JSON.stringify(bluetooth.BluetoothState.STATE_ON));
console.info('[bluetooth_js]off :' + JSON.stringify(bluetooth.BluetoothState.STATE_OFF));
console.info('[bluetooth_js] turning on :'
@@ -101,16 +93,6 @@ describe('bluetoothhostTest', function() {
+ JSON.stringify(bluetooth.BluetoothState.STATE_BLE_ON));
console.info('[bluetooth_js] ble turning off :'
+ JSON.stringify(bluetooth.BluetoothState.STATE_BLE_TURNING_OFF));
- var enable = bluetooth.enableBluetooth();
- expect(enable).assertEqual(true);
- await sleep(3000);
- var state = bluetooth.getState();
- console.info('[bluetooth_js] getState On = '+ JSON.stringify(state));
- await bluetooth.off('stateChange', result => {
- console.info("stateChange off:" + JSON.stringify(result));
- expect(true).assertEqual(result ==null);
- done();
- });
console.info('bluetooth enable done');
})
@@ -269,25 +251,12 @@ describe('bluetoothhostTest', function() {
* @tc.type Function
* @tc.level Level 2
*/
- it('bluetooth_classic_start_discovery', 0, async function (done) {
+ it('bluetooth_classic_start_discovery', 0, function () {
console.info('[bluetooth_js] discovery start');
- await bluetooth.on("bluetoothDeviceFind", onReceiveEvent)
- console.info('[bluetooth_js] DeviceFind register');
- function onReceiveEvent(data) {
- console.info('[bluetooth_js] start discovery bluetoothDeviceFind '+ JSON.stringify(data))
- console.info("[bluetooth_js] bluetooth discovery length -> " + data.length);
- expect(data.length).assertLarger(0);
- done();
- }
- await bluetooth.startBluetoothDiscovery();
-
- await bluetooth.off('bluetoothDeviceFind', result => {
- console.info("bluetoothDeviceFind off:" + JSON.stringify(result));
- expect(true).assertEqual(result ==null);
- done();
- });
+ let result = bluetooth.startBluetoothDiscovery();
+ console.info('[bluetooth_js] get bt connection state result' + JSON.stringify(result));
+ expect(result).assertEqual(true);
console.info('[bluetooth_js] discovery end');
- done();
})
/**
@@ -326,288 +295,6 @@ describe('bluetoothhostTest', function() {
})
- /**
- * @tc.number SUB_COMMUNACATION_bluetoothble_DEVICE_JS_GET_CONNECTED_BLEDEVICES_0001
- * @tc.name testGetConnectedBLEDevices
- * @tc.desc Test getConnectedBLEDevices api .
- * @tc.author zhangyujie zwx1079266
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_getConnectedBLEDevices_test_001', 0, function () {
- console.info('[bluetooth_js] getConnectedBLEDevices test start ...');
- var result = bluetooth.BLE.getConnectedBLEDevices();
- console.info("[bluetooth_js] getConnectedBLEDevices:" + JSON.stringify(result));
- console.info("[bluetooth_js] getConnectedBLEDevices length:" + result.length);
- expect(result.length).assertEqual(0);
- console.info('[bluetooth_js] getConnectedBLEDevices end');
- })
-
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetoothble_DEVICE_JS_CREATE_GATT_SERVER_0002
- * @tc.name testCreateGattServer
- * @tc.desc Test CreateGattServer api .
- * @tc.author zhangyujie zwx1079266
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_createGattServer_test_001', 0, function () {
- console.info('[bluetooth_js] createGattServer test start ...');
- var result = bluetooth.BLE.createGattServer();
- console.info("[bluetooth_js] createGattServer:" + JSON.stringify(result));
- var resultLength = Object.keys(result).length;
- console.info("[bluetooth_js] createGattServer length:" + resultLength);
- expect(resultLength).assertEqual(1);
- console.info('[bluetooth_js] createGattServer end');
- })
-
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_START_BLESCAN_WITHOUT_PARAM_0001
- * @tc.name testClassicStartBLEScan
- * @tc.desc Test ClassicStartBLEScan api.
- * @tc.author quanli 00313334
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_ble_start_scan_without_param', 0, async function (done) {
- console.info('[bluetooth_js] BLE scan start without scan options start');
- await bluetooth.BLE.on("BLEDeviceFind", onReceiveEvent)
- function onReceiveEvent(data) {
- console.info('[bluetooth_js] BLE scan device find result3 = '+ JSON.stringify(data))
- expect(data.length).assertLarger(0);
- bluetooth.BLE.stopBLEScan();
- done();
- }
- bluetooth.BLE.startBLEScan([{}]);
- bluetooth.BLE.off('BLEDeviceFind', result => {
- console.info("[bluetooth_js] BLE scan device find off2:" + JSON.stringify(result));
- expect(true).assertEqual(result ==null);
- done();
- });
- console.info('[bluetooth_js] BLE scan start end');
- done();
- })
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_PAIR_DEVICE_0001
- * @tc.name testClassicPairDevice
- * @tc.desc Test ClassicPairDevice api.
- * @tc.author quanli 00313334
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_classic_pair_device_0001', 0, async function (done) {
- console.info('[bluetooth_js] pair device start');
- await bluetooth.BLE.on('pinRequired', result => {
- console.info("[bluetooth_js] pinRequired on:" + JSON.stringify(result));
- expect(true).assertEqual(result !=null);
- done();
- });
- var enable = bluetooth.pairDevice("00:00:00:00:00:00")
- bluetooth.BLE.off('pinRequired', result => {
- console.info("[bluetooth_js] pinRequired off:" + JSON.stringify(result));
- expect(true).assertEqual(result ==null);
- done();
- });
- })
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_PAIR_DEVICE_0002
- * @tc.name testClassicPairDevice
- * @tc.desc Test ClassicPairDevice api.
- * @tc.author quanli 00313334
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_classic_pair_device_0002', 0, async function (done) {
- console.info('[bluetooth_js] pair device start');
- await bluetooth.BLE.on('bondStateChange', result => {
- console.info("[bluetooth_js] bondStateChange on:" + JSON.stringify(result));
- console.info('[bluetooth_js] bondStateChange deviceId: ' + data.deviceId);
- console.info('[bluetooth_js] bondStateChange state: ' + data.state);
- expect(true).assertEqual(result !=null);
- done();
- });
- var enable = bluetooth.pairDevice("00:00:00:00:00:00")
- bluetooth.BLE.off('bondStateChange', result => {
- console.info("[bluetooth_js] bondStateChange off:" + JSON.stringify(result));
- expect(true).assertEqual(result ==null);
- done();
- });
- console.info('[bluetooth_js]INVALID' + JSON.stringify(bluetooth.BondState.BOND_STATE_INVALID));
- console.info('[bluetooth_js]BONDING' + JSON.stringify(bluetooth.BondState.BOND_STATE_BONDING));
- console.info('[bluetooth_js]BONDED' + JSON.stringify(bluetooth.BondState.BOND_STATE_BONDED));
- })
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_START_ADVERTISING_0001
- * @tc.name testStartAdvertising
- * @tc.desc Test StartAdvertising api.
- * @tc.author quanli 00313334
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_ble_start_advertising', 0, function () {
- console.info('[bluetooth_js] BLE advertising start');
- var manufactureValueBuffer = new Uint8Array(4);
- manufactureValueBuffer[0] = 1;
- manufactureValueBuffer[1] = 2;
- manufactureValueBuffer[2] = 3;
- manufactureValueBuffer[3] = 4;
-
- var serviceValueBuffer = new Uint8Array(4);
- serviceValueBuffer[0] = 4;
- serviceValueBuffer[1] = 6;
- serviceValueBuffer[2] = 7;
- serviceValueBuffer[3] = 8;
- console.info('manufactureValueBuffer = '+ JSON.stringify(manufactureValueBuffer))
- console.info('serviceValueBuffer = '+ JSON.stringify(serviceValueBuffer))
- var gattServer = bluetooth.BLE.createGattServer()
- let setting ={
- interval:150,
- txPower:60,
- connectable:true,
- };
- for (var key in setting ){
- console.info('[bluetooth_js] startAdv:' +setting[key]);
- }
-
- let advData = {
- serviceUuids:["12"],
- manufactureData:[{manufactureId:4567,manufactureValue:manufactureValueBuffer.buffer}],
- serviceData:[{serviceUuid:"1234",serviceValue:serviceValueBuffer.buffer}],
- };
- for (var key in advData ){
- console.info('[bluetooth_js] startAdv:' +advData[key]);
- }
-
- gattServer.startAdvertising(setting,advData,{
- serviceUuids:["12"],
- manufactureData:[{
- manufactureId:1789,
- manufactureValue:manufactureValueBuffer.buffer
- }],
- serviceData:[{
- serviceUuid:"1794",
- serviceValue:serviceValueBuffer.buffer
- }],
- });
- console.info('[bluetooth_js] BLE start advertising end');
- })
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_STOP_ADVERTISING_0001
- * @tc.name testStopAdvertising
- * @tc.desc Test StopAdvertising api.
- * @tc.author quanli 00313334
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_ble_stop_advertising', 0, function () {
- console.info('[bluetooth_js] BLE stop advertising start');
- var gattServer = bluetooth.BLE.createGattServer();
- gattServer.stopAdvertising();
- console.info('[bluetooth_js] BLE stop advertising end');
- })
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GET_DEVICE_NAME_PROMISE_0001
- * @tc.name testGetDeviceName
- * @tc.desc Test GetDeviceName api by promise.
- * @tc.author quanli 00313334
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_ble_get_device_name_promise', 0, async function (done) {
- console.info('BLE get device name promise start');
- var gattClient = gattClient = bluetooth.BLE.createGattClientDevice("00:00:00:00:00:00");
- await gattClient.getDeviceName().then((data) => {
- console.info('[bluetooth_js] device name' + JSON.stringify(data))
- done();
- })
- console.info('BLE get device name promise end')
- })
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GET_RSSI_VALUE_CALLBACK
- * @tc.name testGetRssiValue
- * @tc.desc Test GetRssiValue api by callback.
- * @tc.author quanli 00313334
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_ble_read_rssi', 0, async function (done) {
- console.info('[bluetooth_js] BLE get rssi1 start');
- var gattClient = bluetooth.BLE.createGattClientDevice("00:00:00:00:00:00");
- gattClient.getRssiValue((err, data)=> {
- console.info('[bluetooth_js] rssi err:' + JSON.stringify(err));
- console.info('[bluetooth_js] rssi value:' + JSON.stringify(data));
- expect(data).assertNull();
- console.info('[bluetooth_js] BLE read rssi1 end');
- done();
- });
- })
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GET_RSSI_VALUE_PROMISE_0001
- * @tc.name testGetRssiValue
- * @tc.desc Test GetRssiValue api by promise.
- * @tc.author quanli 00313334
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_ble_read_rssi_promise', 0, async function (done) {
- console.info('[bluetooth_js] BLE get rssi start');
- var gattClient = bluetooth.BLE.createGattClientDevice("00:00:00:00:00:00");
- await gattClient.getRssiValue().then((data) => {
- if (data != null) {
- console.info('[bluetooth_js] rssi' + JSON.stringify(data));
- done();
- expect(true).assertEqual(true);
- } else {
- console.info('[bluetooth_js] BLE read rssi ' + JSON.stringify(data));
- var rssiLength = Object.keys(data).length;
- console.info("[bluetooth_js] ble rssi_length -> " + rssiLength);
- expect(rssiLength).assertEqual(0);
- done();
- }
- }).catch(err => {
- console.error(`bluetooth getRssiValue has error: ${err}`);
- expect(true).assertEqual(true);
- done();
- });
- })
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_CONNRCT_0001
- * @tc.name testConnect
- * @tc.desc Test Connect api.
- * @tc.author quanli 00313334
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_gatt_connect', 0, function () {
- console.info('[bluetooth_js] gatt connect start');
- gattClient = bluetooth.BLE.createGattClientDevice("00:00:00:00:00:00");
- let ret = gattClient.connect();
- console.info('[bluetooth_js] gatt connect ret : ' + ret);
- expect(ret).assertEqual(true);
- console.info('[bluetooth_js] gatt connect end');
- })
-
/**
* @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_DISCONNRCT_0001
* @tc.name testDisConnect
@@ -625,54 +312,6 @@ describe('bluetoothhostTest', function() {
console.info('[bluetooth_js] gatt disconnect end');
})
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_GETSERVICES_CALLBACK_0001
- * @tc.name testGetServices
- * @tc.desc Test GetServices api by callback.
- * @tc.author quanli 00313334
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_ble_get_services_callback_001', 0, async function (done) {
- console.info('[bluetooth_js] getServices callback start');
- var gattClient = bluetooth.BLE.createGattClientDevice("00:00:00:00:00:00");
- gattClient.getServices((err, data)=> {
- console.info('[bluetooth_js] device name err1 ' + JSON.stringify(err));
- console.info('[bluetooth_js] device name1' + JSON.stringify(data));
- done();
- })
- console.info('[bluetooth_js] getServices callback end');
- })
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_GETSERVICES_PROMISE_0001
- * @tc.name testGetServices
- * @tc.desc Test GetServices api by promise.
- * @tc.author quanli 00313334
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_gatt_getServices_promise', 0, async function (done) {
- console.info('[bluetooth_js] getServices promise start');
- var gattClient = bluetooth.BLE.createGattClientDevice("00:00:00:00:00:00");
- await gattClient.getServices().then((object) => {
- if (object != null) {
- console.info('[bluetooth_js] getServices is null');
- expect(true).assertEqual(true);
- } else {
- console.info('[bluetooth_js] getServices is successfully');
- console.info('[bluetooth_js] getServices data:' + JSON.stringify(object));
- expect(null).assertFail();
- }
- done();
- }).catch(err => {
- console.error(`bluetooth getServices has error: ${err}`);
- expect(true).assertEqual(true);
- done();
- });
- })
/**
* @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_READ_CHARA_VALUE_0001
@@ -865,68 +504,6 @@ describe('bluetoothhostTest', function() {
console.info('[bluetooth_js] setNotifyCharacteristicChanged end');
})
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_ADD_SERVICE_0001
- * @tc.name testAddService
- * @tc.desc Test AddService api.
- * @tc.author quanli 00313334
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_gatt_addService', 0, function () {
- console.info('[bluetooth_js] addService start');
- gattServer = bluetooth.BLE.createGattServer();
-
- let descriptors = [];
- let arrayBuffer = new ArrayBuffer(8);
- let desValue = new Uint8Array(arrayBuffer);
- desValue[0] = 11;
-
- let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
- characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB',
- descriptorUuid: '00001830-0000-1000-8000-00805F9B34FB',
- descriptorValue: arrayBuffer};
- descriptors[0] = descriptor;
-
- let characteristics = [];
- let arrayBufferCCC = new ArrayBuffer(8);
- let cccValue = new Uint8Array(arrayBufferCCC);
- cccValue[0] = 1;
- let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
- characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB',
- characteristicValue: arrayBufferCCC, descriptors:descriptors};
- characteristics[0] = characteristic;
-
- let service = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
- isPrimary: true, characteristics: characteristics, includeServices: []};
- for (var key in service ){
- console.info('[bluetooth_js] addService:' +service[key]);
- }
- let ret = gattServer.addService(service);
- console.info('[bluetooth_js] bluetooth addService ret : ' + ret);
- expect(ret).assertEqual(true);
- console.info('[bluetooth_js] addService end');
- })
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_REMOVE_SERVICE_0001
- * @tc.name testRemoveService
- * @tc.desc Test RemoveService api.
- * @tc.author quanli 00313334
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_gatt_removeService', 0, function () {
- console.info('[bluetooth_js] removeService start');
- gattServer = bluetooth.BLE.createGattServer();
- let ret = gattServer.removeService('00001810-0000-1000-8000-008000000000');
- console.info('[bluetooth_js] removeService ret : ' + ret);
- expect(ret).assertEqual(false);
- console.info('[bluetooth_js] removeService end');
- })
-
/**
* @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_GATT_NOTIFY_CHARA_CHANGED_0001
* @tc.name testNotifyCharacteristicChanged
@@ -1116,355 +693,6 @@ describe('bluetoothhostTest', function() {
console.info('[bluetooth_js] spp write end');
})
- /**
- * @tc.number SUB_COMMUNACATION_bluetoothble_DEVICE_JS_CHARAC_READ_ON_0001
- * @tc.name testonCharacteristicReadOn
- * @tc.desc Test CharacteristicReadOn api .
- * @tc.author zhangyujie zwx1079266
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetoothble_CharacteristicReadOn_test_001', 0, async function (done) {
- try {
- console.info('[bluetooth_js] CharacteristicReadOn test start');
- if (gattServer == null) {
- console.info("[bluetooth_js] : click onCreateGattServer first!");
- }
- await gattServer.on('characteristicRead', function (data) {
- console.info('[bluetooth_js] charRead callback data ->');
- console.info('[bluetooth_js] CharRedReq deviceId: ' + data.deviceId);
- console.info('[bluetooth_js] CharRedReq transId: ' + data.transId);
- console.info('[bluetooth_js] CharRedReq offset: ' + data.offset);
- console.info('[bluetooth_js] CharRedReq charUuid: ' + data.characteristicUuid);
- console.info('[bluetooth_js] CharRedReq serviceUuid: ' + data.serviceUuid);
- var serverResponse = {
- "deviceId": data.deviceId,
- "transId": data.transId,
- "status": 0,
- "offset": data.offset,
- "value": str2ab("characteristic read response", data.offset),
- };
- var result = gattServer.sendResponse(serverResponse);
- console.info("[bluetooth_js] sendResponse -> " + JSON.stringify(result));
- expect(JSON.stringify(result)).assertContain("true");
- console.info("[bluetooth_js] onBlePeripheralManagerClose .");
- });
- }catch(e) {
- expect(null).assertFail();
- }
-
- try {
- console.info('[bluetooth_js] characteristicRead test1 start');
- if (gattServer == null) {
- console.info("[bluetooth_js] :plese CreateGattServer first!");
- }
- await gattServer.off('characteristicRead', function (data) {
- console.info("[bluetooth_js] charaRead off jsdata1:" + JSON.stringify(data));
- console.info("[bluetooth_js] charaRead off data1:" + data);
- expect(true).assertEqual(data ==null);
- });
- }catch(e) {
- expect(null).assertFail();
- }
- done();
- })
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetoothble_DEVICE_JS_CHARAC_WRITE_ON_0001
- * @tc.name testonCharacteristicwriteOn
- * @tc.desc Test CharacteristicwriteOn api .
- * @tc.author zhangyujie zwx1079266
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetoothble_CharacteristicwriteOn_test_001', 0, async function (done) {
- try {
- console.info('[bluetooth_js] CharacteristicwriteOn test start');
- if (gattServer == null) {
- console.info("[bluetooth_js] : click onCreateGattServer first!");
- }
- await gattServer.on('characteristicWrite', function (data) {
- console.info('[bluetooth_js] characteristicWrite callback data ->');
- console.info('[bluetooth_js] CharWriReq deviceId: ' + data.deviceId);
- console.info('[bluetooth_js] CharWriReq transId: ' + data.transId);
- console.info('[bluetooth_js] CharWriReq offset: ' + data.offset);
- console.info('[bluetooth_js] CharWriReq isPrep: ' + data.isPrep);
- console.info('[bluetooth_js] CharWriReq chaticUuid: ' + data.characteristicUuid);
- console.info('[bluetooth_js] CharWriReq serviceUuid: ' + data.serviceUuid);
- console.info('[bluetooth_js] CharWriReq value: ' + data.value);
- console.info('[bluetooth_js] CharWriReq needRsp: ' + data.needRsp);
- if (data.value instanceof ArrayBuffer) {
- console.log(`[bluetooth_js] value: ${ab2hex(data.value)}`)
- }
- console.info('[bluetooth_js] characteristicUuid: ' + data.characteristicUuid);
- console.info('[bluetooth_js] serviceUuid: ' + data.serviceUuid);
- if (data.needRsp == false) {
- return;
- }
- console.log(`data.value is ArraryBuffer: ${ab2hex(data.value)}`)
- var serverResponse = {
- "deviceId": data.deviceId,
- "transId": data.transId,
- "status": 0,
- "offset": data.offset,
- "value": data.value,
- };
- var result = gattServer.sendResponse(serverResponse);
- console.info("[bluetooth_js] sendResponse:" + JSON.stringify(result));
- expect(JSON.stringify(result)).assertContain("true");
- console.info("[bluetooth_js] characteristicWrite end");
- });
- }catch(e) {
- expect(null).assertFail();
- }
-
- try {
- console.info('[bluetooth_js] characteristicWrite test1 start');
- if (gattServer == null) {
- console.info("[bluetooth_js] :plese CreateGattServer first!");
- }
- await gattServer.off('characteristicWrite', function (data) {
- console.info("[bluetooth_js] charaWrite off jsdata2:" + JSON.stringify(data));
- console.info("[bluetooth_js] charaWrite off data2:" + data);
- expect(true).assertEqual(data ==null);
- });
- }catch(e) {
- expect(null).assertFail();
- }
- done();
- })
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_DESC_READ_ON_0001
- * @tc.name testDescriptorReadOn
- * @tc.desc Test DescriptorReadOn api .
- * @tc.author zhangyujie zwx1079266
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_descriptorRead_On_test_001', 0, async function (done) {
- try {
- console.info('[bluetooth_js] descriptorReadOn test start ...');
- if (gattServer == null) {
- console.info("[bluetooth_js] onAddServiceHelper: click onCreateGattServer first!");
- }
- await gattServer.on('descriptorRead', function (data) {
- console.info("[bluetooth_js] DesRedon jsondata:" + JSON.stringify(data));
- console.info("[bluetooth_js] DesRedon data:" + data);
- expect(true).assertEqual(data !=null);
- console.info('[bluetooth_js] desRead callback data ->');
- console.info('[bluetooth_js] DesRedReq deviceId:' + data.deviceId);
- console.info('[bluetooth_js] DesRedReq transId:' + data.transId);
- console.info('[bluetooth_js] DesRedReq offset:' + data.offset);
- console.info('[bluetooth_js] DesRedReq desUuid:' + data.descriptorUuid);
- console.info('[bluetooth_js] DesRedReq charUuid:' + data.characteristicUuid);
- console.info('[bluetooth_js] DesRedReq serUuid:' + data.serviceUuid);
- });
- }catch(e) {
- expect(null).assertFail();
- }
-
- try {
- console.info('[bluetooth_js] descriptorReadOff test start ...');
- if (gattServer == null) {
- console.info("[bluetooth_js] onAddServiceHelper:click onCreateGattServer first!");
- }
- await gattServer.off('descriptorRead', function (data) {
- console.info("[bluetooth_js] descriptorRead_off json_data-> " + JSON.stringify(data));
- console.info("[bluetooth_js] descriptorRead_off data -> " + data);
- expect(true).assertEqual(data ==null);
- });
- }catch(e) {
- expect(null).assertFail();
- }
- done();
- })
-
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_DESC_WRITE_ON_0001
- * @tc.name testDescriptorWriteOn
- * @tc.desc Test DescriptorWriteOn api .
- * @tc.author zhangyujie zwx1079266
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_descriptorWrite_On_test_001', 0, async function (done) {
- try {
- console.info('[bluetooth_js] descriptorWriteOn test start ...');
- if (gattServer == null) {
- console.info("[bluetooth_js] onAddServiceHelper: click onCreateGattServer first!");
- }
- await gattServer.on('descriptorWrite', function (data) {
- console.info("[bluetooth_js] desWriOn jsondata: " + JSON.stringify(data));
- console.info("[bluetooth_js] desWriOn data:" + data);
- expect(true).assertEqual(data !=null);
-
- console.info('[bluetooth_js] desWrite callback data ->');
- console.info('[bluetooth_js] desWriOn deviceId: ' + data.deviceId);
- console.info('[bluetooth_js] desWriOn transId: ' + data.transId);
- console.info('[bluetooth_js] desWriOn offset: ' + data.offset);
- console.info('[bluetooth_js] desWriOn desUuid: ' + data.descriptorUuid);
- console.info('[bluetooth_js] desWriOn serUuid: ' + data.serviceUuid);
- console.info('[bluetooth_js] desWriOn charUuid: ' + data.characteristicUuid);
- console.info('[bluetooth_js] desWriOn value: ' + data.value);
- console.info('[bluetooth_js] desWriOn needRsp: ' + data.needRsp);
- console.info('[bluetooth_js] desWriOn isPrep: ' + data.isPrep);
- });
- }catch(e) {
- expect(null).assertFail();
- }
-
- try {
- console.info('[bluetooth_js] descriptorWriteOff test start ...');
- if (gattServer == null) {
- console.info("[bluetooth_js] onAddServiceHelper: please click CreateGattServer first!");
- }
- await gattServer.off('descriptorWrite', function (data) {
- console.info("[bluetooth_js] desWriOff jsonData-> " + JSON.stringify(data));
- console.info("[bluetooth_js] desWriOff data -> " + data);
- expect(true).assertEqual(data ==null);
- });
- }catch(e) {
- expect(null).assertFail();
- }
- done();
- })
-
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_CONNE_STATE_CHANGE_ON_0001
- * @tc.name testConnectStateChangeOn
- * @tc.desc Test ConnectStateChangeOn api .
- * @tc.author zhangyujie zwx1079266
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_connectStateChange_On_test_001', 0, async function (done) {
- try {
- console.info('[bluetooth_js] ConnectStateChangeOn test start ...');
- if (gattServer == null) {
- console.info("[bluetooth_js] on: click CreateGattServer first!");
- }
- await gattServer.on('connectStateChange', function (data) {
- console.info("[bluetooth_js] connectStaOn jsonData -> " + JSON.stringify(data));
- console.info("[bluetooth_js] connectStaOn data -> " + data);
- expect(true).assertEqual(data !=null);
- console.info('[bluetooth_js] connectStaOn callback data ->');
- console.info('[bluetooth_js] connectStaOn deviceId: ' + data.deviceId);
- console.info('[bluetooth_js] connectStaOn state: ' + data.state);
- });
- }catch(e) {
- expect(null).assertFail();
- }
-
- try {
- console.info('[bluetooth_js] ConnectStateChangeOff test start ...');
- if (gattServer == null) {
- console.info("[bluetooth_js] on: please click onCreateGattServer first!");
- }
- await gattServer.off('connectStateChange', function (data) {
- console.info("[bluetooth_js] connectStateChange_off jsonData-> " + JSON.stringify(data));
- console.info("[bluetooth_js] connectStateChange_off data -> " + data);
- expect(true).assertEqual(data ==null);
- });
- }catch(e) {
- expect(null).assertFail();
- }
- done();
- })
-
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_BLE_CHAR_CHANGE_ON_0001
- * @tc.name testBLECharacteristicChangeOn
- * @tc.desc Test BLECharacteristicChangeOn api .
- * @tc.author zhangyujie zwx1079266
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_BLECharacteristicChange_On_test_001', 0, async function (done) {
- try {
- console.info('[bluetooth_js] BLECharacteristicChangeOn test start ...');
- if (gattClient == null) {
- console.info("[bluetooth_js] OnGattclientClose:click onCreateGattClient first!");
- }
- await gattClient.on('BLECharacteristicChange', function (data) {
- console.info("[bluetooth_js] BLECharacteristicChange data " + JSON.stringify(data));
- console.info("[bluetooth_js] BLECharacteristicChange_on data -> " + data);
- expect(true).assertEqual(data !=null);
- });
- }catch(e) {
- expect(null).assertFail();
- }
-
- try {
- console.info('[bluetooth_js] BLECharacteristicChangeOff test start');
- if (gattClient == null) {
- console.info("[bluetooth_js] OnGattclientClose: CreateGattClient first!");
- }
- await gattClient.off('BLECharacteristicChange', function (data) {
- console.info("[bluetooth_js] BLECharcChange_off json_data-> " + JSON.stringify(data));
- console.info("[bluetooth_js] BLECharcChange_off data -> " + data);
- expect(true).assertEqual(data ==null);
- });
- }catch(e) {
- expect(null).assertFail();
- }
- done();
- })
-
-
- /**
- * @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_BLE_CONNE_STATE_CHANGE_ON_0001
- * @tc.name testBLEConnectionStateChangeOn
- * @tc.desc Test BLEConnectionStateChangeOn api .
- * @tc.author zhangyujie zwx1079266
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_BLEConnectionStateChange_On_test_001', 0, async function (done) {
- try {
- console.info('[bluetooth_js] BLEConnectionStateChangeOn test start');
- if (gattClient == null) {
- console.info("[bluetooth_js] GattclientClose:CreateGattClient first!");
- }
- await gattClient.on('BLEConnectionStateChange', function (data) {
- console.info("[bluetooth_js] BLEConnecStateChange_on data " + JSON.stringify(data));
- console.info("[bluetooth_js] BLEConneStateChange_on data -> " + data);
- expect(true).assertEqual(data !=null);
-
- console.info('[bluetooth_js] BLEConneStateChange deviceId : ' + data.deviceId);
- console.info('[bluetooth_js] BLEConneStateChange state : ' + data.state);
- });
- }catch(e) {
- expect(null).assertFail();
- }
-
- try {
- console.info('[bluetooth_js] BLEConnectionStateChangeOff test start');
- if (gattClient == null) {
- console.info("[bluetooth_js] GattclientClose:click CreateGattClient first!");
- }
- await gattClient.off('BLEConnectionStateChange', function (data) {
- console.info("[bluetooth_js] BLEConneStateChange_off data-> " + JSON.stringify(data));
- console.info("[bluetooth_js] BLEConneStateChange_off data -> " + data);
- expect(true).assertEqual(data ==null);
- });
- }catch(e) {
-
- expect(null).assertFail();
- }
- done();
- })
-
/**
* @tc.number SUB_COMMUNACATION_bluetoothble_DEVICE_JS_BLE_PERIPHERA_MANAGER_CLOSE_0001
@@ -1478,7 +706,7 @@ describe('bluetoothhostTest', function() {
it('bluetoothble_gattserver_close_test_001', 0, function () {
console.info('[bluetooth_js] GattserverClose test start ...');
if (gattServer == null) {
- console.info("[bluetooth_js] GattserverClose: please click CreateGattServer first!");
+ console.info("[bluetooth_js] GattserverClose: please CreateGattServer first!");
}
console.info('[bluetooth_js] gattclose_server is:' + JSON.stringify(gattServer));
try{
@@ -1504,7 +732,7 @@ describe('bluetoothhostTest', function() {
it('bluetooth_gattclient_close_test_001', 0, function () {
console.info('[bluetooth_js] GattclientClose test start ...');
if (gattClient == null) {
- console.info("[bluetooth_js] GattclientClose: please click Create first!");
+ console.info("[bluetooth_js] GattclientClose: please CreateGatt first!");
}
console.info('[bluetooth_js] gattClient is:' + JSON.stringify(gattServer));
try{
@@ -1652,41 +880,6 @@ describe('bluetoothhostTest', function() {
})
- /**
- * @tc.number SUB_COMMUNACATION_bluetoothble_DEVICE_JS_SPP_READ_ON_0001
- * @tc.name testonsppReadOn
- * @tc.desc Test sppReadOn api .
- * @tc.author zhangyujie zwx1079266
- * @tc.size MEDIUM
- * @tc.type Function
- * @tc.level Level 2
- */
- it('bluetooth_sppReadOn_test_001', 0, async function (done) {
- try {
- console.info('[bluetooth_js] sppReadOn test start');
- console.info('bluetooth sppReadOn test start ...');
- await bluetooth.on("sppRead",-1, (result) => {
- console.info("[bluetooth_js] sppReadOn json_result -> " + JSON.stringify(result));
- console.info("[bluetooth_js] sppReadOn result -> " + result);
- expect(true).assertEqual(result !=null);
- });
- }catch(e) {
- expect(null).assertFail();
- }
-
- try {
- console.info('[bluetooth_js] sppReadOff test start ...');
- await bluetooth.off("sppRead",-1, (result) => {
- console.info("[bluetooth_js] sppReadOff json_result -> " + JSON.stringify(result));
- console.info("[bluetooth_js] sppReadOff result -> " + result);
- expect(true).assertEqual(result ==null);
- });
- }catch(e) {
- expect(null).assertFail();
- }
- done();
- })
-
/**
* @tc.number SUB_COMMUNACATION_bluetooth_DEVICE_JS_CANCEL_PAIRED_DEV_0001
* @tc.name testCancelPairedDevice
@@ -1816,7 +1009,7 @@ describe('bluetoothhostTest', function() {
*/
it('bluetooth_classic_set_local_name6', 0, function () {
console.info('[bluetooth_js] set localname start');
- var name = bluetooth.setLocalName('测试蓝牙名称是否正常测试蓝牙名称是否正常测试蓝牙');
+ var name = bluetooth.setLocalName('测试蓝牙名称是否正常测试蓝牙名称是否试蓝牙');
console.info('[bluetooth_js] setLocalName result6 = '+ JSON.stringify(name));
expect(name).assertTrue();
var localName = bluetooth.getLocalName();
@@ -1835,7 +1028,7 @@ describe('bluetoothhostTest', function() {
*/
it('bluetooth_classic_set_local_name7', 0, function () {
console.info('[bluetooth_js] set localname start');
- var name = bluetooth.setLocalName('*^_^* 、。·ˉˇ¨〃々—~‖·‘’“”〔③〈《「『』〖❂【±×'
+ var name = bluetooth.setLocalName('*^_^* 、。·ˉˇ¨〃々—~‖·‘’“”「『』〖❂【±×'
+'÷∶∧∨∑∏∪∩∈∷√⊥‖∠⌒⊙∫∮≡≌≈∽∝≠♂♀°℃$¤¢£‰§№☆★○●◎◇□■△※→←↑↓〓');
console.info('[bluetooth_js] setLocalName result7 = '+ JSON.stringify(name));
expect(name).assertTrue();
@@ -1855,7 +1048,7 @@ describe('bluetoothhostTest', function() {
*/
it('bluetooth_classic_set_local_name8', 0, function () {
console.info('[bluetooth_js] set localname start');
- var name = bluetooth.setLocalName('测试蓝常测试蓝牙\'名称是否[666]aaw');
+ var name = bluetooth.setLocalName('测试蓝牙名称是否正试蓝牙\'名称是否[666]aaw');
console.info('[bluetooth_js] setLocalName result8 = '+ JSON.stringify(name));
expect(name).assertTrue();
var localName = bluetooth.getLocalName();
@@ -1931,7 +1124,7 @@ describe('bluetoothhostTest', function() {
*/
it('bluetooth_classic_set_local_name12', 0, function () {
console.info('[bluetooth_js] set localname start');
- var name = bluetooth.setLocalName('#01-5@<>?/;:!@$%^&*(1[{【‘’“”~·0bu测试=》《\'[666]');
+ var name = bluetooth.setLocalName('#01-5@;:!@$%^&*(1[]{【+-;:‘’“”测试=》《\'[6]');
console.info('[bluetooth_js] setLocalName result12 = '+ JSON.stringify(name));
expect(name).assertTrue();
var localName = bluetooth.getLocalName();
diff --git a/communication/wifi_hotspot/BUILD.gn b/communication/wifi_hotspot/BUILD.gn
new file mode 100755
index 0000000000000000000000000000000000000000..de100eb0ce93d3a8e6aa4a63e2ef26c0c37431db
--- /dev/null
+++ b/communication/wifi_hotspot/BUILD.gn
@@ -0,0 +1,31 @@
+# Copyright (C) 2021 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("//test/xts/tools/build/suite.gni")
+
+ohos_js_hap_suite("ActsHotSpotJSTest") {
+ hap_profile = "./src/main/config.json"
+ deps = [
+ ":wifi_js_assets",
+ ":wifi_resources",
+ ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+ hap_name = "ActsHotSpotJSApiTest"
+}
+ohos_js_assets("wifi_js_assets") {
+ source_dir = "./src/main/js/default"
+}
+ohos_resources("wifi_resources") {
+ sources = [ "./src/main/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/communication/wifi_hotspot/Test.json b/communication/wifi_hotspot/Test.json
new file mode 100755
index 0000000000000000000000000000000000000000..857d50b5eab01f0bc6a250f22d4a6ab7141edf40
--- /dev/null
+++ b/communication/wifi_hotspot/Test.json
@@ -0,0 +1,18 @@
+{
+ "description": "Configuration for wifi js api Tests",
+ "driver": {
+ "type": "JSUnitTest",
+ "test-timeout": "600000",
+ "package": "ohos.acts.communication.wifi.wifidevice",
+ "shell-timeout": "600000"
+ },
+ "kits": [
+ {
+ "test-file-name": [
+ "ActsHotSpotJSApiTest.hap"
+ ],
+ "type": "AppInstallKit",
+ "cleanup-apps": true
+ }
+ ]
+}
diff --git a/communication/wifi_hotspot/signature/openharmony_sx.p7b b/communication/wifi_hotspot/signature/openharmony_sx.p7b
new file mode 100644
index 0000000000000000000000000000000000000000..9be1e98fa4c0c28ca997ed660112fa16b194f0f5
Binary files /dev/null and b/communication/wifi_hotspot/signature/openharmony_sx.p7b differ
diff --git a/communication/wifi_hotspot/src/main/config.json b/communication/wifi_hotspot/src/main/config.json
new file mode 100755
index 0000000000000000000000000000000000000000..da83908d60d69a76dd08d78b600677474fe93388
--- /dev/null
+++ b/communication/wifi_hotspot/src/main/config.json
@@ -0,0 +1,60 @@
+{
+ "app": {
+ "bundleName": "ohos.acts.communication.wifi.wifidevice",
+ "vendor": "acts",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 5
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "ohos.acts.communication.wifi.wifidevice",
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "abilities": [
+ {
+ "visible": true,
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "name": "ohos.acts.communication.wifi.wifidevice.MainAbility",
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "standard"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
diff --git a/communication/wifi_hotspot/src/main/js/default/app.js b/communication/wifi_hotspot/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..363f2555b1badec9fec342a93141db084083fcb8
--- /dev/null
+++ b/communication/wifi_hotspot/src/main/js/default/app.js
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+export default {
+ onCreate() {
+ console.info('AceApplication onCreate');
+ },
+ onDestroy() {
+ console.info('AceApplication onDestroy');
+ }
+};
diff --git a/communication/wifi_hotspot/src/main/js/default/i18n/en-US.json b/communication/wifi_hotspot/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/communication/wifi_hotspot/src/main/js/default/i18n/en-US.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "Hello",
+ "world": "World"
+ }
+}
\ No newline at end of file
diff --git a/communication/wifi_hotspot/src/main/js/default/i18n/zh-CN.json b/communication/wifi_hotspot/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/communication/wifi_hotspot/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/communication/wifi_hotspot/src/main/js/default/pages/index/index.css b/communication/wifi_hotspot/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..6fda792753f2e15f22b529c7b90a82185b2770bf
--- /dev/null
+++ b/communication/wifi_hotspot/src/main/js/default/pages/index/index.css
@@ -0,0 +1,9 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.title {
+ font-size: 100px;
+}
diff --git a/communication/wifi_hotspot/src/main/js/default/pages/index/index.hml b/communication/wifi_hotspot/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184
--- /dev/null
+++ b/communication/wifi_hotspot/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
diff --git a/communication/wifi_hotspot/src/main/js/default/pages/index/index.js b/communication/wifi_hotspot/src/main/js/default/pages/index/index.js
new file mode 100755
index 0000000000000000000000000000000000000000..0b183159696d3347a6a31ff04a879a9e6b7e994b
--- /dev/null
+++ b/communication/wifi_hotspot/src/main/js/default/pages/index/index.js
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2021 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 app from '@system.app'
+
+import {Core, ExpectExtend} from 'deccjsunit/index'
+
+export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ this.title = this.$t('strings.world');
+ },
+ onShow() {
+ console.info('onShow finish')
+ },
+ onReady() {
+ console.info('onReady finish')
+ const core = Core.getInstance()
+ const expectExtend = new ExpectExtend({
+ 'id': 'extend'
+ })
+ core.addService('expect', expectExtend)
+ core.init()
+
+ const configService = core.getDefaultService('config')
+ configService.setConfig(this)
+
+ require('../../test/List.test')
+ core.execute()
+
+ },
+}
+
diff --git a/communication/wifi_hotspot/src/main/js/default/test/List.test.js b/communication/wifi_hotspot/src/main/js/default/test/List.test.js
new file mode 100755
index 0000000000000000000000000000000000000000..f6ed2e334f9d78602492a9dbb9f2a21cd32479ca
--- /dev/null
+++ b/communication/wifi_hotspot/src/main/js/default/test/List.test.js
@@ -0,0 +1,18 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+require('./WifiSoftAP.test.js')
+
+
+
diff --git a/communication/wifi_standard/src/main/js/default/test/WifiSoftAP.test.js b/communication/wifi_hotspot/src/main/js/default/test/WifiSoftAP.test.js
similarity index 100%
rename from communication/wifi_standard/src/main/js/default/test/WifiSoftAP.test.js
rename to communication/wifi_hotspot/src/main/js/default/test/WifiSoftAP.test.js
diff --git a/communication/wifi_hotspot/src/main/resources/base/element/string.json b/communication/wifi_hotspot/src/main/resources/base/element/string.json
new file mode 100755
index 0000000000000000000000000000000000000000..14f9c3a9210f78b12caf3b945dc2b2c0f63f7d3d
--- /dev/null
+++ b/communication/wifi_hotspot/src/main/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "OsAccountTest"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Phone_Empty Feature Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/communication/wifi_hotspot/src/main/resources/base/media/icon.png b/communication/wifi_hotspot/src/main/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/communication/wifi_hotspot/src/main/resources/base/media/icon.png differ
diff --git a/communication/wifi_p2p/BUILD.gn b/communication/wifi_p2p/BUILD.gn
new file mode 100755
index 0000000000000000000000000000000000000000..5da69958636cb21b1137a852f845396828e9afce
--- /dev/null
+++ b/communication/wifi_p2p/BUILD.gn
@@ -0,0 +1,31 @@
+# Copyright (C) 2021 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("//test/xts/tools/build/suite.gni")
+
+ohos_js_hap_suite("ActsP2PJSTest") {
+ hap_profile = "./src/main/config.json"
+ deps = [
+ ":wifi_js_assets",
+ ":wifi_resources",
+ ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+ hap_name = "ActsP2PJSApiTest"
+}
+ohos_js_assets("wifi_js_assets") {
+ source_dir = "./src/main/js/default"
+}
+ohos_resources("wifi_resources") {
+ sources = [ "./src/main/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/communication/wifi_p2p/Test.json b/communication/wifi_p2p/Test.json
new file mode 100755
index 0000000000000000000000000000000000000000..458986061c34b55cab97e728672c39ab3b974868
--- /dev/null
+++ b/communication/wifi_p2p/Test.json
@@ -0,0 +1,18 @@
+{
+ "description": "Configuration for wifi js api Tests",
+ "driver": {
+ "type": "JSUnitTest",
+ "test-timeout": "600000",
+ "package": "ohos.acts.communication.wifi.wifidevice",
+ "shell-timeout": "600000"
+ },
+ "kits": [
+ {
+ "test-file-name": [
+ "ActsP2PJSApiTest.hap"
+ ],
+ "type": "AppInstallKit",
+ "cleanup-apps": true
+ }
+ ]
+}
diff --git a/communication/wifi_p2p/signature/openharmony_sx.p7b b/communication/wifi_p2p/signature/openharmony_sx.p7b
new file mode 100644
index 0000000000000000000000000000000000000000..9be1e98fa4c0c28ca997ed660112fa16b194f0f5
Binary files /dev/null and b/communication/wifi_p2p/signature/openharmony_sx.p7b differ
diff --git a/communication/wifi_p2p/src/main/config.json b/communication/wifi_p2p/src/main/config.json
new file mode 100755
index 0000000000000000000000000000000000000000..da83908d60d69a76dd08d78b600677474fe93388
--- /dev/null
+++ b/communication/wifi_p2p/src/main/config.json
@@ -0,0 +1,60 @@
+{
+ "app": {
+ "bundleName": "ohos.acts.communication.wifi.wifidevice",
+ "vendor": "acts",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 5
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "ohos.acts.communication.wifi.wifidevice",
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "abilities": [
+ {
+ "visible": true,
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "name": "ohos.acts.communication.wifi.wifidevice.MainAbility",
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "standard"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
diff --git a/communication/wifi_p2p/src/main/js/default/app.js b/communication/wifi_p2p/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..363f2555b1badec9fec342a93141db084083fcb8
--- /dev/null
+++ b/communication/wifi_p2p/src/main/js/default/app.js
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+export default {
+ onCreate() {
+ console.info('AceApplication onCreate');
+ },
+ onDestroy() {
+ console.info('AceApplication onDestroy');
+ }
+};
diff --git a/communication/wifi_p2p/src/main/js/default/i18n/en-US.json b/communication/wifi_p2p/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/communication/wifi_p2p/src/main/js/default/i18n/en-US.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "Hello",
+ "world": "World"
+ }
+}
\ No newline at end of file
diff --git a/communication/wifi_p2p/src/main/js/default/i18n/zh-CN.json b/communication/wifi_p2p/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/communication/wifi_p2p/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/communication/wifi_p2p/src/main/js/default/pages/index/index.css b/communication/wifi_p2p/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..6fda792753f2e15f22b529c7b90a82185b2770bf
--- /dev/null
+++ b/communication/wifi_p2p/src/main/js/default/pages/index/index.css
@@ -0,0 +1,9 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.title {
+ font-size: 100px;
+}
diff --git a/communication/wifi_p2p/src/main/js/default/pages/index/index.hml b/communication/wifi_p2p/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184
--- /dev/null
+++ b/communication/wifi_p2p/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
diff --git a/communication/wifi_p2p/src/main/js/default/pages/index/index.js b/communication/wifi_p2p/src/main/js/default/pages/index/index.js
new file mode 100755
index 0000000000000000000000000000000000000000..0b183159696d3347a6a31ff04a879a9e6b7e994b
--- /dev/null
+++ b/communication/wifi_p2p/src/main/js/default/pages/index/index.js
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2021 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 app from '@system.app'
+
+import {Core, ExpectExtend} from 'deccjsunit/index'
+
+export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ this.title = this.$t('strings.world');
+ },
+ onShow() {
+ console.info('onShow finish')
+ },
+ onReady() {
+ console.info('onReady finish')
+ const core = Core.getInstance()
+ const expectExtend = new ExpectExtend({
+ 'id': 'extend'
+ })
+ core.addService('expect', expectExtend)
+ core.init()
+
+ const configService = core.getDefaultService('config')
+ configService.setConfig(this)
+
+ require('../../test/List.test')
+ core.execute()
+
+ },
+}
+
diff --git a/communication/wifi_p2p/src/main/js/default/test/List.test.js b/communication/wifi_p2p/src/main/js/default/test/List.test.js
new file mode 100755
index 0000000000000000000000000000000000000000..f93cd18a2ad450d7ef8820367f15e768aa6bf30c
--- /dev/null
+++ b/communication/wifi_p2p/src/main/js/default/test/List.test.js
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+//require('./WifiSta.test.js')
+//require('./WifiSoftAP.test.js')
+require('./WifiP2P.test.js')
+
+
diff --git a/communication/wifi_standard/src/main/js/default/test/WifiP2P.test.js b/communication/wifi_p2p/src/main/js/default/test/WifiP2P.test.js
similarity index 100%
rename from communication/wifi_standard/src/main/js/default/test/WifiP2P.test.js
rename to communication/wifi_p2p/src/main/js/default/test/WifiP2P.test.js
diff --git a/communication/wifi_p2p/src/main/resources/base/element/string.json b/communication/wifi_p2p/src/main/resources/base/element/string.json
new file mode 100755
index 0000000000000000000000000000000000000000..14f9c3a9210f78b12caf3b945dc2b2c0f63f7d3d
--- /dev/null
+++ b/communication/wifi_p2p/src/main/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "OsAccountTest"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Phone_Empty Feature Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/communication/wifi_p2p/src/main/resources/base/media/icon.png b/communication/wifi_p2p/src/main/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/communication/wifi_p2p/src/main/resources/base/media/icon.png differ
diff --git a/communication/wifi_standard/src/main/js/default/test/List.test.js b/communication/wifi_standard/src/main/js/default/test/List.test.js
index 8b48dda92a8e34bb3d9a8535d50a9df1a8ca6be3..0a3bd0eddbde1fb110c5e654b577e025faf6d220 100755
--- a/communication/wifi_standard/src/main/js/default/test/List.test.js
+++ b/communication/wifi_standard/src/main/js/default/test/List.test.js
@@ -13,7 +13,7 @@
* limitations under the License.
*/
require('./WifiSta.test.js')
-require('./WifiSoftAP.test.js')
-require('./WifiP2P.test.js')
+//require('./WifiSoftAP.test.js')
+//require('./WifiP2P.test.js')