memory tooling, state handling changes
This commit is contained in:
@@ -6,6 +6,9 @@ local luaunit = require("testing.luaunit")
|
||||
local EventHandler = require("modules.EventHandler")
|
||||
local InputEvent = require("modules.InputEvent")
|
||||
local utils = require("modules.utils")
|
||||
local ErrorHandler = require("modules.ErrorHandler")
|
||||
ErrorHandler.init({})
|
||||
EventHandler.init({ Performance = nil, ErrorHandler = ErrorHandler, InputEvent = InputEvent, utils = utils })
|
||||
|
||||
TestEventHandler = {}
|
||||
|
||||
@@ -77,14 +80,9 @@ function TestEventHandler:test_new_accepts_custom_config()
|
||||
end
|
||||
|
||||
-- Test: initialize() sets element reference
|
||||
function TestEventHandler:test_initialize_sets_element()
|
||||
local handler = createEventHandler()
|
||||
local element = createMockElement()
|
||||
|
||||
handler:initialize(element)
|
||||
|
||||
luaunit.assertEquals(handler._element, element)
|
||||
end
|
||||
-- function TestEventHandler:test_initialize_sets_element()
|
||||
-- Removed: _element field no longer exists
|
||||
-- end
|
||||
|
||||
-- Test: getState() returns state data
|
||||
function TestEventHandler:test_getState_returns_state()
|
||||
@@ -184,18 +182,18 @@ function TestEventHandler:test_isButtonPressed_checks_specific_button()
|
||||
end
|
||||
|
||||
-- Test: processMouseEvents() returns early if no element
|
||||
function TestEventHandler:test_processMouseEvents_no_element()
|
||||
local handler = createEventHandler()
|
||||
|
||||
-- Should not error
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
end
|
||||
-- function TestEventHandler:test_processMouseEvents_no_element()
|
||||
-- local handler = createEventHandler()
|
||||
--
|
||||
-- -- Should not error
|
||||
-- handler:processMouseEvents(element, 50, 50, true, true)
|
||||
-- end
|
||||
|
||||
-- Test: processMouseEvents() handles press event
|
||||
function TestEventHandler:test_processMouseEvents_press()
|
||||
local handler = createEventHandler()
|
||||
local element = createMockElement()
|
||||
handler:initialize(element)
|
||||
-- handler:initialize(element) -- Removed: element now passed as parameter
|
||||
|
||||
local eventReceived = nil
|
||||
handler.onEvent = function(el, event)
|
||||
@@ -209,7 +207,7 @@ function TestEventHandler:test_processMouseEvents_press()
|
||||
end
|
||||
|
||||
-- First call - button just pressed
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
|
||||
luaunit.assertNotNil(eventReceived)
|
||||
luaunit.assertEquals(eventReceived.type, "press")
|
||||
@@ -223,7 +221,7 @@ end
|
||||
function TestEventHandler:test_processMouseEvents_drag()
|
||||
local handler = createEventHandler()
|
||||
local element = createMockElement()
|
||||
handler:initialize(element)
|
||||
-- handler:initialize(element) -- Removed: element now passed as parameter
|
||||
|
||||
local eventsReceived = {}
|
||||
handler.onEvent = function(el, event)
|
||||
@@ -236,10 +234,10 @@ function TestEventHandler:test_processMouseEvents_drag()
|
||||
end
|
||||
|
||||
-- First call - press at (50, 50)
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
|
||||
-- Second call - drag to (60, 70)
|
||||
handler:processMouseEvents(60, 70, true, true)
|
||||
handler:processMouseEvents(element, 60, 70, true, true)
|
||||
|
||||
luaunit.assertTrue(#eventsReceived >= 2)
|
||||
-- Find drag event
|
||||
@@ -262,7 +260,7 @@ end
|
||||
function TestEventHandler:test_processMouseEvents_release_and_click()
|
||||
local handler = createEventHandler()
|
||||
local element = createMockElement()
|
||||
handler:initialize(element)
|
||||
-- handler:initialize(element) -- Removed: element now passed as parameter
|
||||
|
||||
local eventsReceived = {}
|
||||
handler.onEvent = function(el, event)
|
||||
@@ -276,11 +274,11 @@ function TestEventHandler:test_processMouseEvents_release_and_click()
|
||||
end
|
||||
|
||||
-- Press
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
|
||||
-- Release
|
||||
isButtonDown = false
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
|
||||
-- Should have: press, click, release events
|
||||
luaunit.assertTrue(#eventsReceived >= 3)
|
||||
@@ -312,7 +310,7 @@ end
|
||||
function TestEventHandler:test_processMouseEvents_double_click()
|
||||
local handler = createEventHandler()
|
||||
local element = createMockElement()
|
||||
handler:initialize(element)
|
||||
-- handler:initialize(element) -- Removed: element now passed as parameter
|
||||
|
||||
local eventsReceived = {}
|
||||
handler.onEvent = function(el, event)
|
||||
@@ -327,15 +325,15 @@ function TestEventHandler:test_processMouseEvents_double_click()
|
||||
|
||||
-- First click
|
||||
isButtonDown = true
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
isButtonDown = false
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
|
||||
-- Second click (quickly after first)
|
||||
isButtonDown = true
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
isButtonDown = false
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
|
||||
-- Find click events
|
||||
local clickEvents = {}
|
||||
@@ -358,7 +356,7 @@ end
|
||||
function TestEventHandler:test_processMouseEvents_rightclick()
|
||||
local handler = createEventHandler()
|
||||
local element = createMockElement()
|
||||
handler:initialize(element)
|
||||
-- handler:initialize(element) -- Removed: element now passed as parameter
|
||||
|
||||
local eventsReceived = {}
|
||||
handler.onEvent = function(el, event)
|
||||
@@ -373,9 +371,9 @@ function TestEventHandler:test_processMouseEvents_rightclick()
|
||||
|
||||
-- Right click press and release
|
||||
isButtonDown = true
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
isButtonDown = false
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
|
||||
local hasRightClick = false
|
||||
for _, event in ipairs(eventsReceived) do
|
||||
@@ -394,7 +392,7 @@ end
|
||||
function TestEventHandler:test_processMouseEvents_middleclick()
|
||||
local handler = createEventHandler()
|
||||
local element = createMockElement()
|
||||
handler:initialize(element)
|
||||
-- handler:initialize(element) -- Removed: element now passed as parameter
|
||||
|
||||
local eventsReceived = {}
|
||||
handler.onEvent = function(el, event)
|
||||
@@ -409,9 +407,9 @@ function TestEventHandler:test_processMouseEvents_middleclick()
|
||||
|
||||
-- Middle click press and release
|
||||
isButtonDown = true
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
isButtonDown = false
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
|
||||
local hasMiddleClick = false
|
||||
for _, event in ipairs(eventsReceived) do
|
||||
@@ -431,7 +429,7 @@ function TestEventHandler:test_processMouseEvents_disabled()
|
||||
local handler = createEventHandler()
|
||||
local element = createMockElement()
|
||||
element.disabled = true
|
||||
handler:initialize(element)
|
||||
-- handler:initialize(element) -- Removed: element now passed as parameter
|
||||
|
||||
local eventReceived = false
|
||||
handler.onEvent = function(el, event)
|
||||
@@ -443,7 +441,7 @@ function TestEventHandler:test_processMouseEvents_disabled()
|
||||
return button == 1
|
||||
end
|
||||
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
|
||||
-- Should not fire event for disabled element
|
||||
luaunit.assertFalse(eventReceived)
|
||||
@@ -455,7 +453,7 @@ end
|
||||
function TestEventHandler:test_processTouchEvents()
|
||||
local handler = createEventHandler()
|
||||
local element = createMockElement()
|
||||
handler:initialize(element)
|
||||
-- handler:initialize(element) -- Removed: element now passed as parameter
|
||||
|
||||
local eventsReceived = {}
|
||||
handler.onEvent = function(el, event)
|
||||
@@ -482,7 +480,7 @@ function TestEventHandler:test_processTouchEvents()
|
||||
return 50, 50 -- Inside element
|
||||
end
|
||||
end
|
||||
handler:processTouchEvents()
|
||||
handler:processTouchEvents(element)
|
||||
|
||||
-- Second call - touch moves outside
|
||||
love.touch.getPosition = function(id)
|
||||
@@ -490,7 +488,7 @@ function TestEventHandler:test_processTouchEvents()
|
||||
return 150, 150 -- Outside element
|
||||
end
|
||||
end
|
||||
handler:processTouchEvents()
|
||||
handler:processTouchEvents(element)
|
||||
|
||||
-- Should receive touch event
|
||||
luaunit.assertTrue(#eventsReceived >= 1)
|
||||
@@ -500,21 +498,21 @@ function TestEventHandler:test_processTouchEvents()
|
||||
end
|
||||
|
||||
-- Test: processTouchEvents() returns early if no element
|
||||
function TestEventHandler:test_processTouchEvents_no_element()
|
||||
local handler = createEventHandler()
|
||||
|
||||
-- Should not error
|
||||
handler:processTouchEvents()
|
||||
end
|
||||
-- function TestEventHandler:test_processTouchEvents_no_element()
|
||||
-- local handler = createEventHandler()
|
||||
--
|
||||
-- -- Should not error
|
||||
-- handler:processTouchEvents(element)
|
||||
-- end
|
||||
|
||||
-- Test: processTouchEvents() returns early if no onEvent
|
||||
function TestEventHandler:test_processTouchEvents_no_onEvent()
|
||||
local handler = createEventHandler()
|
||||
local element = createMockElement()
|
||||
handler:initialize(element)
|
||||
-- handler:initialize(element) -- Removed: element now passed as parameter
|
||||
|
||||
-- Should not error (no onEvent callback)
|
||||
handler:processTouchEvents()
|
||||
handler:processTouchEvents(element)
|
||||
end
|
||||
|
||||
-- Test: onEventDeferred flag defers callback execution
|
||||
@@ -536,7 +534,7 @@ function TestEventHandler:test_onEventDeferred()
|
||||
end,
|
||||
})
|
||||
local element = createMockElement()
|
||||
handler:initialize(element)
|
||||
-- handler:initialize(element) -- Removed: element now passed as parameter
|
||||
|
||||
local originalIsDown = love.mouse.isDown
|
||||
love.mouse.isDown = function(button)
|
||||
@@ -544,11 +542,11 @@ function TestEventHandler:test_onEventDeferred()
|
||||
end
|
||||
|
||||
-- Press and release mouse button
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
love.mouse.isDown = function()
|
||||
return false
|
||||
end
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
|
||||
-- Events should not be immediately executed
|
||||
luaunit.assertEquals(#eventsReceived, 0)
|
||||
@@ -588,7 +586,7 @@ function TestEventHandler:test_onEventDeferred_false()
|
||||
end,
|
||||
})
|
||||
local element = createMockElement()
|
||||
handler:initialize(element)
|
||||
-- handler:initialize(element) -- Removed: element now passed as parameter
|
||||
|
||||
local originalIsDown = love.mouse.isDown
|
||||
love.mouse.isDown = function(button)
|
||||
@@ -596,11 +594,11 @@ function TestEventHandler:test_onEventDeferred_false()
|
||||
end
|
||||
|
||||
-- Press and release mouse button
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
love.mouse.isDown = function()
|
||||
return false
|
||||
end
|
||||
handler:processMouseEvents(50, 50, true, true)
|
||||
handler:processMouseEvents(element, 50, 50, true, true)
|
||||
|
||||
-- Events should be immediately executed
|
||||
luaunit.assertTrue(#eventsReceived > 0)
|
||||
|
||||
Reference in New Issue
Block a user