1 2from PyObjCTools.TestSupport import * 3from Quartz.CoreGraphics import * 4 5class TestCGRemoteOperation (TestCase): 6 def testConstants(self): 7 self.assertEqual(CGEventNoErr, kCGErrorSuccess) 8 9 self.assertEqual(kCGScreenUpdateOperationRefresh, 0) 10 self.assertEqual(kCGScreenUpdateOperationMove, cast_int(1 << 0)) 11 self.assertEqual(kCGScreenUpdateOperationReducedDirtyRectangleCount, cast_int(1 << 31)) 12 13 self.assertEqual(kCGEventFilterMaskPermitLocalMouseEvents, 1) 14 self.assertEqual(kCGEventFilterMaskPermitLocalKeyboardEvents, 2) 15 self.assertEqual(kCGEventFilterMaskPermitSystemDefinedEvents, 4) 16 self.assertEqual(kCGEventFilterMaskPermitAllEvents, 7) 17 18 self.assertEqual(kCGEventSuppressionStateSuppressionInterval, 0) 19 self.assertEqual(kCGEventSuppressionStateRemoteMouseDrag, 1) 20 self.assertEqual(kCGNumberOfEventSuppressionStates, 2) 21 22 self.assertEqual(kCGMouseDownEventMaskingDeadSwitchTimeout, 60.0) 23 24 self.assertEqual(kCGEventSupressionStateSupressionInterval, kCGEventSuppressionStateSuppressionInterval) 25 self.assertEqual(kCGEventSupressionStateRemoteMouseDrag, kCGEventSuppressionStateRemoteMouseDrag) 26 self.assertEqual(kCGNumberOfEventSupressionStates, kCGNumberOfEventSuppressionStates) 27 28 def testStructs(self): 29 v = CGScreenUpdateMoveDelta() 30 self.assertTrue(hasattr(v, 'dX')) 31 self.assertTrue(hasattr(v, 'dY')) 32 33 34 35 36 def testFunctions(self): 37 myInfo = object() 38 callcount = [0] 39 def callbackRefresh(count, rects, info): 40 self.assertTrue(info is myInfo) 41 self.assertIsInstance(rects, tuple) 42 self.assertIsInstance(count, (int, long)) 43 for i in rects: 44 self.assertIsInstance(i, CGRect) 45 callcount[0] += 1 46 47 err = CGRegisterScreenRefreshCallback(callbackRefresh, myInfo) 48 self.assertEqual(err, 0) 49 50 # FIXME: should force a refresh here 51 52 CGUnregisterScreenRefreshCallback(callbackRefresh, myInfo) 53 54 # FIXME: This complete hangs the interpreter, don't have 55 # time to investigate this. 56 # 57 #err, rects, count = CGWaitForScreenRefreshRects(None, None) 58 #self.assertEqual(err, 0) 59 #self.assertIsInstance(rects, tuple) 60 #self.assertIsInstance(count, (int, long)) 61 #for i in rects: 62 # self.assertIsInstance(i, CGRect) 63 64 v = CGCursorIsVisible() 65 self.assertIsInstance(v, (int, long)) 66 67 v = CGCursorIsDrawnInFramebuffer() 68 self.assertIsInstance(v, (int, long)) 69 70 v = CGPostMouseEvent((50, 50), True, 3, 0, 0, 0) 71 self.assertEqual(v, 0) 72 73 v = CGPostScrollWheelEvent(3, 0, 0, 0) 74 self.assertEqual(v, 0) 75 76 v = CGPostKeyboardEvent(0, 56, 1) 77 self.assertEqual(v, 0) 78 79 v = CGWarpMouseCursorPosition((800, 800)) 80 self.assertEqual(v, 0) 81 82 v = CGInhibitLocalEvents(False) 83 self.assertEqual(v, 0) 84 85 v = CGSetLocalEventsSuppressionInterval(0.1) 86 self.assertEqual(v, 0) 87 88 v = CGEnableEventStateCombining(0) 89 self.assertEqual(v, 0) 90 91 v = CGSetLocalEventsFilterDuringSuppressionState(kCGEventFilterMaskPermitAllEvents, kCGEventSuppressionStateSuppressionInterval) 92 self.assertEqual(v, 0) 93 94 v = CGAssociateMouseAndMouseCursorPosition(0) 95 self.assertEqual(v, 0) 96 97 v = CGWindowServerCFMachPort() 98 self.assertIsInstance(v, CFMachPortRef) 99 100 self.assertTrue(CGSetLocalEventsFilterDuringSupressionState is CGSetLocalEventsFilterDuringSuppressionState) 101 102 103 @expectedFailure 104 def testMissing(self): 105 106 self.fail("CGWaitForScreenUpdateRects") 107 self.fail("CGWaitForScreenRefreshRects") 108 109if __name__ == "__main__": 110 main() 111