1from CFNetwork import *
2from PyObjCTools.TestSupport import *
3
4class TestCFNetwork (TestCase):
5    def testTypes(self):
6        # XXX: CFNetDiagnosticsRef is not actually a proper type
7        # in Leopard, the result turns out to be a CFDictionaryRef...
8        #self.failUnlessIsCFType(CFNetDiagnosticRef)
9        pass
10
11    def testConstants(self):
12        self.failUnlessEqual(kCFNetDiagnosticNoErr, 0)
13        self.failUnlessEqual(kCFNetDiagnosticErr, -66560)
14        self.failUnlessEqual(kCFNetDiagnosticConnectionUp, -66559)
15        self.failUnlessEqual(kCFNetDiagnosticConnectionIndeterminate, -66558)
16        self.failUnlessEqual(kCFNetDiagnosticConnectionDown, -66557)
17
18
19    def testFuncdtions(self):
20        self.failUnlessResultIsCFRetained(CFNetDiagnosticCreateWithStreams)
21
22        host = CFHostCreateWithName(None, u"www.apple.com")
23        rd, wr = CFStreamCreatePairWithSocketToCFHost(None, host, 80, None, None)
24        self.failUnlessIsInstance(rd, CFReadStreamRef)
25        self.failUnlessIsInstance(wr, CFWriteStreamRef)
26
27        ref = CFNetDiagnosticCreateWithStreams(None, rd, wr)
28        self.failUnlessIsInstance(ref, objc.objc_object) #CFNetDiagnosticRef)
29
30        self.failUnlessResultIsCFRetained(CFNetDiagnosticCreateWithURL)
31        ref = CFNetDiagnosticCreateWithURL(None, CFURLCreateWithString(None, u"http://www.apple.com/", None))
32        self.failUnlessIsInstance(ref, objc.objc_object) #CFNetDiagnosticRef)
33
34        CFNetDiagnosticSetName(ref, u"hello world")
35
36        sts = CFNetDiagnosticDiagnoseProblemInteractively(ref)
37        self.failUnlessIsInstance(sts, (int, long))
38
39        self.failUnlessArgIsOut(CFNetDiagnosticCopyNetworkStatusPassively, 1)
40        sts, descr = CFNetDiagnosticCopyNetworkStatusPassively(ref, None)
41        self.failUnlessIsInstance(sts, (int, long))
42        self.failUnlessIsInstance(descr, unicode)
43
44if __name__ == "__main__":
45    main()
46