mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-12 08:21:02 +02:00
43 lines
1.2 KiB
Lua
43 lines
1.2 KiB
Lua
package.path = "./?.lua;./?/init.lua;" .. package.path
|
|
|
|
local T = require("tests.harness")
|
|
local name = "src.render.SecondScreen"
|
|
local oldModule = package.loaded[name]
|
|
local oldFfi = package.loaded.ffi
|
|
local oldPreload = package.preload.ffi
|
|
local null = {}
|
|
local calls = 0
|
|
local C = {
|
|
love_android_secondary_ready = function() return 1 end,
|
|
love_android_push_secondary = function() end,
|
|
love_android_secondary_enable = function() end,
|
|
love_android_poll_secondary_touch = function()
|
|
calls = calls + 1
|
|
return calls == 1 and "down,12,34" or null
|
|
end,
|
|
}
|
|
local fakeFfi = {
|
|
C = C,
|
|
NULL = null,
|
|
cdef = function() end,
|
|
load = function() return C end,
|
|
string = function(value) return value end,
|
|
}
|
|
|
|
package.loaded[name] = nil
|
|
package.loaded.ffi = nil
|
|
package.preload.ffi = function() return fakeFfi end
|
|
|
|
local SecondScreen = require(name)
|
|
T.eq(SecondScreen.pollTouch(), "down,12,34",
|
|
"secondary touch reaches the Lua facade")
|
|
T.eq(SecondScreen.pollTouch(), nil, "an empty native touch queue returns nil")
|
|
C.love_android_poll_secondary_touch = nil
|
|
T.eq(SecondScreen.pollTouch(), nil, "an older native bridge remains safe")
|
|
|
|
package.loaded[name] = oldModule
|
|
package.loaded.ffi = oldFfi
|
|
package.preload.ffi = oldPreload
|
|
|
|
T.finish("second-screen touch facade")
|