1from Foundation import *
2from PyObjCTools.TestSupport import *
3
4try:
5    unicode
6except NameError:
7    unicode = str
8
9try:
10    import CFNetwork
11except ImportError:
12    CFNetwork = None
13
14class TestNSURLError (TestCase):
15    def testConstants(self):
16        self.assertIsInstance(NSURLErrorDomain, unicode)
17        self.assertIsInstance(NSErrorFailingURLStringKey, unicode)
18
19        self.assertEqual(NSURLErrorUnknown, -1)
20        self.assertEqual(NSURLErrorCancelled, -999)
21        self.assertEqual(NSURLErrorBadURL, -1000)
22        self.assertEqual(NSURLErrorTimedOut, -1001)
23        self.assertEqual(NSURLErrorUnsupportedURL, -1002)
24        self.assertEqual(NSURLErrorCannotFindHost, -1003)
25        self.assertEqual(NSURLErrorCannotConnectToHost, -1004)
26        self.assertEqual(NSURLErrorNetworkConnectionLost, -1005)
27        self.assertEqual(NSURLErrorDNSLookupFailed, -1006)
28        self.assertEqual(NSURLErrorHTTPTooManyRedirects, -1007)
29        self.assertEqual(NSURLErrorResourceUnavailable, -1008)
30        self.assertEqual(NSURLErrorNotConnectedToInternet, -1009)
31        self.assertEqual(NSURLErrorRedirectToNonExistentLocation, -1010)
32        self.assertEqual(NSURLErrorBadServerResponse, -1011)
33        self.assertEqual(NSURLErrorUserCancelledAuthentication, -1012)
34        self.assertEqual(NSURLErrorUserAuthenticationRequired, -1013)
35        self.assertEqual(NSURLErrorZeroByteResource, -1014)
36        self.assertEqual(NSURLErrorCannotDecodeRawData, -1015)
37        self.assertEqual(NSURLErrorCannotDecodeContentData, -1016)
38        self.assertEqual(NSURLErrorCannotParseResponse, -1017)
39        self.assertEqual(NSURLErrorFileDoesNotExist, -1100)
40        self.assertEqual(NSURLErrorFileIsDirectory, -1101)
41        self.assertEqual(NSURLErrorNoPermissionsToReadFile, -1102)
42        self.assertEqual(NSURLErrorSecureConnectionFailed, -1200)
43        self.assertEqual(NSURLErrorServerCertificateHasBadDate, -1201)
44        self.assertEqual(NSURLErrorServerCertificateUntrusted, -1202)
45        self.assertEqual(NSURLErrorServerCertificateHasUnknownRoot, -1203)
46        self.assertEqual(NSURLErrorServerCertificateNotYetValid, -1204)
47        self.assertEqual(NSURLErrorClientCertificateRejected, -1205)
48        self.assertEqual(NSURLErrorCannotLoadFromNetwork, -2000)
49        self.assertEqual(NSURLErrorCannotCreateFile, -3000)
50        self.assertEqual(NSURLErrorCannotOpenFile, -3001)
51        self.assertEqual(NSURLErrorCannotCloseFile, -3002)
52        self.assertEqual(NSURLErrorCannotWriteToFile, -3003)
53        self.assertEqual(NSURLErrorCannotRemoveFile, -3004)
54        self.assertEqual(NSURLErrorCannotMoveFile, -3005)
55        self.assertEqual(NSURLErrorDownloadDecodingFailedMidStream, -3006)
56        self.assertEqual(NSURLErrorDownloadDecodingFailedToComplete, -3007)
57
58
59    @min_os_level('10.5')
60    def testConstants10_5(self):
61        self.assertEqual(NSURLErrorDataLengthExceedsMaximum, -1103)
62
63    @min_os_level('10.6')
64    def testConstants10_6(self):
65        self.assertIsInstance(NSURLErrorFailingURLPeerTrustErrorKey, unicode)
66        self.assertIsInstance(NSURLErrorFailingURLErrorKey, unicode)
67        self.assertIsInstance(NSURLErrorFailingURLStringErrorKey, unicode)
68
69        self.assertEqual(NSURLErrorClientCertificateRequired, -1206)
70
71    @min_os_level('10.7')
72    @onlyIf(CFNetwork is not None)
73    def testConstants10_7(self):
74        self.assertEqual(NSURLErrorInternationalRoamingOff, CFNetwork.kCFURLErrorInternationalRoamingOff)
75        self.assertEqual(NSURLErrorCallIsActive, CFNetwork.kCFURLErrorCallIsActive)
76        self.assertEqual(NSURLErrorDataNotAllowed, CFNetwork.kCFURLErrorDataNotAllowed)
77        self.assertEqual(NSURLErrorRequestBodyStreamExhausted, CFNetwork.kCFURLErrorRequestBodyStreamExhausted)
78
79if __name__ == "__main__":
80    main()
81