1from PyObjCTools.TestSupport import *
2
3from Foundation import *
4import Foundation
5
6class TestNSBundle (TestCase):
7    def testOutput(self):
8        obj = NSBundle.mainBundle()
9
10        m = obj.preflightAndReturnError_.__metadata__()
11        self.failUnless(m['arguments'][2]['type'].startswith('o^'))
12
13        m = obj.loadAndReturnError_.__metadata__()
14        self.failUnless(m['arguments'][2]['type'].startswith('o^'))
15
16    def testMethods(self):
17        b = NSBundle.mainBundle()
18        # Test on an instance because NSBundle has class methods
19        # that interfere with this test
20        self.failUnlessResultIsBOOL(b.load)
21        self.failUnlessResultIsBOOL(b.isLoaded)
22        self.failUnlessResultIsBOOL(b.unload)
23
24    @min_os_level('10.5')
25    def testMethods10_5(self):
26        self.failUnlessResultIsBOOL(NSBundle.preflightAndReturnError_)
27        self.failUnlessArgIsOut(NSBundle.preflightAndReturnError_, 0)
28        self.failUnlessResultIsBOOL(NSBundle.loadAndReturnError_)
29        self.failUnlessArgIsOut(NSBundle.loadAndReturnError_, 0)
30
31    def testConstants(self):
32        self.assertEquals(NSBundleExecutableArchitectureI386, 0x00000007)
33        self.assertEquals(NSBundleExecutableArchitecturePPC, 0x00000012)
34        self.assertEquals(NSBundleExecutableArchitectureX86_64, 0x01000007)
35        self.assertEquals(NSBundleExecutableArchitecturePPC64, 0x01000012)
36
37        self.failUnless( isinstance(NSBundleDidLoadNotification, unicode) )
38        self.failUnless( isinstance(NSLoadedClasses, unicode) )
39
40    def testDefines(self):
41        self.failUnless(hasattr(Foundation, 'NSLocalizedString'))
42        self.failUnless(hasattr(Foundation, 'NSLocalizedStringFromTable'))
43        self.failUnless(hasattr(Foundation, 'NSLocalizedStringFromTableInBundle'))
44        self.failUnless(hasattr(Foundation, 'NSLocalizedStringWithDefaultValue'))
45
46
47
48if __name__ == "__main__":
49    main()
50