1
2from PyObjCTools.TestSupport import *
3from AppKit import *
4
5class TestNSTableViewHelper (NSObject):
6    def numberOfRowsInTableView_(self, tv): return 1
7    def tableView_objectValueForTableColumn_row_(self, tv, c, r): return 1
8    def tableView_setObjectValue_forTableColumn_row_(self, o, tv, c, r): pass
9    def tableView_writeRowsWithIndexes_toPasteboard_(self, tv, r, p): return 1
10    def tableView_validateDrop_proposedRow_proposedDropOperation_(self, tv, dr, r, o): return 1
11    def tableView_acceptDrop_row_dropOperation_(self, tv, dr, r, o): return 1
12    def tableView_writeRows_toPasteboard_(self, tv, r, p): return 1
13
14    def tableView_willDisplayCell_forTableColumn_row_(self, tv, c, tc, r): return 1
15    def tableView_shouldEditTableColumn_row_(self, tv, tc, r): return 1
16    def selectionShouldChangeInTableView_(self, tv): return 1
17    def tableView_shouldSelectTableColumn_(self, tv, tc): return 1
18    def tableView_toolTipForCell_rect_tableColumn_row_mouseLocation_(self, tv, c, re, tc, r, l): return 1
19    def tableView_heightOfRow_(self, tv, r): return 1
20    def tableView_typeSelectStringForTableColumn_row_(self, tv, tc, r): return 1
21    def tableView_nextTypeSelectMatchFromRow_toRow_forString_(self, tv, r1, r2, s): return 1
22    def tableView_shouldTypeSelectForEvent_withCurrentSearchString_(self, tv, e, s): return 1
23    def tableView_shouldShowCellExpansionForTableColumn_row_(self, tv, tc, r): return 1
24    def tableView_shouldTrackCell_forTableColumn_row_(self, tv, c, tc, r): return 1
25    def tableView_dataCellForTableColumn_row_(self, tv, tc, r): return 1
26    def tableView_isGroupRow_(self, tv, r): return 1
27
28    def tableView_sizeToFitWidthOfColumn_(self, tv, c): return 1
29    def tableView_shouldReorderColumn_toColumn_(self, tv, c1, c2): return 1
30
31
32
33
34
35class TestNSTableView (TestCase):
36    def testConstants(self):
37        self.assertEqual(NSTableViewDropOn, 0)
38        self.assertEqual(NSTableViewDropAbove, 1)
39
40        self.assertEqual(NSTableViewNoColumnAutoresizing, 0)
41        self.assertEqual(NSTableViewUniformColumnAutoresizingStyle, 1)
42        self.assertEqual(NSTableViewSequentialColumnAutoresizingStyle, 2)
43        self.assertEqual(NSTableViewReverseSequentialColumnAutoresizingStyle, 3)
44        self.assertEqual(NSTableViewLastColumnOnlyAutoresizingStyle, 4)
45        self.assertEqual(NSTableViewFirstColumnOnlyAutoresizingStyle, 5)
46
47        self.assertEqual(NSTableViewGridNone, 0)
48        self.assertEqual(NSTableViewSolidVerticalGridLineMask, 1 << 0)
49        self.assertEqual(NSTableViewSolidHorizontalGridLineMask, 1 << 1)
50
51        self.assertEqual(NSTableViewSelectionHighlightStyleRegular, 0)
52        self.assertEqual(NSTableViewSelectionHighlightStyleSourceList, 1)
53
54        self.assertIsInstance(NSTableViewSelectionDidChangeNotification, unicode)
55        self.assertIsInstance(NSTableViewColumnDidMoveNotification, unicode)
56        self.assertIsInstance(NSTableViewColumnDidResizeNotification, unicode)
57        self.assertIsInstance(NSTableViewSelectionIsChangingNotification, unicode)
58
59    @min_os_level('10.6')
60    def testConstants10_6(self):
61        self.assertEqual(NSTableViewSelectionHighlightStyleNone, -1)
62        self.assertEqual(NSTableViewDraggingDestinationFeedbackStyleNone, -1)
63        self.assertEqual(NSTableViewDraggingDestinationFeedbackStyleRegular, 0)
64        self.assertEqual(NSTableViewDraggingDestinationFeedbackStyleSourceList, 1)
65
66    def testMethods(self):
67        self.assertArgIsBOOL(NSTableView.setAllowsColumnReordering_, 0)
68        self.assertResultIsBOOL(NSTableView.allowsColumnReordering)
69        self.assertArgIsBOOL(NSTableView.setAllowsColumnResizing_, 0)
70        self.assertResultIsBOOL(NSTableView.allowsColumnResizing)
71        self.assertArgIsBOOL(NSTableView.setUsesAlternatingRowBackgroundColors_, 0)
72        self.assertResultIsBOOL(NSTableView.usesAlternatingRowBackgroundColors)
73        self.assertArgIsBOOL(NSTableView.setVerticalMotionCanBeginDrag_, 0)
74        self.assertResultIsBOOL(NSTableView.verticalMotionCanBeginDrag)
75        self.assertResultIsBOOL(NSTableView.canDragRowsWithIndexes_atPoint_)
76        self.assertArgIsInOut(NSTableView.dragImageForRowsWithIndexes_tableColumns_event_offset_, 3)
77        self.assertArgIsBOOL(NSTableView.setDraggingSourceOperationMask_forLocal_, 1)
78        self.assertResultIsBOOL(NSTableView.verticalMotionCanBeginDrag)
79        self.assertArgIsBOOL(NSTableView.setAllowsMultipleSelection_, 0)
80        self.assertResultIsBOOL(NSTableView.allowsMultipleSelection)
81        self.assertArgIsBOOL(NSTableView.setAllowsEmptySelection_, 0)
82        self.assertResultIsBOOL(NSTableView.allowsEmptySelection)
83        self.assertArgIsBOOL(NSTableView.setAllowsColumnSelection_, 0)
84        self.assertResultIsBOOL(NSTableView.allowsColumnSelection)
85        self.assertArgIsBOOL(NSTableView.selectColumnIndexes_byExtendingSelection_, 1)
86        self.assertArgIsBOOL(NSTableView.selectRowIndexes_byExtendingSelection_, 1)
87        self.assertResultIsBOOL(NSTableView.isColumnSelected_)
88        self.assertResultIsBOOL(NSTableView.isRowSelected_)
89        self.assertResultIsBOOL(NSTableView.textShouldBeginEditing_)
90        self.assertResultIsBOOL(NSTableView.textShouldEndEditing_)
91        self.assertArgIsBOOL(NSTableView.setAutosaveTableColumns_, 0)
92        self.assertResultIsBOOL(NSTableView.autosaveTableColumns)
93        self.assertArgIsBOOL(NSTableView.editColumn_row_withEvent_select_, 3)
94
95        self.assertArgHasType(NSTableView.drawBackgroundInClipRect_, 0, NSRect.__typestr__)
96
97
98
99        self.assertArgIsBOOL(NSTableView.setDrawsGrid_, 0)
100        self.assertResultIsBOOL(NSTableView.drawsGrid)
101        self.assertArgIsBOOL(NSTableView.selectColumn_byExtendingSelection_, 1)
102        self.assertArgIsBOOL(NSTableView.selectRow_byExtendingSelection_, 1)
103        self.assertArgIsInOut(NSTableView.dragImageForRows_event_dragImageOffset_, 2)
104        self.assertArgIsBOOL(NSTableView.setAutoresizesAllColumnsToFit_, 0)
105        self.assertResultIsBOOL(NSTableView.autoresizesAllColumnsToFit)
106
107    @min_os_level('10.5')
108    def testMethods10_5(self):
109        self.assertArgIsBOOL(NSTableView.setAllowsTypeSelect_, 0)
110        self.assertResultIsBOOL(NSTableView.allowsTypeSelect)
111
112        self.assertArgHasType(NSTableView.columnIndexesInRect_, 0, NSRect.__typestr__)
113
114    @min_os_level('10.6')
115    def testMethods10_6(self):
116        self.assertResultIsBOOL(NSTableView.shouldFocusCell_atColumn_row_)
117
118
119    def testProtocols(self):
120        self.assertResultHasType(TestNSTableViewHelper.numberOfRowsInTableView_, objc._C_NSInteger)
121        self.assertArgHasType(TestNSTableViewHelper.tableView_objectValueForTableColumn_row_, 2, objc._C_NSInteger)
122        self.assertArgHasType(TestNSTableViewHelper.tableView_setObjectValue_forTableColumn_row_, 3, objc._C_NSInteger)
123        self.assertResultIsBOOL(TestNSTableViewHelper.tableView_writeRowsWithIndexes_toPasteboard_)
124        self.assertResultHasType(TestNSTableViewHelper.tableView_validateDrop_proposedRow_proposedDropOperation_, objc._C_NSUInteger)
125        self.assertArgHasType(TestNSTableViewHelper.tableView_validateDrop_proposedRow_proposedDropOperation_, 2, objc._C_NSInteger)
126        self.assertArgHasType(TestNSTableViewHelper.tableView_validateDrop_proposedRow_proposedDropOperation_, 3, objc._C_NSUInteger)
127        self.assertResultIsBOOL(TestNSTableViewHelper.tableView_acceptDrop_row_dropOperation_)
128        self.assertArgHasType(TestNSTableViewHelper.tableView_acceptDrop_row_dropOperation_, 2, objc._C_NSInteger)
129        self.assertArgHasType(TestNSTableViewHelper.tableView_acceptDrop_row_dropOperation_, 3, objc._C_NSUInteger)
130        self.assertResultIsBOOL(TestNSTableViewHelper.tableView_writeRows_toPasteboard_)
131
132
133        self.assertArgHasType(TestNSTableViewHelper.tableView_willDisplayCell_forTableColumn_row_, 3, objc._C_NSInteger)
134        self.assertResultIsBOOL(TestNSTableViewHelper.tableView_shouldEditTableColumn_row_)
135        self.assertArgHasType(TestNSTableViewHelper.tableView_shouldEditTableColumn_row_, 2, objc._C_NSInteger)
136        self.assertResultIsBOOL(TestNSTableViewHelper.selectionShouldChangeInTableView_)
137        self.assertResultIsBOOL(TestNSTableViewHelper.tableView_shouldSelectTableColumn_)
138        self.assertArgHasType(TestNSTableViewHelper.tableView_toolTipForCell_rect_tableColumn_row_mouseLocation_, 2, b'N^' + NSRect.__typestr__)
139        self.assertArgHasType(TestNSTableViewHelper.tableView_toolTipForCell_rect_tableColumn_row_mouseLocation_, 4, objc._C_NSInteger)
140        self.assertArgHasType(TestNSTableViewHelper.tableView_toolTipForCell_rect_tableColumn_row_mouseLocation_, 5, NSPoint.__typestr__)
141        self.assertResultHasType(TestNSTableViewHelper.tableView_heightOfRow_, objc._C_CGFloat)
142        self.assertArgHasType(TestNSTableViewHelper.tableView_heightOfRow_, 1, objc._C_NSInteger)
143        self.assertArgHasType(TestNSTableViewHelper.tableView_typeSelectStringForTableColumn_row_, 2, objc._C_NSInteger)
144        self.assertResultHasType(TestNSTableViewHelper.tableView_nextTypeSelectMatchFromRow_toRow_forString_, objc._C_NSInteger)
145        self.assertArgHasType(TestNSTableViewHelper.tableView_nextTypeSelectMatchFromRow_toRow_forString_, 1, objc._C_NSInteger)
146        self.assertArgHasType(TestNSTableViewHelper.tableView_nextTypeSelectMatchFromRow_toRow_forString_, 2, objc._C_NSInteger)
147        self.assertResultIsBOOL(TestNSTableViewHelper.tableView_shouldTypeSelectForEvent_withCurrentSearchString_)
148        self.assertResultIsBOOL(TestNSTableViewHelper.tableView_shouldShowCellExpansionForTableColumn_row_)
149        self.assertArgHasType(TestNSTableViewHelper.tableView_shouldShowCellExpansionForTableColumn_row_, 2, objc._C_NSInteger)
150        self.assertResultIsBOOL(TestNSTableViewHelper.tableView_shouldTrackCell_forTableColumn_row_)
151        self.assertArgHasType(TestNSTableViewHelper.tableView_shouldTrackCell_forTableColumn_row_, 3, objc._C_NSInteger)
152        self.assertArgHasType(TestNSTableViewHelper.tableView_dataCellForTableColumn_row_, 2, objc._C_NSInteger)
153        self.assertResultIsBOOL(TestNSTableViewHelper.tableView_isGroupRow_)
154        self.assertArgHasType(TestNSTableViewHelper.tableView_isGroupRow_, 1, objc._C_NSInteger)
155
156    @min_os_level('10.6')
157    def testProtococols10_6(self):
158        self.assertResultHasType(TestNSTableViewHelper.tableView_sizeToFitWidthOfColumn_, objc._C_CGFloat)
159        self.assertArgHasType(TestNSTableViewHelper.tableView_sizeToFitWidthOfColumn_, 1, objc._C_NSInteger)
160
161        self.assertResultIsBOOL(TestNSTableViewHelper.tableView_shouldReorderColumn_toColumn_)
162        self.assertArgHasType(TestNSTableViewHelper.tableView_shouldReorderColumn_toColumn_, 1, objc._C_NSInteger)
163        self.assertArgHasType(TestNSTableViewHelper.tableView_shouldReorderColumn_toColumn_, 2, objc._C_NSInteger)
164
165if __name__ == "__main__":
166    main()
167