objects.lua 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  1. -- objects put in their own test methods to test all attributes and class methods
  2. --------------------------------------------------------------------------------
  3. --------------------------------------------------------------------------------
  4. ------------------------------------AUDIO---------------------------------------
  5. --------------------------------------------------------------------------------
  6. --------------------------------------------------------------------------------
  7. -- RecordingDevice (love.audio.getRecordingDevices)
  8. love.test.objects.RecordingDevice = function(test)
  9. test:skipTest('test class needs writing')
  10. end
  11. -- Source (love.audio.newSource)
  12. love.test.objects.Source = function(test)
  13. test:skipTest('test class needs writing')
  14. -- local source1 = love.audio.newSource('resources/click.ogg', 'static')
  15. --source1:clone()
  16. --source1:getChannelCount()
  17. --source1:getDuration()
  18. --source1:isRelative()
  19. --source1:queue()
  20. --source1:getFreeBufferCount()
  21. --source1:getType()
  22. --source1:isPlaying()
  23. --source1:play()
  24. --source1:pause()
  25. --source1:stop()
  26. --source1:seek()
  27. --source1:tell()
  28. --source1:isLooping()
  29. --source1:setLooping()
  30. --source1:setAirAbsorption()
  31. --source1:getAirAbsorption()
  32. --source1:setAttenuationDistances()
  33. --source1:getAttenuationDistances()
  34. --source1:setCone()
  35. --source1:getCone()
  36. --source1:setDirection()
  37. --source1:getDirection()
  38. --source1:setEffect()
  39. --source1:getEffect()
  40. --source1:getActiveEffects()
  41. --source1:setFilter()
  42. --source1:getFilter()
  43. --source1:setPitch()
  44. --source1:getPitch()
  45. --source1:setPosition()
  46. --source1:getPosition()
  47. --source1:setRelative()
  48. --source1:setRolloff()
  49. --source1:getRolloff()
  50. --source1:setVelocity()
  51. --source1:getVelocity()
  52. --source1:setVolume()
  53. --source1:getVolume()
  54. --source1:setVolumeLimits()
  55. --source1:getVolumeLimits()
  56. end
  57. --------------------------------------------------------------------------------
  58. --------------------------------------------------------------------------------
  59. ------------------------------------DATA----------------------------------------
  60. --------------------------------------------------------------------------------
  61. --------------------------------------------------------------------------------
  62. -- ByteData (love.data.newByteData)
  63. love.test.objects.ByteData = function(test)
  64. test:skipTest('test class needs writing')
  65. end
  66. -- CompressedData (love.data.compress)
  67. love.test.objects.CompressedData = function(test)
  68. test:skipTest('test class needs writing')
  69. end
  70. --------------------------------------------------------------------------------
  71. --------------------------------------------------------------------------------
  72. ---------------------------------FILESYSTEM-------------------------------------
  73. --------------------------------------------------------------------------------
  74. --------------------------------------------------------------------------------
  75. -- File (love.filesystem.newFile)
  76. love.test.objects.File = function(test)
  77. -- setup a file to play with
  78. local file1 = love.filesystem.openFile('data.txt', 'w')
  79. file1:write('helloworld')
  80. test:assertObject(file1)
  81. file1:close()
  82. -- test read mode
  83. file1:open('r')
  84. test:assertEquals('r', file1:getMode(), 'check read mode')
  85. local contents, size = file1:read()
  86. test:assertEquals('helloworld', contents)
  87. test:assertEquals(10, size, 'check file read')
  88. test:assertEquals(10, file1:getSize())
  89. local ok, err = file1:write('hello')
  90. test:assertNotEquals(nil, err, 'check cant write in read mode')
  91. local iterator = file1:lines()
  92. test:assertNotEquals(nil, iterator, 'check can read lines')
  93. test:assertEquals('data.txt', file1:getFilename(), 'check filename matches')
  94. file1:close()
  95. -- test write mode
  96. file1:open('w')
  97. test:assertEquals('w', file1:getMode(), 'check write mode')
  98. contents, size = file1:read()
  99. test:assertEquals(nil, contents, 'check cant read file in write mode')
  100. test:assertEquals('string', type(size), 'check err message shown')
  101. ok, err = file1:write('helloworld')
  102. test:assertEquals(true, ok, 'check file write')
  103. test:assertEquals(nil, err, 'check no err writing')
  104. -- test open/closing
  105. file1:open('r')
  106. test:assertEquals(true, file1:isOpen(), 'check file is open')
  107. file1:close()
  108. test:assertEquals(false, file1:isOpen(), 'check file gets closed')
  109. file1:close()
  110. -- test buffering
  111. -- @NOTE think I'm just not understanding how this is supposed to work?
  112. -- I thought if buffering is enabled then nothing should get written until
  113. -- buffer overflows?
  114. -- file1:open('a')
  115. -- ok, err = file1:setBuffer('full', 10000)
  116. -- test:assertEquals(true, ok)
  117. -- test:assertEquals('full', file1:getBuffer())
  118. -- file1:write('morecontent')
  119. -- file1:close()
  120. -- file1:open('r')
  121. -- contents, size = file1:read()
  122. -- test:assertEquals('helloworld', contents, 'check buffered content wasnt written')
  123. -- file1:close()
  124. -- @NOTE :close() commits buffer content so need to check before not after
  125. -- test buffering and flushing
  126. file1:open('w')
  127. ok, err = file1:setBuffer('full', 10000)
  128. test:assertEquals(true, ok)
  129. test:assertEquals('full', file1:getBuffer())
  130. file1:write('replacedcontent')
  131. file1:flush()
  132. file1:close()
  133. file1:open('r')
  134. contents, size = file1:read()
  135. test:assertEquals('replacedcontent', contents, 'check buffered content was written')
  136. file1:close()
  137. -- loop through file data with seek/tell until EOF
  138. file1:open('r')
  139. local counter = 0
  140. for i=1,100 do
  141. file1:seek(i)
  142. test:assertEquals(i, file1:tell())
  143. if file1:isEOF() == true then
  144. counter = i
  145. break
  146. end
  147. end
  148. test:assertEquals(counter, 15)
  149. file1:close()
  150. end
  151. -- FileData (love.filesystem.newFileData)
  152. love.test.objects.FileData = function(test)
  153. test:skipTest('test class needs writing')
  154. end
  155. --------------------------------------------------------------------------------
  156. --------------------------------------------------------------------------------
  157. ------------------------------------FONT----------------------------------------
  158. --------------------------------------------------------------------------------
  159. --------------------------------------------------------------------------------
  160. -- GlyphData (love.font.newGlyphData)
  161. love.test.objects.GlyphData = function(test)
  162. test:skipTest('test class needs writing')
  163. end
  164. -- Rasterizer (love.font.newRasterizer)
  165. love.test.objects.Rasterizer = function(test)
  166. test:skipTest('test class needs writing')
  167. end
  168. --------------------------------------------------------------------------------
  169. --------------------------------------------------------------------------------
  170. ---------------------------------GRAPHICS---------------------------------------
  171. --------------------------------------------------------------------------------
  172. --------------------------------------------------------------------------------
  173. -- Canvas (love.graphics.newCanvas)
  174. love.test.objects.Canvas = function(test)
  175. test:skipTest('test class needs writing')
  176. end
  177. -- Font (love.graphics.newFont)
  178. love.test.objects.Font = function(test)
  179. test:skipTest('test class needs writing')
  180. end
  181. -- Image (love.graphics.newImage)
  182. love.test.objects.Image = function(test)
  183. test:skipTest('test class needs writing')
  184. end
  185. -- Mesh (love.graphics.newMesh)
  186. love.test.objects.Mesh = function(test)
  187. test:skipTest('test class needs writing')
  188. end
  189. -- ParticleSystem (love.graphics.newParticleSystem)
  190. love.test.objects.ParticleSystem = function(test)
  191. test:skipTest('test class needs writing')
  192. end
  193. -- Quad (love.graphics.newQuad)
  194. love.test.objects.Quad = function(test)
  195. test:skipTest('test class needs writing')
  196. end
  197. -- Shader (love.graphics.newShader)
  198. love.test.objects.Shader = function(test)
  199. test:skipTest('test class needs writing')
  200. end
  201. -- SpriteBatch (love.graphics.newSpriteBatch)
  202. love.test.objects.SpriteBatch = function(test)
  203. test:skipTest('test class needs writing')
  204. end
  205. -- Text (love.graphics.newTextBatch)
  206. love.test.objects.Text = function(test)
  207. test:skipTest('test class needs writing')
  208. end
  209. -- Texture (love.graphics.newTexture)
  210. love.test.objects.Texture = function(test)
  211. test:skipTest('test class needs writing')
  212. end
  213. -- Video (love.graphics.newVideo)
  214. love.test.objects.Video = function(test)
  215. test:skipTest('test class needs writing')
  216. end
  217. --------------------------------------------------------------------------------
  218. --------------------------------------------------------------------------------
  219. -----------------------------------IMAGE----------------------------------------
  220. --------------------------------------------------------------------------------
  221. --------------------------------------------------------------------------------
  222. -- CompressedImageData (love.image.newCompressedImageData)
  223. love.test.objects.CompressedImageData = function(test)
  224. test:skipTest('test class needs writing')
  225. end
  226. -- ImageData (love.image.newImageData)
  227. love.test.objects.ImageData = function(test)
  228. test:skipTest('test class needs writing')
  229. end
  230. --------------------------------------------------------------------------------
  231. --------------------------------------------------------------------------------
  232. ------------------------------------MATH----------------------------------------
  233. --------------------------------------------------------------------------------
  234. --------------------------------------------------------------------------------
  235. -- BezierCurve (love.math.newBezierCurve)
  236. love.test.objects.BezierCurve = function(test)
  237. test:skipTest('test class needs writing')
  238. end
  239. -- RandomGenerator (love.math.RandomGenerator)
  240. love.test.objects.RandomGenerator = function(test)
  241. test:skipTest('test class needs writing')
  242. end
  243. -- Transform (love.math.Transform)
  244. love.test.objects.Transform = function(test)
  245. test:skipTest('test class needs writing')
  246. end
  247. --------------------------------------------------------------------------------
  248. --------------------------------------------------------------------------------
  249. ----------------------------------PHYSICS---------------------------------------
  250. --------------------------------------------------------------------------------
  251. --------------------------------------------------------------------------------
  252. -- Body (love.physics.newBody)
  253. love.test.objects.Body = function(test)
  254. test:skipTest('test class needs writing')
  255. end
  256. -- Contact (love.physics.World:getContacts)
  257. love.test.objects.Contact = function(test)
  258. test:skipTest('test class needs writing')
  259. end
  260. -- Fixture (love.physics.newFixture)
  261. love.test.objects.Fixture = function(test)
  262. test:skipTest('test class needs writing')
  263. end
  264. -- Joint (love.physics.newDistanceJoint)
  265. love.test.objects.Joint = function(test)
  266. test:skipTest('test class needs writing')
  267. end
  268. -- Shape (love.physics.newCircleShape)
  269. love.test.objects.Shape = function(test)
  270. test:skipTest('test class needs writing')
  271. end
  272. -- World (love.physics.newWorld)
  273. love.test.objects.World = function(test)
  274. test:skipTest('test class needs writing')
  275. end
  276. --------------------------------------------------------------------------------
  277. --------------------------------------------------------------------------------
  278. -----------------------------------SOUND----------------------------------------
  279. --------------------------------------------------------------------------------
  280. --------------------------------------------------------------------------------
  281. -- Decoder (love.sound.newDecoder)
  282. love.test.objects.Decoder = function(test)
  283. test:skipTest('test class needs writing')
  284. end
  285. -- SoundData (love.sound.newSoundData)
  286. love.test.objects.SoundData = function(test)
  287. test:skipTest('test class needs writing')
  288. end
  289. --------------------------------------------------------------------------------
  290. --------------------------------------------------------------------------------
  291. ----------------------------------THREAD----------------------------------------
  292. --------------------------------------------------------------------------------
  293. --------------------------------------------------------------------------------
  294. -- Channel (love.thread.newChannel)
  295. love.test.objects.Channel = function(test)
  296. test:skipTest('test class needs writing')
  297. end
  298. -- Thread (love.thread.newThread)
  299. love.test.objects.Thread = function(test)
  300. test:skipTest('test class needs writing')
  301. end
  302. --------------------------------------------------------------------------------
  303. --------------------------------------------------------------------------------
  304. -----------------------------------VIDEO----------------------------------------
  305. --------------------------------------------------------------------------------
  306. --------------------------------------------------------------------------------
  307. -- VideoStream (love.thread.newVideoStream)
  308. love.test.objects.VideoStream = function(test)
  309. test:skipTest('test class needs writing')
  310. end