1'''
2Some simple tests to check that the framework is properly wrapped.
3'''
4import objc
5import unittest
6import InputMethodKit
7
8try:
9    unicode
10except NameError:
11    unicode = str
12
13try:
14    long
15except NameError:
16    long = int
17
18class TestInputMethodKit (unittest.TestCase):
19    def testClasses(self):
20
21        self.assert_( hasattr(InputMethodKit, 'IMKInputController') )
22        self.assert_( isinstance(InputMethodKit.IMKInputController, objc.objc_class) )
23
24        # 10.5
25        self.assert_( hasattr(InputMethodKit, 'IMKCandidates') )
26        self.assert_( isinstance(InputMethodKit.IMKCandidates, objc.objc_class) )
27    def testValues(self):
28        self.assert_( hasattr(InputMethodKit, 'kIMKScrollingGridCandidatePanel') )
29        self.assert_( isinstance(InputMethodKit.kIMKScrollingGridCandidatePanel, (int, long)) )
30        self.assertEquals(InputMethodKit.kIMKScrollingGridCandidatePanel, 2)
31
32    def testVariables(self):
33        self.assert_( hasattr(InputMethodKit, 'IMKCandidatesOpacityAttributeName') )
34        self.assert_( isinstance(InputMethodKit.IMKCandidatesOpacityAttributeName, unicode) )
35
36    def testProtocols(self):
37        self.assert_( hasattr(InputMethodKit, 'protocols') )
38        self.assert_( hasattr(InputMethodKit.protocols, 'IMKServerInput') )
39        self.assert_( isinstance(InputMethodKit.protocols.IMKServerInput, objc.informal_protocol) )
40
41    def testProtocols2(self):
42        objc.protocolNamed('IMKMouseHandling')
43        objc.protocolNamed('IMKStateSetting')
44
45
46
47if __name__ == "__main__":
48    unittest.main()
49