diff --git a/interfaces/kits/napi/accessibility_extension_module_loader/include/napi_accessibility_extension.h b/interfaces/kits/napi/accessibility_extension_module_loader/include/napi_accessibility_extension.h index 730f07c5b..8de540a64 100644 --- a/interfaces/kits/napi/accessibility_extension_module_loader/include/napi_accessibility_extension.h +++ b/interfaces/kits/napi/accessibility_extension_module_loader/include/napi_accessibility_extension.h @@ -16,6 +16,7 @@ #ifndef NAPI_ACCESSIBILITY_EXTENSION_H #define NAPI_ACCESSIBILITY_EXTENSION_H +#include #include "accessibility_extension.h" #include "accessible_ability_listener.h" #include "js_runtime.h" @@ -147,6 +148,7 @@ struct ExtensionCallbackInfo { struct KeyEventCallbackInfo : public ExtensionCallbackInfo { std::shared_ptr keyEvent_; + std::promise syncPromise_; }; struct AccessibilityEventInfoCallbackInfo : public ExtensionCallbackInfo { diff --git a/interfaces/kits/napi/accessibility_extension_module_loader/src/napi_accessibility_extension.cpp b/interfaces/kits/napi/accessibility_extension_module_loader/src/napi_accessibility_extension.cpp index 740956667..0a56b7015 100644 --- a/interfaces/kits/napi/accessibility_extension_module_loader/src/napi_accessibility_extension.cpp +++ b/interfaces/kits/napi/accessibility_extension_module_loader/src/napi_accessibility_extension.cpp @@ -189,6 +189,7 @@ bool NAccessibilityExtension::OnKeyPressEvent(const std::shared_ptrkeyEvent_ = MMI::KeyEvent::Clone(keyEvent); callbackInfo->extension_ = this; work->data = callbackInfo; + std::future syncFuture = callbackInfo->syncPromise_.get_future(); uv_queue_work( loop, @@ -203,6 +204,7 @@ bool NAccessibilityExtension::OnKeyPressEvent(const std::shared_ptrsyncPromise_.set_value(false); return; } ConvertKeyEventToJS(reinterpret_cast(data->engine_), napiEventInfo, data->keyEvent_); @@ -218,18 +220,20 @@ bool NAccessibilityExtension::OnKeyPressEvent(const std::shared_ptrsyncPromise_.set_value(false); return; } HILOG_INFO("OnKeyPressEvent result = %{public}d", result); - + data->syncPromise_.set_value(result); + delete data; data = nullptr; delete work; work = nullptr; }); - HILOG_INFO("end."); - return true; + bool callbackResult = syncFuture.get(); + HILOG_INFO("OnKeyPressEvent callbackResult = %{public}d", callbackResult); + return callbackResult; } NativeValue* NAccessibilityExtension::CallObjectMethod(const char* name, NativeValue* const* argv, size_t argc) diff --git a/services/test/moduletest/aamstest/aams_accessibility_touch_guider_test/aams_accessibility_touch_guider_test.cpp b/services/test/moduletest/aamstest/aams_accessibility_touch_guider_test/aams_accessibility_touch_guider_test.cpp index a8d597b71..6aca4619c 100644 --- a/services/test/moduletest/aamstest/aams_accessibility_touch_guider_test/aams_accessibility_touch_guider_test.cpp +++ b/services/test/moduletest/aamstest/aams_accessibility_touch_guider_test/aams_accessibility_touch_guider_test.cpp @@ -39,7 +39,7 @@ using namespace Json; namespace OHOS { namespace Accessibility { const static int32_t timeout = 10000; -const static int32_t sleepTime = 2; +const static int32_t sleepTime = 3; const static int32_t testNum_2 = 2; class AamsTouchGuideTest : public testing::Test { @@ -298,7 +298,7 @@ HWTEST_F(AamsTouchGuideTest, AamsTouchGuideTest_Moduletest_OnTouchEvent001, Test points.emplace_back(point4); event = CreateTouchEvent(MMI::PointerEvent::POINTER_ACTION_UP, points, 0, 0, 2); inputEventConsumer->OnInputEvent(event); - sleep(3); + sleep(1); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[0], EventType::TYPE_TOUCH_BEGIN); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[1], EventType::TYPE_TOUCH_END); int32_t expectValue = MMI::PointerEvent::POINTER_ACTION_DOWN; @@ -336,7 +336,7 @@ HWTEST_F(AamsTouchGuideTest, AamsTouchGuideTest_Moduletest_OnTouchEvent002, Test event = CreateTouchEvent(MMI::PointerEvent::POINTER_ACTION_UP, 1); inputEventConsumer->OnInputEvent(event); - sleep(3); + sleep(sleepTime); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[0], EventType::TYPE_TOUCH_BEGIN); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[1], EventType::TYPE_TOUCH_GUIDE_BEGIN); int32_t expectValue = MMI::PointerEvent::POINTER_ACTION_MOVE; @@ -406,7 +406,7 @@ HWTEST_F(AamsTouchGuideTest, AamsTouchGuideTest_Moduletest_OnTouchEvent004, Test event = CreateTouchEvent(MMI::PointerEvent::POINTER_ACTION_UP, points, 0, 0, 1); inputEventConsumer->OnInputEvent(event); - sleep(3); + sleep(sleepTime); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[0], EventType::TYPE_TOUCH_BEGIN); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[1], EventType::TYPE_TOUCH_GUIDE_GESTURE_BEGIN); int32_t expectValue = MMI::PointerEvent::POINTER_ACTION_MOVE; @@ -478,7 +478,7 @@ HWTEST_F(AamsTouchGuideTest, AamsTouchGuideTest_Moduletest_OnTouchEvent005, Test event = CreateTouchEvent(MMI::PointerEvent::POINTER_ACTION_UP, points, 0, 0, 1); inputEventConsumer->OnInputEvent(event); - sleep(3); + sleep(sleepTime); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[0], EventType::TYPE_TOUCH_BEGIN); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[1], EventType::TYPE_TOUCH_GUIDE_GESTURE_BEGIN); int32_t expectValue = MMI::PointerEvent::POINTER_ACTION_MOVE; @@ -550,7 +550,7 @@ HWTEST_F(AamsTouchGuideTest, AamsTouchGuideTest_Moduletest_OnTouchEvent006, Test event = CreateTouchEvent(MMI::PointerEvent::POINTER_ACTION_UP, points, 0, 0, 1); inputEventConsumer->OnInputEvent(event); - sleep(3); + sleep(sleepTime); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[0], EventType::TYPE_TOUCH_BEGIN); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[1], EventType::TYPE_TOUCH_GUIDE_GESTURE_BEGIN); int32_t expectValue = MMI::PointerEvent::POINTER_ACTION_MOVE; @@ -685,7 +685,7 @@ HWTEST_F(AamsTouchGuideTest, AamsTouchGuideTest_Moduletest_OnTouchEvent008, Test event = CreateTouchEvent(MMI::PointerEvent::POINTER_ACTION_UP, points, 0, 0, 1); inputEventConsumer->OnInputEvent(event); - sleep(3); + sleep(sleepTime); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[0], EventType::TYPE_TOUCH_BEGIN); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[1], EventType::TYPE_TOUCH_GUIDE_GESTURE_BEGIN); int32_t expectValue = MMI::PointerEvent::POINTER_ACTION_MOVE; @@ -719,7 +719,7 @@ HWTEST_F(AamsTouchGuideTest, AamsTouchGuideTest_Moduletest_OnTouchEvent009, Test event = CreateTouchEvent(MMI::PointerEvent::POINTER_ACTION_UP, 1); inputEventConsumer->OnInputEvent(event); - sleep(3); + sleep(sleepTime); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[0], EventType::TYPE_TOUCH_BEGIN); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[1], EventType::TYPE_TOUCH_GUIDE_BEGIN); @@ -762,14 +762,14 @@ HWTEST_F(AamsTouchGuideTest, AamsTouchGuideTest_Moduletest_OnTouchEvent010, Test sleep(1); event = CreateTouchEvent(MMI::PointerEvent::POINTER_ACTION_UP, points, 40, 0, 1); inputEventConsumer->OnInputEvent(event); - sleep(3); + sleep(sleepTime); event = CreateTouchEvent(MMI::PointerEvent::POINTER_ACTION_DOWN, points, 200, 0, 1); inputEventConsumer->OnInputEvent(event); - sleep(3); + sleep(sleepTime); event = CreateTouchEvent(MMI::PointerEvent::POINTER_ACTION_UP, points, 0, 0, 1); inputEventConsumer->OnInputEvent(event); - sleep(3); + sleep(sleepTime); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[0], EventType::TYPE_TOUCH_BEGIN); int32_t expectValue = MMI::PointerEvent::POINTER_ACTION_MOVE; @@ -816,7 +816,7 @@ HWTEST_F(AamsTouchGuideTest, AamsTouchGuideTest_Moduletest_OnTouchEvent011, Test event = CreateTouchEvent(MMI::PointerEvent::POINTER_ACTION_UP, points, 0, 0, 1); inputEventConsumer->OnInputEvent(event); - sleep(3); + sleep(sleepTime); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[0], EventType::TYPE_TOUCH_BEGIN); EXPECT_EQ(AccessibilityHelper::GetInstance().GetEventType()[3], EventType::TYPE_TOUCH_END); int32_t expectValue = MMI::PointerEvent::POINTER_ACTION_MOVE; diff --git a/services/test/moduletest/aamstest/aams_common_event_registry_test/aams_common_event_registry_test.cpp b/services/test/moduletest/aamstest/aams_common_event_registry_test/aams_common_event_registry_test.cpp index 0287003a8..2b76992eb 100644 --- a/services/test/moduletest/aamstest/aams_common_event_registry_test/aams_common_event_registry_test.cpp +++ b/services/test/moduletest/aamstest/aams_common_event_registry_test/aams_common_event_registry_test.cpp @@ -117,6 +117,7 @@ HWTEST_F(AccessibilityCommonEventRegistryTest, AccessibilityCommonEventRegistry_ { GTEST_LOG_(INFO) << "AccessibilityCommonEventRegistry_ModuleTest_PackageUpdateFinished_001 start"; AddAccessibleAbilityConnection(); + sleep(2); std::string bundleName = "bundleName"; accountData_->AddConnectingA11yAbility(bundleName); EXPECT_EQ(1, int(accountData_->GetConnectingA11yAbilities().size()));