mirror of
https://github.com/love2d/love.git
synced 2026-08-12 16:40:57 +02:00
412 lines
13 KiB
Lua
412 lines
13 KiB
Lua
-- objects put in their own test methods to test all attributes and class methods
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
------------------------------------AUDIO---------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
-- RecordingDevice (love.audio.getRecordingDevices)
|
|
love.test.objects.RecordingDevice = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Source (love.audio.newSource)
|
|
love.test.objects.Source = function(test)
|
|
test:skipTest('test class needs writing')
|
|
-- local source1 = love.audio.newSource('resources/click.ogg', 'static')
|
|
--source1:clone()
|
|
--source1:getChannelCount()
|
|
--source1:getDuration()
|
|
--source1:isRelative()
|
|
--source1:queue()
|
|
--source1:getFreeBufferCount()
|
|
--source1:getType()
|
|
--source1:isPlaying()
|
|
--source1:play()
|
|
--source1:pause()
|
|
--source1:stop()
|
|
--source1:seek()
|
|
--source1:tell()
|
|
--source1:isLooping()
|
|
--source1:setLooping()
|
|
--source1:setAirAbsorption()
|
|
--source1:getAirAbsorption()
|
|
--source1:setAttenuationDistances()
|
|
--source1:getAttenuationDistances()
|
|
--source1:setCone()
|
|
--source1:getCone()
|
|
--source1:setDirection()
|
|
--source1:getDirection()
|
|
--source1:setEffect()
|
|
--source1:getEffect()
|
|
--source1:getActiveEffects()
|
|
--source1:setFilter()
|
|
--source1:getFilter()
|
|
--source1:setPitch()
|
|
--source1:getPitch()
|
|
--source1:setPosition()
|
|
--source1:getPosition()
|
|
--source1:setRelative()
|
|
--source1:setRolloff()
|
|
--source1:getRolloff()
|
|
--source1:setVelocity()
|
|
--source1:getVelocity()
|
|
--source1:setVolume()
|
|
--source1:getVolume()
|
|
--source1:setVolumeLimits()
|
|
--source1:getVolumeLimits()
|
|
end
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
------------------------------------DATA----------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
-- ByteData (love.data.newByteData)
|
|
love.test.objects.ByteData = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- CompressedData (love.data.compress)
|
|
love.test.objects.CompressedData = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
---------------------------------FILESYSTEM-------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
-- File (love.filesystem.newFile)
|
|
love.test.objects.File = function(test)
|
|
|
|
-- setup a file to play with
|
|
local file1 = love.filesystem.openFile('data.txt', 'w')
|
|
file1:write('helloworld')
|
|
test:assertObject(file1)
|
|
file1:close()
|
|
|
|
-- test read mode
|
|
file1:open('r')
|
|
test:assertEquals('r', file1:getMode(), 'check read mode')
|
|
local contents, size = file1:read()
|
|
test:assertEquals('helloworld', contents)
|
|
test:assertEquals(10, size, 'check file read')
|
|
test:assertEquals(10, file1:getSize())
|
|
local ok, err = file1:write('hello')
|
|
test:assertNotEquals(nil, err, 'check cant write in read mode')
|
|
local iterator = file1:lines()
|
|
test:assertNotEquals(nil, iterator, 'check can read lines')
|
|
test:assertEquals('data.txt', file1:getFilename(), 'check filename matches')
|
|
file1:close()
|
|
|
|
-- test write mode
|
|
file1:open('w')
|
|
test:assertEquals('w', file1:getMode(), 'check write mode')
|
|
contents, size = file1:read()
|
|
test:assertEquals(nil, contents, 'check cant read file in write mode')
|
|
test:assertEquals('string', type(size), 'check err message shown')
|
|
ok, err = file1:write('helloworld')
|
|
test:assertEquals(true, ok, 'check file write')
|
|
test:assertEquals(nil, err, 'check no err writing')
|
|
|
|
-- test open/closing
|
|
file1:open('r')
|
|
test:assertEquals(true, file1:isOpen(), 'check file is open')
|
|
file1:close()
|
|
test:assertEquals(false, file1:isOpen(), 'check file gets closed')
|
|
file1:close()
|
|
|
|
-- test buffering
|
|
-- @NOTE think I'm just not understanding how this is supposed to work?
|
|
-- I thought if buffering is enabled then nothing should get written until
|
|
-- buffer overflows?
|
|
-- file1:open('a')
|
|
-- ok, err = file1:setBuffer('full', 10000)
|
|
-- test:assertEquals(true, ok)
|
|
-- test:assertEquals('full', file1:getBuffer())
|
|
-- file1:write('morecontent')
|
|
-- file1:close()
|
|
-- file1:open('r')
|
|
-- contents, size = file1:read()
|
|
-- test:assertEquals('helloworld', contents, 'check buffered content wasnt written')
|
|
-- file1:close()
|
|
|
|
-- @NOTE :close() commits buffer content so need to check before not after
|
|
|
|
-- test buffering and flushing
|
|
file1:open('w')
|
|
ok, err = file1:setBuffer('full', 10000)
|
|
test:assertEquals(true, ok)
|
|
test:assertEquals('full', file1:getBuffer())
|
|
file1:write('replacedcontent')
|
|
file1:flush()
|
|
file1:close()
|
|
file1:open('r')
|
|
contents, size = file1:read()
|
|
test:assertEquals('replacedcontent', contents, 'check buffered content was written')
|
|
file1:close()
|
|
|
|
-- loop through file data with seek/tell until EOF
|
|
file1:open('r')
|
|
local counter = 0
|
|
for i=1,100 do
|
|
file1:seek(i)
|
|
test:assertEquals(i, file1:tell())
|
|
if file1:isEOF() == true then
|
|
counter = i
|
|
break
|
|
end
|
|
end
|
|
test:assertEquals(counter, 15)
|
|
file1:close()
|
|
|
|
end
|
|
|
|
|
|
-- FileData (love.filesystem.newFileData)
|
|
love.test.objects.FileData = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
------------------------------------FONT----------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
-- GlyphData (love.font.newGlyphData)
|
|
love.test.objects.GlyphData = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Rasterizer (love.font.newRasterizer)
|
|
love.test.objects.Rasterizer = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
---------------------------------GRAPHICS---------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
-- Canvas (love.graphics.newCanvas)
|
|
love.test.objects.Canvas = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Font (love.graphics.newFont)
|
|
love.test.objects.Font = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Image (love.graphics.newImage)
|
|
love.test.objects.Image = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Mesh (love.graphics.newMesh)
|
|
love.test.objects.Mesh = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- ParticleSystem (love.graphics.newParticleSystem)
|
|
love.test.objects.ParticleSystem = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Quad (love.graphics.newQuad)
|
|
love.test.objects.Quad = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Shader (love.graphics.newShader)
|
|
love.test.objects.Shader = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- SpriteBatch (love.graphics.newSpriteBatch)
|
|
love.test.objects.SpriteBatch = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Text (love.graphics.newTextBatch)
|
|
love.test.objects.Text = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Texture (love.graphics.newTexture)
|
|
love.test.objects.Texture = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Video (love.graphics.newVideo)
|
|
love.test.objects.Video = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
-----------------------------------IMAGE----------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
-- CompressedImageData (love.image.newCompressedImageData)
|
|
love.test.objects.CompressedImageData = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- ImageData (love.image.newImageData)
|
|
love.test.objects.ImageData = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
------------------------------------MATH----------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
-- BezierCurve (love.math.newBezierCurve)
|
|
love.test.objects.BezierCurve = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- RandomGenerator (love.math.RandomGenerator)
|
|
love.test.objects.RandomGenerator = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Transform (love.math.Transform)
|
|
love.test.objects.Transform = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
----------------------------------PHYSICS---------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
-- Body (love.physics.newBody)
|
|
love.test.objects.Body = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Contact (love.physics.World:getContacts)
|
|
love.test.objects.Contact = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Fixture (love.physics.newFixture)
|
|
love.test.objects.Fixture = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Joint (love.physics.newDistanceJoint)
|
|
love.test.objects.Joint = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Shape (love.physics.newCircleShape)
|
|
love.test.objects.Shape = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- World (love.physics.newWorld)
|
|
love.test.objects.World = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
-----------------------------------SOUND----------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
-- Decoder (love.sound.newDecoder)
|
|
love.test.objects.Decoder = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- SoundData (love.sound.newSoundData)
|
|
love.test.objects.SoundData = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
----------------------------------THREAD----------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
-- Channel (love.thread.newChannel)
|
|
love.test.objects.Channel = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
-- Thread (love.thread.newThread)
|
|
love.test.objects.Thread = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
-----------------------------------VIDEO----------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
-- VideoStream (love.thread.newVideoStream)
|
|
love.test.objects.VideoStream = function(test)
|
|
test:skipTest('test class needs writing')
|
|
end
|