1
2from PyObjCTools.TestSupport import *
3from AppKit import *
4
5class TestNSDraggingHelper (NSObject):
6    def draggingSourceOperationMask(self): return 1
7    def draggingLocation(self): return 1
8    def draggedImageLocation(self): return 1
9    def draggingSource(self): return 1
10    def draggingSequenceNumber(self): return 1
11    def slideDraggedImageTo_(self, v): pass
12
13    def draggingEntered_(self, sender): return 1
14    def draggingUpdated_(self, sender): return 1
15    def draggingExited_(self, sender): pass
16    def prepareForDragOperation_(self, sender): return 1
17    def performDragOperation_(self, sender): return 1
18    def concludeDragOperation_(self, sender): pass
19    def draggingEnded_(self, sender): pass
20    def wantsPeriodicDraggingUpdates(self): return 1
21
22    def draggingSourceOperationMaskForLocal_(self, v): return 1
23    def draggedImage_beganAt_(self, v, v2): pass
24    def draggedImage_endedAt_operation_(self, v, v2, v3): pass
25    def draggedImage_movedTo_(self, v, v2): pass
26    def ignoreModifierKeysWhileDragging(self): return 1
27    def draggedImage_endedAt_deposited_(self, i, p, f): pass
28
29class TestNSDragging (TestCase):
30    def testConstants(self):
31        self.failUnlessEqual(NSDragOperationNone, 0)
32        self.failUnlessEqual(NSDragOperationCopy, 1)
33        self.failUnlessEqual(NSDragOperationLink, 2)
34        self.failUnlessEqual(NSDragOperationGeneric, 4)
35        self.failUnlessEqual(NSDragOperationPrivate, 8)
36        self.failUnlessEqual(NSDragOperationAll_Obsolete, 15)
37        self.failUnlessEqual(NSDragOperationMove, 16)
38        self.failUnlessEqual(NSDragOperationDelete, 32)
39        self.failUnlessEqual(NSDragOperationEvery, -1)
40
41        self.failUnlessEqual(NSDragOperationAll, NSDragOperationAll_Obsolete)
42
43    def testProtocols(self):
44        self.failUnlessResultHasType(TestNSDraggingHelper.draggingSourceOperationMask, objc._C_NSUInteger)
45        self.failUnlessResultHasType(TestNSDraggingHelper.draggingLocation, NSPoint.__typestr__)
46        self.failUnlessResultHasType(TestNSDraggingHelper.draggedImageLocation, NSPoint.__typestr__)
47        self.failUnlessResultHasType(TestNSDraggingHelper.draggingSequenceNumber, objc._C_NSInteger)
48        self.failUnlessArgHasType(TestNSDraggingHelper.slideDraggedImageTo_, 0, NSPoint.__typestr__)
49
50        self.failUnlessResultHasType(TestNSDraggingHelper.draggingEntered_, objc._C_NSUInteger)
51        self.failUnlessResultHasType(TestNSDraggingHelper.draggingUpdated_, objc._C_NSUInteger)
52        self.failUnlessResultIsBOOL(TestNSDraggingHelper.prepareForDragOperation_)
53        self.failUnlessResultIsBOOL(TestNSDraggingHelper.performDragOperation_)
54        self.failUnlessResultIsBOOL(TestNSDraggingHelper.wantsPeriodicDraggingUpdates)
55
56        self.failUnlessResultHasType(TestNSDraggingHelper.draggingSourceOperationMaskForLocal_, objc._C_NSUInteger)
57        self.failUnlessArgIsBOOL(TestNSDraggingHelper.draggingSourceOperationMaskForLocal_, 0)
58        self.failUnlessArgHasType(TestNSDraggingHelper.draggedImage_beganAt_, 1, NSPoint.__typestr__)
59        self.failUnlessArgHasType(TestNSDraggingHelper.draggedImage_endedAt_operation_, 1, NSPoint.__typestr__)
60        self.failUnlessArgHasType(TestNSDraggingHelper.draggedImage_endedAt_operation_, 2, objc._C_NSUInteger)
61        self.failUnlessArgHasType(TestNSDraggingHelper.draggedImage_movedTo_, 1, NSPoint.__typestr__)
62        self.failUnlessResultIsBOOL(TestNSDraggingHelper.ignoreModifierKeysWhileDragging)
63        self.failUnlessArgHasType(TestNSDraggingHelper.draggedImage_endedAt_deposited_, 1, NSPoint.__typestr__)
64        self.failUnlessArgIsBOOL(TestNSDraggingHelper.draggedImage_endedAt_deposited_, 2)
65
66if __name__ == "__main__":
67    main()
68