view tests/swig_tests/gui_tests.py @ 144:d2f1e81fbe2c

* Fixed a scons issue, where libraries checked for C instead of C++ * Fixed a shutdown order problem - deleting a GLImage will reference the RenderBackend, thus image pools must be deleted first. * Added an explicit Engine.destroy method to force the shutdown, in case python fails to do so. Necessary - see above. * The Pool::printStatistics now gives out information how many resources are loaded. Called before destruction. Add 'pool' to the LogModules to check memory pooling issues.
author phoku@33b003aa-7bff-0310-803a-e67f0ece8222
date Thu, 09 Oct 2008 06:18:36 +0000
parents 4a0efb7baf70
children 81641655bc38
line wrap: on
line source

#!/usr/bin/env python
from swig_test_utils import *

class TestGui(unittest.TestCase):
	
	def setUp(self):
		self.engine = getEngine()
		self.guimanager = self.engine.getGuiManager()
		self.renderbackend = self.engine.getRenderBackend()

	def tearDown(self):
		self.engine.destroy()
	
	def testFonts(self):
		ttffont = fife.TTFont('tests/data/FreeMono.ttf', 14)
		ttffont.thisown = 0
		subimagefont = fife.SubImageFont('tests/data/rpgfont.png', 
			       ' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,!?-+/:();%`\'*#=[]"',
				self.engine.getImagePool())
		subimagefont.thisown = 0
		fonts = [fife.GuiFont(ttffont), fife.GuiFont(subimagefont)]
		for f in fonts:
			f.setColor(255,20,20)
		container = fife.Container()
		self.guimanager.add(container)
		container.setSize(self.renderbackend.getWidth(), 
		                  self.renderbackend.getHeight())
		container.setOpaque(False)
		label1 = fife.Label('This is a Truetype font')
		label1.setPosition(0, 70)
		label1.setFont(fonts[0])
		container.add(label1)
		label2 = fife.Label('This is a Image font')
		label2.setPosition(0, 100)
		label2.setFont(fonts[1])
		container.add(label2)
		labels = [label1, label2]

		self.engine.initializePumping()
		for i in xrange(100):
			self.engine.pump()
		self.engine.finalizePumping()


TEST_CLASSES = [TestGui]

if __name__ == '__main__':
    unittest.main()