1 2from PyObjCTools.TestSupport import * 3from Quartz.CoreGraphics import * 4 5try: 6 unicode 7except NameError: 8 unicode = str 9 10 11try: 12 long 13except NameError: 14 long = int 15class TestCGWindow (TestCase): 16 def testConstants(self): 17 self.assertEqual(kCGWindowIDCFNumberType, kCFNumberSInt32Type) 18 self.assertEqual(kCGNullWindowID, 0) 19 self.assertEqual(kCGWindowSharingNone, 0) 20 self.assertEqual(kCGWindowSharingReadOnly, 1) 21 self.assertEqual(kCGWindowSharingReadWrite, 2) 22 self.assertEqual(kCGBackingStoreRetained, 0) 23 self.assertEqual(kCGBackingStoreNonretained, 1) 24 self.assertEqual(kCGBackingStoreBuffered, 2) 25 26 self.assertIsInstance(kCGWindowNumber, unicode) 27 self.assertIsInstance(kCGWindowStoreType, unicode) 28 self.assertIsInstance(kCGWindowLayer, unicode) 29 self.assertIsInstance(kCGWindowBounds, unicode) 30 self.assertIsInstance(kCGWindowSharingState, unicode) 31 self.assertIsInstance(kCGWindowAlpha, unicode) 32 self.assertIsInstance(kCGWindowOwnerPID, unicode) 33 self.assertIsInstance(kCGWindowMemoryUsage, unicode) 34 self.assertIsInstance(kCGWindowWorkspace, unicode) 35 self.assertIsInstance(kCGWindowOwnerName, unicode) 36 self.assertIsInstance(kCGWindowName, unicode) 37 self.assertIsInstance(kCGWindowIsOnscreen, unicode) 38 self.assertIsInstance(kCGWindowBackingLocationVideoMemory, unicode) 39 40 self.assertEqual(kCGWindowListOptionAll, 0) 41 self.assertEqual(kCGWindowListOptionOnScreenOnly, (1 << 0)) 42 self.assertEqual(kCGWindowListOptionOnScreenAboveWindow, (1 << 1)) 43 self.assertEqual(kCGWindowListOptionOnScreenBelowWindow, (1 << 2)) 44 self.assertEqual(kCGWindowListOptionIncludingWindow, (1 << 3)) 45 self.assertEqual(kCGWindowListExcludeDesktopElements, (1 << 4)) 46 47 self.assertEqual(kCGWindowImageDefault, 0) 48 self.assertEqual(kCGWindowImageBoundsIgnoreFraming, (1 << 0)) 49 self.assertEqual(kCGWindowImageShouldBeOpaque, (1 << 1)) 50 self.assertEqual(kCGWindowImageOnlyShadows, (1 << 2)) 51 52 53 def testFunctions(self): 54 55 self.assertResultIsCFRetained(CGWindowListCopyWindowInfo) 56 v = CGWindowListCopyWindowInfo(0, 0) 57 self.assertIsInstance(v, CFArrayRef) 58 self.assertTrue(len(v) > 0) 59 self.assertIsInstance(v[0], CFDictionaryRef) 60 61 v = CGWindowListCreate(0, 0) 62 self.assertIsInstance(v, tuple) 63 self.assertTrue(len(v) > 0) 64 self.assertIsInstance(v[0], (int, long)) 65 66 aWindowID = v[0] 67 windowArray = v 68 69 v = CGWindowListCreateDescriptionFromArray(v) 70 self.assertIsInstance(v, CFArrayRef) 71 self.assertTrue(len(v) > 0) 72 self.assertIsInstance(v[0], CFDictionaryRef) 73 74 self.assertResultIsCFRetained(CGWindowListCreateImage) 75 v = CGWindowListCreateImage(((0, 0), (100, 100)), aWindowID, 0, 0) 76 self.assertIsInstance(v, CGImageRef) 77 78 v = CGWindowListCreateImageFromArray(((0, 0), (100, 100)), windowArray, 0) 79 self.assertIsInstance(v, CGImageRef) 80 81if __name__ == "__main__": 82 main() 83