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
29
30
31
32class TestNSTableView (TestCase):
33    def testConstants(self):
34        self.failUnlessEqual(NSTableViewDropOn, 0)
35        self.failUnlessEqual(NSTableViewDropAbove, 1)
36
37        self.failUnlessEqual(NSTableViewNoColumnAutoresizing, 0)
38        self.failUnlessEqual(NSTableViewUniformColumnAutoresizingStyle, 1)
39        self.failUnlessEqual(NSTableViewSequentialColumnAutoresizingStyle, 2)
40        self.failUnlessEqual(NSTableViewReverseSequentialColumnAutoresizingStyle, 3)
41        self.failUnlessEqual(NSTableViewLastColumnOnlyAutoresizingStyle, 4)
42        self.failUnlessEqual(NSTableViewFirstColumnOnlyAutoresizingStyle, 5)
43
44        self.failUnlessEqual(NSTableViewGridNone, 0)
45        self.failUnlessEqual(NSTableViewSolidVerticalGridLineMask, 1 << 0)
46        self.failUnlessEqual(NSTableViewSolidHorizontalGridLineMask, 1 << 1)
47
48        self.failUnlessEqual(NSTableViewSelectionHighlightStyleRegular, 0)
49        self.failUnlessEqual(NSTableViewSelectionHighlightStyleSourceList, 1)
50
51        self.failUnlessIsInstance(NSTableViewSelectionDidChangeNotification, unicode)
52        self.failUnlessIsInstance(NSTableViewColumnDidMoveNotification, unicode)
53        self.failUnlessIsInstance(NSTableViewColumnDidResizeNotification, unicode)
54        self.failUnlessIsInstance(NSTableViewSelectionIsChangingNotification, unicode)
55
56
57    def testMethods(self):
58        self.failUnlessArgIsBOOL(NSTableView.setAllowsColumnReordering_, 0)
59        self.failUnlessResultIsBOOL(NSTableView.allowsColumnReordering)
60        self.failUnlessArgIsBOOL(NSTableView.setAllowsColumnResizing_, 0)
61        self.failUnlessResultIsBOOL(NSTableView.allowsColumnResizing)
62        self.failUnlessArgIsBOOL(NSTableView.setUsesAlternatingRowBackgroundColors_, 0)
63        self.failUnlessResultIsBOOL(NSTableView.usesAlternatingRowBackgroundColors)
64        self.failUnlessArgIsBOOL(NSTableView.setVerticalMotionCanBeginDrag_, 0)
65        self.failUnlessResultIsBOOL(NSTableView.verticalMotionCanBeginDrag)
66        self.failUnlessResultIsBOOL(NSTableView.canDragRowsWithIndexes_atPoint_)
67        self.failUnlessArgIsInOut(NSTableView.dragImageForRowsWithIndexes_tableColumns_event_offset_, 3)
68        self.failUnlessArgIsBOOL(NSTableView.setDraggingSourceOperationMask_forLocal_, 1)
69        self.failUnlessResultIsBOOL(NSTableView.verticalMotionCanBeginDrag)
70        self.failUnlessArgIsBOOL(NSTableView.setAllowsMultipleSelection_, 0)
71        self.failUnlessResultIsBOOL(NSTableView.allowsMultipleSelection)
72        self.failUnlessArgIsBOOL(NSTableView.setAllowsEmptySelection_, 0)
73        self.failUnlessResultIsBOOL(NSTableView.allowsEmptySelection)
74        self.failUnlessArgIsBOOL(NSTableView.setAllowsColumnSelection_, 0)
75        self.failUnlessResultIsBOOL(NSTableView.allowsColumnSelection)
76        self.failUnlessArgIsBOOL(NSTableView.selectColumnIndexes_byExtendingSelection_, 1)
77        self.failUnlessArgIsBOOL(NSTableView.selectRowIndexes_byExtendingSelection_, 1)
78        self.failUnlessResultIsBOOL(NSTableView.isColumnSelected_)
79        self.failUnlessResultIsBOOL(NSTableView.isRowSelected_)
80        self.failUnlessArgIsBOOL(NSTableView.setAllowsTypeSelect_, 0)
81        self.failUnlessResultIsBOOL(NSTableView.allowsTypeSelect)
82        self.failUnlessResultIsBOOL(NSTableView.textShouldBeginEditing_)
83        self.failUnlessResultIsBOOL(NSTableView.textShouldEndEditing_)
84        self.failUnlessArgIsBOOL(NSTableView.setAutosaveTableColumns_, 0)
85        self.failUnlessResultIsBOOL(NSTableView.autosaveTableColumns)
86        self.failUnlessArgIsBOOL(NSTableView.editColumn_row_withEvent_select_, 3)
87
88
89        self.failUnlessArgIsBOOL(NSTableView.setDrawsGrid_, 0)
90        self.failUnlessResultIsBOOL(NSTableView.drawsGrid)
91        self.failUnlessArgIsBOOL(NSTableView.selectColumn_byExtendingSelection_, 1)
92        self.failUnlessArgIsBOOL(NSTableView.selectRow_byExtendingSelection_, 1)
93        self.failUnlessArgIsInOut(NSTableView.dragImageForRows_event_dragImageOffset_, 2)
94        self.failUnlessArgIsBOOL(NSTableView.setAutoresizesAllColumnsToFit_, 0)
95        self.failUnlessResultIsBOOL(NSTableView.autoresizesAllColumnsToFit)
96
97
98    def testProtocols(self):
99        self.failUnlessResultHasType(TestNSTableViewHelper.numberOfRowsInTableView_, objc._C_NSInteger)
100        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_objectValueForTableColumn_row_, 2, objc._C_NSInteger)
101        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_setObjectValue_forTableColumn_row_, 3, objc._C_NSInteger)
102        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_writeRowsWithIndexes_toPasteboard_)
103        self.failUnlessResultHasType(TestNSTableViewHelper.tableView_validateDrop_proposedRow_proposedDropOperation_, objc._C_NSUInteger)
104        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_validateDrop_proposedRow_proposedDropOperation_, 2, objc._C_NSInteger)
105        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_validateDrop_proposedRow_proposedDropOperation_, 3, objc._C_NSUInteger)
106        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_acceptDrop_row_dropOperation_)
107        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_acceptDrop_row_dropOperation_, 2, objc._C_NSInteger)
108        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_acceptDrop_row_dropOperation_, 3, objc._C_NSUInteger)
109        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_writeRows_toPasteboard_)
110
111
112        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_willDisplayCell_forTableColumn_row_, 3, objc._C_NSInteger)
113        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_shouldEditTableColumn_row_)
114        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_shouldEditTableColumn_row_, 2, objc._C_NSInteger)
115        self.failUnlessResultIsBOOL(TestNSTableViewHelper.selectionShouldChangeInTableView_)
116        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_shouldSelectTableColumn_)
117        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_toolTipForCell_rect_tableColumn_row_mouseLocation_, 2, 'N^' + NSRect.__typestr__)
118        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_toolTipForCell_rect_tableColumn_row_mouseLocation_, 4, objc._C_NSInteger)
119        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_toolTipForCell_rect_tableColumn_row_mouseLocation_, 5, NSPoint.__typestr__)
120        self.failUnlessResultHasType(TestNSTableViewHelper.tableView_heightOfRow_, objc._C_CGFloat)
121        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_heightOfRow_, 1, objc._C_NSInteger)
122        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_typeSelectStringForTableColumn_row_, 2, objc._C_NSInteger)
123        self.failUnlessResultHasType(TestNSTableViewHelper.tableView_nextTypeSelectMatchFromRow_toRow_forString_, objc._C_NSInteger)
124        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_nextTypeSelectMatchFromRow_toRow_forString_, 1, objc._C_NSInteger)
125        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_nextTypeSelectMatchFromRow_toRow_forString_, 2, objc._C_NSInteger)
126        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_shouldTypeSelectForEvent_withCurrentSearchString_)
127        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_shouldShowCellExpansionForTableColumn_row_)
128        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_shouldShowCellExpansionForTableColumn_row_, 2, objc._C_NSInteger)
129        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_shouldTrackCell_forTableColumn_row_)
130        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_shouldTrackCell_forTableColumn_row_, 3, objc._C_NSInteger)
131        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_dataCellForTableColumn_row_, 2, objc._C_NSInteger)
132        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_isGroupRow_)
133        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_isGroupRow_, 1, objc._C_NSInteger)
134
135
136
137if __name__ == "__main__":
138    main()
139