1from PyObjCTools.TestSupport import *
2
3import AppKit
4
5try:
6    unicode
7except NameError:
8    unicode = str
9
10class PopoverHelper (AppKit.NSObject):
11    def popoverShouldClose_(self, a): return 1
12
13class TestNSPopover (TestCase):
14    @min_os_level('10.7')
15    def testConstants10_7(self):
16        self.assertEqual(AppKit.NSPopoverAppearanceMinimal, 0)
17        self.assertEqual(AppKit.NSPopoverAppearanceHUD, 1)
18
19        self.assertEqual(AppKit.NSPopoverBehaviorApplicationDefined, 0)
20        self.assertEqual(AppKit.NSPopoverBehaviorTransient, 1)
21        self.assertEqual(AppKit.NSPopoverBehaviorSemitransient, 2)
22
23        self.assertIsInstance(AppKit.NSPopoverCloseReasonKey, unicode)
24        self.assertIsInstance(AppKit.NSPopoverCloseReasonStandard, unicode)
25        self.assertIsInstance(AppKit.NSPopoverCloseReasonDetachToWindow, unicode)
26        self.assertIsInstance(AppKit.NSPopoverWillShowNotification, unicode)
27        self.assertIsInstance(AppKit.NSPopoverDidShowNotification, unicode)
28        self.assertIsInstance(AppKit.NSPopoverWillCloseNotification, unicode)
29        self.assertIsInstance(AppKit.NSPopoverDidCloseNotification, unicode)
30
31    @min_os_level('10.7')
32    def testMethods10_7(self):
33        self.assertResultIsBOOL(AppKit.NSPopover.animates)
34        self.assertArgIsBOOL(AppKit.NSPopover.setAnimates_, 0)
35
36        self.assertResultIsBOOL(AppKit.NSPopover.isShown)
37        self.assertArgIsBOOL(AppKit.NSPopover.setShown_, 0)
38
39        self.assertArgHasType(AppKit.NSPopover.showRelativeToRect_ofView_preferredEdge_, 0, AppKit.NSRect.__typestr__)
40
41    @min_os_level('10.7')
42    def testProtocols10_7(self):
43        self.assertResultIsBOOL(PopoverHelper.popoverShouldClose_)
44
45
46if __name__ == "__main__":
47    main()
48