1
2from PyObjCTools.TestSupport import *
3from AppKit import *
4
5class TestNSSplitViewHelper (NSObject):
6    def splitView_canCollapseSubview_(self, sp, sv): return 1
7    def splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex_(self, sp, sv, i): return 1
8    def splitView_constrainMinCoordinate_ofSubviewAt_(self, sv, c, i): return 1
9    def splitView_constrainMaxCoordinate_ofSubviewAt_(self, sv, c, i): return 1
10    def splitView_constrainSplitPosition_ofSubviewAt_(self, sv, c, i): return 1
11    def splitView_resizeSubviewsWithOldSize_(self, sv, sz): pass
12    def splitView_shouldHideDividerAtIndex_(self, sv, i): return 1
13    def splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_(self, sv, er, dr, i): return 1
14    def splitView_additionalEffectiveRectOfDividerAtIndex_(self, sv, i): return 1
15    def splitViewWillResizeSubviews_(self, nt): pass
16    def splitViewDidResizeSubviews_(self, nt): pass
17
18class TestNSSplitView (TestCase):
19    def testConstants(self):
20        self.failUnlessEqual(NSSplitViewDividerStyleThick, 1)
21        self.failUnlessEqual(NSSplitViewDividerStyleThin, 2)
22
23        self.failUnlessIsInstance(NSSplitViewWillResizeSubviewsNotification, unicode)
24        self.failUnlessIsInstance(NSSplitViewDidResizeSubviewsNotification, unicode)
25
26    def testMethods(self):
27        self.failUnlessResultIsBOOL(NSSplitView.isVertical)
28        self.failUnlessArgIsBOOL(NSSplitView.setVertical_, 0)
29        self.failUnlessResultIsBOOL(NSSplitView.isSubviewCollapsed_)
30        self.failUnlessResultIsBOOL(NSSplitView.isPaneSplitter)
31        self.failUnlessArgIsBOOL(NSSplitView.setIsPaneSplitter_, 0)
32
33    def testProtocol(self):
34        self.failUnlessResultIsBOOL(TestNSSplitViewHelper.splitView_canCollapseSubview_)
35        self.failUnlessResultIsBOOL(TestNSSplitViewHelper.splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex_)
36        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex_, 2, objc._C_NSInteger)
37        self.failUnlessResultHasType(TestNSSplitViewHelper.splitView_constrainMinCoordinate_ofSubviewAt_, objc._C_CGFloat)
38        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_constrainMinCoordinate_ofSubviewAt_, 1, objc._C_CGFloat)
39        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_constrainMinCoordinate_ofSubviewAt_, 2, objc._C_NSInteger)
40        self.failUnlessResultHasType(TestNSSplitViewHelper.splitView_constrainMaxCoordinate_ofSubviewAt_, objc._C_CGFloat)
41        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_constrainMaxCoordinate_ofSubviewAt_, 1, objc._C_CGFloat)
42        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_constrainMaxCoordinate_ofSubviewAt_, 2, objc._C_NSInteger)
43        self.failUnlessResultHasType(TestNSSplitViewHelper.splitView_constrainSplitPosition_ofSubviewAt_, objc._C_CGFloat)
44        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_constrainSplitPosition_ofSubviewAt_, 1, objc._C_CGFloat)
45        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_constrainSplitPosition_ofSubviewAt_, 2, objc._C_NSInteger)
46        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_resizeSubviewsWithOldSize_, 1, NSSize.__typestr__)
47
48    @min_os_level('10.5')
49    def testProtocol10_5(self):
50        self.failUnlessResultIsBOOL(TestNSSplitViewHelper.splitView_shouldHideDividerAtIndex_)
51        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_shouldHideDividerAtIndex_, 1, objc._C_NSInteger)
52
53        self.failUnlessResultHasType(TestNSSplitViewHelper.splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_, NSRect.__typestr__)
54        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_, 1, NSRect.__typestr__)
55        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_, 2, NSRect.__typestr__)
56        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_, 3, objc._C_NSInteger)
57
58        self.failUnlessResultHasType(TestNSSplitViewHelper.splitView_additionalEffectiveRectOfDividerAtIndex_, NSRect.__typestr__)
59        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_additionalEffectiveRectOfDividerAtIndex_, 1, objc._C_NSInteger)
60
61if __name__ == "__main__":
62    main()
63