From 41669bbd04256837c3f6756c09570d24ea9bd516 Mon Sep 17 00:00:00 2001 From: ninghejuan Date: Fri, 13 Jun 2025 10:30:25 +0800 Subject: [PATCH 1/3] fix input test Signed-off-by: ninghejuan --- service/BUILD.gn | 7 +++++++ service/ipc_blocklist.txt | 1 + .../window_manager/test/pointer_drawing_manager_test.cpp | 2 ++ 3 files changed, 10 insertions(+) diff --git a/service/BUILD.gn b/service/BUILD.gn index e8c225d9dc..f75f7ebd6a 100644 --- a/service/BUILD.gn +++ b/service/BUILD.gn @@ -2852,6 +2852,13 @@ ohos_unittest("EventDumpTest") { "-Dprotected=public", ] + sanitize = { + cfi = true + cfi_cross_dso = true + debug = false + blocklist = "./ipc_blocklist.txt" + } + sources = [ "event_dump/test/event_dump_test.cpp", "event_dump/test/event_statistic_test.cpp", diff --git a/service/ipc_blocklist.txt b/service/ipc_blocklist.txt index ae31a084ca..b289812ca1 100644 --- a/service/ipc_blocklist.txt +++ b/service/ipc_blocklist.txt @@ -19,3 +19,4 @@ src:*foundation/multimodalinput/input/service/touch_event_normalize/test/* src:*foundation/multimodalinput/input/service/filter/test/* src:*foundation/multimodalinput/input/service/connect_manager/test/* src:*foundation/multimodalinput/input/service/event_handler/test/* +src:*foundation/multimodalinput/input/service/event_dump/test/* diff --git a/service/window_manager/test/pointer_drawing_manager_test.cpp b/service/window_manager/test/pointer_drawing_manager_test.cpp index 1290123337..1346033fa1 100644 --- a/service/window_manager/test/pointer_drawing_manager_test.cpp +++ b/service/window_manager/test/pointer_drawing_manager_test.cpp @@ -50,6 +50,7 @@ const int32_t ROTATE_POLICY = system::GetIntParameter("const.window.device.rotat const std::string IMAGE_POINTER_DEFAULT_PATH = "/system/etc/multimodalinput/mouse_icon/"; const std::string CURSOR_ICON_PATH = IMAGE_POINTER_DEFAULT_PATH + "Cursor_Circle.png"; const std::string CUSTOM_CURSOR_ICON_PATH = IMAGE_POINTER_DEFAULT_PATH + "Custom_Cursor_Circle.svg"; +const std::string DEFAULT_ICON_PATH = IMAGE_POINTER_DEFAULT_PATH + "Default.svg"; constexpr int32_t AECH_DEVELOPER_DEFINED_STYLE { 47 }; constexpr int32_t AECH_DEVELOPER_DEFINED { 4 }; } // namespace @@ -2688,6 +2689,7 @@ HWTEST_F(PointerDrawingManagerTest, InputWindowsManagerTest_AdjustMouseFocusToSo auto* pointerDrawingManager = static_cast(IPointerDrawingManager::GetInstance()); pointerDrawingManager->imageWidth_ = 50; pointerDrawingManager->imageHeight_ = 50; + pointerDrawingManager->UpdateIconPath(MOUSE_ICON::DEFAULT, DEFAULT_ICON_PATH); int32_t physicalX = 100; int32_t physicalY = 100; pointerDrawingManager->RotateDegree(DIRECTION0); -- Gitee From 197afcf5e970c2ad479d380e673b8f4d49487942 Mon Sep 17 00:00:00 2001 From: ninghejuan Date: Fri, 13 Jun 2025 10:48:36 +0800 Subject: [PATCH 2/3] fix input test Signed-off-by: ninghejuan --- .../knuckle_dynamic_drawing_manager_test.cpp | 631 ++++++++++++++++++ 1 file changed, 631 insertions(+) create mode 100644 service/event_dump/test/knuckle_dynamic_drawing_manager_test.cpp diff --git a/service/event_dump/test/knuckle_dynamic_drawing_manager_test.cpp b/service/event_dump/test/knuckle_dynamic_drawing_manager_test.cpp new file mode 100644 index 0000000000..88ab1a9a78 --- /dev/null +++ b/service/event_dump/test/knuckle_dynamic_drawing_manager_test.cpp @@ -0,0 +1,631 @@ +/* + * Copyright (c) 2024 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. + */ + +#include + +#include "image_source.h" +#include "image_type.h" +#include "image_utils.h" + +#include "mmi_log.h" +#include "pointer_event.h" +#include "knuckle_dynamic_drawing_manager.h" + +#undef MMI_LOG_TAG +#define MMI_LOG_TAG "KnuckleDynamicDrawingManagerTest" + +namespace OHOS { +namespace MMI { +namespace { +using namespace testing::ext; +constexpr int32_t POINT_SYSTEM_SIZE = 50; +constexpr int32_t MAX_DIVERGENCE_NUM = 10; +constexpr int32_t MAX_POINTER_COLOR = 0xff00ff; +constexpr std::string_view SCREEN_READ_ENABLE { "1" }; +} // namespace + +class KnuckleDynamicDrawingManagerTest : public testing::Test { +public: + static void SetUpTestCase(void) {}; + static void TearDownTestCase(void) {}; + void SetUp(void) + { + DisplayInfo displayInfo = { .id = 1, .x = 1, .y = 1, .width = 1, .height = 1, + .dpi = 240, .name = "display", .uniq = "xx" }; + if (knuckleDynamicDrawingMgr == nullptr) { + knuckleDynamicDrawingMgr = std::make_shared(); + } + knuckleDynamicDrawingMgr->UpdateDisplayInfo(displayInfo); + } + + std::shared_ptr DecodeImageToPixelMap(const std::string &imagePath); +private: + std::shared_ptr knuckleDynamicDrawingMgr { nullptr }; +}; + +std::shared_ptr KnuckleDynamicDrawingManagerTest::DecodeImageToPixelMap(const std::string &imagePath) +{ + CALL_DEBUG_ENTER; + OHOS::Media::SourceOptions opts; + uint32_t ret = 0; + auto imageSource = OHOS::Media::ImageSource::CreateImageSource(imagePath, opts, ret); + CHKPP(imageSource); + std::set formats; + ret = imageSource->GetSupportedFormats(formats); + OHOS::Media::DecodeOptions decodeOpts; + decodeOpts.desiredSize = { + .width = 80, + .height = 80 + }; + + decodeOpts.SVGOpts.fillColor = {.isValidColor = false, .color = MAX_POINTER_COLOR}; + decodeOpts.SVGOpts.strokeColor = {.isValidColor = false, .color = MAX_POINTER_COLOR}; + + std::shared_ptr pixelMap = imageSource->CreatePixelMap(decodeOpts, ret); + if (pixelMap == nullptr) { + MMI_HILOGE("The pixelMap is nullptr"); + } + return pixelMap; +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_Normal + * @tc.desc: Test Normal branch of covering KnuckleDynamicDrawHandler function + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, + KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_Normal, TestSize.Level1) +{ + CALL_TEST_DEBUG; + KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; + std::shared_ptr pointerEvent = PointerEvent::Create(); + ASSERT_NE(pointerEvent, nullptr); + PointerEvent::PointerItem item; + item.SetPointerId(1); + item.SetToolType(PointerEvent::TOOL_TYPE_MOUSE); + pointerEvent->SetPointerId(1); + pointerEvent->AddPointerItem(item); + knuckleDynamicDrawMgr.KnuckleDynamicDrawHandler(pointerEvent); + EXPECT_FALSE(knuckleDynamicDrawMgr.isStop_); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_Abnormal + * @tc.desc: Test Abnormal branch of covering KnuckleDynamicDrawHandler function + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, + KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_Abnormal, TestSize.Level1) +{ + CALL_TEST_DEBUG; + KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; + std::shared_ptr pointerEvent = PointerEvent::Create(); + ASSERT_NE(pointerEvent, nullptr); + PointerEvent::PointerItem item; + item.SetPointerId(1); + item.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); + pointerEvent->SetPointerId(1); + pointerEvent->AddPointerItem(item); + pointerEvent->SetTargetDisplayId(50); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_PULL_DOWN); + knuckleDynamicDrawMgr.KnuckleDynamicDrawHandler(pointerEvent); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_SWIPE_END); + knuckleDynamicDrawMgr.KnuckleDynamicDrawHandler(pointerEvent); + EXPECT_TRUE(knuckleDynamicDrawMgr.isDrawing_); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_InitPointerPathPaint + * @tc.desc: Test Overrides InitPointerPathPaint function branches + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_InitPointerPathPaint, TestSize.Level1) +{ + CALL_TEST_DEBUG; + KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; + knuckleDynamicDrawMgr.glowTraceSystem_ = nullptr; + knuckleDynamicDrawMgr.InitPointerPathPaint(); + std::string imagePath = "/system/etc/multimodalinput/mouse_icon/Default.svg"; + auto pixelMap = DecodeImageToPixelMap(imagePath); + ASSERT_NE(pixelMap, nullptr); + knuckleDynamicDrawMgr.glowTraceSystem_ = + std::make_shared(POINT_SYSTEM_SIZE, pixelMap, MAX_DIVERGENCE_NUM); + knuckleDynamicDrawMgr.InitPointerPathPaint(); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_IsSingleKnuckle + * @tc.desc: Test Overrides IsSingleKnuckle function branches + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_IsSingleKnuckle, TestSize.Level1) +{ + CALL_TEST_DEBUG; + KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; + std::shared_ptr pointerEvent = PointerEvent::Create(); + ASSERT_NE(pointerEvent, nullptr); + PointerEvent::PointerItem item; + item.SetPointerId(1); + item.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); + pointerEvent->SetPointerId(1); + pointerEvent->AddPointerItem(item); + ASSERT_TRUE(knuckleDynamicDrawMgr.IsSingleKnuckle(pointerEvent)); + + item.SetPointerId(2); + item.SetToolType(PointerEvent::TOOL_TYPE_TOUCHPAD); + pointerEvent->SetPointerId(2); + pointerEvent->AddPointerItem(item); + knuckleDynamicDrawMgr.canvasNode_ = nullptr; + ASSERT_FALSE(knuckleDynamicDrawMgr.IsSingleKnuckle(pointerEvent)); + + knuckleDynamicDrawMgr.canvasNode_ = Rosen::RSCanvasDrawingNode::Create(); + ASSERT_NE(knuckleDynamicDrawMgr.canvasNode_, nullptr); + ASSERT_FALSE(knuckleDynamicDrawMgr.IsSingleKnuckle(pointerEvent)); +} + +/** + * @tc.name: KnuckleDrawingManagerTest_StartTouchDraw + * @tc.desc: Test Overrides StartTouchDraw function branches + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_StartTouchDraw, TestSize.Level1) +{ + CALL_TEST_DEBUG; + KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; + std::shared_ptr pointerEvent = PointerEvent::Create(); + ASSERT_NE(pointerEvent, nullptr); + pointerEvent->SetPointerId(1); + knuckleDynamicDrawMgr.StartTouchDraw(pointerEvent); + + knuckleDynamicDrawMgr.canvasNode_ = Rosen::RSCanvasDrawingNode::Create(); + ASSERT_NE(knuckleDynamicDrawMgr.canvasNode_, nullptr); + knuckleDynamicDrawMgr.displayInfo_.width = 200; + knuckleDynamicDrawMgr.displayInfo_.height = 200; + std::string imagePath = "/system/etc/multimodalinput/mouse_icon/Default.svg"; + auto pixelMap = DecodeImageToPixelMap(imagePath); + knuckleDynamicDrawMgr.glowTraceSystem_ = + std::make_shared(POINT_SYSTEM_SIZE, pixelMap, MAX_DIVERGENCE_NUM); + knuckleDynamicDrawMgr.isDrawing_ = true; + knuckleDynamicDrawMgr.StartTouchDraw(pointerEvent); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_DrawGraphic + * @tc.name: KnuckleDrawingManagerTest_DrawGraphic + * @tc.desc: Test Overrides DrawGraphic function branches + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_DrawGraphic, TestSize.Level1) +{ + CALL_TEST_DEBUG; + KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; + std::shared_ptr pointerEvent = PointerEvent::Create(); + ASSERT_NE(pointerEvent, nullptr); + pointerEvent->SetPointerId(1); + + knuckleDynamicDrawMgr.canvasNode_ = Rosen::RSCanvasDrawingNode::Create(); + ASSERT_NE(knuckleDynamicDrawMgr.canvasNode_, nullptr); + knuckleDynamicDrawMgr.displayInfo_.width = 200; + knuckleDynamicDrawMgr.displayInfo_.height = 200; + std::string imagePath = "/system/etc/multimodalinput/mouse_icon/Default.svg"; + auto pixelMap = DecodeImageToPixelMap(imagePath); + knuckleDynamicDrawMgr.glowTraceSystem_ = + std::make_shared(POINT_SYSTEM_SIZE, pixelMap, MAX_DIVERGENCE_NUM); + knuckleDynamicDrawMgr.isDrawing_ = false; + ASSERT_EQ(knuckleDynamicDrawMgr.DrawGraphic(pointerEvent), RET_OK); + knuckleDynamicDrawMgr.isDrawing_ = true; + ASSERT_EQ(knuckleDynamicDrawMgr.DrawGraphic(pointerEvent), RET_ERR); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_CreateTouchWindow + * @tc.desc: Test Overrides CreateTouchWindow function branches + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_CreateTouchWindow, TestSize.Level1) +{ + CALL_TEST_DEBUG; + KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; + int32_t displayId = 10; + knuckleDynamicDrawMgr.surfaceNode_ = nullptr; + knuckleDynamicDrawMgr.displayInfo_.width = 200; + knuckleDynamicDrawMgr.displayInfo_.height = 200; + knuckleDynamicDrawMgr.CreateTouchWindow(displayId); + + Rosen::RSSurfaceNodeConfig surfaceNodeConfig; + surfaceNodeConfig.SurfaceNodeName = "touch window"; + Rosen::RSSurfaceNodeType surfaceNodeType = Rosen::RSSurfaceNodeType::SELF_DRAWING_WINDOW_NODE; + knuckleDynamicDrawMgr.surfaceNode_ = Rosen::RSSurfaceNode::Create(surfaceNodeConfig, surfaceNodeType); + ASSERT_NE(knuckleDynamicDrawMgr.surfaceNode_, nullptr); + knuckleDynamicDrawMgr.CreateTouchWindow(displayId); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_001 + * @tc.desc: Test KnuckleDynamicDrawHandler + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_001, + TestSize.Level1) +{ + CALL_TEST_DEBUG; + auto pointerEvent = PointerEvent::Create(); + EXPECT_NE(pointerEvent, nullptr); + + PointerEvent::PointerItem item; + item.SetPointerId(0); + int32_t displayX = 100; + int32_t displayY = 100; + item.SetDisplayX(displayX); + item.SetDisplayY(displayY); + item.SetToolType(PointerEvent::TOOL_TYPE_FINGER); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); + pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); + pointerEvent->SetTargetDisplayId(0); + pointerEvent->SetPointerId(0); + pointerEvent->AddPointerItem(item); + knuckleDynamicDrawingMgr->KnuckleDynamicDrawHandler(pointerEvent); + EXPECT_TRUE(knuckleDynamicDrawingMgr->isDrawing_); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_002 + * @tc.desc: Test KnuckleDynamicDrawHandler + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_002, + TestSize.Level1) +{ + CALL_TEST_DEBUG; + auto pointerEvent = PointerEvent::Create(); + EXPECT_NE(pointerEvent, nullptr); + + PointerEvent::PointerItem item; + item.SetPointerId(0); + int32_t displayX = 200; + int32_t displayY = 200; + item.SetDisplayX(displayX); + item.SetDisplayY(displayY); + item.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UP); + pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); + pointerEvent->SetTargetDisplayId(0); + pointerEvent->SetPointerId(0); + pointerEvent->AddPointerItem(item); + knuckleDynamicDrawingMgr->KnuckleDynamicDrawHandler(pointerEvent); + EXPECT_EQ(knuckleDynamicDrawingMgr->lastUpTime_, 0); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_003 + * @tc.desc: Test KnuckleDynamicDrawHandler + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_003, + TestSize.Level1) +{ + CALL_TEST_DEBUG; + auto pointerEvent = PointerEvent::Create(); + EXPECT_NE(pointerEvent, nullptr); + + PointerEvent::PointerItem item1; + item1.SetPointerId(0); + int32_t displayX = 100; + int32_t displayY = 200; + item1.SetDisplayX(displayX); + item1.SetDisplayY(displayY); + item1.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); + pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); + pointerEvent->SetTargetDisplayId(0); + pointerEvent->SetPointerId(0); + pointerEvent->AddPointerItem(item1); + + PointerEvent::PointerItem item2; + item2.SetPointerId(1); + displayX = 200; + displayY = 200; + item2.SetDisplayX(displayX); + item2.SetDisplayY(displayY); + item2.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); + pointerEvent->AddPointerItem(item2); + knuckleDynamicDrawingMgr->KnuckleDynamicDrawHandler(pointerEvent); + EXPECT_TRUE(knuckleDynamicDrawingMgr->isDrawing_); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_004 + * @tc.desc: Test KnuckleDynamicDrawHandler + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_004, + TestSize.Level1) +{ + CALL_TEST_DEBUG; + auto pointerEvent = PointerEvent::Create(); + EXPECT_NE(pointerEvent, nullptr); + + PointerEvent::PointerItem item; + item.SetPointerId(0); + int32_t displayX = 200; + int32_t displayY = 200; + item.SetDisplayX(displayX); + item.SetDisplayY(displayY); + item.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); + pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); + pointerEvent->SetTargetDisplayId(0); + pointerEvent->SetPointerId(0); + pointerEvent->AddPointerItem(item); + knuckleDynamicDrawingMgr->KnuckleDynamicDrawHandler(pointerEvent); + EXPECT_EQ(knuckleDynamicDrawingMgr->firstDownTime_, 0); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_005 + * @tc.desc: Test KnuckleDynamicDrawHandler + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_005, + TestSize.Level1) +{ + CALL_TEST_DEBUG; + auto pointerEvent = PointerEvent::Create(); + EXPECT_NE(pointerEvent, nullptr); + + PointerEvent::PointerItem item; + item.SetPointerId(0); + int32_t displayX = 200; + int32_t displayY = 200; + item.SetDisplayX(displayX); + item.SetDisplayY(displayY); + item.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); + pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); + pointerEvent->SetTargetDisplayId(0); + pointerEvent->SetPointerId(0); + pointerEvent->AddPointerItem(item); + knuckleDynamicDrawingMgr->KnuckleDynamicDrawHandler(pointerEvent); + EXPECT_NE(knuckleDynamicDrawingMgr->pointCounter_, 1); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_006 + * @tc.desc: Test KnuckleDynamicDrawHandler + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_006, + TestSize.Level1) +{ + CALL_TEST_DEBUG; + auto pointerEvent = PointerEvent::Create(); + EXPECT_NE(pointerEvent, nullptr); + + PointerEvent::PointerItem item; + item.SetPointerId(0); + int32_t displayX = 200; + int32_t displayY = 200; + item.SetDisplayX(displayX); + item.SetDisplayY(displayY); + item.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_CANCEL); + pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); + pointerEvent->SetTargetDisplayId(0); + pointerEvent->SetPointerId(0); + pointerEvent->AddPointerItem(item); + knuckleDynamicDrawingMgr->KnuckleDynamicDrawHandler(pointerEvent); + EXPECT_TRUE(knuckleDynamicDrawingMgr->traceControlPoints_.empty()); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_UpdateDisplayInfo_001 + * @tc.desc: Test UpdateDisplayInfo + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_UpdateDisplayInfo_001, TestSize.Level1) +{ + CALL_TEST_DEBUG; + DisplayInfo displayInfo = { .id = 1, .x = 1, .y = 1, .width = 1, .height = 1, + .dpi = 240, .name = "display", .uniq = "xx" }; + knuckleDynamicDrawingMgr->UpdateDisplayInfo(displayInfo); + EXPECT_EQ(knuckleDynamicDrawingMgr->displayInfo_.width, 1); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_UpdateDisplayInfo_002 + * @tc.desc: Test UpdateDisplayInfo + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_UpdateDisplayInfo_002, TestSize.Level1) +{ + CALL_TEST_DEBUG; + DisplayInfo displayInfo; + knuckleDynamicDrawingMgr->UpdateDisplayInfo(displayInfo); + EXPECT_EQ(knuckleDynamicDrawingMgr->displayInfo_.width, 0); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_DestoryWindow_002 + * @tc.desc: Test DestoryWindow + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_DestoryWindow_002, TestSize.Level1) +{ + CALL_TEST_DEBUG; + knuckleDynamicDrawingMgr->canvasNode_ = nullptr; + Rosen::RSSurfaceNodeConfig surfaceNodeConfig; + surfaceNodeConfig.SurfaceNodeName = "knuckle window"; + Rosen::RSSurfaceNodeType surfaceNodeType = Rosen::RSSurfaceNodeType::SELF_DRAWING_WINDOW_NODE; + knuckleDynamicDrawingMgr->surfaceNode_ = Rosen::RSSurfaceNode::Create(surfaceNodeConfig, surfaceNodeType); + ASSERT_NE(knuckleDynamicDrawingMgr->surfaceNode_, nullptr); + knuckleDynamicDrawingMgr->canvasNode_ = Rosen::RSCanvasDrawingNode::Create(); + ASSERT_NE(knuckleDynamicDrawingMgr->canvasNode_, nullptr); + EXPECT_NO_FATAL_FAILURE(knuckleDynamicDrawingMgr->DestoryWindow()); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_IsSingleKnuckle_001 + * @tc.desc: Test Overrides IsSingleKnuckle function branches + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_IsSingleKnuckle_001, TestSize.Level1) +{ + CALL_TEST_DEBUG; + KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; + std::shared_ptr pointerEvent = PointerEvent::Create(); + ASSERT_NE(pointerEvent, nullptr); + PointerEvent::PointerItem item; + item.SetPointerId(10); + item.SetToolType(PointerEvent::TOOL_TYPE_TOUCHPAD); + pointerEvent->SetPointerId(10); + pointerEvent->AddPointerItem(item); + Rosen::Drawing::Point point = Rosen::Drawing::Point(); + knuckleDynamicDrawMgr.traceControlPoints_.push_back(point); + EXPECT_FALSE(knuckleDynamicDrawMgr.IsSingleKnuckle(pointerEvent)); + knuckleDynamicDrawMgr.traceControlPoints_.clear(); + knuckleDynamicDrawMgr.isRotate_ = true; + item.SetPointerId(20); + item.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); + pointerEvent->SetPointerId(20); + pointerEvent->AddPointerItem(item); + EXPECT_TRUE(knuckleDynamicDrawMgr.IsSingleKnuckle(pointerEvent)); + pointerEvent->SetPointerId(10); + knuckleDynamicDrawMgr.isRotate_ = true; + EXPECT_FALSE(knuckleDynamicDrawMgr.IsSingleKnuckle(pointerEvent)); + EXPECT_FALSE(knuckleDynamicDrawMgr.IsSingleKnuckle(pointerEvent)); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_CheckPointerAction + * @tc.desc: Test Overrides CheckPointerAction function branches + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_CheckPointerAction, TestSize.Level1) +{ + CALL_TEST_DEBUG; + KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; + std::shared_ptr pointerEvent = PointerEvent::Create(); + ASSERT_NE(pointerEvent, nullptr); + knuckleDynamicDrawMgr.canvasNode_ = Rosen::RSCanvasDrawingNode::Create(); + ASSERT_NE(knuckleDynamicDrawMgr.canvasNode_, nullptr); + Rosen::RSSurfaceNodeConfig surfaceNodeConfig; + surfaceNodeConfig.SurfaceNodeName = "touch window"; + Rosen::RSSurfaceNodeType surfaceNodeType = Rosen::RSSurfaceNodeType::SELF_DRAWING_WINDOW_NODE; + knuckleDynamicDrawMgr.surfaceNode_ = Rosen::RSSurfaceNode::Create(surfaceNodeConfig, surfaceNodeType); + ASSERT_NE(knuckleDynamicDrawMgr.surfaceNode_, nullptr); + PointerEvent::PointerItem item; + item.SetPointerId(10); + pointerEvent->AddPointerItem(item); + item.SetPointerId(20); + pointerEvent->AddPointerItem(item); + knuckleDynamicDrawMgr.knuckleDrawMgr_ = std::make_shared(); + knuckleDynamicDrawMgr.knuckleDrawMgr_->screenReadState_.state = SCREEN_READ_ENABLE; + EXPECT_FALSE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_CheckPointerAction_001 + * @tc.desc: Test Overrides CheckPointerAction function branches + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_CheckPointerAction_001, TestSize.Level1) +{ + CALL_TEST_DEBUG; + KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; + std::shared_ptr pointerEvent = PointerEvent::Create(); + ASSERT_NE(pointerEvent, nullptr); + PointerEvent::PointerItem item; + item.SetPointerId(10); + pointerEvent->AddPointerItem(item); + knuckleDynamicDrawMgr.knuckleDrawMgr_ = std::make_shared(); + knuckleDynamicDrawMgr.knuckleDrawMgr_->screenReadState_.state = "0"; + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UP); + EXPECT_TRUE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_PULL_UP); + EXPECT_TRUE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); + EXPECT_TRUE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_PULL_DOWN); + EXPECT_TRUE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); + knuckleDynamicDrawMgr.isStop_ = true; + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); + EXPECT_FALSE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); + knuckleDynamicDrawMgr.isStop_ = false; + knuckleDynamicDrawMgr.traceControlPoints_.clear(); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_PULL_MOVE); + EXPECT_FALSE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); + Rosen::Drawing::Point point = Rosen::Drawing::Point(); + knuckleDynamicDrawMgr.traceControlPoints_.push_back(point); + EXPECT_TRUE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); + pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UNKNOWN); + EXPECT_FALSE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_ProcessUpAndCancelEvent + * @tc.desc: Test Overrides ProcessUpAndCancelEvent function branches + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_ProcessUpAndCancelEvent, TestSize.Level1) +{ + CALL_TEST_DEBUG; + KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; + std::shared_ptr pointerEvent = PointerEvent::Create(); + ASSERT_NE(pointerEvent, nullptr); + std::string imagePath = "/system/etc/multimodalinput/mouse_icon/Default.svg"; + auto pixelMap = DecodeImageToPixelMap(imagePath); + knuckleDynamicDrawMgr.glowTraceSystem_ = std::make_shared(POINT_SYSTEM_SIZE, + pixelMap, MAX_DIVERGENCE_NUM); + pointerEvent->SetPointerId(10); + pointerEvent->SetActionTime(1000); + EXPECT_NO_FATAL_FAILURE(knuckleDynamicDrawMgr.ProcessUpAndCancelEvent(pointerEvent)); +} + +/** + * @tc.name: KnuckleDynamicDrawingManagerTest_ProcessMoveEvent + * @tc.desc: Test ProcessMoveEvent + * @tc.type: Function + * @tc.require: + */ +HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_ProcessMoveEvent, TestSize.Level1) +{ + CALL_TEST_DEBUG; + KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; + std::shared_ptr pointerEvent = PointerEvent::Create(); + knuckleDynamicDrawMgr.pointCounter_ = MAX_DIVERGENCE_NUM; + EXPECT_NO_FATAL_FAILURE(knuckleDynamicDrawMgr.ProcessMoveEvent(pointerEvent)); +} +} // namespace MMI +} // namespace OHOS \ No newline at end of file -- Gitee From 4db11abbf296c6ffc7e4b6f4093b60edefea43dd Mon Sep 17 00:00:00 2001 From: ninghejuan Date: Fri, 13 Jun 2025 10:49:08 +0800 Subject: [PATCH 3/3] fix input test Signed-off-by: ninghejuan --- .../knuckle_dynamic_drawing_manager_test.cpp | 631 ------------------ 1 file changed, 631 deletions(-) delete mode 100644 service/event_dump/test/knuckle_dynamic_drawing_manager_test.cpp diff --git a/service/event_dump/test/knuckle_dynamic_drawing_manager_test.cpp b/service/event_dump/test/knuckle_dynamic_drawing_manager_test.cpp deleted file mode 100644 index 88ab1a9a78..0000000000 --- a/service/event_dump/test/knuckle_dynamic_drawing_manager_test.cpp +++ /dev/null @@ -1,631 +0,0 @@ -/* - * Copyright (c) 2024 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. - */ - -#include - -#include "image_source.h" -#include "image_type.h" -#include "image_utils.h" - -#include "mmi_log.h" -#include "pointer_event.h" -#include "knuckle_dynamic_drawing_manager.h" - -#undef MMI_LOG_TAG -#define MMI_LOG_TAG "KnuckleDynamicDrawingManagerTest" - -namespace OHOS { -namespace MMI { -namespace { -using namespace testing::ext; -constexpr int32_t POINT_SYSTEM_SIZE = 50; -constexpr int32_t MAX_DIVERGENCE_NUM = 10; -constexpr int32_t MAX_POINTER_COLOR = 0xff00ff; -constexpr std::string_view SCREEN_READ_ENABLE { "1" }; -} // namespace - -class KnuckleDynamicDrawingManagerTest : public testing::Test { -public: - static void SetUpTestCase(void) {}; - static void TearDownTestCase(void) {}; - void SetUp(void) - { - DisplayInfo displayInfo = { .id = 1, .x = 1, .y = 1, .width = 1, .height = 1, - .dpi = 240, .name = "display", .uniq = "xx" }; - if (knuckleDynamicDrawingMgr == nullptr) { - knuckleDynamicDrawingMgr = std::make_shared(); - } - knuckleDynamicDrawingMgr->UpdateDisplayInfo(displayInfo); - } - - std::shared_ptr DecodeImageToPixelMap(const std::string &imagePath); -private: - std::shared_ptr knuckleDynamicDrawingMgr { nullptr }; -}; - -std::shared_ptr KnuckleDynamicDrawingManagerTest::DecodeImageToPixelMap(const std::string &imagePath) -{ - CALL_DEBUG_ENTER; - OHOS::Media::SourceOptions opts; - uint32_t ret = 0; - auto imageSource = OHOS::Media::ImageSource::CreateImageSource(imagePath, opts, ret); - CHKPP(imageSource); - std::set formats; - ret = imageSource->GetSupportedFormats(formats); - OHOS::Media::DecodeOptions decodeOpts; - decodeOpts.desiredSize = { - .width = 80, - .height = 80 - }; - - decodeOpts.SVGOpts.fillColor = {.isValidColor = false, .color = MAX_POINTER_COLOR}; - decodeOpts.SVGOpts.strokeColor = {.isValidColor = false, .color = MAX_POINTER_COLOR}; - - std::shared_ptr pixelMap = imageSource->CreatePixelMap(decodeOpts, ret); - if (pixelMap == nullptr) { - MMI_HILOGE("The pixelMap is nullptr"); - } - return pixelMap; -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_Normal - * @tc.desc: Test Normal branch of covering KnuckleDynamicDrawHandler function - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, - KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_Normal, TestSize.Level1) -{ - CALL_TEST_DEBUG; - KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; - std::shared_ptr pointerEvent = PointerEvent::Create(); - ASSERT_NE(pointerEvent, nullptr); - PointerEvent::PointerItem item; - item.SetPointerId(1); - item.SetToolType(PointerEvent::TOOL_TYPE_MOUSE); - pointerEvent->SetPointerId(1); - pointerEvent->AddPointerItem(item); - knuckleDynamicDrawMgr.KnuckleDynamicDrawHandler(pointerEvent); - EXPECT_FALSE(knuckleDynamicDrawMgr.isStop_); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_Abnormal - * @tc.desc: Test Abnormal branch of covering KnuckleDynamicDrawHandler function - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, - KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_Abnormal, TestSize.Level1) -{ - CALL_TEST_DEBUG; - KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; - std::shared_ptr pointerEvent = PointerEvent::Create(); - ASSERT_NE(pointerEvent, nullptr); - PointerEvent::PointerItem item; - item.SetPointerId(1); - item.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); - pointerEvent->SetPointerId(1); - pointerEvent->AddPointerItem(item); - pointerEvent->SetTargetDisplayId(50); - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_PULL_DOWN); - knuckleDynamicDrawMgr.KnuckleDynamicDrawHandler(pointerEvent); - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_SWIPE_END); - knuckleDynamicDrawMgr.KnuckleDynamicDrawHandler(pointerEvent); - EXPECT_TRUE(knuckleDynamicDrawMgr.isDrawing_); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_InitPointerPathPaint - * @tc.desc: Test Overrides InitPointerPathPaint function branches - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_InitPointerPathPaint, TestSize.Level1) -{ - CALL_TEST_DEBUG; - KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; - knuckleDynamicDrawMgr.glowTraceSystem_ = nullptr; - knuckleDynamicDrawMgr.InitPointerPathPaint(); - std::string imagePath = "/system/etc/multimodalinput/mouse_icon/Default.svg"; - auto pixelMap = DecodeImageToPixelMap(imagePath); - ASSERT_NE(pixelMap, nullptr); - knuckleDynamicDrawMgr.glowTraceSystem_ = - std::make_shared(POINT_SYSTEM_SIZE, pixelMap, MAX_DIVERGENCE_NUM); - knuckleDynamicDrawMgr.InitPointerPathPaint(); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_IsSingleKnuckle - * @tc.desc: Test Overrides IsSingleKnuckle function branches - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_IsSingleKnuckle, TestSize.Level1) -{ - CALL_TEST_DEBUG; - KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; - std::shared_ptr pointerEvent = PointerEvent::Create(); - ASSERT_NE(pointerEvent, nullptr); - PointerEvent::PointerItem item; - item.SetPointerId(1); - item.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); - pointerEvent->SetPointerId(1); - pointerEvent->AddPointerItem(item); - ASSERT_TRUE(knuckleDynamicDrawMgr.IsSingleKnuckle(pointerEvent)); - - item.SetPointerId(2); - item.SetToolType(PointerEvent::TOOL_TYPE_TOUCHPAD); - pointerEvent->SetPointerId(2); - pointerEvent->AddPointerItem(item); - knuckleDynamicDrawMgr.canvasNode_ = nullptr; - ASSERT_FALSE(knuckleDynamicDrawMgr.IsSingleKnuckle(pointerEvent)); - - knuckleDynamicDrawMgr.canvasNode_ = Rosen::RSCanvasDrawingNode::Create(); - ASSERT_NE(knuckleDynamicDrawMgr.canvasNode_, nullptr); - ASSERT_FALSE(knuckleDynamicDrawMgr.IsSingleKnuckle(pointerEvent)); -} - -/** - * @tc.name: KnuckleDrawingManagerTest_StartTouchDraw - * @tc.desc: Test Overrides StartTouchDraw function branches - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_StartTouchDraw, TestSize.Level1) -{ - CALL_TEST_DEBUG; - KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; - std::shared_ptr pointerEvent = PointerEvent::Create(); - ASSERT_NE(pointerEvent, nullptr); - pointerEvent->SetPointerId(1); - knuckleDynamicDrawMgr.StartTouchDraw(pointerEvent); - - knuckleDynamicDrawMgr.canvasNode_ = Rosen::RSCanvasDrawingNode::Create(); - ASSERT_NE(knuckleDynamicDrawMgr.canvasNode_, nullptr); - knuckleDynamicDrawMgr.displayInfo_.width = 200; - knuckleDynamicDrawMgr.displayInfo_.height = 200; - std::string imagePath = "/system/etc/multimodalinput/mouse_icon/Default.svg"; - auto pixelMap = DecodeImageToPixelMap(imagePath); - knuckleDynamicDrawMgr.glowTraceSystem_ = - std::make_shared(POINT_SYSTEM_SIZE, pixelMap, MAX_DIVERGENCE_NUM); - knuckleDynamicDrawMgr.isDrawing_ = true; - knuckleDynamicDrawMgr.StartTouchDraw(pointerEvent); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_DrawGraphic - * @tc.name: KnuckleDrawingManagerTest_DrawGraphic - * @tc.desc: Test Overrides DrawGraphic function branches - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_DrawGraphic, TestSize.Level1) -{ - CALL_TEST_DEBUG; - KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; - std::shared_ptr pointerEvent = PointerEvent::Create(); - ASSERT_NE(pointerEvent, nullptr); - pointerEvent->SetPointerId(1); - - knuckleDynamicDrawMgr.canvasNode_ = Rosen::RSCanvasDrawingNode::Create(); - ASSERT_NE(knuckleDynamicDrawMgr.canvasNode_, nullptr); - knuckleDynamicDrawMgr.displayInfo_.width = 200; - knuckleDynamicDrawMgr.displayInfo_.height = 200; - std::string imagePath = "/system/etc/multimodalinput/mouse_icon/Default.svg"; - auto pixelMap = DecodeImageToPixelMap(imagePath); - knuckleDynamicDrawMgr.glowTraceSystem_ = - std::make_shared(POINT_SYSTEM_SIZE, pixelMap, MAX_DIVERGENCE_NUM); - knuckleDynamicDrawMgr.isDrawing_ = false; - ASSERT_EQ(knuckleDynamicDrawMgr.DrawGraphic(pointerEvent), RET_OK); - knuckleDynamicDrawMgr.isDrawing_ = true; - ASSERT_EQ(knuckleDynamicDrawMgr.DrawGraphic(pointerEvent), RET_ERR); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_CreateTouchWindow - * @tc.desc: Test Overrides CreateTouchWindow function branches - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_CreateTouchWindow, TestSize.Level1) -{ - CALL_TEST_DEBUG; - KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; - int32_t displayId = 10; - knuckleDynamicDrawMgr.surfaceNode_ = nullptr; - knuckleDynamicDrawMgr.displayInfo_.width = 200; - knuckleDynamicDrawMgr.displayInfo_.height = 200; - knuckleDynamicDrawMgr.CreateTouchWindow(displayId); - - Rosen::RSSurfaceNodeConfig surfaceNodeConfig; - surfaceNodeConfig.SurfaceNodeName = "touch window"; - Rosen::RSSurfaceNodeType surfaceNodeType = Rosen::RSSurfaceNodeType::SELF_DRAWING_WINDOW_NODE; - knuckleDynamicDrawMgr.surfaceNode_ = Rosen::RSSurfaceNode::Create(surfaceNodeConfig, surfaceNodeType); - ASSERT_NE(knuckleDynamicDrawMgr.surfaceNode_, nullptr); - knuckleDynamicDrawMgr.CreateTouchWindow(displayId); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_001 - * @tc.desc: Test KnuckleDynamicDrawHandler - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_001, - TestSize.Level1) -{ - CALL_TEST_DEBUG; - auto pointerEvent = PointerEvent::Create(); - EXPECT_NE(pointerEvent, nullptr); - - PointerEvent::PointerItem item; - item.SetPointerId(0); - int32_t displayX = 100; - int32_t displayY = 100; - item.SetDisplayX(displayX); - item.SetDisplayY(displayY); - item.SetToolType(PointerEvent::TOOL_TYPE_FINGER); - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); - pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); - pointerEvent->SetTargetDisplayId(0); - pointerEvent->SetPointerId(0); - pointerEvent->AddPointerItem(item); - knuckleDynamicDrawingMgr->KnuckleDynamicDrawHandler(pointerEvent); - EXPECT_TRUE(knuckleDynamicDrawingMgr->isDrawing_); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_002 - * @tc.desc: Test KnuckleDynamicDrawHandler - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_002, - TestSize.Level1) -{ - CALL_TEST_DEBUG; - auto pointerEvent = PointerEvent::Create(); - EXPECT_NE(pointerEvent, nullptr); - - PointerEvent::PointerItem item; - item.SetPointerId(0); - int32_t displayX = 200; - int32_t displayY = 200; - item.SetDisplayX(displayX); - item.SetDisplayY(displayY); - item.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UP); - pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); - pointerEvent->SetTargetDisplayId(0); - pointerEvent->SetPointerId(0); - pointerEvent->AddPointerItem(item); - knuckleDynamicDrawingMgr->KnuckleDynamicDrawHandler(pointerEvent); - EXPECT_EQ(knuckleDynamicDrawingMgr->lastUpTime_, 0); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_003 - * @tc.desc: Test KnuckleDynamicDrawHandler - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_003, - TestSize.Level1) -{ - CALL_TEST_DEBUG; - auto pointerEvent = PointerEvent::Create(); - EXPECT_NE(pointerEvent, nullptr); - - PointerEvent::PointerItem item1; - item1.SetPointerId(0); - int32_t displayX = 100; - int32_t displayY = 200; - item1.SetDisplayX(displayX); - item1.SetDisplayY(displayY); - item1.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); - pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); - pointerEvent->SetTargetDisplayId(0); - pointerEvent->SetPointerId(0); - pointerEvent->AddPointerItem(item1); - - PointerEvent::PointerItem item2; - item2.SetPointerId(1); - displayX = 200; - displayY = 200; - item2.SetDisplayX(displayX); - item2.SetDisplayY(displayY); - item2.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); - pointerEvent->AddPointerItem(item2); - knuckleDynamicDrawingMgr->KnuckleDynamicDrawHandler(pointerEvent); - EXPECT_TRUE(knuckleDynamicDrawingMgr->isDrawing_); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_004 - * @tc.desc: Test KnuckleDynamicDrawHandler - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_004, - TestSize.Level1) -{ - CALL_TEST_DEBUG; - auto pointerEvent = PointerEvent::Create(); - EXPECT_NE(pointerEvent, nullptr); - - PointerEvent::PointerItem item; - item.SetPointerId(0); - int32_t displayX = 200; - int32_t displayY = 200; - item.SetDisplayX(displayX); - item.SetDisplayY(displayY); - item.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); - pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); - pointerEvent->SetTargetDisplayId(0); - pointerEvent->SetPointerId(0); - pointerEvent->AddPointerItem(item); - knuckleDynamicDrawingMgr->KnuckleDynamicDrawHandler(pointerEvent); - EXPECT_EQ(knuckleDynamicDrawingMgr->firstDownTime_, 0); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_005 - * @tc.desc: Test KnuckleDynamicDrawHandler - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_005, - TestSize.Level1) -{ - CALL_TEST_DEBUG; - auto pointerEvent = PointerEvent::Create(); - EXPECT_NE(pointerEvent, nullptr); - - PointerEvent::PointerItem item; - item.SetPointerId(0); - int32_t displayX = 200; - int32_t displayY = 200; - item.SetDisplayX(displayX); - item.SetDisplayY(displayY); - item.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); - pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); - pointerEvent->SetTargetDisplayId(0); - pointerEvent->SetPointerId(0); - pointerEvent->AddPointerItem(item); - knuckleDynamicDrawingMgr->KnuckleDynamicDrawHandler(pointerEvent); - EXPECT_NE(knuckleDynamicDrawingMgr->pointCounter_, 1); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_006 - * @tc.desc: Test KnuckleDynamicDrawHandler - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_KnuckleDynamicDrawHandler_006, - TestSize.Level1) -{ - CALL_TEST_DEBUG; - auto pointerEvent = PointerEvent::Create(); - EXPECT_NE(pointerEvent, nullptr); - - PointerEvent::PointerItem item; - item.SetPointerId(0); - int32_t displayX = 200; - int32_t displayY = 200; - item.SetDisplayX(displayX); - item.SetDisplayY(displayY); - item.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_CANCEL); - pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); - pointerEvent->SetTargetDisplayId(0); - pointerEvent->SetPointerId(0); - pointerEvent->AddPointerItem(item); - knuckleDynamicDrawingMgr->KnuckleDynamicDrawHandler(pointerEvent); - EXPECT_TRUE(knuckleDynamicDrawingMgr->traceControlPoints_.empty()); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_UpdateDisplayInfo_001 - * @tc.desc: Test UpdateDisplayInfo - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_UpdateDisplayInfo_001, TestSize.Level1) -{ - CALL_TEST_DEBUG; - DisplayInfo displayInfo = { .id = 1, .x = 1, .y = 1, .width = 1, .height = 1, - .dpi = 240, .name = "display", .uniq = "xx" }; - knuckleDynamicDrawingMgr->UpdateDisplayInfo(displayInfo); - EXPECT_EQ(knuckleDynamicDrawingMgr->displayInfo_.width, 1); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_UpdateDisplayInfo_002 - * @tc.desc: Test UpdateDisplayInfo - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_UpdateDisplayInfo_002, TestSize.Level1) -{ - CALL_TEST_DEBUG; - DisplayInfo displayInfo; - knuckleDynamicDrawingMgr->UpdateDisplayInfo(displayInfo); - EXPECT_EQ(knuckleDynamicDrawingMgr->displayInfo_.width, 0); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_DestoryWindow_002 - * @tc.desc: Test DestoryWindow - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_DestoryWindow_002, TestSize.Level1) -{ - CALL_TEST_DEBUG; - knuckleDynamicDrawingMgr->canvasNode_ = nullptr; - Rosen::RSSurfaceNodeConfig surfaceNodeConfig; - surfaceNodeConfig.SurfaceNodeName = "knuckle window"; - Rosen::RSSurfaceNodeType surfaceNodeType = Rosen::RSSurfaceNodeType::SELF_DRAWING_WINDOW_NODE; - knuckleDynamicDrawingMgr->surfaceNode_ = Rosen::RSSurfaceNode::Create(surfaceNodeConfig, surfaceNodeType); - ASSERT_NE(knuckleDynamicDrawingMgr->surfaceNode_, nullptr); - knuckleDynamicDrawingMgr->canvasNode_ = Rosen::RSCanvasDrawingNode::Create(); - ASSERT_NE(knuckleDynamicDrawingMgr->canvasNode_, nullptr); - EXPECT_NO_FATAL_FAILURE(knuckleDynamicDrawingMgr->DestoryWindow()); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_IsSingleKnuckle_001 - * @tc.desc: Test Overrides IsSingleKnuckle function branches - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_IsSingleKnuckle_001, TestSize.Level1) -{ - CALL_TEST_DEBUG; - KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; - std::shared_ptr pointerEvent = PointerEvent::Create(); - ASSERT_NE(pointerEvent, nullptr); - PointerEvent::PointerItem item; - item.SetPointerId(10); - item.SetToolType(PointerEvent::TOOL_TYPE_TOUCHPAD); - pointerEvent->SetPointerId(10); - pointerEvent->AddPointerItem(item); - Rosen::Drawing::Point point = Rosen::Drawing::Point(); - knuckleDynamicDrawMgr.traceControlPoints_.push_back(point); - EXPECT_FALSE(knuckleDynamicDrawMgr.IsSingleKnuckle(pointerEvent)); - knuckleDynamicDrawMgr.traceControlPoints_.clear(); - knuckleDynamicDrawMgr.isRotate_ = true; - item.SetPointerId(20); - item.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); - pointerEvent->SetPointerId(20); - pointerEvent->AddPointerItem(item); - EXPECT_TRUE(knuckleDynamicDrawMgr.IsSingleKnuckle(pointerEvent)); - pointerEvent->SetPointerId(10); - knuckleDynamicDrawMgr.isRotate_ = true; - EXPECT_FALSE(knuckleDynamicDrawMgr.IsSingleKnuckle(pointerEvent)); - EXPECT_FALSE(knuckleDynamicDrawMgr.IsSingleKnuckle(pointerEvent)); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_CheckPointerAction - * @tc.desc: Test Overrides CheckPointerAction function branches - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_CheckPointerAction, TestSize.Level1) -{ - CALL_TEST_DEBUG; - KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; - std::shared_ptr pointerEvent = PointerEvent::Create(); - ASSERT_NE(pointerEvent, nullptr); - knuckleDynamicDrawMgr.canvasNode_ = Rosen::RSCanvasDrawingNode::Create(); - ASSERT_NE(knuckleDynamicDrawMgr.canvasNode_, nullptr); - Rosen::RSSurfaceNodeConfig surfaceNodeConfig; - surfaceNodeConfig.SurfaceNodeName = "touch window"; - Rosen::RSSurfaceNodeType surfaceNodeType = Rosen::RSSurfaceNodeType::SELF_DRAWING_WINDOW_NODE; - knuckleDynamicDrawMgr.surfaceNode_ = Rosen::RSSurfaceNode::Create(surfaceNodeConfig, surfaceNodeType); - ASSERT_NE(knuckleDynamicDrawMgr.surfaceNode_, nullptr); - PointerEvent::PointerItem item; - item.SetPointerId(10); - pointerEvent->AddPointerItem(item); - item.SetPointerId(20); - pointerEvent->AddPointerItem(item); - knuckleDynamicDrawMgr.knuckleDrawMgr_ = std::make_shared(); - knuckleDynamicDrawMgr.knuckleDrawMgr_->screenReadState_.state = SCREEN_READ_ENABLE; - EXPECT_FALSE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_CheckPointerAction_001 - * @tc.desc: Test Overrides CheckPointerAction function branches - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_CheckPointerAction_001, TestSize.Level1) -{ - CALL_TEST_DEBUG; - KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; - std::shared_ptr pointerEvent = PointerEvent::Create(); - ASSERT_NE(pointerEvent, nullptr); - PointerEvent::PointerItem item; - item.SetPointerId(10); - pointerEvent->AddPointerItem(item); - knuckleDynamicDrawMgr.knuckleDrawMgr_ = std::make_shared(); - knuckleDynamicDrawMgr.knuckleDrawMgr_->screenReadState_.state = "0"; - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UP); - EXPECT_TRUE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_PULL_UP); - EXPECT_TRUE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); - EXPECT_TRUE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_PULL_DOWN); - EXPECT_TRUE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); - knuckleDynamicDrawMgr.isStop_ = true; - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); - EXPECT_FALSE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); - knuckleDynamicDrawMgr.isStop_ = false; - knuckleDynamicDrawMgr.traceControlPoints_.clear(); - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_PULL_MOVE); - EXPECT_FALSE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); - Rosen::Drawing::Point point = Rosen::Drawing::Point(); - knuckleDynamicDrawMgr.traceControlPoints_.push_back(point); - EXPECT_TRUE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); - pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UNKNOWN); - EXPECT_FALSE(knuckleDynamicDrawMgr.CheckPointerAction(pointerEvent)); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_ProcessUpAndCancelEvent - * @tc.desc: Test Overrides ProcessUpAndCancelEvent function branches - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_ProcessUpAndCancelEvent, TestSize.Level1) -{ - CALL_TEST_DEBUG; - KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; - std::shared_ptr pointerEvent = PointerEvent::Create(); - ASSERT_NE(pointerEvent, nullptr); - std::string imagePath = "/system/etc/multimodalinput/mouse_icon/Default.svg"; - auto pixelMap = DecodeImageToPixelMap(imagePath); - knuckleDynamicDrawMgr.glowTraceSystem_ = std::make_shared(POINT_SYSTEM_SIZE, - pixelMap, MAX_DIVERGENCE_NUM); - pointerEvent->SetPointerId(10); - pointerEvent->SetActionTime(1000); - EXPECT_NO_FATAL_FAILURE(knuckleDynamicDrawMgr.ProcessUpAndCancelEvent(pointerEvent)); -} - -/** - * @tc.name: KnuckleDynamicDrawingManagerTest_ProcessMoveEvent - * @tc.desc: Test ProcessMoveEvent - * @tc.type: Function - * @tc.require: - */ -HWTEST_F(KnuckleDynamicDrawingManagerTest, KnuckleDynamicDrawingManagerTest_ProcessMoveEvent, TestSize.Level1) -{ - CALL_TEST_DEBUG; - KnuckleDynamicDrawingManager knuckleDynamicDrawMgr; - std::shared_ptr pointerEvent = PointerEvent::Create(); - knuckleDynamicDrawMgr.pointCounter_ = MAX_DIVERGENCE_NUM; - EXPECT_NO_FATAL_FAILURE(knuckleDynamicDrawMgr.ProcessMoveEvent(pointerEvent)); -} -} // namespace MMI -} // namespace OHOS \ No newline at end of file -- Gitee