From 91fa687ad322ec444d073cf0a006b61342d13489 Mon Sep 17 00:00:00 2001 From: maan4 Date: Tue, 9 Sep 2025 19:48:22 +0800 Subject: [PATCH] invalid vibratorId, it can be vibrate Signed-off-by: maan4 --- .../src/miscdevice_service.cpp | 18 +++- .../vibrator/js/ExampleJsunit.test.js | 85 +++++++++++++++++++ 2 files changed, 102 insertions(+), 1 deletion(-) diff --git a/services/miscdevice_service/src/miscdevice_service.cpp b/services/miscdevice_service/src/miscdevice_service.cpp index bad4e6b..bfa2f35 100644 --- a/services/miscdevice_service/src/miscdevice_service.cpp +++ b/services/miscdevice_service/src/miscdevice_service.cpp @@ -1699,6 +1699,16 @@ int32_t MiscdeviceService::StartVibrateThreadControl(const VibratorIdentifierIPC return (ignoreVibrateNum == result.size()) ? ERROR : ERR_OK; } +bool IsVibratorIdValid(const std::vector baseInfo, int32_t target) +{ + for (const auto& item : baseInfo) { + if (item.vibratorId == target) { + return true; + } + } + return false; +} + std::vector MiscdeviceService::CheckDeviceIdIsValid(const VibratorIdentifierIPC& identifier) { CALL_LOG_ENTER; @@ -1740,7 +1750,13 @@ std::vector MiscdeviceService::CheckDeviceIdIsValid(const } } else { for (const auto& pair : devicesManageMap_) { - processDevice(pair); + if (!IsVibratorIdValid(pair.second.baseInfo, identifier.vibratorId)) { + for (const auto& info : pair.second.baseInfo) { + addToResult(info); + } + } else { + processDevice(pair); + } } } return result; diff --git a/test/unittest/vibrator/js/ExampleJsunit.test.js b/test/unittest/vibrator/js/ExampleJsunit.test.js index 968802b..98a1430 100644 --- a/test/unittest/vibrator/js/ExampleJsunit.test.js +++ b/test/unittest/vibrator/js/ExampleJsunit.test.js @@ -3654,4 +3654,89 @@ describe("VibratorJsTest", function () { expect(true).assertTrue(); } }) + + + /* + * @tc.name:VibrateJsTest055 + * @tc.desc:vibratorId is invalid, it should vibrate + * @tc.type: FUNC + * @tc.require: I53SGE + * @tc.number: VibrateJsTest055 + */ + it("VibrateJsTest055", 0, async function () { + await vibrator.startVibration({ + type: "time", + duration: 1000 + }, { + id: 2, + usage: "unknown" + }, (error) => { + if (error) { + console.info('VibrateJsTest055 vibrator error'); + expect(false).assertTrue(); + } else { + console.info('VibrateJsTest055 vibrator success'); + expect(true).assertTrue(); + } + setTimeout(() => { + done(); + }, 1000); + }); + }) + + /* + * @tc.name:VibrateJsTest056 + * @tc.desc:vibratorId is invalid, it should vibrate + * @tc.type: FUNC + * @tc.require: I53SGE + * @tc.number: VibrateJsTest056 + */ + it("VibrateJsTest056", 0, async function () { + await vibrator.startVibration({ + type: "time", + duration: 1000 + }, { + id: 3, + usage: "unknown" + }, (error) => { + if (error) { + console.info('VibrateJsTest056 vibrator error'); + expect(false).assertTrue(); + } else { + console.info('VibrateJsTest056 vibrator success'); + expect(true).assertTrue(); + } + setTimeout(() => { + done(); + }, 1000); + }); + }) + + /* + * @tc.name:VibrateJsTest057 + * @tc.desc:vibratorId is valid, it should vibrate + * @tc.type: FUNC + * @tc.require: I53SGE + * @tc.number: VibrateJsTest057 + */ + it("VibrateJsTest057", 0, async function () { + await vibrator.startVibration({ + type: "time", + duration: 1000 + }, { + id: 1, + usage: "unknown" + }, (error) => { + if (error) { + console.info('VibrateJsTest057 vibrator error'); + expect(false).assertTrue(); + } else { + console.info('VibrateJsTest057 vibrator success'); + expect(true).assertTrue(); + } + setTimeout(() => { + done(); + }, 1000); + }); + }) }) -- Gitee