1from PyObjCTools.TestSupport import * 2from CoreFoundation import * 3import CoreFoundation 4 5 6class TestBase (TestCase): 7 def testConstants(self): 8 self.assertEquals(TRUE, 1) 9 self.assertEquals(FALSE, 0) 10 11 self.assertEquals(kCFCoreFoundationVersionNumber10_0, 196.40) 12 self.assertEquals(kCFCoreFoundationVersionNumber10_0_3, 196.50) 13 self.assertEquals(kCFCoreFoundationVersionNumber10_1, 226.00) 14 self.assertEquals(kCFCoreFoundationVersionNumber10_1_1, 226.00) 15 self.assertEquals(kCFCoreFoundationVersionNumber10_1_2, 227.20) 16 self.assertEquals(kCFCoreFoundationVersionNumber10_1_3, 227.20) 17 self.assertEquals(kCFCoreFoundationVersionNumber10_1_4, 227.30) 18 self.assertEquals(kCFCoreFoundationVersionNumber10_2, 263.00) 19 self.assertEquals(kCFCoreFoundationVersionNumber10_2_1, 263.10) 20 self.assertEquals(kCFCoreFoundationVersionNumber10_2_2, 263.10) 21 self.assertEquals(kCFCoreFoundationVersionNumber10_2_3, 263.30) 22 self.assertEquals(kCFCoreFoundationVersionNumber10_2_4, 263.30) 23 self.assertEquals(kCFCoreFoundationVersionNumber10_2_5, 263.50) 24 self.assertEquals(kCFCoreFoundationVersionNumber10_2_6, 263.50) 25 self.assertEquals(kCFCoreFoundationVersionNumber10_2_7, 263.50) 26 self.assertEquals(kCFCoreFoundationVersionNumber10_2_8, 263.50) 27 self.assertEquals(kCFCoreFoundationVersionNumber10_3, 299.00) 28 self.assertEquals(kCFCoreFoundationVersionNumber10_3_1, 299.00) 29 self.assertEquals(kCFCoreFoundationVersionNumber10_3_2, 299.00) 30 self.assertEquals(kCFCoreFoundationVersionNumber10_3_3, 299.30) 31 self.assertEquals(kCFCoreFoundationVersionNumber10_3_4, 299.31) 32 self.assertEquals(kCFCoreFoundationVersionNumber10_3_5, 299.31) 33 self.assertEquals(kCFCoreFoundationVersionNumber10_3_6, 299.32) 34 self.assertEquals(kCFCoreFoundationVersionNumber10_3_7, 299.33) 35 self.assertEquals(kCFCoreFoundationVersionNumber10_3_8, 299.33) 36 self.assertEquals(kCFCoreFoundationVersionNumber10_3_9, 299.35) 37 self.assertEquals(kCFCoreFoundationVersionNumber10_4, 368.00) 38 self.assertEquals(kCFCoreFoundationVersionNumber10_4_1, 368.10) 39 self.assertEquals(kCFCoreFoundationVersionNumber10_4_2, 368.11) 40 self.assertEquals(kCFCoreFoundationVersionNumber10_4_3, 368.18) 41 self.assertEquals(kCFCoreFoundationVersionNumber10_4_4_Intel, 368.26) 42 self.assertEquals(kCFCoreFoundationVersionNumber10_4_4_PowerPC, 368.25) 43 self.assertEquals(kCFCoreFoundationVersionNumber10_4_5_Intel, 368.26) 44 self.assertEquals(kCFCoreFoundationVersionNumber10_4_5_PowerPC, 368.25) 45 self.assertEquals(kCFCoreFoundationVersionNumber10_4_6_Intel, 368.26) 46 self.assertEquals(kCFCoreFoundationVersionNumber10_4_6_PowerPC, 368.25) 47 self.assertEquals(kCFCoreFoundationVersionNumber10_4_7, 368.27) 48 self.assertEquals(kCFCoreFoundationVersionNumber10_4_8, 368.27) 49 self.assertEquals(kCFCoreFoundationVersionNumber10_4_9, 368.28) 50 self.assertEquals(kCFCoreFoundationVersionNumber10_4_10, 368.28) 51 self.assertEquals(kCFCoreFoundationVersionNumber10_4_11, 368.31) 52 53 self.assertEquals(kCFCompareLessThan, -1) 54 self.assertEquals(kCFCompareEqualTo, 0) 55 self.assertEquals(kCFCompareGreaterThan, 1) 56 57 self.assertEquals(kCFNotFound, -1) 58 59 60 def testStructs(self): 61 62 o = CFRange() 63 self.failUnless(hasattr(o, 'location')) 64 self.failUnless(hasattr(o, 'length')) 65 66 def testCFRangeMake(self): 67 r = CFRangeMake(42, 99) 68 self.failUnless(isinstance(r, CFRange)) 69 self.assertEquals(r.location, 42) 70 self.assertEquals(r.length, 99) 71 72 def testCFNull(self): 73 self.failUnless(isinstance(CFNullGetTypeID(), (int, long))) 74 75 self.failUnless(isinstance(kCFNull, CFNullRef)) 76 self.failUnlessIsCFType(CFNullRef) 77 78 def testCFAllocator(self): 79 self.failUnlessIsCFType(CFAllocatorRef) 80 81 self.failUnless(isinstance(CFAllocatorGetTypeID(), (int, long))) 82 83 self.failUnless(isinstance(kCFAllocatorDefault, (CFAllocatorRef, type(None)))) 84 self.failUnless(isinstance(kCFAllocatorSystemDefault, CFAllocatorRef)) 85 self.failUnless(isinstance(kCFAllocatorMalloc, CFAllocatorRef)) 86 self.failUnless(isinstance(kCFAllocatorMallocZone, CFAllocatorRef)) 87 self.failUnless(isinstance(kCFAllocatorNull, CFAllocatorRef)) 88 self.failUnless(isinstance(kCFAllocatorUseContext, CFAllocatorRef)) 89 90 r = CFAllocatorGetDefault() 91 self.failUnless(isinstance(r, CFAllocatorRef)) 92 93 CFAllocatorSetDefault(kCFAllocatorMalloc) 94 r2 = CFAllocatorGetDefault() 95 self.failUnless(isinstance(r2, CFAllocatorRef)) 96 self.failUnless(r2 is kCFAllocatorMalloc) 97 98 # Restore default allocator 99 CFAllocatorSetDefault(r) 100 101 self.failIf(hasattr(CoreFoundation, 'CFAllocatorCreate')) 102 self.failIf(hasattr(CoreFoundation, 'CFAllocatorAllocate')) 103 self.failIf(hasattr(CoreFoundation, 'CFAllocatorReallocate')) 104 self.failIf(hasattr(CoreFoundation, 'CFAllocatorDeallocate')) 105 self.failIf(hasattr(CoreFoundation, 'CFAllocatorGetContext')) 106 107 r = CFAllocatorGetPreferredSizeForSize(kCFAllocatorDefault, 15, 0) 108 self.failUnless(isinstance(r, (int, long))) 109 self.failUnless(r >= 15) 110 111 112 def testGenericFunctions(self): 113 id = CFGetTypeID(kCFAllocatorMalloc) 114 self.assertEquals(id, CFAllocatorGetTypeID()) 115 116 v = CFCopyTypeIDDescription(CFAllocatorGetTypeID()) 117 self.failUnless(isinstance(v, unicode)) 118 119 obj = CFURLCreateWithString(None, u"http://www.apple.com/", None) 120 i = CFGetRetainCount(obj) 121 self.failUnless(isinstance(i, (int, long))) 122 CFRetain(obj) 123 self.assertEquals(CFGetRetainCount(obj), i + 1) 124 CFRelease(obj) 125 self.assertEquals(CFGetRetainCount(obj), i) 126 127 CFRetain(obj) 128 CFMakeCollectable(obj) 129 130 del obj 131 132 i = CFEqual(kCFAllocatorMalloc, kCFAllocatorNull) 133 self.failUnless(i is False) 134 i = CFEqual(kCFAllocatorMalloc, kCFAllocatorMalloc) 135 self.failUnless(i is True) 136 137 i = CFHash(kCFAllocatorMalloc) 138 self.failUnless(i, (int, long)) 139 140 v = CFCopyDescription(kCFAllocatorMalloc) 141 self.failUnless(isinstance(v, unicode)) 142 143 v = CFGetAllocator(kCFAllocatorMalloc) 144 self.failUnless((v is None) or (isinstance(v, CFAllocatorRef))) 145 146 147if __name__ == "__main__": 148 main() 149