1''' 2Some simple tests to check that the framework is properly wrapped. 3''' 4import objc 5from PyObjCTools.TestSupport import * 6import ScreenSaver 7 8class TestScreenSaver (TestCase): 9 def testClasses(self): 10 self.assertHasAttr(ScreenSaver, 'ScreenSaverDefaults') 11 self.assertIsInstance(ScreenSaver.ScreenSaverDefaults, objc.objc_class) 12 13 self.assertHasAttr(ScreenSaver, 'ScreenSaverView') 14 self.assertIsInstance(ScreenSaver.ScreenSaverView, objc.objc_class) 15 16 def testInlines(self): 17 self.assertHasAttr(ScreenSaver, 'SSRandomIntBetween') 18 self.assertIsInstance(ScreenSaver.SSRandomIntBetween, objc.function) 19 20 self.assertHasAttr(ScreenSaver, 'SSCenteredRectInRect') 21 self.assertIsInstance(ScreenSaver.SSCenteredRectInRect, objc.function) 22 23 fn = ScreenSaver.SSCenteredRectInRect 24 innerRect = ScreenSaver.NSMakeRect(5, 5, 20, 30) 25 outerRect = ScreenSaver.NSMakeRect(0, 0, 50, 60) 26 27 res = fn(innerRect, outerRect) 28 self.assert_(isinstance(res, ScreenSaver.NSRect)) 29 self.assertEquals(res, ScreenSaver.NSMakeRect(15, 15.0, 20.0, 30.0)) 30 31 fn = ScreenSaver.SSRandomFloatBetween 32 for _ in range(10): 33 r = fn(1.0, 20.5) 34 self.assert_(1.0 <= r <= 20.5) 35 self.assert_(isinstance(r, float)) 36 37 fn = ScreenSaver.SSRandomIntBetween 38 for _ in range(10): 39 r = fn(-10, 20) 40 self.assert_(-10 <= r <= 20) 41 self.assert_(isinstance(r, (int, long))) 42 43 fn = ScreenSaver.SSRandomPointForSizeWithinRect 44 r = fn(ScreenSaver.NSMakeSize(10, 10), ScreenSaver.NSMakeRect(20, 20, 100, 100)) 45 self.assert_(isinstance(r, ScreenSaver.NSPoint)) 46 47 48if __name__ == "__main__": 49 main() 50 51