1
2from PyObjCTools.TestSupport import *
3from AppKit import *
4
5try:
6    unicode
7except NameError:
8    unicode = str
9
10class TestNSBrowserHelper (NSObject):
11    def browser_selectCellWithString_inColumn_(self, b, c, s): return 1
12    def browser_selectRow_inColumn_(self, b, r, c): return 1
13    def browser_isColumnValid_(self, b, c): return 1
14    def browser_shouldSizeColumn_forUserResize_toWidth_(self, b, c, us, w): return 1
15    def browser_shouldShowCellExpansionForRow_column_(self, b, r, c): return 1
16    def browser_writeRowsWithIndexes_inColumn_toPasteboard_(self, b, r, c, p): return 1
17    def browser_canDragRowsWithIndexes_inColumn_withEvent_(self, b, i, c, e): return 1
18    def browser_acceptDrop_atRow_column_dropOperation_(self, b, a, r, c, o): return 1
19    def browser_shouldTypeSelectForEvent_withCurrentSearchString_(self, b, e, s): return 1
20    def browser_isLeafItem_(self, b, s): return 1
21    def browser_heightOfRow_inColumn_(self, b, r, c): return 1
22    def browser_shouldEditItem_(self, b, i): return 1
23    def browser_numberOfRowsInColumn_(self, b, c): return 1
24    def browser_createRowsForColumn_inMatrix_(self, b, c, m): return 1
25    def browser_selectionIndexesForProposedSelection_inColumn_(self, b, s, c): return 1
26
27class TestNSBrowser (TestCase):
28    def testConstants(self):
29        self.assertEqual(NSBrowserNoColumnResizing, 0)
30        self.assertEqual(NSBrowserAutoColumnResizing, 1)
31        self.assertEqual(NSBrowserUserColumnResizing, 2)
32
33        self.assertEqual(NSBrowserDropOn, 0)
34        self.assertEqual(NSBrowserDropAbove, 1)
35
36        self.assertIsInstance(NSBrowserColumnConfigurationDidChangeNotification, unicode)
37        self.assertEqual(NSAppKitVersionNumberWithContinuousScrollingBrowser, 680.0)
38        self.assertEqual(NSAppKitVersionNumberWithColumnResizingBrowser, 685.0)
39
40
41    def testMethods(self):
42        self.assertResultIsBOOL(NSBrowser.isLoaded)
43        self.assertResultIsBOOL(NSBrowser.reusesColumns)
44        self.assertArgIsBOOL(NSBrowser.setReusesColumns_, 0)
45        self.assertResultIsBOOL(NSBrowser.hasHorizontalScroller)
46        self.assertArgIsBOOL(NSBrowser.setHasHorizontalScroller_, 0)
47        self.assertResultIsBOOL(NSBrowser.separatesColumns)
48        self.assertArgIsBOOL(NSBrowser.setSeparatesColumns_, 0)
49        self.assertResultIsBOOL(NSBrowser.isTitled)
50        self.assertArgIsBOOL(NSBrowser.setTitled_, 0)
51        self.assertResultIsBOOL(NSBrowser.allowsMultipleSelection)
52        self.assertArgIsBOOL(NSBrowser.setAllowsMultipleSelection_, 0)
53        self.assertResultIsBOOL(NSBrowser.allowsBranchSelection)
54        self.assertArgIsBOOL(NSBrowser.setAllowsBranchSelection_, 0)
55        self.assertResultIsBOOL(NSBrowser.allowsEmptySelection)
56        self.assertArgIsBOOL(NSBrowser.setAllowsEmptySelection_, 0)
57        self.assertResultIsBOOL(NSBrowser.takesTitleFromPreviousColumn)
58        self.assertArgIsBOOL(NSBrowser.setTakesTitleFromPreviousColumn_, 0)
59        self.assertResultIsBOOL(NSBrowser.acceptsArrowKeys)
60        self.assertArgIsBOOL(NSBrowser.setAcceptsArrowKeys_, 0)
61        self.assertResultIsBOOL(NSBrowser.sendsActionOnArrowKeys)
62        self.assertArgIsBOOL(NSBrowser.setSendsActionOnArrowKeys_, 0)
63        self.assertResultIsBOOL(NSBrowser.setPath_)
64        self.assertResultIsBOOL(NSBrowser.sendAction)
65        self.assertResultIsBOOL(NSBrowser.prefersAllColumnUserResizing)
66        self.assertArgIsBOOL(NSBrowser.setPrefersAllColumnUserResizing_, 0)
67        self.assertResultIsBOOL(NSBrowser.canDragRowsWithIndexes_inColumn_withEvent_)
68        self.assertArgIsBOOL(NSBrowser.setDraggingSourceOperationMask_forLocal_, 1)
69        self.assertResultIsBOOL(NSBrowser.allowsTypeSelect)
70        self.assertArgIsBOOL(NSBrowser.setAllowsTypeSelect_, 0)
71
72    def testDelegate(self):
73        self.assertResultIsBOOL(TestNSBrowserHelper.browser_selectCellWithString_inColumn_)
74        self.assertResultIsBOOL(TestNSBrowserHelper.browser_selectRow_inColumn_)
75        self.assertResultIsBOOL(TestNSBrowserHelper.browser_isColumnValid_)
76        self.assertArgIsBOOL(TestNSBrowserHelper.browser_shouldSizeColumn_forUserResize_toWidth_, 2)
77        self.assertResultIsBOOL(TestNSBrowserHelper.browser_shouldShowCellExpansionForRow_column_)
78        self.assertResultIsBOOL(TestNSBrowserHelper.browser_writeRowsWithIndexes_inColumn_toPasteboard_)
79        self.assertResultIsBOOL(TestNSBrowserHelper.browser_canDragRowsWithIndexes_inColumn_withEvent_)
80        self.assertResultIsBOOL(TestNSBrowserHelper.browser_acceptDrop_atRow_column_dropOperation_)
81
82        self.assertResultIsBOOL(TestNSBrowserHelper.browser_shouldTypeSelectForEvent_withCurrentSearchString_)
83
84    @min_os_level('10.6')
85    def testMethods10_6(self):
86        self.assertArgIsBOOL(NSBrowser.setAutohidesScroller_, 0)
87        self.assertResultIsBOOL(NSBrowser.autohidesScroller)
88        self.assertResultIsBOOL(NSBrowser.isLeafItem_)
89        self.assertResultIsBOOL(NSBrowser.getRow_column_forPoint_)
90        self.assertArgIsOut(NSBrowser.getRow_column_forPoint_, 0)
91        self.assertArgIsOut(NSBrowser.getRow_column_forPoint_, 1)
92        self.assertArgIsBOOL(NSBrowser.editItemAtIndexPath_withEvent_select_, 2)
93
94        self.assertArgHasType(TestNSBrowserHelper.browser_selectionIndexesForProposedSelection_inColumn_, 2, objc._C_NSInteger)
95
96    @min_os_level('10.6')
97    def testDelegate10_6(self):
98        self.assertResultIsBOOL(TestNSBrowserHelper.browser_isLeafItem_)
99        self.assertResultHasType(TestNSBrowserHelper.browser_heightOfRow_inColumn_, objc._C_CGFloat)
100        self.assertArgHasType(TestNSBrowserHelper.browser_heightOfRow_inColumn_, 1, objc._C_NSInteger)
101        self.assertArgHasType(TestNSBrowserHelper.browser_heightOfRow_inColumn_, 2, objc._C_NSInteger)
102        self.assertResultIsBOOL(TestNSBrowserHelper.browser_shouldEditItem_)
103        self.assertResultHasType(TestNSBrowserHelper.browser_numberOfRowsInColumn_, objc._C_NSInteger)
104        self.assertArgHasType(TestNSBrowserHelper.browser_numberOfRowsInColumn_, 1, objc._C_NSInteger)
105        self.assertArgHasType(TestNSBrowserHelper.browser_createRowsForColumn_inMatrix_, 1, objc._C_NSInteger)
106
107
108
109if __name__ == "__main__":
110    main()
111