1from PyObjCTools.TestSupport import *
2
3from objc import *
4from Foundation import *
5
6class TestNSPathUtilities(TestCase):
7    def testSearchPaths(self):
8        self.assert_(
9                NSSearchPathForDirectoriesInDomains( NSAllLibrariesDirectory, NSAllDomainsMask, NO ),
10                      "NSSearchPathForDirectoriesInDomains() failed to return anything." )
11
12        self.failUnlessArgIsBOOL(NSSearchPathForDirectoriesInDomains, 2)
13
14    def testTrue(self):
15        for boolVal in (1, 1==1, YES, -1):
16            self.assert_(
17                NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask, boolVal)[0][0] == '/', boolVal)
18
19    def testFalse(self):
20        for boolVal in (0, 1!=1, NO):
21            self.assert_(
22                NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask, boolVal)[0][0] != '/', boolVal)
23
24    def testFunctions(self):
25        s = NSUserName()
26        self.failUnless(isinstance(s, unicode))
27
28        s = NSFullUserName()
29        self.failUnless(isinstance(s, unicode))
30
31        s = NSHomeDirectory()
32        self.failUnless(isinstance(s, unicode))
33
34        s = NSHomeDirectoryForUser('root')
35        self.failUnless(isinstance(s, unicode))
36
37        s = NSTemporaryDirectory()
38        self.failUnless(isinstance(s, unicode))
39
40        s = NSOpenStepRootDirectory()
41        self.failUnless(isinstance(s, unicode))
42
43    def testConstants(self):
44        self.assertEquals(NSApplicationDirectory, 1)
45        self.assertEquals(NSDemoApplicationDirectory, 2)
46        self.assertEquals(NSDeveloperApplicationDirectory, 3)
47        self.assertEquals(NSAdminApplicationDirectory, 4)
48        self.assertEquals(NSLibraryDirectory, 5)
49        self.assertEquals(NSDeveloperDirectory, 6)
50        self.assertEquals(NSUserDirectory, 7)
51        self.assertEquals(NSDocumentationDirectory, 8)
52        self.assertEquals(NSDocumentDirectory, 9)
53        self.assertEquals(NSCoreServiceDirectory, 10)
54        self.assertEquals(NSDesktopDirectory, 12)
55        self.assertEquals(NSCachesDirectory, 13)
56        self.assertEquals(NSApplicationSupportDirectory, 14)
57        self.assertEquals(NSDownloadsDirectory, 15)
58        self.assertEquals(NSAllApplicationsDirectory, 100)
59        self.assertEquals(NSAllLibrariesDirectory, 101)
60
61        self.assertEquals(NSUserDomainMask, 1)
62        self.assertEquals(NSLocalDomainMask, 2)
63        self.assertEquals(NSNetworkDomainMask, 4)
64        self.assertEquals(NSSystemDomainMask, 8)
65        self.assertEquals(NSAllDomainsMask, 0x0ffff)
66
67    def testMethods(self):
68        self.failUnlessResultIsBOOL(NSString.isAbsolutePath)
69        self.failUnlessArgIsOut(NSString.completePathIntoString_caseSensitive_matchesIntoArray_filterTypes_, 0)
70        self.failUnlessArgIsBOOL(NSString.completePathIntoString_caseSensitive_matchesIntoArray_filterTypes_, 1)
71        self.failUnlessArgIsOut(NSString.completePathIntoString_caseSensitive_matchesIntoArray_filterTypes_, 2)
72        self.failUnlessResultIsBOOL(NSString.getFileSystemRepresentation_maxLength_)
73        self.failUnlessArgHasType(NSString.getFileSystemRepresentation_maxLength_, 0, 'o^' + objc._C_CHAR_AS_TEXT)
74        self.failUnlessArgSizeInArg(NSString.getFileSystemRepresentation_maxLength_, 0, 1)
75
76if __name__ == '__main__':
77    main( )
78