mirror of
https://github.com/love2d/love.git
synced 2026-08-12 16:40:57 +02:00
19df8040df
Initial commit of a basic test framework, see readme.md for more Most modules are covered with basic unit tests, and there's an example test for a graphics draw (rectangle) and object (File) - for object tests doing more scenario based so we can check multiple things together
296 lines
9.0 KiB
Lua
296 lines
9.0 KiB
Lua
-- love.audio
|
|
|
|
|
|
-- love.audio.getActiveEffects
|
|
love.test.audio.getActiveEffects = function(test)
|
|
-- tests
|
|
test:assertNotEquals(nil, love.audio.getActiveEffects(), 'check not nil')
|
|
test:assertEquals(0, #love.audio.getActiveEffects(), 'check no effects running')
|
|
love.audio.setEffect('testeffect', {
|
|
type = 'chorus',
|
|
volume = 10
|
|
})
|
|
test:assertEquals(1, #love.audio.getActiveEffects(), 'check 1 effect running')
|
|
test:assertEquals('testeffect', love.audio.getActiveEffects()[1], 'check effect details')
|
|
end
|
|
|
|
|
|
-- love.audio.getActiveSourceCount
|
|
love.test.audio.getActiveSourceCount = function(test)
|
|
-- tests
|
|
test:assertNotEquals(nil, love.audio.getActiveSourceCount(), 'check not nil')
|
|
test:assertEquals(0, love.audio.getActiveSourceCount(), 'check 0 by default')
|
|
local testsource = love.audio.newSource('resources/click.ogg', 'static')
|
|
test:assertEquals(0, love.audio.getActiveSourceCount(), 'check not active')
|
|
love.audio.play(testsource)
|
|
test:assertEquals(1, love.audio.getActiveSourceCount(), 'check now active')
|
|
love.audio.pause()
|
|
testsource:release()
|
|
end
|
|
|
|
|
|
-- love.audio.getDistanceModel
|
|
love.test.audio.getDistanceModel = function(test)
|
|
-- tests
|
|
test:assertNotEquals(nil, love.audio.getDistanceModel(), 'check not nil')
|
|
test:assertEquals('inverseclamped', love.audio.getDistanceModel(), 'check default value')
|
|
love.audio.setDistanceModel('inverse')
|
|
test:assertEquals('inverse', love.audio.getDistanceModel(), 'check setting model')
|
|
end
|
|
|
|
|
|
-- love.audio.getDopplerScale
|
|
love.test.audio.getDopplerScale = function(test)
|
|
test:assertEquals(1, love.audio.getDopplerScale(), 'check default 1')
|
|
love.audio.setDopplerScale(0)
|
|
test:assertEquals(0, love.audio.getDopplerScale(), 'check setting to 0')
|
|
love.audio.setDopplerScale(1)
|
|
end
|
|
|
|
|
|
-- love.audio.getEffect
|
|
love.test.audio.getEffect = function(test)
|
|
-- setup
|
|
love.audio.setEffect('testeffect', {
|
|
type = 'chorus',
|
|
volume = 10
|
|
})
|
|
-- tests
|
|
test:assertEquals(nil, love.audio.getEffect('madeupname'), 'check wrong name')
|
|
test:assertNotEquals(nil, love.audio.getEffect('testeffect'), 'check not nil')
|
|
test:assertEquals('chorus', love.audio.getEffect('testeffect').type, 'check effect type')
|
|
test:assertEquals(10, love.audio.getEffect('testeffect').volume, 'check effect volume')
|
|
end
|
|
|
|
|
|
-- love.audio.getMaxSceneEffects
|
|
-- @NOTE feel like this is platform specific number so best we can do is a nil?
|
|
love.test.audio.getMaxSceneEffects = function(test)
|
|
test:assertNotEquals(nil, love.audio.getMaxSceneEffects(), 'check not nil')
|
|
end
|
|
|
|
|
|
-- love.audio.getMaxSourceEffects
|
|
-- @NOTE feel like this is platform specific number so best we can do is a nil?
|
|
love.test.audio.getMaxSourceEffects = function(test)
|
|
test:assertNotEquals(nil, love.audio.getMaxSourceEffects(), 'check not nil')
|
|
end
|
|
|
|
|
|
-- love.audio.getOrientation
|
|
-- @NOTE is there an expected default listener pos?
|
|
love.test.audio.getOrientation = function(test)
|
|
-- setup
|
|
love.audio.setOrientation(1, 2, 3, 4, 5, 6)
|
|
-- tests
|
|
local fx, fy, fz, ux, uy, uz = love.audio.getOrientation()
|
|
test:assertEquals(1, fx, 'check fx orientation')
|
|
test:assertEquals(2, fy, 'check fy orientation')
|
|
test:assertEquals(3, fz, 'check fz orientation')
|
|
test:assertEquals(4, ux, 'check ux orientation')
|
|
test:assertEquals(5, uy, 'check uy orientation')
|
|
test:assertEquals(6, uz, 'check uz orientation')
|
|
end
|
|
|
|
|
|
-- love.audio.getPosition
|
|
-- @NOTE is there an expected default listener pos?
|
|
love.test.audio.getPosition = function(test)
|
|
-- setup
|
|
love.audio.setPosition(1, 2, 3)
|
|
-- tests
|
|
local x, y, z = love.audio.getPosition()
|
|
test:assertEquals(1, x, 'check x position')
|
|
test:assertEquals(2, y, 'check y position')
|
|
test:assertEquals(3, z, 'check z position')
|
|
end
|
|
|
|
|
|
-- love.audio.getRecordingDevices
|
|
love.test.audio.getRecordingDevices = function(test)
|
|
test:assertNotEquals(nil, love.audio.getRecordingDevices(), 'check not nil')
|
|
end
|
|
|
|
|
|
-- love.audio.getVelocity
|
|
love.test.audio.getVelocity = function(test)
|
|
-- setup
|
|
love.audio.setVelocity(1, 2, 3)
|
|
-- tests
|
|
local x, y, z = love.audio.getVelocity()
|
|
test:assertEquals(1, x, 'check x velocity')
|
|
test:assertEquals(2, y, 'check y velocity')
|
|
test:assertEquals(3, z, 'check z velocity')
|
|
end
|
|
|
|
|
|
-- love.audio.getVolume
|
|
love.test.audio.getVolume = function(test)
|
|
-- setup
|
|
love.audio.setVolume(0.5)
|
|
-- tests
|
|
test:assertNotEquals(nil, love.audio.getVolume(), 'check not nil')
|
|
test:assertEquals(0.5, love.audio.getVolume(), 'check matches set')
|
|
end
|
|
|
|
|
|
-- love.audio.isEffectsSupported
|
|
love.test.audio.isEffectsSupported = function(test)
|
|
test:assertNotEquals(nil, love.audio.isEffectsSupported(), 'check not nil')
|
|
end
|
|
|
|
|
|
-- love.audio.newQueueableSource
|
|
-- @NOTE this is just basic nil checking, full obj test are in objects.lua
|
|
love.test.audio.newQueueableSource = function(test)
|
|
local source = love.audio.newQueueableSource(32, 8, 1, 8)
|
|
test:assertObject(source)
|
|
source:release()
|
|
end
|
|
|
|
|
|
-- love.audio.newSource
|
|
-- @NOTE this is just basic nil checking, full obj test are in objects.lua
|
|
love.test.audio.newSource = function(test)
|
|
-- setup
|
|
local source1 = love.audio.newSource('resources/click.ogg', 'static')
|
|
local source2 = love.audio.newSource('resources/click.ogg', 'stream')
|
|
-- tests
|
|
test:assertObject(source1)
|
|
test:assertObject(source2)
|
|
-- cleanup
|
|
source1:release()
|
|
source2:release()
|
|
end
|
|
|
|
|
|
-- love.audio.pause
|
|
love.test.audio.pause = function(test)
|
|
-- tests
|
|
local nopauses = love.audio.pause()
|
|
test:assertNotEquals(nil, nopauses, 'check not nil')
|
|
test:assertEquals(0, #nopauses, 'check nothing paused')
|
|
local source = love.audio.newSource('resources/click.ogg', 'static')
|
|
love.audio.play(source)
|
|
local onepause = love.audio.pause()
|
|
test:assertEquals(1, #onepause, 'check 1 paused')
|
|
source:release()
|
|
end
|
|
|
|
|
|
-- love.audio.play
|
|
love.test.audio.play = function(test)
|
|
-- setup
|
|
local source = love.audio.newSource('resources/click.ogg', 'static')
|
|
-- tests
|
|
love.audio.play(source)
|
|
test:assertEquals(true, source:isPlaying(), 'check something playing')
|
|
love.audio.pause()
|
|
source:release()
|
|
end
|
|
|
|
|
|
-- love.audio.setDistanceModel
|
|
love.test.audio.setDistanceModel = function(test)
|
|
-- tests
|
|
local distancemodel = {
|
|
'none', 'inverse', 'inverseclamped', 'linear', 'linearclamped',
|
|
'exponent', 'exponentclamped'
|
|
}
|
|
for d=1,#distancemodel do
|
|
love.audio.setDistanceModel(distancemodel[d])
|
|
test:assertEquals(distancemodel[d], love.audio.getDistanceModel(), 'check model set to ' .. distancemodel[d])
|
|
end
|
|
end
|
|
|
|
|
|
-- love.audio.setDopplerScale
|
|
love.test.audio.setDopplerScale = function(test)
|
|
-- tests
|
|
love.audio.setDopplerScale(0)
|
|
test:assertEquals(0, love.audio.getDopplerScale(), 'check set to 0')
|
|
love.audio.setDopplerScale(1)
|
|
test:assertEquals(1, love.audio.getDopplerScale(), 'check set to 1')
|
|
end
|
|
|
|
|
|
-- love.audio.setEffect
|
|
love.test.audio.setEffect = function(test)
|
|
-- tests
|
|
local effect = love.audio.setEffect('testeffect', {
|
|
type = 'chorus',
|
|
volume = 10
|
|
})
|
|
test:assertEquals(true, effect, 'check effect created')
|
|
local settings = love.audio.getEffect('testeffect')
|
|
test:assertEquals('chorus', settings.type, 'check effect type')
|
|
test:assertEquals(10, settings.volume, 'check effect volume')
|
|
end
|
|
|
|
|
|
-- love.audio.setMixWithSystem
|
|
love.test.audio.setMixWithSystem = function(test)
|
|
test:assertNotEquals(nil, love.audio.setMixWithSystem(true), 'check not nil')
|
|
end
|
|
|
|
|
|
-- love.audio.setOrientation
|
|
love.test.audio.setOrientation = function(test)
|
|
-- setup
|
|
love.audio.setOrientation(1, 2, 3, 4, 5, 6)
|
|
-- tests
|
|
local fx, fy, fz, ux, uy, uz = love.audio.getOrientation()
|
|
test:assertEquals(1, fx, 'check fx orientation')
|
|
test:assertEquals(2, fy, 'check fy orientation')
|
|
test:assertEquals(3, fz, 'check fz orientation')
|
|
test:assertEquals(4, ux, 'check ux orientation')
|
|
test:assertEquals(5, uy, 'check uy orientation')
|
|
test:assertEquals(6, uz, 'check uz orientation')
|
|
end
|
|
|
|
|
|
-- love.audio.setPosition
|
|
love.test.audio.setPosition = function(test)
|
|
-- setup
|
|
love.audio.setPosition(1, 2, 3)
|
|
-- tests
|
|
local x, y, z = love.audio.getPosition()
|
|
test:assertEquals(1, x, 'check x position')
|
|
test:assertEquals(2, y, 'check y position')
|
|
test:assertEquals(3, z, 'check z position')
|
|
end
|
|
|
|
|
|
-- love.audio.setVelocity
|
|
love.test.audio.setVelocity = function(test)
|
|
-- setup
|
|
love.audio.setVelocity(1, 2, 3)
|
|
-- tests
|
|
local x, y, z = love.audio.getVelocity()
|
|
test:assertEquals(1, x, 'check x velocity')
|
|
test:assertEquals(2, y, 'check y velocity')
|
|
test:assertEquals(3, z, 'check z velocity')
|
|
end
|
|
|
|
|
|
-- love.audio.setVolume
|
|
love.test.audio.setVolume = function(test)
|
|
-- setup
|
|
love.audio.setVolume(0.5)
|
|
-- tests
|
|
test:assertNotEquals(nil, love.audio.getVolume(), 'check not nil')
|
|
test:assertEquals(0.5, love.audio.getVolume(), 'check set to 0.5')
|
|
end
|
|
|
|
|
|
-- love.audio.stop
|
|
love.test.audio.stop = function(test)
|
|
-- setup
|
|
local source = love.audio.newSource('resources/click.ogg', 'static')
|
|
love.audio.play(source)
|
|
-- tests
|
|
test:assertEquals(true, source:isPlaying(), 'check is playing')
|
|
love.audio.stop()
|
|
test:assertEquals(false, source:isPlaying(), 'check stopped playing')
|
|
source:release()
|
|
end |