1
2from PyObjCTools.TestSupport import *
3from Quartz import *
4
5try:
6    unicode
7except NameError:
8    unicode = str
9
10class TestIKImageBrowserViewHelper (NSObject):
11    # IKImageBrowserDataSource
12    def numberOfItemsInImageBrowser_(self, b): return 1
13    def imageBrowser_itemAtIndex_(self, b, i): return None
14    def imageBrowser_moveItemsAtIndexes_toIndex_(self, b, st, i): return False
15    def imageBrowser_writeItemsAtIndexes_toPasteboard_(self, b, st, pb): return 44
16    def numberOfGroupsInImageBrowser_(self, b): return 1
17    def imageBrowser_groupAtIndex_(self, b, idx): return None
18
19    # IKImageBrowserItem
20    def imageVersion(self): return 1
21    def isSelectable(self): return True
22
23    # IKImageBrowserDelegate
24    def imageBrowser_cellWasDoubleClickedAtIndex_(self, b, idx): pass
25    def imageBrowser_cellWasRightClickedAtIndex_withEvent_(self, b, idx, e): pass
26
27
28class TestIKImageBrowserView (TestCase):
29    @min_os_level('10.5')
30    def testProtocols(self):
31        self.assertIsInstance(protocols.IKImageBrowserDataSource, objc.informal_protocol)
32
33        self.assertResultHasType(TestIKImageBrowserViewHelper.numberOfItemsInImageBrowser_, objc._C_NSUInteger)
34        self.assertArgHasType(TestIKImageBrowserViewHelper.imageBrowser_itemAtIndex_, 1, objc._C_NSUInteger)
35        self.assertResultIsBOOL(TestIKImageBrowserViewHelper.imageBrowser_moveItemsAtIndexes_toIndex_)
36        self.assertArgHasType(TestIKImageBrowserViewHelper.imageBrowser_moveItemsAtIndexes_toIndex_, 2, objc._C_NSUInteger)
37        self.assertResultHasType(TestIKImageBrowserViewHelper.imageBrowser_writeItemsAtIndexes_toPasteboard_, objc._C_NSUInteger)
38        self.assertResultHasType(TestIKImageBrowserViewHelper.numberOfGroupsInImageBrowser_, objc._C_NSUInteger)
39        self.assertArgHasType(TestIKImageBrowserViewHelper.imageBrowser_groupAtIndex_, 1, objc._C_NSUInteger)
40
41        self.assertIsInstance(protocols.IKImageBrowserItem, objc.informal_protocol)
42        self.assertResultHasType(TestIKImageBrowserViewHelper.imageVersion, objc._C_NSUInteger)
43        self.assertResultIsBOOL(TestIKImageBrowserViewHelper.isSelectable)
44
45        self.assertIsInstance(protocols.IKImageBrowserDelegate, objc.informal_protocol)
46        self.assertArgHasType(TestIKImageBrowserViewHelper.imageBrowser_cellWasDoubleClickedAtIndex_, 1, objc._C_NSUInteger)
47        self.assertArgHasType(TestIKImageBrowserViewHelper.imageBrowser_cellWasRightClickedAtIndex_withEvent_, 1, objc._C_NSUInteger)
48
49    @min_os_level('10.5')
50    def testMethods(self):
51        self.assertResultIsBOOL(IKImageBrowserView.constrainsToOriginalSize)
52        self.assertArgIsBOOL(IKImageBrowserView.setConstrainsToOriginalSize_, 0)
53        self.assertArgIsBOOL(IKImageBrowserView.setSelectionIndexes_byExtendingSelection_, 1)
54        self.assertResultIsBOOL(IKImageBrowserView.allowsMultipleSelection)
55        self.assertArgIsBOOL(IKImageBrowserView.setAllowsMultipleSelection_, 0)
56        self.assertResultIsBOOL(IKImageBrowserView.allowsEmptySelection)
57        self.assertArgIsBOOL(IKImageBrowserView.setAllowsEmptySelection_, 0)
58        self.assertResultIsBOOL(IKImageBrowserView.allowsReordering)
59        self.assertArgIsBOOL(IKImageBrowserView.setAllowsReordering_, 0)
60        self.assertResultIsBOOL(IKImageBrowserView.animates)
61        self.assertArgIsBOOL(IKImageBrowserView.setAnimates_, 0)
62
63        # Method does not exist?
64        #view = IKImageBrowserView.alloc().init()
65        #self.assertResultIsBOOL(view.isGroupExpandedAtIndex_)
66
67    @min_os_level('10.5')
68    def testConstants(self):
69        self.assertEqual(IKCellsStyleNone, 0)
70        self.assertEqual(IKCellsStyleShadowed, 1)
71        self.assertEqual(IKCellsStyleOutlined, 2)
72        self.assertEqual(IKCellsStyleTitled, 4)
73        self.assertEqual(IKCellsStyleSubtitled, 8)
74        self.assertEqual(IKGroupBezelStyle, 0)
75        self.assertEqual(IKGroupDisclosureStyle, 1)
76
77        self.assertIsInstance(IKImageBrowserPathRepresentationType, unicode)
78        self.assertIsInstance(IKImageBrowserNSURLRepresentationType, unicode)
79        self.assertIsInstance(IKImageBrowserNSImageRepresentationType, unicode)
80        self.assertIsInstance(IKImageBrowserCGImageRepresentationType, unicode)
81        self.assertIsInstance(IKImageBrowserCGImageSourceRepresentationType, unicode)
82        self.assertIsInstance(IKImageBrowserNSDataRepresentationType, unicode)
83        self.assertIsInstance(IKImageBrowserNSBitmapImageRepresentationType, unicode)
84        self.assertIsInstance(IKImageBrowserQTMovieRepresentationType, unicode)
85        self.assertIsInstance(IKImageBrowserQTMoviePathRepresentationType, unicode)
86        self.assertIsInstance(IKImageBrowserQCCompositionRepresentationType, unicode)
87        self.assertIsInstance(IKImageBrowserQCCompositionPathRepresentationType, unicode)
88        self.assertIsInstance(IKImageBrowserQuickLookPathRepresentationType, unicode)
89        self.assertIsInstance(IKImageBrowserIconRefPathRepresentationType, unicode)
90        self.assertIsInstance(IKImageBrowserIconRefRepresentationType, unicode)
91        self.assertIsInstance(IKImageBrowserBackgroundColorKey, unicode)
92        self.assertIsInstance(IKImageBrowserSelectionColorKey, unicode)
93        self.assertIsInstance(IKImageBrowserCellsOutlineColorKey, unicode)
94        self.assertIsInstance(IKImageBrowserCellsTitleAttributesKey, unicode)
95        self.assertIsInstance(IKImageBrowserCellsHighlightedTitleAttributesKey, unicode)
96        self.assertIsInstance(IKImageBrowserCellsSubtitleAttributesKey, unicode)
97        self.assertIsInstance(IKImageBrowserGroupRangeKey, unicode)
98        self.assertIsInstance(IKImageBrowserGroupBackgroundColorKey, unicode)
99        self.assertIsInstance(IKImageBrowserGroupTitleKey, unicode)
100        self.assertIsInstance(IKImageBrowserGroupStyleKey, unicode)
101
102    @min_os_level('10.6')
103    def testConstants10_6(self):
104        self.assertEqual(IKImageBrowserDropOn, 0)
105        self.assertEqual(IKImageBrowserDropBefore, 1)
106
107        self.assertIsInstance(IKImageBrowserPDFPageRepresentationType, unicode)
108        self.assertIsInstance(IKImageBrowserGroupHeaderLayer, unicode)
109        self.assertIsInstance(IKImageBrowserGroupHeaderLayer, unicode)
110
111    @min_os_level('10.6')
112    def testMethods10_6(self):
113        self.assertResultIsBOOL(IKImageBrowserView.canControlQuickLookPanel)
114        self.assertArgIsBOOL(IKImageBrowserView.setCanControlQuickLookPanel_, 0)
115        self.assertResultIsBOOL(IKImageBrowserView.allowsDroppingOnItems)
116        self.assertArgIsBOOL(IKImageBrowserView.setAllowsDroppingOnItems_, 0)
117
118if __name__ == "__main__":
119    main()
120