mirror of
https://github.com/love2d/love.git
synced 2026-08-12 16:40:57 +02:00
103 lines
3.9 KiB
Lua
103 lines
3.9 KiB
Lua
-- love.sensor
|
|
-- @NOTE we can't test this module fully as it's hardware dependent
|
|
-- however we can test methods do what is expected and can handle certain params
|
|
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
------------------------------------HELPERS-------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
|
|
local function testIsEnabled(test, sensorType)
|
|
love.sensor.setEnabled(sensorType, true)
|
|
test:assertTrue(love.sensor.isEnabled(sensorType), 'check ' .. sensorType .. ' enabled')
|
|
love.sensor.setEnabled(sensorType, false)
|
|
test:assertFalse(love.sensor.isEnabled(sensorType), 'check ' .. sensorType .. ' disabled')
|
|
end
|
|
|
|
|
|
local function testGetName(test, sensorType)
|
|
love.sensor.setEnabled(sensorType, true)
|
|
local ok, name = pcall(love.sensor.getName, sensorType)
|
|
test:assertTrue(ok, 'check sensor.getName("' .. sensorType .. '") success')
|
|
test:assertEquals(type(name), 'string', 'check sensor.getName("' .. sensorType .. '") return value type')
|
|
|
|
love.sensor.setEnabled(sensorType, false)
|
|
ok, name = pcall(love.sensor.getName, sensorType)
|
|
test:assertFalse(ok, 'check sensor.getName("' .. sensorType .. '") errors when disabled')
|
|
end
|
|
|
|
|
|
local function testGetData(test, sensorType)
|
|
love.sensor.setEnabled(sensorType, true)
|
|
local ok, x, y, z = pcall(love.sensor.getData, sensorType)
|
|
test:assertTrue(ok, 'check sensor.getData("' .. sensorType .. '") success')
|
|
if ok then
|
|
test:assertNotNil(x)
|
|
test:assertNotNil(y)
|
|
test:assertNotNil(z)
|
|
end
|
|
|
|
love.sensor.setEnabled(sensorType, false)
|
|
ok, x, y, z = pcall(love.sensor.getData, sensorType)
|
|
test:assertFalse(ok, 'check sensor.getData("' .. sensorType .. '") errors when disabled')
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
------------------------------------METHODS-------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
-- love.sensor.hasSensor
|
|
love.test.sensor.hasSensor = function(test)
|
|
-- but we can make sure that the SensorTypes can be passed
|
|
local accelerometer = love.sensor.hasSensor('accelerometer')
|
|
local gyroscope = love.sensor.hasSensor('gyroscope')
|
|
test:assertNotNil(accelerometer)
|
|
test:assertNotNil(gyroscope)
|
|
end
|
|
|
|
|
|
-- love.sensor.isEnabled and love.sensor.setEnabled
|
|
love.test.sensor.isEnabled = function(test)
|
|
local accelerometer = love.sensor.hasSensor('accelerometer')
|
|
local gyroscope = love.sensor.hasSensor('gyroscope')
|
|
|
|
if accelerometer or gyroscope then
|
|
if accelerometer then testIsEnabled(test, 'accelerometer') end
|
|
if gyroscope then testIsEnabled(test, 'gyroscope') end
|
|
else
|
|
test:skipTest('neither accelerometer nor gyroscope are supported in this system')
|
|
end
|
|
end
|
|
|
|
|
|
-- love.sensor.getName
|
|
love.test.sensor.getName = function(test)
|
|
local accelerometer = love.sensor.hasSensor('accelerometer')
|
|
local gyroscope = love.sensor.hasSensor('gyroscope')
|
|
|
|
if accelerometer or gyroscope then
|
|
if accelerometer then testGetName(test, 'accelerometer') end
|
|
if gyroscope then testGetName(test, 'gyroscope') end
|
|
else
|
|
test:skipTest('neither accelerometer nor gyroscope are supported in this system')
|
|
end
|
|
end
|
|
|
|
|
|
-- love.sensor.getData
|
|
love.test.sensor.getData = function(test)
|
|
local accelerometer = love.sensor.hasSensor('accelerometer')
|
|
local gyroscope = love.sensor.hasSensor('gyroscope')
|
|
|
|
if accelerometer or gyroscope then
|
|
if accelerometer then testGetData(test, 'accelerometer') end
|
|
if gyroscope then testGetData(test, 'gyroscope') end
|
|
else
|
|
test:skipTest('neither accelerometer nor gyroscope are supported in this system')
|
|
end
|
|
end
|