1from __future__ import unicode_literals
2from PyObjCTools.TestSupport import *
3import objc
4
5from PyObjCTest.fsref import *
6
7import sys
8if sys.version_info[0] == 3:
9    unicode = str
10
11class TestFSRef (TestCase):
12    def testBasicInterface(self):
13        self.assertArgIsIn(OC_TestFSRefHelper.pathForFSRef_, 0)
14        self.assertArgIsOut(OC_TestFSRefHelper.getFSRef_forPath_, 0)
15
16    def testResult(self):
17        o = OC_TestFSRefHelper.alloc().init()
18        ref = o.fsrefForPath_("/Library")
19        self.assertIsInstance(ref, objc.FSRef)
20
21        self.assertIsInstance(ref.data, bytes)
22        self.assertIsInstance(ref.as_pathname(), unicode)
23
24        try:
25            from Carbon.File import FSRef
26
27        except ImportError:
28            pass
29
30        else:
31            self.assertIsInstance(ref.as_carbon(), FSRef)
32
33    def testArg(self):
34        o = OC_TestFSRefHelper.alloc().init()
35        ref = o.fsrefForPath_("/Library")
36        self.assertIsInstance(ref, objc.FSRef)
37
38        p = o.stringForFSRef_(ref)
39        self.assertIsInstance(p, unicode)
40        self.assertEqual(p, "/Library")
41
42    def testInput(self):
43        o = OC_TestFSRefHelper.alloc().init()
44        ref = o.fsrefForPath_("/Library")
45        self.assertIsInstance(ref, objc.FSRef)
46
47        p = o.pathForFSRef_(ref)
48        self.assertIsInstance(p, unicode)
49        self.assertEqual(p, "/Library")
50
51    def testOutput(self):
52        o = OC_TestFSRefHelper.alloc().init()
53        ref = o.getFSRef_forPath_(None, "/Library")
54        self.assertIsInstance(ref, objc.FSRef)
55
56        # Verify the fsref contents:
57        p = o.stringForFSRef_(ref)
58        self.assertIsInstance(p, unicode)
59        self.assertEqual(p, "/Library")
60
61
62if __name__ == "__main__":
63    main()
64