From df99524c97e66b40e1dd6866208f8bdc09e8ab98 Mon Sep 17 00:00:00 2001 From: blueyouth Date: Sat, 26 Jul 2025 15:26:38 +0800 Subject: [PATCH] Improve UT coverage Signed-off-by: blueyouth Change-Id: I721cd8fc86cd26d0c31d8f35d5ea7cc397aa633b --- frameworks/proxy/event_handler/test/BUILD.gn | 7 +- .../test/joystick_event_processor_test.cpp | 71 ++++++ .../message_handle/src/server_msg_handler.cpp | 1 + service/touch_event_normalize/test/BUILD.gn | 6 + .../tablet_tool_tranform_processor_test.cpp | 228 ++++++++++++++++++ .../test/touch_drawing_handler_test.cpp | 120 ++++++++- .../mock/include/input_windows_manager_mock.h | 2 +- 7 files changed, 420 insertions(+), 15 deletions(-) diff --git a/frameworks/proxy/event_handler/test/BUILD.gn b/frameworks/proxy/event_handler/test/BUILD.gn index 5beea0c092..d35fd1c9f0 100644 --- a/frameworks/proxy/event_handler/test/BUILD.gn +++ b/frameworks/proxy/event_handler/test/BUILD.gn @@ -63,6 +63,8 @@ ohos_unittest("InputActiveSubscribeManagerTest") { ohos_unittest("MultimodalEventHandlerTest") { module_out_path = module_output_path + defines = input_default_defines + include_dirs = [ "${mmi_path}/frameworks/proxy/event_handler/include" ] sources = [ @@ -76,7 +78,6 @@ ohos_unittest("MultimodalEventHandlerTest") { "${mmi_path}/frameworks/proxy/event_handler/src/long_press_event_subscribe_manager.cpp", "${mmi_path}/frameworks/proxy/event_handler/src/multimodal_event_handler.cpp", "${mmi_path}/frameworks/proxy/event_handler/src/pre_monitor_manager.cpp", - "${mmi_path}/frameworks/proxy/event_handler/src/switch_event_input_subscribe_manager.cpp", "${mmi_path}/frameworks/proxy/event_handler/src/tablet_event_input_subscribe_manager.cpp", "${mmi_path}/frameworks/proxy/events/src/input_manager.cpp", ] @@ -88,6 +89,10 @@ ohos_unittest("MultimodalEventHandlerTest") { blocklist = "./../../ipc_blocklist.txt" } + if (input_feature_switch) { + sources += [ "${mmi_path}/frameworks/proxy/event_handler/src/switch_event_input_subscribe_manager.cpp" ] + } + configs = [ "${mmi_path}/common/anco/comm:mmi_anco_channel_config", "${mmi_path}:coverage_flags", diff --git a/service/joystick/test/joystick_event_processor_test.cpp b/service/joystick/test/joystick_event_processor_test.cpp index d6637ba80f..5380b65f28 100644 --- a/service/joystick/test/joystick_event_processor_test.cpp +++ b/service/joystick/test/joystick_event_processor_test.cpp @@ -407,6 +407,77 @@ HWTEST_F(JoystickEventProcessorTest, JoystickEventProcessorTest_CleanUpKeyEvent, EXPECT_NE(joystick.CleanUpKeyEvent(), nullptr); } +/** + * @tc.name: JoystickEventProcessorTest_CleanUpKeyEvent_002 + * @tc.desc: Test CleanUpKeyEvent + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(JoystickEventProcessorTest, JoystickEventProcessorTest_CleanUpKeyEvent_002, TestSize.Level1) +{ + CALL_TEST_DEBUG; + auto keyEvent = KeyEvent::Create(); + ASSERT_NE(keyEvent, nullptr); + keyEvent->SetKeyCode(KeyEvent::KEYCODE_A); + keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_DOWN); + + KeyEvent::KeyItem item {}; + item.SetKeyCode(KeyEvent::KEYCODE_A); + item.SetPressed(true); + keyEvent->AddKeyItem(item); + + int32_t deviceId { 2 }; + JoystickEventProcessor joystick(deviceId); + joystick.keyEvent_ = keyEvent; + auto event = joystick.CleanUpKeyEvent(); + EXPECT_EQ(event, keyEvent); + auto optItem = event->GetKeyItem(KeyEvent::KEYCODE_A); + EXPECT_TRUE(optItem.has_value()); + if (optItem) { + EXPECT_EQ(optItem->GetKeyCode(), KeyEvent::KEYCODE_A); + EXPECT_TRUE(optItem->IsPressed()); + } +} + +/** + * @tc.name: JoystickEventProcessorTest_CleanUpKeyEvent_003 + * @tc.desc: Test CleanUpKeyEvent + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(JoystickEventProcessorTest, JoystickEventProcessorTest_CleanUpKeyEvent_003, TestSize.Level1) +{ + CALL_TEST_DEBUG; + auto keyEvent = KeyEvent::Create(); + ASSERT_NE(keyEvent, nullptr); + keyEvent->SetKeyCode(KeyEvent::KEYCODE_A); + keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_UP); + + KeyEvent::KeyItem item1 {}; + item1.SetKeyCode(KeyEvent::KEYCODE_CTRL_LEFT); + item1.SetPressed(true); + keyEvent->AddKeyItem(item1); + + KeyEvent::KeyItem item2 {}; + item2.SetKeyCode(KeyEvent::KEYCODE_A); + item2.SetPressed(false); + keyEvent->AddKeyItem(item2); + + int32_t deviceId { 2 }; + JoystickEventProcessor joystick(deviceId); + joystick.keyEvent_ = keyEvent; + auto event = joystick.CleanUpKeyEvent(); + EXPECT_EQ(event, keyEvent); + auto optItem1 = event->GetKeyItem(KeyEvent::KEYCODE_CTRL_LEFT); + EXPECT_TRUE(optItem1.has_value()); + if (optItem1) { + EXPECT_EQ(optItem1->GetKeyCode(), KeyEvent::KEYCODE_CTRL_LEFT); + EXPECT_TRUE(optItem1->IsPressed()); + } + auto optItem2 = event->GetKeyItem(KeyEvent::KEYCODE_A); + EXPECT_FALSE(optItem2.has_value()); +} + /** * @tc.name: JoystickEventProcessorTest_DumpJoystickAxisEvent * @tc.desc: Test DumpJoystickAxisEvent diff --git a/service/message_handle/src/server_msg_handler.cpp b/service/message_handle/src/server_msg_handler.cpp index fe9a950e48..1af9bd642a 100644 --- a/service/message_handle/src/server_msg_handler.cpp +++ b/service/message_handle/src/server_msg_handler.cpp @@ -26,6 +26,7 @@ #endif // OHOS_BUILD_ENABLE_DFX_RADAR #include "display_event_monitor.h" #include "event_log_helper.h" +#include "i_input_windows_manager.h" #include "input_device_manager.h" #include "input_event_handler.h" #ifdef OHOS_BUILD_ENABLE_KEY_PRESSED_HANDLER diff --git a/service/touch_event_normalize/test/BUILD.gn b/service/touch_event_normalize/test/BUILD.gn index de6bfa1160..f443e2b4cc 100644 --- a/service/touch_event_normalize/test/BUILD.gn +++ b/service/touch_event_normalize/test/BUILD.gn @@ -251,6 +251,7 @@ ohos_unittest("GestureTransformTest") { } deps = [ + "${mmi_path}/intention/scheduler/component_manager:mmi_component_manager", "${mmi_path}/test/facility/mock:mmi_mock_sources", "${mmi_path}/util:libmmi-util", "${mmi_path}/service/custom_config_parser:mmi_custom_config_parser", @@ -441,6 +442,7 @@ ohos_unittest("TabletToolTranformTest") { } deps = [ + "${mmi_path}/intention/scheduler/component_manager:mmi_component_manager", "${mmi_path}/test/facility/mock:mmi_mock_sources", "${mmi_path}/util:libmmi-util", "${mmi_path}/service/custom_config_parser:mmi_custom_config_parser", @@ -495,6 +497,10 @@ ohos_unittest("TabletToolTranformTest") { "graphic_2d_ext:libsdf", ] } + + if (input_feature_combination_key) { + external_deps += [ "sensor:sensor_interface_native" ] + } } ohos_unittest("TransformPointTest") { diff --git a/service/touch_event_normalize/test/src/tablet_tool_tranform_processor_test.cpp b/service/touch_event_normalize/test/src/tablet_tool_tranform_processor_test.cpp index 750216cb87..80555e381b 100644 --- a/service/touch_event_normalize/test/src/tablet_tool_tranform_processor_test.cpp +++ b/service/touch_event_normalize/test/src/tablet_tool_tranform_processor_test.cpp @@ -18,6 +18,7 @@ #include #include "define_multimodal.h" +#include "input_windows_manager_mock.h" #include "libinput_mock.h" #include "tablet_tool_tranform_processor.h" @@ -499,6 +500,233 @@ HWTEST_F(TabletToolTranformProcessorTest, TabletToolTranformProcessorTest_OnEven ASSERT_TRUE(pointerEvent == nullptr); } +/** + * @tc.name: DrawTouchGraphic_001 + * @tc.desc: Test the function TabletToolTransformProcessor::DrawTouchGraphic + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(TabletToolTranformProcessorTest, DrawTouchGraphic_001, TestSize.Level1) +{ + EXPECT_CALL(*WIN_MGR_MOCK, DrawTouchGraphic).Times(Exactly(0)); + + int32_t deviceId = 2; + TabletToolTransformProcessor processor(deviceId); + EXPECT_NO_FATAL_FAILURE(processor.DrawTouchGraphic()); + InputWindowsManagerMock::ReleaseInstance(); +} + +/** + * @tc.name: DrawTouchGraphic_002 + * @tc.desc: Test the function TabletToolTransformProcessor::DrawTouchGraphic + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(TabletToolTranformProcessorTest, DrawTouchGraphic_002, TestSize.Level1) +{ + EXPECT_CALL(*WIN_MGR_MOCK, DrawTouchGraphic).Times(Exactly(1)); + + int32_t deviceId = 2; + TabletToolTransformProcessor processor(deviceId); + processor.pointerEvent_ = PointerEvent::Create(); + ASSERT_NE(processor.pointerEvent_, nullptr); + processor.pointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_PROXIMITY_IN); + EXPECT_NO_FATAL_FAILURE(processor.DrawTouchGraphic()); + + processor.pointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); + EXPECT_NO_FATAL_FAILURE(processor.DrawTouchGraphic()); + EXPECT_EQ(processor.pointerEvent_->GetPointerAction(), PointerEvent::POINTER_ACTION_DOWN); + InputWindowsManagerMock::ReleaseInstance(); +} + +/** + * @tc.name: DrawTouchGraphicIdle_001 + * @tc.desc: Test the function TabletToolTransformProcessor::DrawTouchGraphic + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(TabletToolTranformProcessorTest, DrawTouchGraphicIdle_001, TestSize.Level1) +{ + EXPECT_CALL(*WIN_MGR_MOCK, DrawTouchGraphic).Times(Exactly(1)); + + int32_t deviceId = 2; + TabletToolTransformProcessor processor(deviceId); + processor.pointerEvent_ = PointerEvent::Create(); + ASSERT_NE(processor.pointerEvent_, nullptr); + processor.pointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_PROXIMITY_IN); + EXPECT_NO_FATAL_FAILURE(processor.DrawTouchGraphicIdle()); + InputWindowsManagerMock::ReleaseInstance(); +} + +/** + * @tc.name: DrawTouchGraphicIdle_002 + * @tc.desc: Test the function TabletToolTransformProcessor::DrawTouchGraphicIdle + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(TabletToolTranformProcessorTest, DrawTouchGraphicIdle_002, TestSize.Level1) +{ + EXPECT_CALL(*WIN_MGR_MOCK, DrawTouchGraphic).Times(Exactly(1)); + + int32_t deviceId = 2; + TabletToolTransformProcessor processor(deviceId); + processor.pointerEvent_ = PointerEvent::Create(); + ASSERT_NE(processor.pointerEvent_, nullptr); + processor.pointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); + EXPECT_NO_FATAL_FAILURE(processor.DrawTouchGraphicIdle()); + EXPECT_EQ(processor.pointerEvent_->GetPointerAction(), PointerEvent::POINTER_ACTION_DOWN); + InputWindowsManagerMock::ReleaseInstance(); +} + +/** + * @tc.name: DrawTouchGraphicIdle_003 + * @tc.desc: Test the function TabletToolTransformProcessor::DrawTouchGraphicIdle + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(TabletToolTranformProcessorTest, DrawTouchGraphicIdle_003, TestSize.Level1) +{ + EXPECT_CALL(*WIN_MGR_MOCK, DrawTouchGraphic).Times(Exactly(1)); + + int32_t deviceId = 2; + TabletToolTransformProcessor processor(deviceId); + processor.pointerEvent_ = PointerEvent::Create(); + ASSERT_NE(processor.pointerEvent_, nullptr); + processor.pointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); + EXPECT_NO_FATAL_FAILURE(processor.DrawTouchGraphicIdle()); + EXPECT_EQ(processor.pointerEvent_->GetPointerAction(), PointerEvent::POINTER_ACTION_MOVE); + InputWindowsManagerMock::ReleaseInstance(); +} + +/** + * @tc.name: DrawTouchGraphicIdle_004 + * @tc.desc: Test the function TabletToolTransformProcessor::DrawTouchGraphicIdle + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(TabletToolTranformProcessorTest, DrawTouchGraphicIdle_004, TestSize.Level1) +{ + EXPECT_CALL(*WIN_MGR_MOCK, DrawTouchGraphic).Times(Exactly(1)); + + int32_t deviceId = 2; + TabletToolTransformProcessor processor(deviceId); + processor.pointerEvent_ = PointerEvent::Create(); + ASSERT_NE(processor.pointerEvent_, nullptr); + processor.pointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_UP); + EXPECT_NO_FATAL_FAILURE(processor.DrawTouchGraphicIdle()); + EXPECT_EQ(processor.pointerEvent_->GetPointerAction(), PointerEvent::POINTER_ACTION_UP); + InputWindowsManagerMock::ReleaseInstance(); +} + +/** + * @tc.name: DrawTouchGraphicDrawing_001 + * @tc.desc: Test the function TabletToolTransformProcessor::DrawTouchGraphicDrawing + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(TabletToolTranformProcessorTest, DrawTouchGraphicDrawing_001, TestSize.Level1) +{ + EXPECT_CALL(*WIN_MGR_MOCK, DrawTouchGraphic).Times(Exactly(0)); + + int32_t deviceId = 2; + TabletToolTransformProcessor processor(deviceId); + processor.pointerEvent_ = PointerEvent::Create(); + ASSERT_NE(processor.pointerEvent_, nullptr); + processor.pointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); + EXPECT_NO_FATAL_FAILURE(processor.DrawTouchGraphicDrawing()); + EXPECT_EQ(processor.pointerEvent_->GetPointerAction(), PointerEvent::POINTER_ACTION_DOWN); + InputWindowsManagerMock::ReleaseInstance(); +} + +/** + * @tc.name: DrawTouchGraphicDrawing_002 + * @tc.desc: Test the function TabletToolTransformProcessor::DrawTouchGraphicDrawing + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(TabletToolTranformProcessorTest, DrawTouchGraphicDrawing_002, TestSize.Level1) +{ + EXPECT_CALL(*WIN_MGR_MOCK, DrawTouchGraphic).Times(Exactly(1)); + + int32_t deviceId = 2; + TabletToolTransformProcessor processor(deviceId); + processor.pointerEvent_ = PointerEvent::Create(); + ASSERT_NE(processor.pointerEvent_, nullptr); + processor.pointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); + EXPECT_NO_FATAL_FAILURE(processor.DrawTouchGraphicDrawing()); + EXPECT_EQ(processor.pointerEvent_->GetPointerAction(), PointerEvent::POINTER_ACTION_MOVE); + InputWindowsManagerMock::ReleaseInstance(); +} + +/** + * @tc.name: DrawTouchGraphicDrawing_003 + * @tc.desc: Test the function TabletToolTransformProcessor::DrawTouchGraphicDrawing + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(TabletToolTranformProcessorTest, DrawTouchGraphicDrawing_003, TestSize.Level1) +{ + EXPECT_CALL(*WIN_MGR_MOCK, DrawTouchGraphic).Times(Exactly(1)); + + int32_t deviceId = 2; + TabletToolTransformProcessor processor(deviceId); + processor.pointerEvent_ = PointerEvent::Create(); + ASSERT_NE(processor.pointerEvent_, nullptr); + processor.pointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_UP); + EXPECT_NO_FATAL_FAILURE(processor.DrawTouchGraphicDrawing()); + EXPECT_EQ(processor.pointerEvent_->GetPointerAction(), PointerEvent::POINTER_ACTION_UP); + InputWindowsManagerMock::ReleaseInstance(); +} + +/** + * @tc.name: DrawTouchGraphicDrawing_004 + * @tc.desc: Test the function TabletToolTransformProcessor::DrawTouchGraphicDrawing + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(TabletToolTranformProcessorTest, DrawTouchGraphicDrawing_004, TestSize.Level1) +{ + EXPECT_CALL(*WIN_MGR_MOCK, DrawTouchGraphic).Times(Exactly(1)); + + int32_t deviceId = 2; + TabletToolTransformProcessor processor(deviceId); + processor.pointerEvent_ = PointerEvent::Create(); + ASSERT_NE(processor.pointerEvent_, nullptr); + processor.pointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_PROXIMITY_OUT); + EXPECT_NO_FATAL_FAILURE(processor.DrawTouchGraphicDrawing()); + EXPECT_EQ(processor.pointerEvent_->GetPointerAction(), PointerEvent::POINTER_ACTION_PROXIMITY_OUT); + InputWindowsManagerMock::ReleaseInstance(); +} + +/** + * @tc.name: DrawTouchGraphicDrawing_005 + * @tc.desc: Test the function TabletToolTransformProcessor::DrawTouchGraphicDrawing + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(TabletToolTranformProcessorTest, DrawTouchGraphicDrawing_005, TestSize.Level1) +{ + EXPECT_CALL(*WIN_MGR_MOCK, DrawTouchGraphic).Times(Exactly(2)); + + auto pointerEvent = PointerEvent::Create(); + ASSERT_NE(pointerEvent, nullptr); + int32_t pointerId { 6 }; + pointerEvent->SetPointerId(pointerId); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_PROXIMITY_OUT); + + PointerEvent::PointerItem item {}; + item.SetPressed(false); + item.SetPointerId(pointerId); + pointerEvent->AddPointerItem(item); + + int32_t deviceId = 2; + TabletToolTransformProcessor processor(deviceId); + processor.pointerEvent_ = pointerEvent; + EXPECT_NO_FATAL_FAILURE(processor.DrawTouchGraphicDrawing()); + EXPECT_EQ(pointerEvent->GetPointerAction(), PointerEvent::POINTER_ACTION_PROXIMITY_OUT); + InputWindowsManagerMock::ReleaseInstance(); +} + /** * @tc.name: DrawTouchGraphicDrawing_006 * @tc.desc: Test the funcation DrawTouchGraphicDrawing diff --git a/service/window_manager/test/touch_drawing_handler_test.cpp b/service/window_manager/test/touch_drawing_handler_test.cpp index 80014be24e..166362e685 100644 --- a/service/window_manager/test/touch_drawing_handler_test.cpp +++ b/service/window_manager/test/touch_drawing_handler_test.cpp @@ -967,11 +967,27 @@ HWTEST_F(TouchDrawingHandlerTest, TouchDrawingManagerTest_DrawPointerPositionHan CALL_TEST_DEBUG; auto pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UP); + int32_t deviceId { 6 }; + pointerEvent->SetDeviceId(deviceId); + int32_t pointerId { 1 }; + pointerEvent->SetPointerId(pointerId); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); + + PointerEvent::PointerItem item {}; + item.SetDeviceId(deviceId); + item.SetPointerId(pointerId); + pointerEvent->AddPointerItem(item); TouchDrawingHandler touchDrawingHandler; touchDrawingHandler.pointerEvent_ = pointerEvent; EXPECT_NO_FATAL_FAILURE(touchDrawingHandler.DrawPointerPositionHandler()); + EXPECT_EQ(touchDrawingHandler.currentDeviceId_, deviceId); + EXPECT_EQ(touchDrawingHandler.currentPointerId_, pointerId); + + int32_t deviceId1 { 66 }; + pointerEvent->SetDeviceId(deviceId1); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); + EXPECT_NO_FATAL_FAILURE(touchDrawingHandler.DrawPointerPositionHandler()); } /** @@ -983,28 +999,82 @@ HWTEST_F(TouchDrawingHandlerTest, TouchDrawingManagerTest_DrawPointerPositionHan HWTEST_F(TouchDrawingHandlerTest, TouchDrawingManagerTest_DrawPointerPositionHandler_003, TestSize.Level1) { CALL_TEST_DEBUG; + auto pointerEvent = PointerEvent::Create(); + ASSERT_NE(pointerEvent, nullptr); + int32_t deviceId { 6 }; + pointerEvent->SetDeviceId(deviceId); + int32_t pointerId { 1 }; + pointerEvent->SetPointerId(pointerId); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); + + PointerEvent::PointerItem item {}; + item.SetDeviceId(deviceId); + item.SetPointerId(pointerId); + LogicalRectangle rect { { 300, 500 }, 720, 1800 }; + item.SetDisplayX(rect.point.x); + item.SetDisplayY(rect.point.y); + pointerEvent->AddPointerItem(item); + TouchDrawingHandler touchDrawingHandler; touchDrawingHandler.bubbleCanvasNode_ = Rosen::RSCanvasNode::Create(); - touchDrawingHandler.pointerEvent_ = PointerEvent::Create(); - ASSERT_NE(touchDrawingHandler.pointerEvent_, nullptr); + touchDrawingHandler.pointerEvent_ = pointerEvent; touchDrawingHandler.trackerCanvasNode_ = Rosen::RSCanvasNode::Create(); ASSERT_NE(touchDrawingHandler.trackerCanvasNode_, nullptr); touchDrawingHandler.crosshairCanvasNode_ = Rosen::RSCanvasNode::Create(); ASSERT_NE(touchDrawingHandler.crosshairCanvasNode_, nullptr); touchDrawingHandler.labelsCanvasNode_ = Rosen::RSCanvasNode::Create(); ASSERT_NE(touchDrawingHandler.labelsCanvasNode_, nullptr); - PointerEvent::PointerItem item; - item.SetDisplayX(300); - item.SetDisplayY(500); - item.SetPointerId(100); - touchDrawingHandler.scaleW_ = 720; - touchDrawingHandler.scaleH_ = 1800; - touchDrawingHandler.pointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_UP); - touchDrawingHandler.pointerEvent_->SetPointerId(100); - touchDrawingHandler.pointerEvent_->AddPointerItem(item); + touchDrawingHandler.scaleW_ = rect.width; + touchDrawingHandler.scaleH_ = rect.height; EXPECT_NO_FATAL_FAILURE(touchDrawingHandler.DrawPointerPositionHandler()); - touchDrawingHandler.pointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); + item.SetDisplayY(600); + pointerEvent->UpdatePointerItem(pointerId, item); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); + EXPECT_NO_FATAL_FAILURE(touchDrawingHandler.DrawPointerPositionHandler()); +} + +/** + * @tc.name: TouchDrawingManagerTest_DrawPointerPositionHandler_004 + * @tc.desc: Test DrawPointerPositionHandler + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(TouchDrawingHandlerTest, TouchDrawingManagerTest_DrawPointerPositionHandler_004, TestSize.Level1) +{ + CALL_TEST_DEBUG; + auto pointerEvent = PointerEvent::Create(); + ASSERT_NE(pointerEvent, nullptr); + int32_t deviceId { 6 }; + pointerEvent->SetDeviceId(deviceId); + int32_t pointerId { 1 }; + pointerEvent->SetPointerId(pointerId); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); + + PointerEvent::PointerItem item {}; + item.SetDeviceId(deviceId); + item.SetPointerId(pointerId); + LogicalRectangle rect { { 300, 500 }, 720, 1800 }; + item.SetDisplayX(rect.point.x); + item.SetDisplayY(rect.point.y); + pointerEvent->AddPointerItem(item); + + TouchDrawingHandler touchDrawingHandler; + touchDrawingHandler.bubbleCanvasNode_ = Rosen::RSCanvasNode::Create(); + touchDrawingHandler.pointerEvent_ = pointerEvent; + touchDrawingHandler.trackerCanvasNode_ = Rosen::RSCanvasNode::Create(); + ASSERT_NE(touchDrawingHandler.trackerCanvasNode_, nullptr); + touchDrawingHandler.crosshairCanvasNode_ = Rosen::RSCanvasNode::Create(); + ASSERT_NE(touchDrawingHandler.crosshairCanvasNode_, nullptr); + touchDrawingHandler.labelsCanvasNode_ = Rosen::RSCanvasNode::Create(); + ASSERT_NE(touchDrawingHandler.labelsCanvasNode_, nullptr); + touchDrawingHandler.currentDeviceId_ = deviceId; + touchDrawingHandler.currentPointerId_ = pointerId; + touchDrawingHandler.scaleW_ = rect.width; + touchDrawingHandler.scaleH_ = rect.height; + EXPECT_NO_FATAL_FAILURE(touchDrawingHandler.DrawPointerPositionHandler()); + + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UP); EXPECT_NO_FATAL_FAILURE(touchDrawingHandler.DrawPointerPositionHandler()); } @@ -1678,6 +1748,30 @@ HWTEST_F(TouchDrawingHandlerTest, TouchDrawingManagerTest_ResetCanvasNode_001, T EXPECT_NO_FATAL_FAILURE(touchDrawingHandler.ResetCanvasNode(canvasNode)); } +/** + * @tc.name: TouchDrawingManagerTest_InitLabels_001 + * @tc.desc: Test InitLabels + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(TouchDrawingHandlerTest, TouchDrawingManagerTest_InitLabels_001, TestSize.Level1) +{ + CALL_TEST_DEBUG; + auto pointerEvent = PointerEvent::Create(); + ASSERT_NE(pointerEvent, nullptr); + int32_t deviceId { 6 }; + pointerEvent->SetDeviceId(deviceId); + int32_t pointerId { 1 }; + pointerEvent->SetPointerId(pointerId); + + TouchDrawingHandler touchDrawingHandler; + touchDrawingHandler.pointerEvent_ = pointerEvent; + touchDrawingHandler.InitLabels(); + EXPECT_EQ(touchDrawingHandler.isFirstDownAction_, true); + EXPECT_EQ(touchDrawingHandler.isDownAction_, true); + EXPECT_EQ(touchDrawingHandler.maxPointerCount_, 0); +} + /** * @tc.name: TouchDrawingManagerTest_SetMultiWindowScreenId * @tc.desc: Test SetMultiWindowScreenId diff --git a/test/facility/mock/include/input_windows_manager_mock.h b/test/facility/mock/include/input_windows_manager_mock.h index db193636f0..11e7288871 100644 --- a/test/facility/mock/include/input_windows_manager_mock.h +++ b/test/facility/mock/include/input_windows_manager_mock.h @@ -114,7 +114,7 @@ public: #if defined(OHOS_BUILD_ENABLE_POINTER) || defined(OHOS_BUILD_ENABLE_TOUCH) MOCK_METHOD(bool, UpdateDisplayId, (int32_t&)); - void DrawTouchGraphic(std::shared_ptr) override {} + MOCK_METHOD(void, DrawTouchGraphic, (std::shared_ptr)); MOCK_METHOD(int32_t, UpdateTargetPointer, (std::shared_ptr)); MOCK_METHOD(const OLD::DisplayInfo *, GetPhysicalDisplay, (int32_t), (const)); #endif // OHOS_BUILD_ENABLE_POINTER || OHOS_BUILD_ENABLE_TOUCH -- Gitee