1from AppKit import *
2from PyObjCTools.TestSupport import *
3
4class TestNSCollectionViewHelper (NSObject):
5    def collectionView_canDragItemsAtIndexes_withEvent_(self, v, i, e): return 1
6    def collectionView_writeItemsAtIndexes_toPasteboard_(self, v, i, p): return 1
7    def collectionView_draggingImageForItemsAtIndexes_withEvent_offset_(self, v, i, e, o): return 1
8    def collectionView_validateDrop_proposedIndex_dropOperation_(self, v, d, i, o): return 1
9    def collectionView_acceptDrop_index_dropOperation_(self, v, d, i, o): return 1
10    def collectionView_pasteboardWriterForItemAtIndex_(self, v, i): pass
11    def collectionView_draggingSession_willBeginAtPoint_forItemsAtIndexes_(self, v, i, j, p): pass
12    def collectionView_draggingSession_endedAtPoint_draggingOperation_(self, a, b, c, d): pass
13
14
15class TestNSCollectionView (TestCase):
16    def testMethods(self):
17        self.assertResultIsBOOL(NSCollectionViewItem.isSelected)
18        self.assertArgIsBOOL(NSCollectionViewItem.setSelected_, 0)
19
20        self.assertResultIsBOOL(NSCollectionView.isFirstResponder)
21
22        self.assertResultIsBOOL(NSCollectionView.isSelectable)
23        self.assertArgIsBOOL(NSCollectionView.setSelectable_, 0)
24        self.assertResultIsBOOL(NSCollectionView.allowsMultipleSelection)
25        self.assertArgIsBOOL(NSCollectionView.setAllowsMultipleSelection_, 0)
26
27    @min_os_level('10.6')
28    def testMethods10_6(self):
29        self.assertResultHasType(NSCollectionView.frameForItemAtIndex_, NSRect.__typestr__)
30        self.assertArgIsBOOL(NSCollectionView.setDraggingSourceOperationMask_forLocal_, 1)
31        self.assertArgHasType(NSCollectionView.draggingImageForItemsAtIndexes_withEvent_offset_, 2,
32                b'N^' + NSPoint.__typestr__)
33
34        self.assertResultIsBOOL(TestNSCollectionViewHelper.collectionView_canDragItemsAtIndexes_withEvent_)
35        self.assertResultIsBOOL(TestNSCollectionViewHelper.collectionView_writeItemsAtIndexes_toPasteboard_)
36        self.assertArgHasType(TestNSCollectionViewHelper.collectionView_draggingImageForItemsAtIndexes_withEvent_offset_,
37                3, b'N^' + NSPoint.__typestr__)
38
39        self.assertResultHasType(TestNSCollectionViewHelper.collectionView_validateDrop_proposedIndex_dropOperation_,
40                objc._C_NSInteger)
41        self.assertArgHasType(TestNSCollectionViewHelper.collectionView_validateDrop_proposedIndex_dropOperation_,
42                2, b'N^' + objc._C_NSInteger)
43        self.assertArgHasType(TestNSCollectionViewHelper.collectionView_validateDrop_proposedIndex_dropOperation_,
44                3, b'N^' + objc._C_NSInteger)
45
46        self.assertResultIsBOOL(TestNSCollectionViewHelper.collectionView_acceptDrop_index_dropOperation_)
47        self.assertArgHasType(TestNSCollectionViewHelper.collectionView_acceptDrop_index_dropOperation_,
48            2, objc._C_NSInteger)
49        self.assertArgHasType(TestNSCollectionViewHelper.collectionView_acceptDrop_index_dropOperation_,
50            3, objc._C_NSInteger)
51
52        self.assertArgHasType(TestNSCollectionViewHelper.collectionView_pasteboardWriterForItemAtIndex_, 1, objc._C_NSInteger)
53        self.assertArgHasType(TestNSCollectionViewHelper.collectionView_draggingSession_willBeginAtPoint_forItemsAtIndexes_,
54                2, NSPoint.__typestr__)
55        self.assertArgHasType(TestNSCollectionViewHelper.collectionView_draggingSession_endedAtPoint_draggingOperation_,
56                2, NSPoint.__typestr__)
57        self.assertArgHasType(TestNSCollectionViewHelper.collectionView_draggingSession_endedAtPoint_draggingOperation_,
58                3, objc._C_NSInteger)
59
60
61    @min_os_level('10.6')
62    def testConstants10_6(self):
63        self.assertEqual(NSCollectionViewDropOn, 0)
64        self.assertEqual(NSCollectionViewDropBefore, 1)
65
66if __name__ == "__main__":
67    main()
68