diff --git a/frameworks/core/common/event_manager.cpp b/frameworks/core/common/event_manager.cpp index efdbf75213314b77505009385d85ae7020a469d9..1ba49ab3c7bbdbedcec8db5d0505078ab02af50a 100644 --- a/frameworks/core/common/event_manager.cpp +++ b/frameworks/core/common/event_manager.cpp @@ -1546,6 +1546,7 @@ void EventManager::UpdateHoverNode(const MouseEvent& event, const TouchTestResul lastHoverTestResultsMap_[eventIdentity] = std::move(currHoverTestResultsMap_[eventIdentity]); currHoverTestResultsMap_[eventIdentity].clear(); currHoverTestResultsMap_.erase(eventIdentity); + mouseTestResults_.clear(); } else if (event.action == MouseAction::WINDOW_ENTER) { TAG_LOGD(AceLogTag::ACE_MOUSE, "EW."); lastHoverTestResultsMap_[eventIdentity].clear(); diff --git a/test/unittest/core/event/event_manager_test_ng_new.cpp b/test/unittest/core/event/event_manager_test_ng_new.cpp index f38987b17ea874bd55b654c34d99abd691531ee8..a3924facb5c929e9a36e178b1b87145e104971b3 100644 --- a/test/unittest/core/event/event_manager_test_ng_new.cpp +++ b/test/unittest/core/event/event_manager_test_ng_new.cpp @@ -2164,4 +2164,30 @@ HWTEST_F(EventManagerTestNg, DispatchTouchEventTest001, TestSize.Level1) eventManager->DispatchTouchEvent(event, true); EXPECT_NE(ret, !eventManager->touchTestResults_[event.id].empty()); } + +/** + * @tc.name: UpdateHoverNode001 + * @tc.desc: Test UpdateHoverNode function. + * @tc.type: FUNC + */ +HWTEST_F(EventManagerTestNg, UpdateHoverNode001, TestSize.Level1) +{ + /** + * @tc.steps: step1. Create EventManager. + * @tc.expected: eventManager is not null. + */ + auto eventManager = AceType::MakeRefPtr(); + ASSERT_NE(eventManager, nullptr); + + MouseEvent event; + event.action = MouseAction::WINDOW_LEAVE; + auto mouseEventTarget = AceType::MakeRefPtr(MOUSE, NODEID); + auto hoverEventTarget = AceType::MakeRefPtr(MOUSE, NODEID); + std::list> testResult = {AceType::MakeRefPtr(), + mouseEventTarget, hoverEventTarget}; + eventManager->mouseTestResults_[0] = testResult; + EXPECT_EQ( static_cast(eventManager->mouseTestResults_.size()), 1); + eventManager->UpdateHoverNode(event, testResult); + EXPECT_EQ( static_cast(eventManager->mouseTestResults_.size()), 0); +} } // namespace OHOS::Ace::NG \ No newline at end of file