123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- -- 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
|