1from PyObjCTools.TestSupport import *
2from Foundation import *
3
4try:
5    unicode
6except NameError:
7    unicode = str
8
9class TestNSTextCheckingResult (TestCase):
10    @min_os_level('10.6')
11    def testConstants(self):
12        self.assertEqual(NSTextCheckingTypeOrthography, 1 << 0)
13        self.assertEqual(NSTextCheckingTypeSpelling, 1 << 1)
14        self.assertEqual(NSTextCheckingTypeGrammar, 1 << 2)
15        self.assertEqual(NSTextCheckingTypeDate, 1 << 3)
16        self.assertEqual(NSTextCheckingTypeAddress, 1 << 4)
17        self.assertEqual(NSTextCheckingTypeLink, 1 << 5)
18        self.assertEqual(NSTextCheckingTypeQuote, 1 << 6)
19        self.assertEqual(NSTextCheckingTypeDash, 1 << 7)
20        self.assertEqual(NSTextCheckingTypeReplacement, 1 << 8)
21        self.assertEqual(NSTextCheckingTypeCorrection, 1 << 9)
22
23        self.assertEqual(NSTextCheckingAllSystemTypes, 0xffffffff)
24        self.assertEqual(NSTextCheckingAllCustomTypes, (0xffffffff << 32))
25        self.assertEqual(NSTextCheckingAllTypes, (NSTextCheckingAllSystemTypes | NSTextCheckingAllCustomTypes))
26
27        self.assertIsInstance(NSTextCheckingNameKey, unicode)
28        self.assertIsInstance(NSTextCheckingJobTitleKey, unicode)
29        self.assertIsInstance(NSTextCheckingOrganizationKey, unicode)
30        self.assertIsInstance(NSTextCheckingStreetKey, unicode)
31        self.assertIsInstance(NSTextCheckingCityKey, unicode)
32        self.assertIsInstance(NSTextCheckingStateKey, unicode)
33        self.assertIsInstance(NSTextCheckingZIPKey, unicode)
34        self.assertIsInstance(NSTextCheckingCountryKey, unicode)
35        self.assertIsInstance(NSTextCheckingPhoneKey, unicode)
36
37    @min_os_level('10.7')
38    def testConstants10_7(self):
39        self.assertEqual(NSTextCheckingTypeRegularExpression, 1 << 10)
40        self.assertEqual(NSTextCheckingTypePhoneNumber, 1 << 11)
41        self.assertEqual(NSTextCheckingTypeTransitInformation, 1 << 12)
42
43        self.assertIsInstance(NSTextCheckingAirlineKey, unicode)
44        self.assertIsInstance(NSTextCheckingFlightKey, unicode)
45
46
47    @min_os_level('10.6')
48    def testMethods(self):
49        self.assertResultHasType(NSTextCheckingResult.range, NSRange.__typestr__)
50
51        self.assertArgHasType(NSTextCheckingResult.orthographyCheckingResultWithRange_orthography_, 0, NSRange.__typestr__)
52        self.assertArgHasType(NSTextCheckingResult.spellCheckingResultWithRange_, 0, NSRange.__typestr__)
53        self.assertArgHasType(NSTextCheckingResult.grammarCheckingResultWithRange_details_, 0, NSRange.__typestr__)
54        self.assertArgHasType(NSTextCheckingResult.dateCheckingResultWithRange_date_, 0, NSRange.__typestr__)
55        self.assertArgHasType(NSTextCheckingResult.dateCheckingResultWithRange_date_timeZone_duration_, 0, NSRange.__typestr__)
56        self.assertArgHasType(NSTextCheckingResult.addressCheckingResultWithRange_components_, 0, NSRange.__typestr__)
57        self.assertArgHasType(NSTextCheckingResult.linkCheckingResultWithRange_URL_, 0, NSRange.__typestr__)
58        self.assertArgHasType(NSTextCheckingResult.quoteCheckingResultWithRange_replacementString_, 0, NSRange.__typestr__)
59        self.assertArgHasType(NSTextCheckingResult.dashCheckingResultWithRange_replacementString_, 0, NSRange.__typestr__)
60        self.assertArgHasType(NSTextCheckingResult.replacementCheckingResultWithRange_replacementString_, 0, NSRange.__typestr__)
61        self.assertArgHasType(NSTextCheckingResult.correctionCheckingResultWithRange_replacementString_, 0, NSRange.__typestr__)
62
63    @min_os_level('10.7')
64    def testMethods10_7(self):
65        self.assertArgHasType(NSTextCheckingResult.regularExpressionCheckingResultWithRanges_count_regularExpression_, 0, b'n^' + NSRange.__typestr__)
66        self.assertArgSizeInArg(NSTextCheckingResult.regularExpressionCheckingResultWithRanges_count_regularExpression_, 0, 1)
67
68if __name__ == "__main__":
69    main()
70