diff --git a/test/unittest/interfaces/js/sensor/SensorJsSync.test.js b/test/unittest/interfaces/js/sensor/SensorJsSync.test.js index 56bb3a2884e6c1b60880b90dddbbcdc002dcb87e..74a7cd4aaffab760c3d79f1df6272dbb46758826 100644 --- a/test/unittest/interfaces/js/sensor/SensorJsSync.test.js +++ b/test/unittest/interfaces/js/sensor/SensorJsSync.test.js @@ -110,4 +110,246 @@ describe("SensorSyncTest", function () { done(); } }) + + /* + * @tc.name: SensorSyncTest_004 + * @tc.desc: verify sensor sync interface, call on and off if sensor exists + * @tc.size: MediumTest + * @tc.type: Function + * @tc.level: Level 1 + * @tc.require: Issue Number + * @tc.number: SensorSyncTest_004 + */ + it("SensorSyncTest_004", 0, async function (done) { + console.info('----------------------SensorSyncTest_004---------------------------'); + try { + let ret = sensor.getSingleSensorByDeviceSync(sensor.SensorId.ACCELEROMETER); + console.info('getSingleSensorByDeviceSync: ' + JSON.stringify(ret)); + if (Array.isArray(ret) && ret.length > 0) { + const sensorInfo = ret[0]; + const callback = (data) => { + console.info('Accelerometer data received: ' + JSON.stringify(data)); + }; + const sensorInfoParam = { + deviceId: sensorInfo.deviceId, + sensorIndex: sensorInfo.sensorIndex + }; + const options = { + interval: 10000000, + sensorInfoParam: sensorInfoParam + }; + sensor.on(sensorInfo.sensorId, callback, options); + sensor.off(sensorInfo.sensorId, sensorInfoParam, callback); + expect(true).assertTrue(); + } else { + console.info('No local accelerometer sensor found. Test case will return true.'); + expect(true).assertTrue(); + } + done(); + } catch (err) { + console.error('getSingleSensorByDeviceSync err: ' + JSON.stringify(err)); + expect(false).assertEqual(true); + done(); + } + }); + + /* + * @tc.name: SensorSyncTest_005 + * @tc.desc: verify sensor sync interface, call on and off if sensor exists + * @tc.size: MediumTest + * @tc.type: Function + * @tc.level: Level 1 + * @tc.require: Issue Number + * @tc.number: SensorSyncTest_005 + */ + it("SensorSyncTest_005", 0, async function (done) { + console.info('----------------------SensorSyncTest_005---------------------------'); + const validDeviceId = -1; + try { + let ret = sensor.getSingleSensorByDeviceSync(sensor.SensorId.ACCELEROMETER, validDeviceId); + console.info(`getSingleSensorByDeviceSync deviceId=${validDeviceId}: ` + JSON.stringify(ret)); + if (Array.isArray(ret) && ret.length > 0) { + const sensorInfo = ret[0]; + const callback = (data) => { + console.info('Accelerometer data received: ' + JSON.stringify(data)); + }; + const sensorInfoParam = { + deviceId: sensorInfo.deviceId, + sensorIndex: sensorInfo.sensorIndex + }; + const options = { + interval: 10000000, + sensorInfoParam: sensorInfoParam + }; + sensor.on(sensorInfo.sensorId, callback, options); + sensor.off(sensorInfo.sensorId, sensorInfoParam, callback); + expect(true).assertTrue(); + } else { + console.info('No local accelerometer sensor found with the given deviceId. Test case will return true.'); + expect(true).assertTrue(); + } + done(); + } catch (err) { + console.error(`getSingleSensorByDeviceSync deviceId=${validDeviceId} err: ` + JSON.stringify(err)); + expect(false).assertEqual(true); + done(); + } + }); + + /* + * @tc.name: SensorSyncTest_006 + * @tc.desc: verify sensor sync interface + * @tc.size: MediumTest + * @tc.type: Function + * @tc.level: Level 1 + * @tc.require: Issue Number + * @tc.number: SensorSyncTest_006 + */ + it("SensorSyncTest_006", 0, async function (done) { + console.info('----------------------SensorSyncTest_006---------------------------'); + const invalidType = -1; + try { + let ret = sensor.getSingleSensorByDeviceSync(invalidType); + console.info(`getSingleSensorByDeviceSync invalidType=${invalidType}: ` + JSON.stringify(ret)); + expect(Array.isArray(ret) && ret.length === 0).assertTrue(); + done(); + } catch (err) { + console.error(`getSingleSensorByDeviceSync invalidType=${invalidType} err: ` + JSON.stringify(err)); + expect(false).assertEqual(true); + done(); + } + }); + + /* + * @tc.name: SensorSyncTest_007 + * @tc.desc: verify sensor sync interface + * @tc.size: MediumTest + * @tc.type: Function + * @tc.level: Level 1 + * @tc.require: Issue Number + * @tc.number: SensorSyncTest_007 + */ + it("SensorSyncTest_007", 0, async function (done) { + console.info('----------------------SensorSyncTest_007---------------------------'); + const invalidDeviceId = -2; + try { + let ret = sensor.getSingleSensorByDeviceSync(sensor.SensorId.ACCELEROMETER, invalidDeviceId); + console.info(`getSingleSensorByDeviceSync invalid deviceId=${invalidDeviceId}: ` + JSON.stringify(ret)); + expect(Array.isArray(ret) && ret.length === 0).assertTrue(); + done(); + } catch (err) { + console.error('getSingleSensorByDeviceSync invalid deviceId err: ' + JSON.stringify(err)); + expect(false).assertEqual(true); + done(); + } + }); + + /* + * @tc.name: SensorSyncTest_008 + * @tc.desc: verify sensor sync interface, call on and off if sensor exists + * @tc.size: MediumTest + * @tc.type: Function + * @tc.level: Level 1 + * @tc.require: Issue Number + * @tc.number: SensorSyncTest_008 + */ + it("SensorSyncTest_008", 0, async function (done) { + console.info('----------------------SensorSyncTest_008---------------------------'); + try { + let ret = sensor.getSensorListByDeviceSync(); + console.info('getSensorListByDeviceSync default device: ' + JSON.stringify(ret)); + if (Array.isArray(ret) && ret.length > 0) { + const sensorInfo = ret[0]; + const callback = (data) => { + console.info('Sensor data received: ' + JSON.stringify(data)); + }; + const sensorInfoParam = { + deviceId: sensorInfo.deviceId, + sensorIndex: sensorInfo.sensorIndex + }; + const options = { + interval: 10000000, + sensorInfoParam: sensorInfoParam + }; + sensor.on(sensorInfo.sensorId, callback, options); + sensor.off(sensorInfo.sensorId, sensorInfoParam, callback); + expect(true).assertTrue(); + } else { + console.info('No local sensors found. Test case will return true.'); + expect(true).assertTrue(); + } + done(); + } catch (err) { + console.error('getSensorListByDeviceSync default device err: ' + JSON.stringify(err)); + expect(false).assertEqual(true); + done(); + } + }); + + /* + * @tc.name: SensorSyncTest_009 + * @tc.desc: verify sensor sync interface, call on and off if sensor exists + * @tc.size: MediumTest + * @tc.type: Function + * @tc.level: Level 1 + * @tc.require: Issue Number + * @tc.number: SensorSyncTest_009 + */ + it("SensorSyncTest_009", 0, async function (done) { + console.info('----------------------SensorSyncTest_009---------------------------'); + const validDeviceId = -1; + try { + let ret = sensor.getSensorListByDeviceSync(validDeviceId); + console.info(`getSensorListByDeviceSync deviceId=${validDeviceId}: ` + JSON.stringify(ret)); + if (Array.isArray(ret) && ret.length > 0) { + const sensorInfo = ret[0]; + const callback = (data) => { + console.info(`Sensor ${sensorInfo.type} data received: ` + JSON.stringify(data)); + }; + const sensorInfoParam = { + deviceId: sensorInfo.deviceId, + sensorIndex: sensorInfo.sensorIndex + }; + const options = { + interval: 10000000, + sensorInfoParam: sensorInfoParam + }; + sensor.on(sensorInfo.sensorId, callback, options); + sensor.off(sensorInfo.sensorId, sensorInfoParam, callback); + expect(true).assertTrue(); + } else { + console.info(`No local sensors found with deviceId=${validDeviceId}. Test case will return true.`); + expect(true).assertTrue(); + } + done(); + } catch (err) { + console.error(`getSensorListByDeviceSync deviceId=${validDeviceId} err: ` + JSON.stringify(err)); + expect(false).assertEqual(true); + done(); + } + }); + + /* + * @tc.name: SensorSyncTest_010 + * @tc.desc: verify sensor sync interface + * @tc.size: MediumTest + * @tc.type: Function + * @tc.level: Level 1 + * @tc.require: Issue Number + * @tc.number: SensorSyncTest_010 + */ + it("SensorSyncTest_010", 0, async function (done) { + console.info('----------------------SensorSyncTest_010---------------------------'); + const invalidDeviceId = -2; + try { + let ret = sensor.getSensorListByDeviceSync(invalidDeviceId); + console.info(`getSensorListByDeviceSync invalid deviceId=${invalidDeviceId}: ` + JSON.stringify(ret)); + expect(Array.isArray(ret) && ret.length === 0).assertTrue(); + done(); + } catch (err) { + console.error('getSensorListByDeviceSync invalid deviceId err: ' + JSON.stringify(err)); + expect(err.code).assertEqual(CommonConstants.INVALID_PARAMETER_CODE); + done(); + } + }); }) \ No newline at end of file diff --git a/test/unittest/interfaces/js/sensor/SensorJsunit.test.js b/test/unittest/interfaces/js/sensor/SensorJsunit.test.js index 021e4e98a88a7881aaa62c7f807bee3d7c736ea8..5b5413dd2a1e6e66d8d04111133e996f50a42016 100644 --- a/test/unittest/interfaces/js/sensor/SensorJsunit.test.js +++ b/test/unittest/interfaces/js/sensor/SensorJsunit.test.js @@ -564,6 +564,167 @@ describe("SensorJsTest", function () { }, 500); }) + /* + * @tc.name: SensorJsTest + * @tc.number: SensorJsTest_025 + * @tc.desc: verify app info is not null + * @tc.type: FUNC + * @tc.require: Issue Number + * @tc.size: MediumTest + * @tc.level: Level 1 + */ + it("SensorJsTest_025", 0, async function (done) { + console.info("---------------------------SensorJsTest_025----------------------------------"); + try { + const callback = (data) => { + console.info('sensorStatusChange callback triggered: ' + JSON.stringify(data)); + }; + sensor.on('sensorStatusChange', callback); + console.info('Successfully registered sensorStatusChange listener'); + setTimeout(() => { + sensor.off('sensorStatusChange', callback); + console.info('Successfully unregistered sensorStatusChange listener'); + expect(true).assertTrue(); + done(); + }, 5000); + } catch (err) { + console.error('Failed to register sensorStatusChange listener: ' + JSON.stringify(err)); + expect(err.code).assertEqual(CommonConstants.SERVICE_EXCEPTION_CODE); + done(); + } + }); + + /* + * @tc.name: SensorJsTest + * @tc.number: SensorJsTest_026 + * @tc.desc: verify app info is not null + * @tc.type: FUNC + * @tc.require: Issue Number + * @tc.size: MediumTest + * @tc.level: Level 1 + */ + it("SensorJsTest_026", 0, async function (done) { + console.info("---------------------------SensorJsTest_026----------------------------------"); + try { + const callback = (data) => { + console.info('sensorStatusChange callback triggered: ' + JSON.stringify(data)); + }; + sensor.on('sensorStatusChange', callback); + console.info('First registration successful'); + sensor.on('sensorStatusChange', callback); + console.info('Second registration successful'); + sensor.off('sensorStatusChange', callback); + expect(true).assertTrue(); + console.info('Successfully unregistered listener'); + done(); + } catch (err) { + console.error('Error during duplicate registration: ' + JSON.stringify(err)); + expect(err.code).assertEqual(CommonConstants.SERVICE_EXCEPTION_CODE); + done(); + } + }); + + /* + * @tc.name: SensorJsTest + * @tc.number: SensorJsTest_027 + * @tc.desc: verify app info is not null + * @tc.type: FUNC + * @tc.require: Issue Number + * @tc.size: MediumTest + * @tc.level: Level 1 + */ + it("SensorJsTest_027", 0, async function (done) { + console.info("---------------------------SensorJsTest_027----------------------------------"); + try { + const callback = (data) => { + console.info('SensorStatusListenerTest_003 Invalid event callback triggered'); + }; + sensor.on('invalidEventType', callback); + done(); + } catch (err) { + console.info('Caught expected error for invalid event type: ' + JSON.stringify(err)); + expect(err.code).assertEqual(CommonConstants.PARAMETER_ERROR_CODE); + done(); + } + }); + + /* + * @tc.name: SensorJsTest + * @tc.number: SensorJsTest_028 + * @tc.desc: verify app info is not null + * @tc.type: FUNC + * @tc.require: Issue Number + * @tc.size: MediumTest + * @tc.level: Level 1 + */ + it("SensorJsTest_028", 0, async function (done) { + console.info("---------------------------SensorJsTest_028----------------------------------"); + try { + sensor.on('sensorStatusChange'); + done(); + } catch (err) { + console.info('Caught expected error for missing callback: ' + JSON.stringify(err)); + expect(err.code).assertEqual(CommonConstants.PARAMETER_ERROR_CODE); + done(); + } + }); + + /* + * @tc.name: SensorJsTest + * @tc.number: SensorJsTest_029 + * @tc.desc: verify app info is not null + * @tc.type: FUNC + * @tc.require: Issue Number + * @tc.size: MediumTest + * @tc.level: Level 1 + */ + it("SensorJsTest_029", 0, async function (done) { + console.info("---------------------------SensorJsTest_029----------------------------------"); + try { + const callback = (data) => { + console.info('Unregistered callback triggered'); + }; + sensor.off('sensorStatusChange', callback); + console.info('Unregistering unregistered callback succeeded (or ignored)'); + done(); + } catch (err) { + console.error('Error when unregistering unregistered callback: ' + JSON.stringify(err)); + expect(err.code).assertEqual(CommonConstants.SERVICE_EXCEPTION_CODE); + done(); + } + }); + + /* + * @tc.name: SensorJsTest + * @tc.number: SensorJsTest_030 + * @tc.desc: verify app info is not null + * @tc.type: FUNC + * @tc.require: Issue Number + * @tc.size: MediumTest + * @tc.level: Level 1 + */ + it("SensorJsTest_030", 0, async function (done) { + console.info("---------------------------SensorJsTest_030----------------------------------"); + try { + let callbackTriggered = false; + const callback = (data) => { + console.info('sensorStatusChange callback triggered after off'); + callbackTriggered = true; + }; + sensor.on('sensorStatusChange', callback); + sensor.off('sensorStatusChange', callback); + setTimeout(() => { + expect(callbackTriggered).assertFalse(); + console.info('Callback did not trigger after unregistering'); + done(); + }, 3000); + } catch (err) { + console.error('Error during off verification: ' + JSON.stringify(err)); + expect(false).assertTrue(); + done(); + } + }); + let GEOMAGNETIC_COMPONENT_YEAR_RESULT = [ [6570.3935546875, -146.3289337158203, 54606.0078125, -1.2758207321166992, 83.13726043701172, 6572.02294921875, 55000.0703125], [6554.17041015625, -87.19947052001953, 54649.078125, -0.7622424364089966, 83.16046905517578, 6554.75048828125, 55040.7734375],