[PyObjC-svn] r2107 - in trunk/pyobjc/pyobjc-framework-Cocoa: Doc Lib/AppKit Modules PyObjCTest

[email protected]
Newsgroups gmane.comp.python.pyobjc.cvs
Message-ID <[email protected]>
Author: ronaldoussoren
Date: Sun Mar 22 09:31:31 2009
New Revision: 2107

Log:
Finish unittests for most of the AppKit framework.


Added:
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmenuitemcell.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmenuview.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsnibloading.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsobjectcontroller.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspersistentdocument.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsrulermarker.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsscrollview.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssecuretextfield.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsspeechrecognizer.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsstepper.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssteppercell.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstableheadercell.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextfield.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstokenfield.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstreecontroller.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstreenode.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsuserdefaultscontroller.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsuserinterfacevalidation.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsviewcontroller.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nswindowcontroller.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nswindowscripting.py   (contents, props changed)
Removed:
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsquickdrawview.py
Modified:
   trunk/pyobjc/pyobjc-framework-Cocoa/Doc/api-notes-AppKit.txt
   trunk/pyobjc/pyobjc-framework-Cocoa/Lib/AppKit/PyObjC.bridgesupport
   trunk/pyobjc/pyobjc-framework-Cocoa/Lib/AppKit/__init__.py
   trunk/pyobjc/pyobjc-framework-Cocoa/Modules/_AppKit_nsview.m
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsbezierpath.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nscolorspace.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsimage.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmenu.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmenuitem.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmovie.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmovieview.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsnib.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsopengl.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsopenpanel.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsoutlineview.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspagelayout.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspanel.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspasteboard.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspathcell.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspathcontrol.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspopupbutton.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspopupbuttoncell.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprinter.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprintinfo.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprintoperation.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprintpanel.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprogressindicator.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsresponder.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsruleeditor.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsrulerview.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssavepanel.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsscroller.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssearchfieldcell.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssegmentedcell.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssegmentedcontrol.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssimplehorizontaltypesetter.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsslidercell.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssound.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsspeechsynthesizer.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsspellchecker.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssplitview.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsstatusbar.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsstatusitem.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstablecolumn.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstableview.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstabview.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstabviewitem.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstext.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextattachment.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextcontainer.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextfieldcell.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextinputclient.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextstorage.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstexttable.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextview.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstokenfieldcell.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstoolbar.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstoolbaritem.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsview.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nswindow.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsworkspace.py

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Doc/api-notes-AppKit.txt
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Doc/api-notes-AppKit.txt	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Doc/api-notes-AppKit.txt	Sun Mar 22 09:31:31 2009
@@ -35,3 +35,49 @@
 * ``initWithIconRef:``
 
   This method is not yet supported.
+
+``NSMovie``
+-----------
+
+NOTE: This class is deprecated by Apple, use ``QTMovie`` instead.
+
+* ``-QTMovie``, ``-initWithMovie:``
+
+  These methods are not supported.
+
+``NSMovieView``
+---------------
+
+* ``-movieController``
+
+  This method is not supported.
+
+``NSPrintInfo``
+---------------
+
+* ``-PMPrintSession``, ``-PMPageFormat``, ``-PMPrintSettings``
+
+  These methods are not yet supported.
+
+``NSQuickDrawView``
+-------------------
+
+* ``-qdPort``
+
+  This method is not supported.
+
+``NSGlyphInfoAtIndex``
+----------------------
+
+This function is not supported.
+
+``NSTypesetterGlyphInfo``
+-------------------------
+
+This structure is not supported, and therefore the method ``-baseOfTypesetterGlyphInfo`` and 
+``-typesetterLaidOneGlyph`` of ``NSSimpleHorizontalTypesetter`` are not supported as well.
+
+``NSWindow``
+------------
+
+Methods ``-initWithWindowRef:`` and ``-windowRef`` are not supported.

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Lib/AppKit/PyObjC.bridgesupport
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Lib/AppKit/PyObjC.bridgesupport	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Lib/AppKit/PyObjC.bridgesupport	Sun Mar 22 09:31:31 2009
@@ -1904,10 +1904,10 @@
     <arg type='@' type64='@' />
     <arg type='@' type64='@' />
     <arg type='@' type64='@' />
-    <arg sel_of_type='v@:@^v' type=':' />
-    <arg type=':' type64=':' />
+    <arg sel_of_type='v@:@i^v' type=':' />
+    <arg sel_of_type='v@:@i^v' type=':' type64=':' />
     <arg type='^v' type64='^v' />
-    <arg type='@' type64='@' />
+    <arg type='@' type64='@' printf_format='true' />
   </function>
   <function name='NSBeginCriticalAlertSheet' variadic='true'>
     <retval type='v' type64='v' />
@@ -1917,10 +1917,10 @@
     <arg type='@' type64='@' />
     <arg type='@' type64='@' />
     <arg type='@' type64='@' />
-    <arg sel_of_type='v@:@^v' type=':' />
-    <arg type=':' type64=':' />
+    <arg sel_of_type='v@:@i^v' type=':' />
+    <arg sel_of_type='v@:@i^v' type=':' type64=':' />
     <arg type='^v' type64='^v' />
-    <arg type='@' type64='@' />
+    <arg type='@' type64='@' printf_format='true' />
   </function>
   <function name='NSBeginInformationalAlertSheet' variadic='true'>
     <retval type='v' type64='v' />
@@ -1930,10 +1930,10 @@
     <arg type='@' type64='@' />
     <arg type='@' type64='@' />
     <arg type='@' type64='@' />
-    <arg sel_of_type='v@:@^v' type=':' />
-    <arg type=':' type64=':' />
+    <arg sel_of_type='v@:@i^v' type=':' />
+    <arg sel_of_type='v@:@i^v' type=':' type64=':' />
     <arg type='^v' type64='^v' />
-    <arg type='@' type64='@' />
+    <arg type='@' type64='@' printf_format='true' />
   </function>
   <function name='NSBestDepth'>
     <retval type='i' type64='i' />
@@ -2650,9 +2650,9 @@
     <method selector='splitView:additionalEffectiveRectOfDividerAtIndex:' type='{_NSRect={_NSPoint=ff}{_NSSize=ff}}@:@i' type64='{CGRect={CGPoint=dd}{CGSize=dd}}@:@q' />
     <method selector='splitView:canCollapseSubview:' type='B@:@@' />
     <method selector='splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:' type='{_NSRect={_NSPoint=ff}{_NSSize=ff}}@:@{_NSRect={_NSPoint=ff}{_NSSize=ff}}{_NSRect={_NSPoint=ff}{_NSSize=ff}}i' type64='{CGRect={CGPoint=dd}{CGSize=dd}}@:@{CGRect={CGPoint=dd}{CGSize=dd}}{CGRect={CGPoint=dd}{CGSize=dd}}q' />
-    <method selector='splitView:onstrainMaxCoordinate:ofSubviewAt:' type='f@:@fi' type64='d@:@dq' />
-    <method selector='splitView:onstrainMinCoordinate:ofSubviewAt:' type='f@:@fi' type64='d@:@dq' />
-    <method selector='splitView:onstrainSplitPosition:ofSubviewAt:' type='f@:@fi' type64='d@:@dq' />
+    <method selector='splitView:constrainMaxCoordinate:ofSubviewAt:' type='f@:@fi' type64='d@:@dq' />
+    <method selector='splitView:constrainMinCoordinate:ofSubviewAt:' type='f@:@fi' type64='d@:@dq' />
+    <method selector='splitView:constrainSplitPosition:ofSubviewAt:' type='f@:@fi' type64='d@:@dq' />
     <method selector='splitView:resizeSubviewsWithOldSize:' type='v@:@{_NSSize=ff}' type64='v@:@{CGSize=dd}' />
     <method selector='splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:' type='B@:@@i' type64='B@:@@q' />
     <method selector='splitView:shouldHideDividerAtIndex:' type='B@:@i' type64='B@:@q' />
@@ -12820,7 +12820,7 @@
     <method selector='attributedSubstringForProposedRange:actualRange:'>
       <retval type='@' />
       <arg index='0' type='{_NSRange=II}' type64='{_NSRange=QQ}' />
-      <arg index='1' type_modifier='o' />
+      <arg index='1' type_modifier='o' type='^{_NSRange=II}' type64='^{_NSRange=QQ}' />
     </method>
     <method selector='attributedSubstringFromRange:'>
       <retval type='@' />
@@ -13154,7 +13154,7 @@
     <method selector='discardEditing'>
       <retval type='v' />
     </method>
-    <method selector='doCommandBySelector:'>
+    <method selector='ioCommandBySelector:'>
       <retval type='v' />
       <arg index='0' type=':' sel_of_type='v@:@'/>
     </method>
@@ -13294,7 +13294,7 @@
     <method selector='firstRectForCharacterRange:actualRange:'>
       <retval type='{_NSRect={_NSPoint=ff}{_NSSize=ff}}' type64='{CGRect={CGPoint=dd}{CGSize=dd}}' />
       <arg index='0' type='{_NSRange=II}' type64='{_NSRange=QQ}' />
-      <arg index='1' type_modifier='o' />
+      <arg index='1' type_modifier='o' type='^{_NSRange=II}' type64='^{_NSRange=QQ}'/>
     </method>
     <method selector='fontManager:willIncludeFont:'>
       <retval type='B' />
@@ -13473,8 +13473,8 @@
       <retval type='B' />
       <arg index='0' type='@' />
       <arg index='1' type='@' />
-      <arg index='2' type_modifier='o' />
-      <arg index='3' type_modifier='o' />
+      <arg index='2' type_modifier='o' type='^@' />
+      <arg index='3' type_modifier='o' type='^:' />
     </method>
     <method selector='menuNeedsUpdate:'>
       <retval type='v' />
@@ -13693,7 +13693,7 @@
       <retval type='@' />
       <arg index='0' type='@' />
       <arg index='1' type='@' />
-      <arg index='2' type_modifier='N' />
+      <arg index='2' type_modifier='N'  type='^{_NSRect={_NSPoint=ff}{_NSSize=ff}}' type64='^{CGRect={CGPoint=dd}{CGSize=dd}}' />
       <arg index='3' type='@' />
       <arg index='4' type='@' />
       <arg index='5' type='{_NSPoint=ff}' type64='{CGPoint=dd}' />
@@ -14424,7 +14424,7 @@
       <arg index='0' type='@' />
       <arg index='1' type='@' />
       <arg index='2' type='i' type64='q' />
-      <arg index='3' type_modifier='N' />
+      <arg index='3' type_modifier='o' type='^i' type64='^q' />
     </method>
     <method selector='tokenField:displayStringForRepresentedObject:'>
       <retval type='@' />
@@ -14478,7 +14478,7 @@
       <arg index='0' type='@' />
       <arg index='1' type='@' />
       <arg index='2' type='i' type64='q' />
-      <arg index='3' type_modifier='N' />
+      <arg index='3' type_modifier='o' />
     </method>
     <method selector='tokenFieldCell:displayStringForRepresentedObject:'>
       <retval type='@' />
@@ -14884,8 +14884,8 @@
     <method class_method='true' selector='clearCurrentContext'>
       <retval type='v' />
     </method>
-    <method selector='clearDrawable'>
-      <retval type='v' />
+    <method selector='CGLContextObj'>
+       <retval type='^{_CGLContextObj}' />
     </method>
     <method selector='copyAttributesFromContext:withMask:'>
       <retval type='v' />
@@ -15000,9 +15000,12 @@
     <method selector='attributes'>
       <retval type='@' />
     </method>
+    <method selector='CGLPixelFormatObj'>}
+      <retval type='^{_CGLPixelFormatObject}' />
+    </method>
     <method selector='getValues:forAttribute:forVirtualScreen:'>
       <retval type='v' />
-      <arg index='0' type='^i' />
+      <arg index='0' type='^i' type_modifier='o' />
       <arg index='1' type='I' />
       <arg index='2' type='i' />
     </method>
@@ -15071,7 +15074,7 @@
       <arg index='1' type='@' />
       <arg index='2' type='@' />
       <arg index='3' type='@' />
-      <arg index='4' sel_of_type='v@:@i^v' />
+      <arg index='4' sel_of_type='v@:@i^v' type=':' />
       <arg index='5' type='^v' />
     </method>
     <method selector='beginSheetForDirectory:file:types:modalForWindow:modalDelegate:didEndSelector:contextInfo:'>
@@ -15081,7 +15084,7 @@
       <arg index='2' type='@' />
       <arg index='3' type='@' />
       <arg index='4' type='@' />
-      <arg index='5' sel_of_type='v@:@i^v' />
+      <arg index='5' sel_of_type='v@:@i^v' type=':' />
       <arg index='6' type='^v' />
     </method>
     <method selector='canChooseDirectories'>
@@ -17671,6 +17674,9 @@
     <method selector='visibleFrame'>
       <retval type='{_NSRect={_NSPoint=ff}{_NSSize=ff}}' type64='{CGRect={CGPoint=dd}{CGSize=dd}}' />
     </method>
+    <method selector='supportedWindowDepths'>
+      <retval c_array_delimited_by_null='true' />
+    </method>
   </class>
   <class name='NSScrollView'>
     <method selector='autohidesScrollers'>
@@ -18403,9 +18409,9 @@
     </method>
     <method selector='willSetLineFragmentRect:forGlyphRange:usedRect:'>
       <retval type='v' />
-      <arg index='0' type_modifier='N' />
+      <arg index='0' type_modifier='N' type='^{_NSRect={_NSPoint=ff}{_NSSize=ff}}' type64='^{CGRect={CGPoint=dd}{CGSize=dd}}' />
       <arg index='1' type='{_NSRange=II}' type64='{_NSRange=QQ}' />
-      <arg index='2' type_modifier='N' />
+      <arg index='2' type_modifier='N' type='^{_NSRect={_NSPoint=ff}{_NSSize=ff}}' type64='^{CGRect={CGPoint=dd}{CGSize=dd}}' />
     </method>
   </class>
   <class name='NSSlider'>
@@ -22413,6 +22419,15 @@
     </method>
   </class>
   <class name='NSView'>
+    <method selector='sortSubviewsUsingFunction:context:'>
+	    <arg index='0' type='^?' function_pointer='true' function_pointer_retained='false'>
+		    <retval type='i'/>
+		    <arg type='@'/>
+		    <arg type='@'/>
+		    <arg type='@'/>
+	    </arg>
+	    <arg index='1' type='@' />
+    </method>
     <method selector='acceptsFirstMouse:'>
       <retval type='B' />
       <arg index='0' type='@' />
@@ -22721,8 +22736,8 @@
     </method>
     <method selector='getRectsExposedDuringLiveResize:count:'>
       <retval type='v' />
-      <arg index='0' type='[4{_NSRect={_NSPoint=ff}{_NSSize=ff}}]' type64='[4{CGRect={CGPoint=dd}{CGSize=dd}}]' />
-      <arg index='1' type='^i' type64='^q' />
+      <arg index='0' type='^{_NSRect={_NSPoint=ff}{_NSSize=ff}}' type64='^{CGRect={CGPoint=dd}{CGSize=dd}}' type_modifier='o' c_array_of_fixed_length='4' />
+      <arg index='1' type='^i' type64='^q' type_modifier='o' />
     </method>
     <method selector='heightAdjustLimit'>
       <retval type='f' type64='d' />
@@ -23279,7 +23294,7 @@
     </method>
   </class>
   <class name='NSWindow'>
-    <method selector=''>
+    <method selector='canBeVisibleOnAllSpaces'>
       <retval type='B' />
     </method>
     <method selector='acceptsMouseMovedEvents'>
@@ -24183,6 +24198,7 @@
     </method>
   </class>
   <class name='NSWindowController'>
+   
     <method selector='close'>
       <retval type='v' />
     </method>

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Lib/AppKit/__init__.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Lib/AppKit/__init__.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Lib/AppKit/__init__.py	Sun Mar 22 09:31:31 2009
@@ -32,3 +32,16 @@
 from AppKit._nsbitmap import *
 #from AppKit._nsopengl import *
 from AppKit._nswindow import *
+
+# Fix types for a number of character constants
+NSEnterCharacter = unichr(NSEnterCharacter)
+NSBackspaceCharacter = unichr(NSBackspaceCharacter)
+NSTabCharacter = unichr(NSTabCharacter)
+NSNewlineCharacter = unichr(NSNewlineCharacter)
+NSFormFeedCharacter = unichr(NSFormFeedCharacter)
+NSCarriageReturnCharacter = unichr(NSCarriageReturnCharacter)
+NSBackTabCharacter = unichr(NSBackTabCharacter)
+NSDeleteCharacter = unichr(NSDeleteCharacter)
+NSLineSeparatorCharacter = unichr(NSLineSeparatorCharacter)
+NSParagraphSeparatorCharacter = unichr(NSParagraphSeparatorCharacter)
+

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Modules/_AppKit_nsview.m
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Modules/_AppKit_nsview.m	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Modules/_AppKit_nsview.m	Sun Mar 22 09:31:31 2009
@@ -3,113 +3,30 @@
 #include "pyobjc-api.h"
 
 
-static int
-SortHelperFunc(id arg1, id arg2, void* opaque)
-{
-	PyObjC_BEGIN_WITH_GIL
-		PyObject* func = PyTuple_GetItem((PyObject*)opaque, 0);
-		PyObject* context = PyTuple_GetItem((PyObject*)opaque, 1);
-		PyObject* a1;
-		PyObject* a2;
-		PyObject* r;
-		int res;
-
-		if (func == NULL || context == NULL) {
-			PyObjC_GIL_FORWARD_EXC();
-		}
-	
-		a1 = PyObjC_IdToPython(arg1);
-		if (a1 == NULL) {
-			PyObjC_GIL_FORWARD_EXC();
-		}
-
-		a2 = PyObjC_IdToPython(arg2);
-		if (a2 == NULL) {
-			Py_DECREF(a1);
-			PyObjC_GIL_FORWARD_EXC();
-		}
-
-		r = PyObject_CallFunction(func, "OOO", a1, a2, context);
-		Py_DECREF(a1);
-		Py_DECREF(a2);
-		if (r == NULL) {
-			PyObjC_GIL_FORWARD_EXC();
-		}
-
-		if (PyObjC_PythonToObjC(@encode(int), r, &res) < 0) {
-			PyObjC_GIL_FORWARD_EXC();
-		}
-		Py_DECREF(r);
-
-		PyObjC_GIL_RETURN(res);
-
-	PyObjC_END_WITH_GIL
-
-}
-
-
 static PyObject* 
-call_NSView_sortSubviewsUsingFunction_context_(
+call_NSView_getRectsBeingDrawn_count_(
 	PyObject* method, PyObject* self, PyObject* arguments)
 {
 	PyObject* result;
 	struct objc_super super;
-	PyObject* sortFunc;
-	PyObject* context;
-	PyObject* realContext;
-	id  res;
+	PyObject* v;
+	NSRect* rects;
+	PyObject* arg1, *arg2;
+	int count;
 
-	if  (!PyArg_ParseTuple(arguments, "OO", &sortFunc, &context)) {
+	if  (!PyArg_ParseTuple(arguments, "OO", &arg1, &arg2)) {
 		return NULL;
 	}
 
-	realContext = PyTuple_New(2);
-	if (realContext == NULL) {
+	if (arg1 != Py_None) {
+		PyErr_SetString(PyExc_ValueError, "buffer must be None");
 		return NULL;
 	}
-	PyTuple_SET_ITEM(realContext, 0, sortFunc);
-	Py_INCREF(sortFunc);
-	PyTuple_SET_ITEM(realContext, 1, context);
-	Py_INCREF(context);
-
-	PyObjC_DURING
-		PyObjC_InitSuper(&super, 
-			PyObjCSelector_GetClass(method),
-			PyObjCObject_GetObject(self));
-
-			
-		res = objc_msgSendSuper(&super,
-				@selector(sortSubviewsUsingFunction:context:),
-				 SortHelperFunc, realContext);
-	PyObjC_HANDLER
-		PyObjCErr_FromObjC(localException);
-		res = nil;
-	PyObjC_ENDHANDLER
-
-	Py_DECREF(realContext);
-
-	if (res == nil && PyErr_Occurred()) {
+	if (arg2 != Py_None) {
+		PyErr_SetString(PyExc_ValueError, "count must be None");
 		return NULL;
 	}
-	
-	result = PyObjC_IdToPython(res);
 
-	return result;
-}
-
-static PyObject* 
-call_NSView_getRectsBeingDrawn_count_(
-	PyObject* method, PyObject* self, PyObject* arguments)
-{
-	PyObject* result;
-	struct objc_super super;
-	PyObject* v;
-	NSRect* rects;
-	int count;
-
-	if  (!PyArg_ParseTuple(arguments, "")) {
-		return NULL;
-	}
 
 	PyObjC_DURING
 		PyObjC_InitSuper(&super, 
@@ -153,15 +70,6 @@
 
 	if (PyObjC_RegisterMethodMapping(
 		classNSView,
-		@selector(sortSubviewsUsingFunction:context:),
-		call_NSView_sortSubviewsUsingFunction_context_,
-		PyObjCUnsupportedMethod_IMP) < 0) {
-
-		return;
-	}
-
-	if (PyObjC_RegisterMethodMapping(
-		classNSView,
 		@selector(getRectsBeingDrawn:count:),
 		call_NSView_getRectsBeingDrawn_count_,
 		PyObjCUnsupportedMethod_IMP) < 0) {

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsbezierpath.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsbezierpath.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsbezierpath.py	Sun Mar 22 09:31:31 2009
@@ -134,8 +134,6 @@
         self.failUnlessResultIsBOOL(NSBezierPath.cachesBezierPath)
         self.failUnlessArgIsBOOL(NSBezierPath.setCachesBezierPath_, 0)
 
-        self.fail("+ (void)drawPackedGlyphs:(const char *)packedGlyphs atPoint:(NSPoint)point;")
-        self.fail("- (void)appendBezierPathWithPackedGlyphs:(const char *)packedGlyphs;")
 
 if __name__ == '__main__':
     main( )

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nscolorspace.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nscolorspace.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nscolorspace.py	Sun Mar 22 09:31:31 2009
@@ -13,9 +13,6 @@
         self.failUnlessEqual(NSIndexedColorSpaceModel, 5)
         self.failUnlessEqual(NSPatternColorSpaceModel, 6)
 
-    def testMethods(self):
-        self.fail("- (id)initWithColorSyncProfile:(void * /* CMProfileRef */)prof;")
-        self.fail("- (void * /* CMProfileRef */)colorSyncProfile;")
 
 
 if __name__ == "__main__":

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsimage.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsimage.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsimage.py	Sun Mar 22 09:31:31 2009
@@ -105,8 +105,6 @@
         self.failUnlessResultIsBOOL(NSImage.isTemplate)
         self.failUnlessArgIsBOOL(NSImage.setTemplate_, 0)
 
-        #self.fail("- (id)initWithIconRef:(IconRef)iconRef;")
-
     def testProtocols(self):
         self.failUnlessArgHasType(TestNSImageHelper.image_didLoadPartOfRepresentation_withValidRows_, 2, objc._C_NSInteger)
         self.failUnlessArgHasType(TestNSImageHelper.image_didLoadRepresentation_withStatus_, 2, objc._C_NSUInteger)

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmenu.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmenu.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmenu.py	Sun Mar 22 09:31:31 2009
@@ -2,10 +2,37 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSMenuHelper (NSObject):
+    def validateMenuItem_(self, item): return 1
+    def numberOfItemsInMenu_(self, menu): return 1
+    def menu_updateItem_atIndex_shouldCancel_(self, m, i, d, s): return 1
+    def menuHasKeyEquivalent_forEvent_target_action_(self, m, e, t, a): return 1
+
+
 class TestNSMenu (TestCase):
+    def testProtocol(self):
+        self.failUnlessResultIsBOOL(TestNSMenuHelper.validateMenuItem_)
+        self.failUnlessResultHasType(TestNSMenuHelper.numberOfItemsInMenu_, objc._C_NSInteger)
+        self.failUnlessResultIsBOOL(TestNSMenuHelper.menu_updateItem_atIndex_shouldCancel_)
+        self.failUnlessArgHasType(TestNSMenuHelper.menu_updateItem_atIndex_shouldCancel_, 2, objc._C_NSInteger)
+        self.failUnlessArgIsBOOL(TestNSMenuHelper.menu_updateItem_atIndex_shouldCancel_, 3)
+        self.failUnlessResultIsBOOL(TestNSMenuHelper.menuHasKeyEquivalent_forEvent_target_action_)
+        self.failUnlessArgHasType(TestNSMenuHelper.menuHasKeyEquivalent_forEvent_target_action_, 2, 'o^@')
+        self.failUnlessArgHasType(TestNSMenuHelper.menuHasKeyEquivalent_forEvent_target_action_, 3, 'o^:')
+
     def testMethods(self):
-        self.fail("- (NSMenuItem *)insertItemWithTitle:(NSString *)aString action:(SEL)aSelector keyEquivalent:(NSString *)charCode atIndex:(NSInteger)index;")
-        self.fail("- (NSMenuItem *)addItemWithTitle:(NSString *)aString action:(SEL)aSelector keyEquivalent:(NSString *)charCode;")
+        self.failUnlessResultIsBOOL(NSMenu.menuBarVisible)
+        self.failUnlessArgIsBOOL(NSMenu.setMenuBarVisible_, 0)
+        self.failUnlessResultIsBOOL(NSMenu.autoenablesItems)
+        self.failUnlessArgIsBOOL(NSMenu.setAutoenablesItems_, 0)
+        self.failUnlessResultIsBOOL(NSMenu.performKeyEquivalent_)
+        self.failUnlessResultIsBOOL(NSMenu.autoenablesItems)
+        self.failUnlessArgIsBOOL(NSMenu.setMenuChangedMessagesEnabled_, 0)
+        self.failUnlessResultIsBOOL(NSMenu.isTornOff)
+        self.failUnlessResultIsBOOL(NSMenu.isAttached)
+        self.failUnlessResultIsBOOL(NSMenu.showsStateColumn)
+        self.failUnlessArgIsBOOL(NSMenu.setShowsStateColumn_, 0)
+
 
     def testConstants(self):
         self.failUnlessIsInstance(NSMenuWillSendActionNotification, unicode)

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmenuitem.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmenuitem.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmenuitem.py	Sun Mar 22 09:31:31 2009
@@ -4,8 +4,21 @@
 
 class TestNSMenuItem (TestCase):
     def testMethods(self):
-        self.fail("- (id)initWithTitle:(NSString *)aString action:(SEL)aSelector keyEquivalent:(NSString *)charCode;")
+        self.failUnlessResultIsBOOL(NSMenuItem.usesUserKeyEquivalents)
+        self.failUnlessArgIsBOOL(NSMenuItem.setUsesUserKeyEquivalents_, 0)
+        self.failUnlessResultIsBOOL(NSMenuItem.hasSubmenu)
+        self.failUnlessResultIsBOOL(NSMenuItem.isSeparatorItem)
+        self.failUnlessResultIsBOOL(NSMenuItem.isEnabled)
+        self.failUnlessArgIsBOOL(NSMenuItem.setEnabled_, 0)
+        self.failUnlessResultIsBOOL(NSMenuItem.isAlternate)
+        self.failUnlessArgIsBOOL(NSMenuItem.setAlternate_, 0)
 
+    @min_os_level('10.5')
+    def testMethods10_5(self):
+        self.failUnlessResultIsBOOL(NSMenuItem.isHighlighted)
+        self.failUnlessResultIsBOOL(NSMenuItem.isHidden)
+        self.failUnlessArgIsBOOL(NSMenuItem.setHidden_, 0)
+        self.failUnlessResultIsBOOL(NSMenuItem.isHiddenOrHasHiddenAncestor)
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmovie.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmovie.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmovie.py	Sun Mar 22 09:31:31 2009
@@ -6,8 +6,8 @@
 
     @onlyOn32Bit
     def testMethods(self):
-        self.fail("- (id) initWithMovie:(void* /*Movie*/)movie; ")
-        self.fail("- (void*/*Movie*/)QTMovie;")
+        self.failUnlessArgIsBOOL(NSMovie.initWithURL_byReference_, 1)
+        self.failUnlessResultIsBOOL(NSMovie.canInitWithPasteboard_)
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmovieview.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmovieview.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsmovieview.py	Sun Mar 22 09:31:31 2009
@@ -11,7 +11,17 @@
 
     @onlyOn32Bit
     def testMethods(self):
-        self.fail("- (void* /*MovieController*/) movieController;")
+        self.failUnlessResultIsBOOL(NSMovieView.isPlaying)
+        self.failUnlessResultIsBOOL(NSMovieView.isMuted)
+        self.failUnlessArgIsBOOL(NSMovieView.setMuted_, 0)
+        self.failUnlessResultIsBOOL(NSMovieView.playsSelectionOnly)
+        self.failUnlessArgIsBOOL(NSMovieView.setPlaysSelectionOnly_, 0)
+        self.failUnlessResultIsBOOL(NSMovieView.playsEveryFrame)
+        self.failUnlessResultIsBOOL(NSMovieView.isControllerVisible)
+        self.failUnlessArgIsBOOL(NSMovieView.showController_adjustingSize_, 0)
+        self.failUnlessArgIsBOOL(NSMovieView.showController_adjustingSize_, 1)
+        self.failUnlessArgIsBOOL(NSMovieView.setEditable_, 0)
+        self.failUnlessResultIsBOOL(NSMovieView.isEditable)
 
 
 

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsnib.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsnib.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsnib.py	Sun Mar 22 09:31:31 2009
@@ -8,8 +8,8 @@
         self.failUnlessIsInstance(NSNibTopLevelObjects, unicode)
 
     def testMethods(self):
-        m = NSNib.instantiateNibWithOwner_topLevelObjects_.__metadata__()
-        self.failUnlessEqual(m['arguments'][3]['type'], 'o^@')
+        self.failUnlessResultIsBOOL(NSNib.instantiateNibWithOwner_topLevelObjects_)
+        self.failUnlessArgIsOut(NSNib.instantiateNibWithOwner_topLevelObjects_, 1)
 
 
 if __name__ == "__main__":

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsopengl.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsopengl.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsopengl.py	Sun Mar 22 09:31:31 2009
@@ -63,14 +63,30 @@
         self.failUnlessIsInstance(major, (int, long))
         self.failUnlessIsInstance(minor, (int, long))
 
-        self.fail("NSOpenGLSetOption")
-        self.fail("NSOpenGLGetOption")
+        self.failUnlessArgIsOut(NSOpenGLGetOption, 1)
+        v = NSOpenGLGetOption(NSOpenGLGOFormatCacheSize, None)
+        self.failUnlessIsInstance(v, (int, long))
+
+        NSOpenGLSetOption(NSOpenGLGOFormatCacheSize, v)
 
     def testMethods(self):
-        self.fail("- (id)initWithAttributes:(const NSOpenGLPixelFormatAttribute *)attribs;")
+        self.failUnlessArgIsNullTerminated(NSOpenGLPixelFormat.initWithAttributes_, 0)
+        self.failUnlessArgIsIn(NSOpenGLPixelFormat.initWithAttributes_, 0)
+
+        o = NSOpenGLPixelFormat.alloc().initWithAttributes_([NSOpenGLPFANoRecovery, NSOpenGLPFAAuxBuffers, 2])
+        self.failUnlessIsInstance(o, NSOpenGLPixelFormat)
+
+        #FIXME: I'm not entirely sure this test is correct.
+        self.failUnlessArgIsOut(NSOpenGLPixelFormat.getValues_forAttribute_forVirtualScreen_, 0)
+        v = o.getValues_forAttribute_forVirtualScreen_(
+                None, NSOpenGLPFANoRecovery, 0)
+        self.failUnlessIsInstance(v, (int, long))
 
-        self.fail("- (void *)CGLPixelFormatObj;")
+        self.failUnlessResultHasType(NSOpenGLPixelFormat.CGLPixelFormatObj, 
+                '^{_CGLPixelFormatObject}')
 
+        self.failUnlessResultHasType(NSOpenGLContext.CGLContextObj, 
+                '^{_CGLContextObj}')
 
 
 if __name__ == "__main__":

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsopenpanel.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsopenpanel.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsopenpanel.py	Sun Mar 22 09:31:31 2009
@@ -1,14 +1,13 @@
+from AppKit import *
 from PyObjCTools.TestSupport import *
-import objc
 
 class TestOpenPanel (TestCase):
     def dont_testOpenPanelSignature(self):
         """
         This test failed sometime after the 1.0b1 release (on Panther).
         """
-        import AppKit
 
-        o = AppKit.NSOpenPanel.openPanel()
+        o = NSOpenPanel.openPanel()
         sig = o.beginSheetForDirectory_file_types_modalForWindow_modalDelegate_didEndSelector_contextInfo_.signature
         dclass= o.beginSheetForDirectory_file_types_modalForWindow_modalDelegate_didEndSelector_contextInfo_.definingClass
         sig = ''.join(objc.splitSignature(sig))
@@ -17,9 +16,22 @@
             'v@:@@@@@:i')
 
     def testMethods(self):
-        self.fail("- (void)beginSheetForDirectory:(NSString *)path file:(NSString *)name types:(NSArray *)fileTypes modalForWindow:(NSWindow *)docWindow modalDelegate:(id)delegate didEndSelector:(SEL)didEndSelector contextInfo:(void *)contextInfo;")
+        self.failUnlessResultIsBOOL(NSOpenPanel.resolvesAliases)
+        self.failUnlessArgIsBOOL(NSOpenPanel.setResolvesAliases_, 0)
+        self.failUnlessResultIsBOOL(NSOpenPanel.canChooseDirectories)
+        self.failUnlessArgIsBOOL(NSOpenPanel.setCanChooseDirectories_, 0)
+        self.failUnlessResultIsBOOL(NSOpenPanel.allowsMultipleSelection)
+        self.failUnlessArgIsBOOL(NSOpenPanel.setAllowsMultipleSelection_, 0)
+        self.failUnlessResultIsBOOL(NSOpenPanel.canChooseFiles)
+        self.failUnlessArgIsBOOL(NSOpenPanel.setCanChooseFiles_, 0)
+
+        panel = NSOpenPanel.openPanel()
+        self.failUnlessArgIsSEL(NSOpenPanel.beginSheetForDirectory_file_types_modalForWindow_modalDelegate_didEndSelector_contextInfo_, 5, 'v@:@i^v')
+        self.failUnlessArgHasType(NSOpenPanel.beginSheetForDirectory_file_types_modalForWindow_modalDelegate_didEndSelector_contextInfo_, 6, '^v')
+
+        self.failUnlessArgIsSEL(NSOpenPanel.beginForDirectory_file_types_modelessDelegate_didEndSelector_contextInfo_, 4, 'v@:@i^v')
+        self.failUnlessArgHasType(NSOpenPanel.beginForDirectory_file_types_modelessDelegate_didEndSelector_contextInfo_, 5, '^v')
 
-        self.fail("- (void)beginForDirectory:(NSString *)path file:(NSString *)name types:(NSArray *)fileTypes modelessDelegate:(id)delegate didEndSelector:(SEL)didEndSelector contextInfo:(void *)contextInfo;")
 
 
 if __name__ == "__main__":

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsoutlineview.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsoutlineview.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsoutlineview.py	Sun Mar 22 09:31:31 2009
@@ -2,6 +2,41 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSOutlineViewHelper (NSObject):
+    def outlineView_child_ofItem_(self, ov, nr, item): return 1
+    def outlineView_isItemExpandable_(self, ov, item): return 1
+    def outlineView_numberOfChildrenOfItem_(self, ov, item): return 1
+    def outlineView_objectValueForTableColumn_byItem_(self, ov, tc, item): return 1
+    def outlineView_setObjectValue_forTableColumn_byItem_(self, ov, value, tc, item): pass
+    def outlineView_itemForPersistentObject_(self, ov, po): return 1
+    def outlineView_persistentObjectForItem_(self, ov, item): return 1
+    def outlineView_sortDescriptorsDidChange_(self, ov, old): pass
+    def outlineView_writeItems_toPasteboard_(self, ov, items, pb): return 1
+    def outlineView_validateDrop_proposedItem_proposedChildIndex_(self, ov, dr, item, idx): return 1
+    def outlineView_acceptDrop_item_childIndex_(self, ov, dr, it, idx): return 1
+    def outlineView_namesOfPromisedFilesDroppedAtDestination_forDraggedItems_(self, ov, dr, it): return 1
+
+    def outlineView_willDisplayCell_forTableColumn_item_(self, ov, c, tc, i): pass
+    def outlineView_shouldEditTableColumn_item_(self, ov, tc, i): return 1
+    def selectionShouldChangeInOutlineView_(self, ov): return 1
+    def outlineView_selectionIndexesForProposedSelection_(self, ov, idx): return 1
+    def outlineView_shouldSelectItem_(self, ov, tc): return 1
+    def outlineView_shouldSelectTableColumn_(self, ov, tc): return 1
+    def outlineView_toolTipForCell_rect_tableColumn_item_mouseLocation_(self, ov, c, r, tc, it, ml): return 1
+    def outlineView_heightOfRowByItem_(self, ov, item):  return 1
+    def outlineView_typeSelectStringForTableColumn_item_(self, ov, tc, item): return 1
+    def outlineView_nextTypeSelectMatchFromItem_toItem_forString_(self, ov, si, ei, ss): return 1
+    def outlineView_shouldTypeSelectForEvent_withCurrentSearchString_(self, ov, ev, ss): return 1
+    def outlineView_shouldShowCellExpansionForTableColumn_item_(self, ov, tc, it): return 1
+    def outlineView_shouldTrackCell_forTableColumn_item_(self, ov, c, tc, it): return 1
+    def outlineView_dataCellForTableColumn_item_(self, ov, tc, it): return 1
+    def outlineView_isGroupItem_(self, ov, item): return 1
+    def outlineView_shouldExpandItem_(self, ov, it): return 1
+    def outlineView_shouldCollapseItem_(self, ov, it): return 1
+    def outlineView_willDisplayOutlineCell_forTableColumn_item_(self, ov, c, tc, i): pass
+
+
+
 class TestNSOutlineView (TestCase):
     def testConstants(self):
         self.failUnlessEqual(NSOutlineViewDropOnItemIndex, -1)
@@ -17,7 +52,43 @@
 
 
     def testMethods(self):
-        self.fail("- (NSString *)outlineView:(NSOutlineView *)outlineView toolTipForCell:(NSCell *)cell rect:(NSRectPointer)rect tableColumn:(NSTableColumn *)tableColumn item:(id)item mouseLocation:(NSPoint)mouseLocation;")
+        self.failUnlessResultIsBOOL(NSOutlineView.isExpandable_)
+        self.failUnlessArgIsBOOL(NSOutlineView.expandItem_expandChildren_, 1)
+        self.failUnlessArgIsBOOL(NSOutlineView.collapseItem_collapseChildren_, 1)
+        self.failUnlessArgIsBOOL(NSOutlineView.reloadItem_reloadChildren_, 1)
+        self.failUnlessResultIsBOOL(NSOutlineView.isItemExpanded_)
+        self.failUnlessResultIsBOOL(NSOutlineView.indentationMarkerFollowsCell)
+        self.failUnlessArgIsBOOL(NSOutlineView.setIndentationMarkerFollowsCell_, 0)
+        self.failUnlessResultIsBOOL(NSOutlineView.autoresizesOutlineColumn)
+        self.failUnlessArgIsBOOL(NSOutlineView.setAutoresizesOutlineColumn_, 0)
+        self.failUnlessResultIsBOOL(NSOutlineView.shouldCollapseAutoExpandedItemsForDeposited_)
+        self.failUnlessArgIsBOOL(NSOutlineView.shouldCollapseAutoExpandedItemsForDeposited_, 0)
+        self.failUnlessResultIsBOOL(NSOutlineView.autosaveExpandedItems)
+        self.failUnlessArgIsBOOL(NSOutlineView.setAutosaveExpandedItems_, 0)
+
+    def testProtocols(self):
+        self.failUnlessArgHasType(TestNSOutlineViewHelper.outlineView_child_ofItem_, 1, objc._C_NSInteger)
+        self.failUnlessResultIsBOOL(TestNSOutlineViewHelper.outlineView_isItemExpandable_)
+        self.failUnlessResultHasType(TestNSOutlineViewHelper.outlineView_numberOfChildrenOfItem_, objc._C_NSInteger)
+        self.failUnlessResultIsBOOL(TestNSOutlineViewHelper.outlineView_writeItems_toPasteboard_)
+        self.failUnlessResultHasType(TestNSOutlineViewHelper.outlineView_validateDrop_proposedItem_proposedChildIndex_, objc._C_NSUInteger)
+        self.failUnlessArgHasType(TestNSOutlineViewHelper.outlineView_validateDrop_proposedItem_proposedChildIndex_, 3, objc._C_NSInteger)
+        self.failUnlessResultIsBOOL(TestNSOutlineViewHelper.outlineView_shouldEditTableColumn_item_)
+        self.failUnlessResultIsBOOL(TestNSOutlineViewHelper.selectionShouldChangeInOutlineView_)
+        self.failUnlessResultIsBOOL(TestNSOutlineViewHelper.outlineView_shouldSelectItem_)
+        self.failUnlessResultIsBOOL(TestNSOutlineViewHelper.outlineView_shouldSelectTableColumn_)
+        self.failUnlessArgHasType(TestNSOutlineViewHelper.outlineView_toolTipForCell_rect_tableColumn_item_mouseLocation_, 2, 'N^' + NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSOutlineViewHelper.outlineView_toolTipForCell_rect_tableColumn_item_mouseLocation_, 5, NSPoint.__typestr__)
+        self.failUnlessResultHasType(TestNSOutlineViewHelper.outlineView_heightOfRowByItem_, objc._C_CGFloat)
+        self.failUnlessResultIsBOOL(TestNSOutlineViewHelper.outlineView_shouldExpandItem_)
+        self.failUnlessResultIsBOOL(TestNSOutlineViewHelper.outlineView_shouldCollapseItem_)
+
+    @min_os_level('10.5')
+    def testProtocols10_5(self):
+        self.failUnlessResultIsBOOL(TestNSOutlineViewHelper.outlineView_shouldTypeSelectForEvent_withCurrentSearchString_)
+        self.failUnlessResultIsBOOL(TestNSOutlineViewHelper.outlineView_shouldShowCellExpansionForTableColumn_item_)
+        self.failUnlessResultIsBOOL(TestNSOutlineViewHelper.outlineView_shouldTrackCell_forTableColumn_item_)
+        self.failUnlessResultIsBOOL(TestNSOutlineViewHelper.outlineView_isGroupItem_)
 
 
 if __name__ == "__main__":

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspagelayout.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspagelayout.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspagelayout.py	Sun Mar 22 09:31:31 2009
@@ -4,7 +4,8 @@
 
 class TestNSPageLayout (TestCase):
     def testMethods(self):
-        self.fail("- (void)beginSheetWithPrintInfo:(NSPrintInfo *)printInfo modalForWindow:(NSWindow *)docWindow delegate:(id)delegate didEndSelector:(SEL)didEndSelector contextInfo:(void *)contextInfo;")
+        self.failUnlessArgIsSEL(NSPageLayout.beginSheetWithPrintInfo_modalForWindow_delegate_didEndSelector_contextInfo_, 3, 'v@:@'+objc._C_NSInteger+'^v')
+        self.failUnlessArgHasType(NSPageLayout.beginSheetWithPrintInfo_modalForWindow_delegate_didEndSelector_contextInfo_, 4, '^v')
 
 
 if __name__ == "__main__":

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspanel.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspanel.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspanel.py	Sun Mar 22 09:31:31 2009
@@ -4,20 +4,34 @@
 
 class TestNSPanel (TestCase):
 
-    def testMethods(self):
-        self.fail("APPKIT_EXTERN NSInteger NSRunAlertPanel(NSString *title, NSString *msgFormat, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, ...);")
-        self.fail("APPKIT_EXTERN NSInteger NSRunInformationalAlertPanel(NSString *title, NSString *msgFormat, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, ...);")
-        self.fail("APPKIT_EXTERN NSInteger NSRunCriticalAlertPanel(NSString *title, NSString *msgFormat, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, ...);")
-        self.fail("APPKIT_EXTERN NSInteger NSRunAlertPanelRelativeToWindow(NSString *title, NSString *msgFormat, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, NSWindow *docWindow, ...);")
-        self.fail("APPKIT_EXTERN NSInteger NSRunInformationalAlertPanelRelativeToWindow(NSString *title, NSString *msgFormat, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, NSWindow *docWindow, ...);")
-        self.fail("APPKIT_EXTERN NSInteger NSRunCriticalAlertPanelRelativeToWindow(NSString *title, NSString *msgFormat, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, NSWindow *docWindow, ...);")
-        self.fail("APPKIT_EXTERN void NSBeginAlertSheet(NSString *title, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, NSWindow *docWindow, id modalDelegate, SEL didEndSelector, SEL didDismissSelector, void *contextInfo, NSString *msgFormat, ...);")
-        self.fail("APPKIT_EXTERN void NSBeginInformationalAlertSheet(NSString *title, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, NSWindow *docWindow, id modalDelegate, SEL didEndSelector, SEL didDismissSelector, void *contextInfo, NSString *msgFormat, ...);")
-        self.fail("APPKIT_EXTERN void NSBeginCriticalAlertSheet(NSString *title, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, NSWindow *docWindow, id modalDelegate, SEL didEndSelector, SEL didDismissSelector, void *contextInfo, NSString *msgFormat, ...);")
-        self.fail("APPKIT_EXTERN id NSGetAlertPanel(NSString *title, NSString *msgFormat, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, ...);")
-        self.fail("APPKIT_EXTERN id NSGetInformationalAlertPanel(NSString *title, NSString *msgFormat, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, ...);")
-        self.fail("APPKIT_EXTERN id NSGetCriticalAlertPanel(NSString *title, NSString *msgFormat, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, ...);")
-        self.fail("APPKIT_EXTERN void NSReleaseAlertPanel(id panel);")
+    def testFunctions(self):
+        self.failUnlessArgIsPrintf(NSRunAlertPanel, 1)
+        self.failUnlessArgIsPrintf(NSRunInformationalAlertPanel, 1)
+        self.failUnlessArgIsPrintf(NSRunCriticalAlertPanel, 1)
+        self.failUnlessArgIsPrintf(NSRunAlertPanelRelativeToWindow, 1)
+        self.failUnlessArgIsPrintf(NSRunInformationalAlertPanelRelativeToWindow, 1)
+        self.failUnlessArgIsPrintf(NSRunCriticalAlertPanelRelativeToWindow, 1)
+        self.failUnlessArgIsPrintf(NSBeginAlertSheet, 9)
+        self.failUnlessArgIsSEL(NSBeginAlertSheet, 6, 'v@:@'+objc._C_NSInteger+'^v')
+        self.failUnlessArgIsSEL(NSBeginAlertSheet, 7, 'v@:@'+objc._C_NSInteger+'^v')
+        self.failUnlessArgHasType(NSBeginAlertSheet, 8, '^v')
+        self.failUnlessArgIsPrintf(NSBeginInformationalAlertSheet, 9)
+        self.failUnlessArgIsSEL(NSBeginInformationalAlertSheet, 6, 'v@:@'+objc._C_NSInteger+'^v')
+        self.failUnlessArgIsSEL(NSBeginInformationalAlertSheet, 7, 'v@:@'+objc._C_NSInteger+'^v')
+        self.failUnlessArgHasType(NSBeginInformationalAlertSheet, 8, '^v')
+        self.failUnlessArgIsPrintf(NSBeginCriticalAlertSheet, 9)
+        self.failUnlessArgIsSEL(NSBeginCriticalAlertSheet, 6, 'v@:@'+objc._C_NSInteger+'^v')
+        self.failUnlessArgIsSEL(NSBeginCriticalAlertSheet, 7, 'v@:@'+objc._C_NSInteger+'^v')
+        self.failUnlessArgHasType(NSBeginCriticalAlertSheet, 8, '^v')
+        self.failUnlessArgIsPrintf(NSGetAlertPanel, 1)
+        self.failUnlessArgIsPrintf(NSGetInformationalAlertPanel, 1)
+        self.failUnlessArgIsPrintf(NSGetCriticalAlertPanel, 1)
+
+        panel = NSGetInformationalAlertPanel("title", "fmt %d", "ok", "cancel", "help", 10)
+        self.failUnlessIsInstance(panel, NSPanel)
+
+        NSReleaseAlertPanel(panel)
+
 
     def testConstants(self):
         self.failUnlessEqual(NSAlertDefaultReturn, 1)
@@ -34,5 +48,13 @@
     def testConstants10_5(self):
         self.failUnlessEqual(NSHUDWindowMask, 1 << 13)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSPanel.isFloatingPanel)
+        self.failUnlessArgIsBOOL(NSPanel.setFloatingPanel_, 0)
+        self.failUnlessResultIsBOOL(NSPanel.becomesKeyOnlyIfNeeded)
+        self.failUnlessArgIsBOOL(NSPanel.setBecomesKeyOnlyIfNeeded_, 0)
+        self.failUnlessResultIsBOOL(NSPanel.worksWhenModal)
+        self.failUnlessArgIsBOOL(NSPanel.setWorksWhenModal_, 0)
+
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspasteboard.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspasteboard.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspasteboard.py	Sun Mar 22 09:31:31 2009
@@ -22,13 +22,16 @@
         self.failUnlessIsInstance(NSVCardPboardType, unicode)
         self.failUnlessIsInstance(NSFilesPromisePboardType, unicode)
         self.failUnlessIsInstance(NSInkTextPboardType, unicode)
-        self.failUnlessIsInstance(NSMultipleTextSelectionPboardType, unicode)
         self.failUnlessIsInstance(NSGeneralPboard, unicode)
         self.failUnlessIsInstance(NSFontPboard, unicode)
         self.failUnlessIsInstance(NSRulerPboard, unicode)
         self.failUnlessIsInstance(NSFindPboard, unicode)
         self.failUnlessIsInstance(NSDragPboard, unicode)
 
+    @min_os_level('10.5')
+    def testConstants10_5(self):
+        self.failUnlessIsInstance(NSMultipleTextSelectionPboardType, unicode)
+
     def testFunctions(self):
         tp = v = NSCreateFilenamePboardType("test/jpeg")
         self.failUnlessIsInstance(v, unicode)
@@ -41,6 +44,13 @@
 
         v = NSGetFileTypes([tp])
         self.failUnlessIsInstance(v, NSArray)
+    
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSPasteboard.setData_forType_)
+        self.failUnlessResultIsBOOL(NSPasteboard.setPropertyList_forType_)
+        self.failUnlessResultIsBOOL(NSPasteboard.setString_forType_)
+        self.failUnlessResultIsBOOL(NSPasteboard.writeFileContents_)
+        self.failUnlessResultIsBOOL(NSPasteboard.writeFileWrapper_)
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspathcell.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspathcell.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspathcell.py	Sun Mar 22 09:31:31 2009
@@ -1,4 +1,3 @@
-
 from PyObjCTools.TestSupport import *
 from AppKit import *
 

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspathcontrol.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspathcontrol.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspathcontrol.py	Sun Mar 22 09:31:31 2009
@@ -1,7 +1,12 @@
-
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSPathControlHelper (NSObject):
+    def pathControl_shouldDragPathComponentCell_withPasteboard_(self, pc, c, pb): return 1
+    def pathControl_validateDrop_(self, pc, dr): return 1
+    def pathControl_acceptDrop_(self, pc, dr): return 1
+
+
 class TestNSPathControl (TestCase):
 
     @min_os_level("10.5")
@@ -9,6 +14,14 @@
         m = NSPathControl.setDoubleAction_.__metadata__()
         self.failUnlessEqual(m['arguments'][2]['sel_of_type'], 'v@:@')
 
+        self.failUnlessArgIsBOOL(NSPathControl.setDraggingSourceOperationMask_forLocal_, 1)
+
+    @min_os_level('10.5')
+    def testProtocols(self):
+        self.failUnlessResultIsBOOL(TestNSPathControlHelper.pathControl_shouldDragPathComponentCell_withPasteboard_)
+        self.failUnlessResultHasType(TestNSPathControlHelper.pathControl_validateDrop_, objc._C_NSUInteger)
+        self.failUnlessResultIsBOOL(TestNSPathControlHelper.pathControl_acceptDrop_)
+
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspopupbutton.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspopupbutton.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspopupbutton.py	Sun Mar 22 09:31:31 2009
@@ -6,5 +6,12 @@
     def testConstants(self):
         self.failUnlessIsInstance(NSPopUpButtonWillPopUpNotification, unicode)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSPopUpButton.pullsDown)
+        self.failUnlessArgIsBOOL(NSPopUpButton.setPullsDown_, 0)
+        self.failUnlessResultIsBOOL(NSPopUpButton.autoenablesItems)
+        self.failUnlessArgIsBOOL(NSPopUpButton.setAutoenablesItems_, 0)
+        self.failUnlessResultIsBOOL(NSPopUpButton.selectItemWithTag_)
+
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspopupbuttoncell.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspopupbuttoncell.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nspopupbuttoncell.py	Sun Mar 22 09:31:31 2009
@@ -10,6 +10,18 @@
 
         self.failUnlessIsInstance(NSPopUpButtonCellWillPopUpNotification, unicode)
 
+    def testMethods(self):
+        self.failUnlessArgIsBOOL(NSPopUpButtonCell.initTextCell_pullsDown_, 1)
+        self.failUnlessResultIsBOOL(NSPopUpButtonCell.pullsDown)
+        self.failUnlessArgIsBOOL(NSPopUpButtonCell.setPullsDown_, 0)
+        self.failUnlessResultIsBOOL(NSPopUpButtonCell.autoenablesItems)
+        self.failUnlessArgIsBOOL(NSPopUpButtonCell.setAutoenablesItems_, 0)
+        self.failUnlessResultIsBOOL(NSPopUpButtonCell.usesItemFromMenu)
+        self.failUnlessArgIsBOOL(NSPopUpButtonCell.setUsesItemFromMenu_, 0)
+        self.failUnlessResultIsBOOL(NSPopUpButtonCell.altersStateOfSelectedItem)
+        self.failUnlessArgIsBOOL(NSPopUpButtonCell.setAltersStateOfSelectedItem_, 0)
+        self.failUnlessResultIsBOOL(NSPopUpButtonCell.selectItemWithTag_)
+
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprinter.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprinter.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprinter.py	Sun Mar 22 09:31:31 2009
@@ -8,6 +8,15 @@
         self.failUnlessEqual(NSPrinterTableNotFound, 1)
         self.failUnlessEqual(NSPrinterTableError, 2)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSPrinter.isKey_inTable_)
+        self.failUnlessResultIsBOOL(NSPrinter.booleanForKey_inTable_)
+        self.failUnlessResultIsBOOL(NSPrinter.acceptsBinary)
+        self.failUnlessResultIsBOOL(NSPrinter.isColor)
+        self.failUnlessResultIsBOOL(NSPrinter.isFontAvailable_)
+        self.failUnlessResultIsBOOL(NSPrinter.isOutputStackInReverseOrder)
+        self.failUnlessArgIsBOOL(NSPrinter.printerWithName_domain_includeUnavailable_, 2)
+
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprintinfo.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprintinfo.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprintinfo.py	Sun Mar 22 09:31:31 2009
@@ -62,9 +62,10 @@
 
 
     def testMethods(self):
-        self.fail("- (void *)PMPrintSession; // the result should be cast to PMPrintSession")
-        self.fail("- (void *)PMPageFormat; // the result should be cast to PMPageFormat")
-        self.fail("- (void *)PMPrintSettings; // the result should be cast to PMPrintSettings")
+        self.failUnlessResultIsBOOL(NSPrintInfo.isHorizontallyCentered)
+        self.failUnlessResultIsBOOL(NSPrintInfo.isVerticallyCentered)
+        self.failUnlessArgIsBOOL(NSPrintInfo.setHorizontallyCentered_, 0)
+        self.failUnlessArgIsBOOL(NSPrintInfo.setVerticallyCentered_, 0)
 
 
 if __name__ == "__main__":

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprintoperation.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprintoperation.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprintoperation.py	Sun Mar 22 09:31:31 2009
@@ -12,8 +12,21 @@
         self.failUnlessIsInstance(NSPrintOperationExistsException, unicode)
 
     def testMethods(self):
-        self.fail("- (void)runOperationModalForWindow:(NSWindow *)docWindow delegate:(id)delegate didRunSelector:(SEL)didRunSelector contextInfo:(void *)contextInfo;")
+        self.failUnlessResultIsBOOL(NSPrintOperation.isCopyingOperation)
+        self.failUnlessResultIsBOOL(NSPrintOperation.showsPrintPanel)
+        self.failUnlessArgIsBOOL(NSPrintOperation.setShowsPrintPanel_, 0)
+        self.failUnlessResultIsBOOL(NSPrintOperation.showsProgressPanel)
+        self.failUnlessArgIsBOOL(NSPrintOperation.setShowsProgressPanel_, 0)
+        self.failUnlessResultIsBOOL(NSPrintOperation.canSpawnSeparateThread)
+        self.failUnlessArgIsBOOL(NSPrintOperation.setCanSpawnSeparateThread_, 0)
 
+        self.failUnlessArgIsSEL(NSPrintOperation.runOperationModalForWindow_delegate_didRunSelector_contextInfo_, 2, 'v@:@' + objc._C_NSBOOL + '^v')
+        self.failUnlessArgHasType(NSPrintOperation.runOperationModalForWindow_delegate_didRunSelector_contextInfo_, 3, '^v')
+
+        self.failUnlessResultIsBOOL(NSPrintOperation.runOperation)
+        self.failUnlessResultIsBOOL(NSPrintOperation.deliverResult)
+        self.failUnlessResultIsBOOL(NSPrintOperation.showPanels)
+        self.failUnlessArgIsBOOL(NSPrintOperation.setShowPanels_, 0)
 
 
 if __name__ == "__main__":

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprintpanel.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprintpanel.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprintpanel.py	Sun Mar 22 09:31:31 2009
@@ -18,7 +18,8 @@
         self.failUnlessIsInstance(NSPrintPanelAccessorySummaryItemDescriptionKey, unicode)
 
     def testMethods(self):
-        self.fail("- (void)beginSheetWithPrintInfo:(NSPrintInfo *)printInfo modalForWindow:(NSWindow *)docWindow delegate:(id)delegate didEndSelector:(SEL)didEndSelector contextInfo:(void *)contextInfo;")
+        self.failUnlessArgIsSEL(NSPrintPanel.beginSheetWithPrintInfo_modalForWindow_delegate_didEndSelector_contextInfo_, 3, 'v@:@' + objc._C_NSInteger + '^v')
+        self.failUnlessArgHasType(NSPrintPanel.beginSheetWithPrintInfo_modalForWindow_delegate_didEndSelector_contextInfo_, 4, '^v')
 
 
 

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprogressindicator.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprogressindicator.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsprogressindicator.py	Sun Mar 22 09:31:31 2009
@@ -11,6 +11,16 @@
         self.failUnlessEqual(NSProgressIndicatorBarStyle, 0)
         self.failUnlessEqual(NSProgressIndicatorSpinningStyle, 1)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSProgressIndicator.isIndeterminate)
+        self.failUnlessArgIsBOOL(NSProgressIndicator.setIndeterminate_, 0)
+        self.failUnlessResultIsBOOL(NSProgressIndicator.isBezeled)
+        self.failUnlessArgIsBOOL(NSProgressIndicator.setBezeled_, 0)
+        self.failUnlessResultIsBOOL(NSProgressIndicator.usesThreadedAnimation)
+        self.failUnlessArgIsBOOL(NSProgressIndicator.setUsesThreadedAnimation_, 0)
+        self.failUnlessResultIsBOOL(NSProgressIndicator.isDisplayedWhenStopped)
+        self.failUnlessArgIsBOOL(NSProgressIndicator.setDisplayedWhenStopped_, 0)
+
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsresponder.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsresponder.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsresponder.py	Sun Mar 22 09:31:31 2009
@@ -4,7 +4,18 @@
 
 class TestNSResponder (TestCase):
     def testMethods(self):
-        self.fail("- (void)presentError:(NSError *)error modalForWindow:(NSWindow *)window delegate:(id)delegate didPresentSelector:(SEL)didPresentSelector contextInfo:(void *)contextInfo;")
+        self.failUnlessResultIsBOOL(NSResponder.tryToPerform_with_)
+        self.failUnlessResultIsBOOL(NSResponder.performKeyEquivalent_)
+        self.failUnlessResultIsBOOL(NSResponder.acceptsFirstResponder)
+        self.failUnlessResultIsBOOL(NSResponder.becomeFirstResponder)
+        self.failUnlessResultIsBOOL(NSResponder.resignFirstResponder)
+        self.failUnlessResultIsBOOL(NSResponder.shouldBeTreatedAsInkEvent_)
+        self.failUnlessResultIsBOOL(NSResponder.performMnemonic_)
+        self.failUnlessArgIsSEL(NSResponder.doCommandBySelector_, 0, 'v@:@')
+
+        self.failUnlessArgIsSEL(NSResponder.presentError_modalForWindow_delegate_didPresentSelector_contextInfo_, 3, 'v@:' + objc._C_NSBOOL + '^v')
+        self.failUnlessArgHasType(NSResponder.presentError_modalForWindow_delegate_didPresentSelector_contextInfo_, 4, '^v')
+        self.failUnlessResultIsBOOL(NSResponder.presentError_)
 
 
 if __name__ == "__main__":

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsruleeditor.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsruleeditor.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsruleeditor.py	Sun Mar 22 09:31:31 2009
@@ -2,6 +2,12 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSRuleEditorHelper (NSObject):
+    def ruleEditor_numberOfChildrenForCriterion_withRowType_(self, ed, cr, rt): return 1
+    def ruleEditor_child_forCriterion_withRowType_(self, ed, ch, cr, rt): return 1
+    def ruleEditor_displayValueForCriterion_inRow_(self, ed, cr, rw): return 1
+    def ruleEditor_predicatePartsForCriterion_withDisplayValue_inRow_(self, ed, cr, dv, rw): return 1
+
 class TestNSRuleEditor (TestCase):
     def testConstants(self):
         self.failUnlessEqual(NSRuleEditorNestingModeSingle, 0)
@@ -22,6 +28,23 @@
         self.failUnlessIsInstance(NSRuleEditorPredicateCompoundType, unicode)
         self.failUnlessIsInstance(NSRuleEditorRowsDidChangeNotification, unicode)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSRuleEditor.isEditable)
+        self.failUnlessArgIsBOOL(NSRuleEditor.setEditable_, 0)
+        self.failUnlessResultIsBOOL(NSRuleEditor.canRemoveAllRows)
+        self.failUnlessArgIsBOOL(NSRuleEditor.setCanRemoveAllRows_, 0)
+        self.failUnlessArgIsBOOL(NSRuleEditor.insertRowAtIndex_withType_asSubrowOfRow_animate_, 3)
+        self.failUnlessArgIsBOOL(NSRuleEditor.removeRowsAtIndexes_includeSubrows_, 1)
+        self.failUnlessArgIsBOOL(NSRuleEditor.selectRowIndexes_byExtendingSelection_, 1)
+
+    def testProtocols(self):
+        self.failUnlessResultHasType(TestNSRuleEditorHelper.ruleEditor_numberOfChildrenForCriterion_withRowType_, objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSRuleEditorHelper.ruleEditor_numberOfChildrenForCriterion_withRowType_, 2, objc._C_NSUInteger)
+        self.failUnlessArgHasType(TestNSRuleEditorHelper.ruleEditor_child_forCriterion_withRowType_, 1, objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSRuleEditorHelper.ruleEditor_child_forCriterion_withRowType_, 3, objc._C_NSUInteger)
+        self.failUnlessArgHasType(TestNSRuleEditorHelper.ruleEditor_displayValueForCriterion_inRow_, 2, objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSRuleEditorHelper.ruleEditor_predicatePartsForCriterion_withDisplayValue_inRow_, 3, objc._C_NSInteger)
+
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsrulerview.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsrulerview.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsrulerview.py	Sun Mar 22 09:31:31 2009
@@ -2,10 +2,37 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSRulerViewHelper (NSView):
+    def rulerView_shouldMoveMarker_(self, rl, mk): return 1
+    def rulerView_willMoveMarker_toLocation_(self, rl, mk, l): return 1
+    def rulerView_didMoveMarker_(self, rv, mk): pass
+    def rulerView_shouldRemoveMarker_(self, rv, mk): return 1
+    def rulerView_didRemoveMarker_(self, rv, mk): pass
+    def rulerView_shouldAddMarker_(self, rv, mk): return 1
+    def rulerView_willAddMarker_atLocation_(self, rv, mk, l): return 1
+    def rulerView_didAddMarker_(self, rv, mk): pass
+    def rulerView_handleMouseDown_(self, rv , ev): pass
+    def rulerView_willSetClientView_(self, rv, vw): pass
+
 class TestNSRulerView (TestCase):
     def testConstants(self):
         self.failUnlessEqual(NSHorizontalRuler, 0)
         self.failUnlessEqual(NSVerticalRuler, 1)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSRulerView.trackMarker_withMouseEvent_)
+        self.failUnlessResultIsBOOL(NSRulerView.isFlipped)
+
+    def testProtocols(self):
+        self.failUnlessResultIsBOOL(TestNSRulerViewHelper.rulerView_shouldMoveMarker_)
+
+        self.failUnlessResultHasType(TestNSRulerViewHelper.rulerView_willMoveMarker_toLocation_, objc._C_CGFloat)
+        self.failUnlessArgHasType(TestNSRulerViewHelper.rulerView_willMoveMarker_toLocation_, 2, objc._C_CGFloat)
+
+        self.failUnlessResultIsBOOL(TestNSRulerViewHelper.rulerView_shouldRemoveMarker_)
+        self.failUnlessResultIsBOOL(TestNSRulerViewHelper.rulerView_shouldAddMarker_)
+        self.failUnlessResultHasType(TestNSRulerViewHelper.rulerView_willAddMarker_atLocation_, objc._C_CGFloat)
+        self.failUnlessArgHasType(TestNSRulerViewHelper.rulerView_willAddMarker_atLocation_, 2, objc._C_CGFloat)
+
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssavepanel.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssavepanel.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssavepanel.py	Sun Mar 22 09:31:31 2009
@@ -2,13 +2,43 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSSavePanelHelper (NSObject):
+    def panel_shouldShowFilename_(self, p, f): return 1
+    def panel_compareFilename_with_caseSensitive_(self, p, f1, f2, i): return 1
+    def panel_isValidFilename_(self, p, f): return 1
+    def panel_userEnteredFilename_confirmed_(self, p, f, c): return 1
+    def panel_willExpand_(self, s, e): return 1
+    def panel_directoryDidChange_(self, s, p): pass
+    def panelSelectionDidChange_(self, s): pass
+
 class TestNSSavePanel (TestCase):
     def testConstants(self):
-        self.failUnlessEquals(NSFileHandlingPanelCancelButton, NSCancelButton)
-        self.failUnlessEquals(NSFileHandlingPanelOKButton, NSOKButton)
+        self.failUnlessEqual(NSFileHandlingPanelCancelButton, NSCancelButton)
+        self.failUnlessEqual(NSFileHandlingPanelOKButton, NSOKButton)
 
     def testMethods(self):
-        self.fail("- (void)beginSheetForDirectory:(NSString *)path file:(NSString *)name modalForWindow:(NSWindow *)docWindow modalDelegate:(id)delegate didEndSelector:(SEL)didEndSelector contextInfo:(void *)contextInfo;")
+        self.failUnlessResultIsBOOL(NSSavePanel.allowsOtherFileTypes)
+        self.failUnlessArgIsBOOL(NSSavePanel.setAllowsOtherFileTypes_, 0)
+        self.failUnlessResultIsBOOL(NSSavePanel.isExpanded)
+        self.failUnlessResultIsBOOL(NSSavePanel.canCreateDirectories)
+        self.failUnlessArgIsBOOL(NSSavePanel.setCanCreateDirectories_, 0)
+        self.failUnlessResultIsBOOL(NSSavePanel.canSelectHiddenExtension)
+        self.failUnlessArgIsBOOL(NSSavePanel.setCanSelectHiddenExtension_, 0)
+        self.failUnlessResultIsBOOL(NSSavePanel.isExtensionHidden)
+        self.failUnlessArgIsBOOL(NSSavePanel.setExtensionHidden_, 0)
+        self.failUnlessResultIsBOOL(NSSavePanel.treatsFilePackagesAsDirectories)
+        self.failUnlessArgIsBOOL(NSSavePanel.setTreatsFilePackagesAsDirectories_, 0)
+
+        self.failUnlessArgIsSEL(NSSavePanel.beginSheetForDirectory_file_modalForWindow_modalDelegate_didEndSelector_contextInfo_, 4, 'v@:@' + objc._C_NSInteger + '^v')
+        self.failUnlessArgHasType(NSSavePanel.beginSheetForDirectory_file_modalForWindow_modalDelegate_didEndSelector_contextInfo_, 5, '^v')
+
+    def testProtocol(self):
+        self.failUnlessResultIsBOOL(TestNSSavePanelHelper.panel_shouldShowFilename_)
+        self.failUnlessResultHasType(TestNSSavePanelHelper.panel_compareFilename_with_caseSensitive_, objc._C_NSInteger)
+        self.failUnlessArgIsBOOL(TestNSSavePanelHelper.panel_compareFilename_with_caseSensitive_, 3)
+        self.failUnlessResultIsBOOL(TestNSSavePanelHelper.panel_isValidFilename_)
+        self.failUnlessArgIsBOOL(TestNSSavePanelHelper.panel_userEnteredFilename_confirmed_, 2)
+        self.failUnlessArgIsBOOL(TestNSSavePanelHelper.panel_willExpand_, 1)
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsscroller.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsscroller.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsscroller.py	Sun Mar 22 09:31:31 2009
@@ -21,6 +21,11 @@
         self.failUnlessEqual(NSScrollerIncrementArrow, 0)
         self.failUnlessEqual(NSScrollerDecrementArrow, 1)
 
+    def testMethods(self):
+        self.failUnlessArgIsBOOL(NSScroller.drawArrow_highlight_, 1)
+        self.failUnlessArgIsBOOL(NSScroller.drawKnobSlotInRect_highlight_, 1)
+        self.failUnlessArgIsBOOL(NSScroller.highlight_, 0)
+
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssearchfieldcell.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssearchfieldcell.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssearchfieldcell.py	Sun Mar 22 09:31:31 2009
@@ -1,4 +1,3 @@
-
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
@@ -9,6 +8,12 @@
         self.failUnlessEqual(NSSearchFieldClearRecentsMenuItemTag, 1002)
         self.failUnlessEqual(NSSearchFieldNoRecentsMenuItemTag, 1003)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSSearchFieldCell.sendsWholeSearchString)
+        self.failUnlessArgIsBOOL(NSSearchFieldCell.setSendsWholeSearchString_, 0)
+        self.failUnlessResultIsBOOL(NSSearchFieldCell.sendsSearchStringImmediately)
+        self.failUnlessArgIsBOOL(NSSearchFieldCell.setSendsSearchStringImmediately_, 0)
+
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssegmentedcell.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssegmentedcell.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssegmentedcell.py	Sun Mar 22 09:31:31 2009
@@ -8,5 +8,13 @@
         self.failUnlessEqual(NSSegmentSwitchTrackingSelectAny, 1)
         self.failUnlessEqual(NSSegmentSwitchTrackingMomentary, 2)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSSegmentedCell.selectSegmentWithTag_)
+        self.failUnlessResultIsBOOL(NSSegmentedCell.isSelectedForSegment_)
+        self.failUnlessArgIsBOOL(NSSegmentedCell.setSelected_forSegment_, 0)
+        self.failUnlessResultIsBOOL(NSSegmentedCell.isEnabledForSegment_)
+        self.failUnlessArgIsBOOL(NSSegmentedCell.setEnabled_forSegment_, 0)
+
+
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssegmentedcontrol.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssegmentedcontrol.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssegmentedcontrol.py	Sun Mar 22 09:31:31 2009
@@ -12,6 +12,12 @@
         self.failUnlessEqual(NSSegmentStyleCapsule, 5)
         self.failUnlessEqual(NSSegmentStyleSmallSquare, 6)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSSegmentedControl.selectSegmentWithTag_)
+        self.failUnlessArgIsBOOL(NSSegmentedControl.setSelected_forSegment_, 0)
+        self.failUnlessResultIsBOOL(NSSegmentedControl.isSelectedForSegment_)
+        self.failUnlessArgIsBOOL(NSSegmentedControl.setEnabled_forSegment_, 0)
+        self.failUnlessResultIsBOOL(NSSegmentedControl.isEnabledForSegment_)
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssimplehorizontaltypesetter.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssimplehorizontaltypesetter.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssimplehorizontaltypesetter.py	Sun Mar 22 09:31:31 2009
@@ -1,7 +1,9 @@
-
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSSimpleHorizontalTypesetterHelper (NSSimpleHorizontalTypesetter):
+    def willSetLineFragmentRect_forGlyphRange_usedRect_(self, a, b, c): return 1
+
 class TestNSSimpleHorizontalTypesetter (TestCase):
     def testConstants(self):
         self.failUnlessEqual(NSLayoutNotDone, 0)
@@ -19,17 +21,13 @@
         self.failUnlessEqual(NSBaselineNotSet, -1.0)
         self.failUnlessEqual(NumGlyphsToGetEachTime, 20)
 
-    def testStruct(self):
-        self.fail("NSTypesetterGlyphInfo")
-
-    def testFunctions(self):
-        self.fail("NSGlyphInfoAtIndex")
-
     def testMethods(self):
-        self.fail("- (void)layoutGlyphsInLayoutManager:(NSLayoutManager *)layoutManager startingAtGlyphIndex:(NSUInteger)startGlyphIndex maxNumberOfLineFragments:(NSUInteger)maxNumLines nextGlyphIndex:(NSUInteger *)nextGlyph;")
-        self.fail("- (NSLayoutStatus)layoutGlyphsInHorizontalLineFragment:(NSRect *)lineFragmentRect baseline:(float *)baseline;")
-        self.fail("- (void) willSetLineFragmentRect:(NSRect *)aRect forGlyphRange:(NSRange)aRange usedRect:(NSRect *)bRect;")
-
+        self.failUnlessArgIsOut(NSSimpleHorizontalTypesetter.layoutGlyphsInLayoutManager_startingAtGlyphIndex_maxNumberOfLineFragments_nextGlyphIndex_, 3)
+        self.failUnlessArgIsInOut(NSSimpleHorizontalTypesetter.layoutGlyphsInHorizontalLineFragment_baseline_, 1)
+        self.failUnlessArgIsInOut(TestNSSimpleHorizontalTypesetterHelper.willSetLineFragmentRect_forGlyphRange_usedRect_, 2)
+        self.failUnlessArgHasType(TestNSSimpleHorizontalTypesetterHelper.willSetLineFragmentRect_forGlyphRange_usedRect_, 2, 'N^' + NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSSimpleHorizontalTypesetterHelper.willSetLineFragmentRect_forGlyphRange_usedRect_, 1, NSRange.__typestr__)
+        self.failUnlessArgHasType(TestNSSimpleHorizontalTypesetterHelper.willSetLineFragmentRect_forGlyphRange_usedRect_, 0, 'N^'+NSRect.__typestr__)
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsslidercell.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsslidercell.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsslidercell.py	Sun Mar 22 09:31:31 2009
@@ -11,5 +11,12 @@
         self.failUnlessEqual(NSLinearSlider, 0)
         self.failUnlessEqual(NSCircularSlider, 1)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSSliderCell.prefersTrackingUntilMouseUp)
+        self.failUnlessArgIsBOOL(NSSliderCell.knobRectFlipped_, 0)
+        self.failUnlessArgIsBOOL(NSSliderCell.drawBarInside_flipped_, 1)
+        self.failUnlessResultIsBOOL(NSSliderCell.allowsTickMarkValuesOnly)
+        self.failUnlessArgIsBOOL(NSSliderCell.setAllowsTickMarkValuesOnly_, 0)
+
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssound.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssound.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssound.py	Sun Mar 22 09:31:31 2009
@@ -2,9 +2,29 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSSoundHelper (NSObject):
+    def sound_didFinishPlaying_(self, s, p): pass
+
+
 class TestNSSound (TestCase):
     def testConstants(self):
         self.failUnlessIsInstance(NSSoundPboardType, unicode)
 
+    def testMethods(self):
+        self.failUnlessArgIsBOOL(NSSound.initWithContentsOfURL_byReference_, 1)
+        self.failUnlessArgIsBOOL(NSSound.initWithContentsOfFile_byReference_, 1)
+        self.failUnlessResultIsBOOL(NSSound.setName_)
+        self.failUnlessResultIsBOOL(NSSound.canInitWithPasteboard_)
+        self.failUnlessResultIsBOOL(NSSound.play)
+        self.failUnlessResultIsBOOL(NSSound.pause)
+        self.failUnlessResultIsBOOL(NSSound.resume)
+        self.failUnlessResultIsBOOL(NSSound.stop)
+        self.failUnlessResultIsBOOL(NSSound.isPlaying)
+        self.failUnlessResultIsBOOL(NSSound.loops)
+        self.failUnlessArgIsBOOL(NSSound.setLoops_, 0)
+
+    def testProtocols(self):
+        self.failUnlessArgIsBOOL(TestNSSoundHelper.sound_didFinishPlaying_, 1)
+
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsspeechsynthesizer.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsspeechsynthesizer.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsspeechsynthesizer.py	Sun Mar 22 09:31:31 2009
@@ -2,6 +2,12 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSSpeechSynthesizerHelper (NSObject):
+    def speechSynthesizer_didFinishSpeaking_(self, ss, b): pass
+    def speechSynthesizer_willSpeakWord_ofString_(self, ss, w, s): pass
+    def speechSynthesizer_willSpeakPhoneme_(self, ss, i): pass
+    def speechSynthesizer_didEncounterErrorAtIndex_ofString_message_(self, ss, i, s, m): pass
+
 class TestNSSpeechSynthesizer (TestCase):
     def testConstants(self):
         self.failUnlessIsInstance(NSVoiceName, unicode)
@@ -80,6 +86,26 @@
         self.failUnlessIsInstance( NSSpeechDictionaryEntrySpelling, unicode)
         self.failUnlessIsInstance( NSSpeechDictionaryEntryPhonemes, unicode)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSSpeechSynthesizer.startSpeakingString_)
+        self.failUnlessResultIsBOOL(NSSpeechSynthesizer.startSpeakingString_toURL_)
+        self.failUnlessResultIsBOOL(NSSpeechSynthesizer.isSpeaking)
+        self.failUnlessResultIsBOOL(NSSpeechSynthesizer.setVoice_)
+        self.failUnlessResultIsBOOL(NSSpeechSynthesizer.usesFeedbackWindow)
+        self.failUnlessArgIsBOOL(NSSpeechSynthesizer.setUsesFeedbackWindow_, 0)
+        self.failUnlessResultIsBOOL(NSSpeechSynthesizer.setObject_forProperty_error_)
+        self.failUnlessArgIsOut(NSSpeechSynthesizer.setObject_forProperty_error_, 2)
+        self.failUnlessArgIsOut(NSSpeechSynthesizer.objectForProperty_error_, 1)
+        self.failUnlessResultIsBOOL(NSSpeechSynthesizer.isAnyApplicationSpeaking)
+
+    def testProtocol(self):
+        self.failUnlessArgIsBOOL(TestNSSpeechSynthesizerHelper.speechSynthesizer_didFinishSpeaking_, 1)
+        self.failUnlessArgHasType(TestNSSpeechSynthesizerHelper.speechSynthesizer_willSpeakWord_ofString_, 1, NSRange.__typestr__)
+        self.failUnlessArgHasType(TestNSSpeechSynthesizerHelper.speechSynthesizer_willSpeakPhoneme_, 1, objc._C_SHT)
+
+    @min_os_level('10.5')
+    def testProtocol10_5(self):
+        self.failUnlessArgHasType(TestNSSpeechSynthesizerHelper.speechSynthesizer_didEncounterErrorAtIndex_ofString_message_, 1, objc._C_NSUInteger)
 
 
 if __name__ == "__main__":

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsspellchecker.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsspellchecker.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsspellchecker.py	Sun Mar 22 09:31:31 2009
@@ -4,8 +4,17 @@
 
 class TestNSSpellChecker (TestCase):
     def testMethods(self):
-        self.fail("- (NSRange)checkGrammarOfString:(NSString *)stringToCheck startingAt:(NSInteger)startingOffset language:(NSString *)language wrap:(BOOL)wrapFlag inSpellDocumentWithTag:(NSInteger)tag details:(NSArray **)details;")
+        self.failUnlessResultIsBOOL(NSSpellChecker.sharedSpellCheckerExists)
+        self.failUnlessArgIsBOOL(NSSpellChecker.checkSpellingOfString_startingAt_language_wrap_inSpellDocumentWithTag_wordCount_, 3)
+        self.failUnlessArgIsOut(NSSpellChecker.checkSpellingOfString_startingAt_language_wrap_inSpellDocumentWithTag_wordCount_, 5)
+        self.failUnlessResultIsBOOL(NSSpellChecker.setLanguage_)
+        self.failUnlessResultIsBOOL(NSSpellChecker.hasLearnedWord_)
 
 
+    @min_os_level('10.5')
+    def testMethods10_5(self):
+        self.failUnlessArgIsBOOL(NSSpellChecker.checkGrammarOfString_startingAt_language_wrap_inSpellDocumentWithTag_details_, 3)
+        self.failUnlessArgIsOut(NSSpellChecker.checkGrammarOfString_startingAt_language_wrap_inSpellDocumentWithTag_details_, 5)
+
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssplitview.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssplitview.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nssplitview.py	Sun Mar 22 09:31:31 2009
@@ -2,6 +2,19 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSSplitViewHelper (NSObject):
+    def splitView_canCollapseSubview_(self, sp, sv): return 1
+    def splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex_(self, sp, sv, i): return 1
+    def splitView_constrainMinCoordinate_ofSubviewAt_(self, sv, c, i): return 1
+    def splitView_constrainMaxCoordinate_ofSubviewAt_(self, sv, c, i): return 1
+    def splitView_constrainSplitPosition_ofSubviewAt_(self, sv, c, i): return 1
+    def splitView_resizeSubviewsWithOldSize_(self, sv, sz): pass
+    def splitView_shouldHideDividerAtIndex_(self, sv, i): return 1
+    def splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_(self, sv, er, dr, i): return 1
+    def splitView_additionalEffectiveRectOfDividerAtIndex_(self, sv, i): return 1
+    def splitViewWillResizeSubviews_(self, nt): pass
+    def splitViewDidResizeSubviews_(self, nt): pass
+
 class TestNSSplitView (TestCase):
     def testConstants(self):
         self.failUnlessEqual(NSSplitViewDividerStyleThick, 1)
@@ -10,6 +23,40 @@
         self.failUnlessIsInstance(NSSplitViewWillResizeSubviewsNotification, unicode)
         self.failUnlessIsInstance(NSSplitViewDidResizeSubviewsNotification, unicode)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSSplitView.isVertical)
+        self.failUnlessArgIsBOOL(NSSplitView.setVertical_, 0)
+        self.failUnlessResultIsBOOL(NSSplitView.isSubviewCollapsed_)
+        self.failUnlessResultIsBOOL(NSSplitView.isPaneSplitter)
+        self.failUnlessArgIsBOOL(NSSplitView.setIsPaneSplitter_, 0)
+
+    def testProtocol(self):
+        self.failUnlessResultIsBOOL(TestNSSplitViewHelper.splitView_canCollapseSubview_)
+        self.failUnlessResultIsBOOL(TestNSSplitViewHelper.splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex_)
+        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex_, 2, objc._C_NSInteger)
+        self.failUnlessResultHasType(TestNSSplitViewHelper.splitView_constrainMinCoordinate_ofSubviewAt_, objc._C_CGFloat)
+        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_constrainMinCoordinate_ofSubviewAt_, 1, objc._C_CGFloat)
+        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_constrainMinCoordinate_ofSubviewAt_, 2, objc._C_NSInteger)
+        self.failUnlessResultHasType(TestNSSplitViewHelper.splitView_constrainMaxCoordinate_ofSubviewAt_, objc._C_CGFloat)
+        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_constrainMaxCoordinate_ofSubviewAt_, 1, objc._C_CGFloat)
+        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_constrainMaxCoordinate_ofSubviewAt_, 2, objc._C_NSInteger)
+        self.failUnlessResultHasType(TestNSSplitViewHelper.splitView_constrainSplitPosition_ofSubviewAt_, objc._C_CGFloat)
+        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_constrainSplitPosition_ofSubviewAt_, 1, objc._C_CGFloat)
+        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_constrainSplitPosition_ofSubviewAt_, 2, objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_resizeSubviewsWithOldSize_, 1, NSSize.__typestr__)
+
+    @min_os_level('10.5')
+    def testProtocol10_5(self):
+        self.failUnlessResultIsBOOL(TestNSSplitViewHelper.splitView_shouldHideDividerAtIndex_)
+        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_shouldHideDividerAtIndex_, 1, objc._C_NSInteger)
+
+        self.failUnlessResultHasType(TestNSSplitViewHelper.splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_, 1, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_, 2, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_, 3, objc._C_NSInteger)
+
+        self.failUnlessResultHasType(TestNSSplitViewHelper.splitView_additionalEffectiveRectOfDividerAtIndex_, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSSplitViewHelper.splitView_additionalEffectiveRectOfDividerAtIndex_, 1, objc._C_NSInteger)
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsstatusbar.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsstatusbar.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsstatusbar.py	Sun Mar 22 09:31:31 2009
@@ -7,5 +7,8 @@
         self.failUnlessEqual(NSVariableStatusItemLength, -1)
         self.failUnlessEqual(NSSquareStatusItemLength, -2)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSStatusBar.isVertical)
+
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsstatusitem.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsstatusitem.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsstatusitem.py	Sun Mar 22 09:31:31 2009
@@ -10,5 +10,11 @@
         m = NSStatusItem.setDoubleAction_.__metadata__()
         self.failUnlessEqual(m['arguments'][2]['sel_of_type'], 'v@:@')
 
+        self.failUnlessResultIsBOOL(NSStatusItem.isEnabled)
+        self.failUnlessArgIsBOOL(NSStatusItem.setEnabled_, 0)
+        self.failUnlessResultIsBOOL(NSStatusItem.highlightMode)
+        self.failUnlessArgIsBOOL(NSStatusItem.setHighlightMode_, 0)
+        self.failUnlessArgIsBOOL(NSStatusItem.drawStatusBarBackgroundInRect_withHighlight_, 1)
+
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstablecolumn.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstablecolumn.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstablecolumn.py	Sun Mar 22 09:31:31 2009
@@ -8,5 +8,14 @@
         self.failUnlessEqual(NSTableColumnAutoresizingMask, ( 1 << 0 ))
         self.failUnlessEqual(NSTableColumnUserResizingMask, ( 1 << 1 ))
 
+    def testMethods(self):
+        self.failUnlessArgIsBOOL(NSTableColumn.setEditable_, 0)
+        self.failUnlessResultIsBOOL(NSTableColumn.isEditable)
+        self.failUnlessArgIsBOOL(NSTableColumn.setHidden_, 0)
+        self.failUnlessResultIsBOOL(NSTableColumn.isHidden)
+        self.failUnlessArgIsBOOL(NSTableColumn.setResizable_, 0)
+        self.failUnlessResultIsBOOL(NSTableColumn.isResizable)
+
+
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstableview.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstableview.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstableview.py	Sun Mar 22 09:31:31 2009
@@ -2,6 +2,33 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSTableViewHelper (NSObject):
+    def numberOfRowsInTableView_(self, tv): return 1
+    def tableView_objectValueForTableColumn_row_(self, tv, c, r): return 1
+    def tableView_setObjectValue_forTableColumn_row_(self, o, tv, c, r): pass
+    def tableView_writeRowsWithIndexes_toPasteboard_(self, tv, r, p): return 1
+    def tableView_validateDrop_proposedRow_proposedDropOperation_(self, tv, dr, r, o): return 1
+    def tableView_acceptDrop_row_dropOperation_(self, tv, dr, r, o): return 1
+    def tableView_writeRows_toPasteboard_(self, tv, r, p): return 1
+
+    def tableView_willDisplayCell_forTableColumn_row_(self, tv, c, tc, r): return 1
+    def tableView_shouldEditTableColumn_row_(self, tv, tc, r): return 1
+    def selectionShouldChangeInTableView_(self, tv): return 1
+    def tableView_shouldSelectTableColumn_(self, tv, tc): return 1
+    def tableView_toolTipForCell_rect_tableColumn_row_mouseLocation_(self, tv, c, re, tc, r, l): return 1
+    def tableView_heightOfRow_(self, tv, r): return 1
+    def tableView_typeSelectStringForTableColumn_row_(self, tv, tc, r): return 1
+    def tableView_nextTypeSelectMatchFromRow_toRow_forString_(self, tv, r1, r2, s): return 1
+    def tableView_shouldTypeSelectForEvent_withCurrentSearchString_(self, tv, e, s): return 1
+    def tableView_shouldShowCellExpansionForTableColumn_row_(self, tv, tc, r): return 1
+    def tableView_shouldTrackCell_forTableColumn_row_(self, tv, c, tc, r): return 1
+    def tableView_dataCellForTableColumn_row_(self, tv, tc, r): return 1
+    def tableView_isGroupRow_(self, tv, r): return 1
+
+
+
+
+
 class TestNSTableView (TestCase):
     def testConstants(self):
         self.failUnlessEqual(NSTableViewDropOn, 0)
@@ -28,7 +55,82 @@
 
 
     def testMethods(self):
-        self.fail("- (NSString *)tableView:(NSTableView *)tableView toolTipForCell:(NSCell *)cell rect:(NSRectPointer)rect tableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row mouseLocation:(NSPoint)mouseLocation;")
+        self.failUnlessArgIsBOOL(NSTableView.setAllowsColumnReordering_, 0)
+        self.failUnlessResultIsBOOL(NSTableView.allowsColumnReordering)
+        self.failUnlessArgIsBOOL(NSTableView.setAllowsColumnResizing_, 0)
+        self.failUnlessResultIsBOOL(NSTableView.allowsColumnResizing)
+        self.failUnlessArgIsBOOL(NSTableView.setUsesAlternatingRowBackgroundColors_, 0)
+        self.failUnlessResultIsBOOL(NSTableView.usesAlternatingRowBackgroundColors)
+        self.failUnlessArgIsBOOL(NSTableView.setVerticalMotionCanBeginDrag_, 0)
+        self.failUnlessResultIsBOOL(NSTableView.verticalMotionCanBeginDrag)
+        self.failUnlessResultIsBOOL(NSTableView.canDragRowsWithIndexes_atPoint_)
+        self.failUnlessArgIsInOut(NSTableView.dragImageForRowsWithIndexes_tableColumns_event_offset_, 3)
+        self.failUnlessArgIsBOOL(NSTableView.setDraggingSourceOperationMask_forLocal_, 1)
+        self.failUnlessResultIsBOOL(NSTableView.verticalMotionCanBeginDrag)
+        self.failUnlessArgIsBOOL(NSTableView.setAllowsMultipleSelection_, 0)
+        self.failUnlessResultIsBOOL(NSTableView.allowsMultipleSelection)
+        self.failUnlessArgIsBOOL(NSTableView.setAllowsEmptySelection_, 0)
+        self.failUnlessResultIsBOOL(NSTableView.allowsEmptySelection)
+        self.failUnlessArgIsBOOL(NSTableView.setAllowsColumnSelection_, 0)
+        self.failUnlessResultIsBOOL(NSTableView.allowsColumnSelection)
+        self.failUnlessArgIsBOOL(NSTableView.selectColumnIndexes_byExtendingSelection_, 1)
+        self.failUnlessArgIsBOOL(NSTableView.selectRowIndexes_byExtendingSelection_, 1)
+        self.failUnlessResultIsBOOL(NSTableView.isColumnSelected_)
+        self.failUnlessResultIsBOOL(NSTableView.isRowSelected_)
+        self.failUnlessArgIsBOOL(NSTableView.setAllowsTypeSelect_, 0)
+        self.failUnlessResultIsBOOL(NSTableView.allowsTypeSelect)
+        self.failUnlessResultIsBOOL(NSTableView.textShouldBeginEditing_)
+        self.failUnlessResultIsBOOL(NSTableView.textShouldEndEditing_)
+        self.failUnlessArgIsBOOL(NSTableView.setAutosaveTableColumns_, 0)
+        self.failUnlessResultIsBOOL(NSTableView.autosaveTableColumns)
+        self.failUnlessArgIsBOOL(NSTableView.editColumn_row_withEvent_select_, 3)
+
+
+        self.failUnlessArgIsBOOL(NSTableView.setDrawsGrid_, 0)
+        self.failUnlessResultIsBOOL(NSTableView.drawsGrid)
+        self.failUnlessArgIsBOOL(NSTableView.selectColumn_byExtendingSelection_, 1)
+        self.failUnlessArgIsBOOL(NSTableView.selectRow_byExtendingSelection_, 1)
+        self.failUnlessArgIsInOut(NSTableView.dragImageForRows_event_dragImageOffset_, 2)
+        self.failUnlessArgIsBOOL(NSTableView.setAutoresizesAllColumnsToFit_, 0)
+        self.failUnlessResultIsBOOL(NSTableView.autoresizesAllColumnsToFit)
+
+
+    def testProtocols(self):
+        self.failUnlessResultHasType(TestNSTableViewHelper.numberOfRowsInTableView_, objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_objectValueForTableColumn_row_, 2, objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_setObjectValue_forTableColumn_row_, 3, objc._C_NSInteger)
+        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_writeRowsWithIndexes_toPasteboard_)
+        self.failUnlessResultHasType(TestNSTableViewHelper.tableView_validateDrop_proposedRow_proposedDropOperation_, objc._C_NSUInteger)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_validateDrop_proposedRow_proposedDropOperation_, 2, objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_validateDrop_proposedRow_proposedDropOperation_, 3, objc._C_NSUInteger)
+        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_acceptDrop_row_dropOperation_)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_acceptDrop_row_dropOperation_, 2, objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_acceptDrop_row_dropOperation_, 3, objc._C_NSUInteger)
+        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_writeRows_toPasteboard_)
+
+
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_willDisplayCell_forTableColumn_row_, 3, objc._C_NSInteger)
+        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_shouldEditTableColumn_row_)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_shouldEditTableColumn_row_, 2, objc._C_NSInteger)
+        self.failUnlessResultIsBOOL(TestNSTableViewHelper.selectionShouldChangeInTableView_)
+        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_shouldSelectTableColumn_)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_toolTipForCell_rect_tableColumn_row_mouseLocation_, 2, 'N^' + NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_toolTipForCell_rect_tableColumn_row_mouseLocation_, 4, objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_toolTipForCell_rect_tableColumn_row_mouseLocation_, 5, NSPoint.__typestr__)
+        self.failUnlessResultHasType(TestNSTableViewHelper.tableView_heightOfRow_, objc._C_CGFloat)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_heightOfRow_, 1, objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_typeSelectStringForTableColumn_row_, 2, objc._C_NSInteger)
+        self.failUnlessResultHasType(TestNSTableViewHelper.tableView_nextTypeSelectMatchFromRow_toRow_forString_, objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_nextTypeSelectMatchFromRow_toRow_forString_, 1, objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_nextTypeSelectMatchFromRow_toRow_forString_, 2, objc._C_NSInteger)
+        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_shouldTypeSelectForEvent_withCurrentSearchString_)
+        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_shouldShowCellExpansionForTableColumn_row_)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_shouldShowCellExpansionForTableColumn_row_, 2, objc._C_NSInteger)
+        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_shouldTrackCell_forTableColumn_row_)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_shouldTrackCell_forTableColumn_row_, 3, objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_dataCellForTableColumn_row_, 2, objc._C_NSInteger)
+        self.failUnlessResultIsBOOL(TestNSTableViewHelper.tableView_isGroupRow_)
+        self.failUnlessArgHasType(TestNSTableViewHelper.tableView_isGroupRow_, 1, objc._C_NSInteger)
 
 
 

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstabview.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstabview.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstabview.py	Sun Mar 22 09:31:31 2009
@@ -2,6 +2,9 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSTabViewHelper (NSObject):
+    def tabView_shouldSelectTabViewItem_(self, tv, it): return 1
+
 class TestNSTabView (TestCase):
     def testConstants(self):
         self.failUnlessEqual(NSTopTabsBezelBorder,  0)
@@ -12,6 +15,15 @@
         self.failUnlessEqual(NSNoTabsLineBorder,  5)
         self.failUnlessEqual(NSNoTabsNoBorder,  6)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSTabView.allowsTruncatedLabels)
+        self.failUnlessResultIsBOOL(NSTabView.drawsBackground)
+        self.failUnlessArgIsBOOL(NSTabView.setAllowsTruncatedLabels_, 0)
+        self.failUnlessArgIsBOOL(NSTabView.setDrawsBackground_, 0)
+
+    def testProtocols(self):
+        self.failUnlessResultIsBOOL(TestNSTabViewHelper.tabView_shouldSelectTabViewItem_)
+
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstabviewitem.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstabviewitem.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstabviewitem.py	Sun Mar 22 09:31:31 2009
@@ -8,5 +8,9 @@
         self.failUnlessEqual(NSBackgroundTab, 1)
         self.failUnlessEqual(NSPressedTab, 2)
 
+    def testMethods(self):
+        self.failUnlessArgIsBOOL(NSTabViewItem.drawLabel_inRect_, 0)
+        self.failUnlessArgIsBOOL(NSTabViewItem.sizeOfLabel_, 0)
+
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstext.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstext.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstext.py	Sun Mar 22 09:31:31 2009
@@ -2,18 +2,22 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSTextHelper (NSObject):
+    def textShouldBeginEditing_(self, t): return 1
+    def textShouldEndEditing_(self, t): return 1
+
 class TestNSText (TestCase):
     def testConstants(self):
-        self.failUnlessEqual(NSEnterCharacter, 0x0003)
-        self.failUnlessEqual(NSBackspaceCharacter, 0x0008)
-        self.failUnlessEqual(NSTabCharacter, 0x0009)
-        self.failUnlessEqual(NSNewlineCharacter, 0x000a)
-        self.failUnlessEqual(NSFormFeedCharacter, 0x000c)
-        self.failUnlessEqual(NSCarriageReturnCharacter, 0x000d)
-        self.failUnlessEqual(NSBackTabCharacter, 0x0019)    
-        self.failUnlessEqual(NSDeleteCharacter,  0x007f)
-        self.failUnlessEqual(NSLineSeparatorCharacter, 0x2028)
-        self.failUnlessEqual(NSParagraphSeparatorCharacter, 0x2029)
+        self.failUnlessEqual(NSEnterCharacter, unichr(0x0003))
+        self.failUnlessEqual(NSBackspaceCharacter, unichr(0x0008))
+        self.failUnlessEqual(NSTabCharacter, unichr(0x0009))
+        self.failUnlessEqual(NSNewlineCharacter, unichr(0x000a))
+        self.failUnlessEqual(NSFormFeedCharacter, unichr(0x000c))
+        self.failUnlessEqual(NSCarriageReturnCharacter, unichr(0x000d))
+        self.failUnlessEqual(NSBackTabCharacter, unichr(0x0019))
+        self.failUnlessEqual(NSDeleteCharacter,  unichr(0x007f))
+        self.failUnlessEqual(NSLineSeparatorCharacter, unichr(0x2028))
+        self.failUnlessEqual(NSParagraphSeparatorCharacter, unichr(0x2029))
         self.failUnlessEqual(NSLeftTextAlignment, 0)
         self.failUnlessEqual(NSRightTextAlignment, 1)
         self.failUnlessEqual(NSCenterTextAlignment, 2)
@@ -39,7 +43,33 @@
         self.failUnlessIsInstance(NSTextDidEndEditingNotification, unicode)
         self.failUnlessIsInstance(NSTextDidChangeNotification, unicode)
 
-
+    def testMehods(self):
+        self.failUnlessResultIsBOOL(NSText.writeRTFDToFile_atomically_)
+        self.failUnlessArgIsBOOL(NSText.writeRTFDToFile_atomically_, 1)
+        self.failUnlessResultIsBOOL(NSText.readRTFDFromFile_)
+        self.failUnlessResultIsBOOL(NSText.isEditable)
+        self.failUnlessArgIsBOOL(NSText.setEditable_, 0)
+        self.failUnlessResultIsBOOL(NSText.isSelectable)
+        self.failUnlessArgIsBOOL(NSText.setSelectable_, 0)
+        self.failUnlessResultIsBOOL(NSText.isRichText)
+        self.failUnlessArgIsBOOL(NSText.setRichText_, 0)
+        self.failUnlessResultIsBOOL(NSText.importsGraphics)
+        self.failUnlessArgIsBOOL(NSText.setImportsGraphics_, 0)
+        self.failUnlessResultIsBOOL(NSText.isFieldEditor)
+        self.failUnlessArgIsBOOL(NSText.setFieldEditor_, 0)
+        self.failUnlessResultIsBOOL(NSText.usesFontPanel)
+        self.failUnlessArgIsBOOL(NSText.setUsesFontPanel_, 0)
+        self.failUnlessResultIsBOOL(NSText.drawsBackground)
+        self.failUnlessArgIsBOOL(NSText.setDrawsBackground_, 0)
+        self.failUnlessResultIsBOOL(NSText.isRulerVisible)
+        self.failUnlessResultIsBOOL(NSText.isHorizontallyResizable)
+        self.failUnlessArgIsBOOL(NSText.setHorizontallyResizable_, 0)
+        self.failUnlessResultIsBOOL(NSText.isVerticallyResizable)
+        self.failUnlessArgIsBOOL(NSText.setVerticallyResizable_, 0)
+
+    def testProtocols(self):
+        self.failUnlessResultIsBOOL(TestNSTextHelper.textShouldBeginEditing_)
+        self.failUnlessResultIsBOOL(TestNSTextHelper.textShouldEndEditing_)
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextattachment.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextattachment.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextattachment.py	Sun Mar 22 09:31:31 2009
@@ -2,9 +2,58 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSTextAttachmentHelper (NSObject):
+    def drawWithFrame_inView_(self, fr, vi): pass
+    def wantsToTrackMouse(self): return 1
+    def highlight_withFrame_inView_(self, fl, fr, vi): pass
+    def trackMouse_inRect_ofView_untilMouseUp_(self, ev, fr, vi, fl): pass
+    def cellSize(self): return 1
+    def cellBaselineOffset(self): return 1
+    def drawWithFrame_inView_characterIndex_(self, fr, vi, i): pass
+    def drawWithFrame_inView_characterIndex_layoutManager_(self, fr, vi, i, lm): pass
+    def wantsToTrackMouseForEvent_inRect_ofView_atCharacterIndex_(self, ev, fr, vi, i): return 1
+    def trackMouse_inRect_ofView_atCharacterIndex_untilMouseUp_(self, ev, fr, vi, i, fl): return 1
+    def cellFrameForTextContainer_proposedLineFragment_glyphPosition_characterIndex_(self, tc, fr, po, i): return 1
+
 class TestNSTextAttachment (TestCase):
     def testConstants(self):
         self.failUnlessEqual(NSAttachmentCharacter, unichr(0xfffc))
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSTextAttachmentCell.wantsToTrackMouse)
+        self.failUnlessArgIsBOOL(NSTextAttachmentCell.highlight_withFrame_inView_, 0)
+        self.failUnlessResultIsBOOL(NSTextAttachmentCell.trackMouse_inRect_ofView_untilMouseUp_)
+        self.failUnlessArgIsBOOL(NSTextAttachmentCell.trackMouse_inRect_ofView_untilMouseUp_, 3)
+        self.failUnlessResultIsBOOL(NSTextAttachmentCell.wantsToTrackMouseForEvent_inRect_ofView_atCharacterIndex_)
+        self.failUnlessResultIsBOOL(NSTextAttachmentCell.trackMouse_inRect_ofView_atCharacterIndex_untilMouseUp_)
+        self.failUnlessArgIsBOOL(NSTextAttachmentCell.trackMouse_inRect_ofView_atCharacterIndex_untilMouseUp_, 4)
+
+    def testProtocols(self):
+        self.failUnlessArgHasType(TestNSTextAttachmentHelper.drawWithFrame_inView_, 0, NSRect.__typestr__)
+        self.failUnlessResultIsBOOL(TestNSTextAttachmentHelper.wantsToTrackMouse)
+        self.failUnlessArgIsBOOL(TestNSTextAttachmentHelper.highlight_withFrame_inView_, 0)
+        self.failUnlessArgHasType(TestNSTextAttachmentHelper.highlight_withFrame_inView_, 1, NSRect.__typestr__)
+        self.failUnlessResultIsBOOL(TestNSTextAttachmentHelper.trackMouse_inRect_ofView_untilMouseUp_)
+        self.failUnlessArgHasType(TestNSTextAttachmentHelper.trackMouse_inRect_ofView_untilMouseUp_, 1, NSRect.__typestr__)
+        self.failUnlessArgIsBOOL(TestNSTextAttachmentHelper.trackMouse_inRect_ofView_untilMouseUp_, 3)
+        self.failUnlessResultHasType(TestNSTextAttachmentHelper.cellSize, NSSize.__typestr__)
+        self.failUnlessResultHasType(TestNSTextAttachmentHelper.cellBaselineOffset, NSPoint.__typestr__)
+        self.failUnlessArgHasType(TestNSTextAttachmentHelper.drawWithFrame_inView_characterIndex_, 0, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSTextAttachmentHelper.drawWithFrame_inView_characterIndex_, 2, objc._C_NSUInteger)
+        self.failUnlessArgHasType(TestNSTextAttachmentHelper.drawWithFrame_inView_characterIndex_layoutManager_, 0, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSTextAttachmentHelper.drawWithFrame_inView_characterIndex_layoutManager_, 2, objc._C_NSUInteger)
+        self.failUnlessResultIsBOOL(TestNSTextAttachmentHelper.wantsToTrackMouseForEvent_inRect_ofView_atCharacterIndex_)
+        self.failUnlessArgHasType(TestNSTextAttachmentHelper.wantsToTrackMouseForEvent_inRect_ofView_atCharacterIndex_, 1, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSTextAttachmentHelper.wantsToTrackMouseForEvent_inRect_ofView_atCharacterIndex_, 3, objc._C_NSUInteger)
+        self.failUnlessArgHasType(TestNSTextAttachmentHelper.trackMouse_inRect_ofView_atCharacterIndex_untilMouseUp_, 1, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSTextAttachmentHelper.trackMouse_inRect_ofView_atCharacterIndex_untilMouseUp_, 3, objc._C_NSUInteger)
+
+        self.failUnlessResultHasType(TestNSTextAttachmentHelper.cellFrameForTextContainer_proposedLineFragment_glyphPosition_characterIndex_, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSTextAttachmentHelper.cellFrameForTextContainer_proposedLineFragment_glyphPosition_characterIndex_, 1, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSTextAttachmentHelper.cellFrameForTextContainer_proposedLineFragment_glyphPosition_characterIndex_, 2, NSPoint.__typestr__)
+        self.failUnlessArgHasType(TestNSTextAttachmentHelper.cellFrameForTextContainer_proposedLineFragment_glyphPosition_characterIndex_, 3, objc._C_NSUInteger)
+
+
+
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextcontainer.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextcontainer.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextcontainer.py	Sun Mar 22 09:31:31 2009
@@ -15,9 +15,12 @@
         self.failUnlessEqual(NSLineMovesUp, 4)
 
     def testMethods(self):
-        self.fail("- (NSRect)lineFragmentRectForProposedRect:(NSRect)proposedRect sweepDirection:(NSLineSweepDirection)sweepDirection movementDirection:(NSLineMovementDirection)movementDirection remainingRect:(NSRectPointer)remainingRect;")
-
-
+        self.failUnlessResultIsBOOL(NSTextContainer.widthTracksTextView)
+        self.failUnlessArgIsBOOL(NSTextContainer.setWidthTracksTextView_, 0)
+        self.failUnlessResultIsBOOL(NSTextContainer.heightTracksTextView)
+        self.failUnlessArgIsBOOL(NSTextContainer.setHeightTracksTextView_, 0)
+        self.failUnlessResultIsBOOL(NSTextContainer.isSimpleRectangularTextContainer)
+        self.failUnlessResultIsBOOL(NSTextContainer.containsPoint_)
 
 
 if __name__ == "__main__":

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextfieldcell.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextfieldcell.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextfieldcell.py	Sun Mar 22 09:31:31 2009
@@ -7,6 +7,11 @@
         self.failUnlessEqual(NSTextFieldSquareBezel, 0)
         self.failUnlessEqual(NSTextFieldRoundedBezel, 1)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSTextFieldCell.drawsBackground)
+        self.failUnlessArgIsBOOL(NSTextFieldCell.setDrawsBackground_, 0)
+        self.failUnlessArgIsBOOL(NSTextFieldCell.setWantsNotificationForMarkedText_, 0)
+
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextinputclient.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextinputclient.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextinputclient.py	Sun Mar 22 09:31:31 2009
@@ -2,12 +2,44 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSTextInputClientHelper (NSObject):
+    def insertText_replacementRange_(self, txt, rng): pass
+    def doCommandBySelector_(self, sel): pass
+    def setMarkedText_selectedRange_replacementRange_(self, txt, rng1, rng2): pass
+    def selectedRange(self): return 1
+    def markedRange(self): return 1
+    def hasMarkedText(self): return 1
+    def attributedSubstringForProposedRange_actualRange_(self, rng1, rng2): return 1
+    def firstRectForCharacterRange_actualRange_(self, rng1, rng2): return 1
+    def characterIndexForPoint_(self, pt): return 1
+    def fractionOfDistanceThroughGlyphForPoint_(self, pt): return 1
+    def baselineDeltaForCharacterAtIndex_(self, idx): return 1
+    def windowLevel(self): return 1
+
+
 class TestNSTextInputClient (TestCase):
 
     @min_os_level("10.5")
     def testMethods(self):
-        self.fail("- (NSAttributedString *)attributedSubstringForProposedRange:(NSRange)aRange actualRange:(NSRangePointer)actualRange;")
-        self.fail("- (NSRect)firstRectForCharacterRange:(NSRange)aRange actualRange:(NSRangePointer)actualRange;")
+        self.failUnlessArgHasType(TestNSTextInputClientHelper.insertText_replacementRange_, 1, NSRange.__typestr__)
+        self.failUnlessArgHasType(TestNSTextInputClientHelper.doCommandBySelector_, 0,  objc._C_SEL)
+        self.failUnlessArgHasType(TestNSTextInputClientHelper.setMarkedText_selectedRange_replacementRange_, 1, NSRange.__typestr__)
+        self.failUnlessArgHasType(TestNSTextInputClientHelper.setMarkedText_selectedRange_replacementRange_, 2, NSRange.__typestr__)
+        self.failUnlessResultHasType(TestNSTextInputClientHelper.selectedRange, NSRange.__typestr__)
+        self.failUnlessResultHasType(TestNSTextInputClientHelper.markedRange, NSRange.__typestr__)
+        self.failUnlessResultIsBOOL(TestNSTextInputClientHelper.hasMarkedText)
+        self.failUnlessArgHasType(TestNSTextInputClientHelper.attributedSubstringForProposedRange_actualRange_, 0, NSRange.__typestr__)
+        self.failUnlessArgHasType(TestNSTextInputClientHelper.attributedSubstringForProposedRange_actualRange_, 1, 'o^' + NSRange.__typestr__)
+        self.failUnlessResultHasType(TestNSTextInputClientHelper.firstRectForCharacterRange_actualRange_, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSTextInputClientHelper.firstRectForCharacterRange_actualRange_, 0, NSRange.__typestr__)
+        self.failUnlessArgHasType(TestNSTextInputClientHelper.firstRectForCharacterRange_actualRange_, 1, 'o^' + NSRange.__typestr__)
+        self.failUnlessResultHasType(TestNSTextInputClientHelper.characterIndexForPoint_, objc._C_NSUInteger)
+        self.failUnlessArgHasType(TestNSTextInputClientHelper.characterIndexForPoint_, 0, NSPoint.__typestr__)
+        self.failUnlessResultHasType(TestNSTextInputClientHelper.fractionOfDistanceThroughGlyphForPoint_, objc._C_CGFloat)
+        self.failUnlessArgHasType(TestNSTextInputClientHelper.fractionOfDistanceThroughGlyphForPoint_, 0, NSPoint.__typestr__)
+        self.failUnlessResultHasType(TestNSTextInputClientHelper.baselineDeltaForCharacterAtIndex_, objc._C_CGFloat)
+        self.failUnlessArgHasType(TestNSTextInputClientHelper.baselineDeltaForCharacterAtIndex_, 0, objc._C_NSUInteger)
+        self.failUnlessResultHasType(TestNSTextInputClientHelper.windowLevel, objc._C_NSInteger)
 
 
 if __name__ == "__main__":

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextstorage.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextstorage.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextstorage.py	Sun Mar 22 09:31:31 2009
@@ -10,6 +10,9 @@
         self.failUnlessIsInstance(NSTextStorageWillProcessEditingNotification, unicode)
         self.failUnlessIsInstance(NSTextStorageDidProcessEditingNotification, unicode)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSTextStorage.fixesAttributesLazily)
+
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstexttable.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstexttable.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstexttable.py	Sun Mar 22 09:31:31 2009
@@ -22,6 +22,12 @@
         self.failUnlessEqual(NSTextTableAutomaticLayoutAlgorithm, 0)
         self.failUnlessEqual(NSTextTableFixedLayoutAlgorithm, 1)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSTextTable.collapsesBorders)
+        self.failUnlessArgIsBOOL(NSTextTable.setCollapsesBorders_, 0)
+        self.failUnlessResultIsBOOL(NSTextTable.hidesEmptyCells)
+        self.failUnlessArgIsBOOL(NSTextTable.setHidesEmptyCells_, 0)
+
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextview.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextview.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstextview.py	Sun Mar 22 09:31:31 2009
@@ -2,6 +2,26 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSTextViewHelper (NSObject):
+    def textView_clickedOnLink_atIndex_(self, tv, a, b): return 1
+    def textView_clickedOnCell_inRect_atIndex_(self, tv, a, b, c): return 1
+    def textView_doubleClickedOnCell_inRect_atIndex_(self, tv, a, b, c): return 1
+    def textView_draggedCell_inRect_event_atIndex_(elf, tv, a, b, c, d): return 1
+    def textView_writablePasteboardTypesForCell_atIndex_(self, tv, a, b): return 1
+    def textView_writeCell_atIndex_toPasteboard_type_(self, tv, a, b, c, d): return 1
+    def textView_willChangeSelectionFromCharacterRange_toCharacterRange_(self, tv, a, b): return 1
+    def textView_shouldChangeTextInRanges_replacementStrings_(self, tv, a, b): return 1
+    def textView_willDisplayToolTip_forCharacterAtIndex_(self, tv, a, b): return 1
+    def textView_completions_forPartialWordRange_indexOfSelectedItem_(self, tv, a, b, c): return 1
+    def textView_shouldChangeTextInRange_replacementString_(self, tv, a, b): return 1
+    def textView_doCommandBySelector_(self, tv, a): return 1
+    def textView_clickedOnLink_(self, tv, a): return 1
+    def textView_clickedOnCell_inRect_(self, tv, a, b): return 1
+    def textView_doubleClickedOnCell_inRect_(self, tv, a, b): return 1
+    def textView_draggedCell_inRect_event_(self, tv, a, b, c): return 1
+    def textView_shouldSetSpellingState_range_(self, tv, a, b): return 1
+    def textView_menu_forEvent_atIndex_(self, tv, a, b, c): return 1
+
 class TestNSTextView (TestCase):
     def testConstants(self):
         self.failUnlessEqual(NSSelectByCharacter, 0)
@@ -38,9 +58,105 @@
         
 
     def testMethods(self):
-        self.fail("- (NSArray *)completionsForPartialWordRange:(NSRange)charRange indexOfSelectedItem:(NSInteger *)index;")
-        self.fail("- (NSImage *)dragImageForSelectionWithEvent:(NSEvent *)event origin:(NSPointPointer)origin;")
-        self.fail("- (void)smartInsertForString:(NSString *)pasteString replacingRange:(NSRange)charRangeToReplace beforeString:(NSString **)beforeString afterString:(NSString **)afterString;")
+        self.failUnlessResultIsBOOL(NSTextView.rulerView_shouldMoveMarker_)
+        self.failUnlessResultIsBOOL(NSTextView.rulerView_shouldAddMarker_)
+        self.failUnlessResultIsBOOL(NSTextView.rulerView_shouldRemoveMarker_)
+        self.failUnlessArgIsBOOL(NSTextView.setNeedsDisplayInRect_avoidAdditionalLayout_, 1)
+        self.failUnlessArgIsBOOL(NSTextView.drawInsertionPointInRect_color_turnedOn_, 2)
+        self.failUnlessArgIsOut(NSTextView.completionsForPartialWordRange_indexOfSelectedItem_, 1)
+        self.failUnlessArgIsBOOL(NSTextView.insertCompletion_forPartialWordRange_movement_isFinal_, 3)
+        self.failUnlessResultIsBOOL(NSTextView.writeSelectionToPasteboard_type_)
+        self.failUnlessResultIsBOOL(NSTextView.writeSelectionToPasteboard_types_)
+        self.failUnlessResultIsBOOL(NSTextView.readSelectionFromPasteboard_type_)
+        self.failUnlessResultIsBOOL(NSTextView.readSelectionFromPasteboard_)
+        self.failUnlessResultIsBOOL(NSTextView.dragSelectionWithEvent_offset_slideBack_)
+        self.failUnlessArgIsBOOL(NSTextView.dragSelectionWithEvent_offset_slideBack_, 2)
+        self.failUnlessArgIsBOOL(NSTextView.setSelectedRanges_affinity_stillSelecting_, 2)
+        self.failUnlessArgIsBOOL(NSTextView.setSelectedRange_affinity_stillSelecting_, 2)
+        self.failUnlessArgIsBOOL(NSTextView.updateInsertionPointStateAndRestartTimer_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.acceptsGlyphInfo)
+        self.failUnlessArgIsBOOL(NSTextView.setAcceptsGlyphInfo_, 0)
+        self.failUnlessArgIsBOOL(NSTextView.setRulerVisible_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.usesRuler)
+        self.failUnlessArgIsBOOL(NSTextView.setUsesRuler_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.isContinuousSpellCheckingEnabled)
+        self.failUnlessArgIsBOOL(NSTextView.setContinuousSpellCheckingEnabled_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.isGrammarCheckingEnabled)
+        self.failUnlessArgIsBOOL(NSTextView.setGrammarCheckingEnabled_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.shouldChangeTextInRanges_replacementStrings_)
+        self.failUnlessResultIsBOOL(NSTextView.shouldChangeTextInRange_replacementString_)
+        self.failUnlessResultIsBOOL(NSTextView.usesFindPanel)
+        self.failUnlessArgIsBOOL(NSTextView.setUsesFindPanel_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.allowsDocumentBackgroundColorChange)
+        self.failUnlessArgIsBOOL(NSTextView.setAllowsDocumentBackgroundColorChange_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.allowsUndo)
+        self.failUnlessArgIsBOOL(NSTextView.setAllowsUndo_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.allowsImageEditing)
+        self.failUnlessArgIsBOOL(NSTextView.setAllowsImageEditing_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.isEditable)
+        self.failUnlessArgIsBOOL(NSTextView.setEditable_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.isSelectable)
+        self.failUnlessArgIsBOOL(NSTextView.setSelectable_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.isRichText)
+        self.failUnlessArgIsBOOL(NSTextView.setRichText_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.importsGraphics)
+        self.failUnlessArgIsBOOL(NSTextView.setImportsGraphics_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.drawsBackground)
+        self.failUnlessArgIsBOOL(NSTextView.setDrawsBackground_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.isFieldEditor)
+        self.failUnlessArgIsBOOL(NSTextView.setFieldEditor_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.usesFontPanel)
+        self.failUnlessArgIsBOOL(NSTextView.setUsesFontPanel_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.isRulerVisible)
+        self.failUnlessResultIsBOOL(NSTextView.smartInsertDeleteEnabled)
+        self.failUnlessArgIsBOOL(NSTextView.setSmartInsertDeleteEnabled_, 0)
+
+        self.failUnlessArgIsOut(NSTextView.dragImageForSelectionWithEvent_origin_, 1)
+        self.failUnlessArgIsOut(NSTextView.smartInsertForString_replacingRange_beforeString_afterString_, 2)
+        self.failUnlessArgIsOut(NSTextView.smartInsertForString_replacingRange_beforeString_afterString_, 3)
+
+    @min_os_level('10.5')
+    def testMethods10_5(self):
+        self.failUnlessResultIsBOOL(NSTextView.displaysLinkToolTips)
+        self.failUnlessArgIsBOOL(NSTextView.setDisplaysLinkToolTips_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.isAutomaticQuoteSubstitutionEnabled)
+        self.failUnlessArgIsBOOL(NSTextView.setAutomaticQuoteSubstitutionEnabled_, 0)
+        self.failUnlessResultIsBOOL(NSTextView.isAutomaticLinkDetectionEnabled)
+        self.failUnlessArgIsBOOL(NSTextView.setAutomaticLinkDetectionEnabled_, 0)
+
+
+    def testProtocols(self):
+        self.failUnlessResultIsBOOL(TestNSTextViewHelper.textView_clickedOnLink_atIndex_)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_clickedOnLink_atIndex_, 2, objc._C_NSUInteger)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_clickedOnCell_inRect_atIndex_, 2, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_clickedOnCell_inRect_atIndex_, 3, objc._C_NSUInteger)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_doubleClickedOnCell_inRect_atIndex_, 2, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_doubleClickedOnCell_inRect_atIndex_, 3, objc._C_NSUInteger)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_draggedCell_inRect_event_atIndex_, 2, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_draggedCell_inRect_event_atIndex_, 4, objc._C_NSUInteger)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_writablePasteboardTypesForCell_atIndex_, 2, objc._C_NSUInteger)
+        self.failUnlessResultIsBOOL(TestNSTextViewHelper.textView_writeCell_atIndex_toPasteboard_type_)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_writeCell_atIndex_toPasteboard_type_, 2, objc._C_NSUInteger)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_willChangeSelectionFromCharacterRange_toCharacterRange_, 1, NSRange.__typestr__)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_willChangeSelectionFromCharacterRange_toCharacterRange_, 2, NSRange.__typestr__)
+        self.failUnlessResultIsBOOL(TestNSTextViewHelper.textView_shouldChangeTextInRanges_replacementStrings_)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_willDisplayToolTip_forCharacterAtIndex_, 2, objc._C_NSUInteger)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_completions_forPartialWordRange_indexOfSelectedItem_, 2, NSRange.__typestr__)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_completions_forPartialWordRange_indexOfSelectedItem_, 3, 'N^'+objc._C_NSInteger)
+        self.failUnlessResultIsBOOL(TestNSTextViewHelper.textView_shouldChangeTextInRange_replacementString_)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_shouldChangeTextInRange_replacementString_, 1, NSRange.__typestr__)
+        self.failUnlessResultIsBOOL(TestNSTextViewHelper.textView_doCommandBySelector_)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_doCommandBySelector_, 1, objc._C_SEL)
+        self.failUnlessResultIsBOOL(TestNSTextViewHelper.textView_clickedOnLink_)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_clickedOnCell_inRect_, 2, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_doubleClickedOnCell_inRect_, 2, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_draggedCell_inRect_event_, 2, NSRect.__typestr__)
+
+    @min_os_level('10.5')
+    def testProtocols10_5(self):
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_shouldSetSpellingState_range_, 1, objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_shouldSetSpellingState_range_, 2, NSRange.__typestr__)
+        self.failUnlessArgHasType(TestNSTextViewHelper.textView_menu_forEvent_atIndex_, 3, objc._C_NSUInteger)
 
 
 

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstokenfieldcell.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstokenfieldcell.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstokenfieldcell.py	Sun Mar 22 09:31:31 2009
@@ -2,14 +2,27 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSTokenFieldCellHelper (NSObject):
+    def tokenFieldCell_completionsForSubstring_indexOfToken_indexOfSelectedItem_(self, a, b, c, d): return 1
+    def tokenFieldCell_shouldAddObjects_atIndex_(self, a, b, c): return 1
+    def tokenFieldCell_writeRepresentedObjects_toPasteboard_(self, a, b, c): return 1
+    def tokenFieldCell_hasMenuForRepresentedObject_(self, a, b): return 1
+    def tokenFieldCell_styleForRepresentedObject_(self, a, b): return 1
+        
+
 class TestNSTokenFieldCell (TestCase):
     def testConstants(self):
         self.failUnlessEqual(NSDefaultTokenStyle, 0)
         self.failUnlessEqual(NSPlainTextTokenStyle, 1)
         self.failUnlessEqual(NSRoundedTokenStyle, 2)
 
-    def testMethods(self):
-        self.fail("- (NSArray *)tokenFieldCell:(NSTokenFieldCell *)tokenFieldCell completionsForSubstring:(NSString *)substring indexOfToken:(NSInteger)tokenIndex indexOfSelectedItem:(NSInteger *)selectedIndex;")
+    def testProtocols(self):
+        self.failUnlessArgHasType(TestNSTokenFieldCellHelper.tokenFieldCell_completionsForSubstring_indexOfToken_indexOfSelectedItem_, 2, objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSTokenFieldCellHelper.tokenFieldCell_completionsForSubstring_indexOfToken_indexOfSelectedItem_, 3, 'o^'+ objc._C_NSInteger)
+        self.failUnlessArgHasType(TestNSTokenFieldCellHelper.tokenFieldCell_shouldAddObjects_atIndex_, 2, objc._C_NSUInteger)
+        self.failUnlessResultIsBOOL(TestNSTokenFieldCellHelper.tokenFieldCell_writeRepresentedObjects_toPasteboard_)
+        self.failUnlessResultIsBOOL(TestNSTokenFieldCellHelper.tokenFieldCell_hasMenuForRepresentedObject_)
+        self.failUnlessResultHasType(TestNSTokenFieldCellHelper.tokenFieldCell_styleForRepresentedObject_, objc._C_NSUInteger)
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstoolbar.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstoolbar.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstoolbar.py	Sun Mar 22 09:31:31 2009
@@ -2,6 +2,9 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSToolbarHelper (NSObject):
+    def toolbar_itemForItemIdentifier_willBeInsertedIntoToolbar_(self, a, b, c): return 1
+
 class TestNSToolbar (TestCase):
     def testConstants(self):
         self.failUnlessEqual(NSToolbarDisplayModeDefault, 0)
@@ -16,5 +19,19 @@
         self.failUnlessIsInstance(NSToolbarWillAddItemNotification, unicode)
         self.failUnlessIsInstance(NSToolbarDidRemoveItemNotification, unicode)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSToolbar.isVisible)
+        self.failUnlessArgIsBOOL(NSToolbar.setVisible_, 0)
+        self.failUnlessResultIsBOOL(NSToolbar.customizationPaletteIsRunning)
+        self.failUnlessResultIsBOOL(NSToolbar.showsBaselineSeparator)
+        self.failUnlessArgIsBOOL(NSToolbar.setShowsBaselineSeparator_, 0)
+        self.failUnlessResultIsBOOL(NSToolbar.allowsUserCustomization)
+        self.failUnlessArgIsBOOL(NSToolbar.setAllowsUserCustomization_, 0)
+        self.failUnlessResultIsBOOL(NSToolbar.autosavesConfiguration)
+        self.failUnlessArgIsBOOL(NSToolbar.setAutosavesConfiguration_, 0)
+
+    def testProtocols(self):
+        self.failUnlessArgIsBOOL(TestNSToolbarHelper.toolbar_itemForItemIdentifier_willBeInsertedIntoToolbar_, 2)
+
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstoolbaritem.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstoolbaritem.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nstoolbaritem.py	Sun Mar 22 09:31:31 2009
@@ -2,6 +2,9 @@
 from PyObjCTools.TestSupport import *
 from AppKit import *
 
+class TestNSToolbarItemHelper (NSObject):
+    def validateToolbarItem_(self, a): return 
+
 class TestNSToolbarItem (TestCase):
     def testConstants(self):
         self.failUnlessEqual(NSToolbarItemVisibilityPriorityStandard, 0)
@@ -17,6 +20,16 @@
         self.failUnlessIsInstance(NSToolbarCustomizeToolbarItemIdentifier, unicode)
         self.failUnlessIsInstance(NSToolbarPrintItemIdentifier, unicode)
 
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSToolbarItem.isEnabled)
+        self.failUnlessArgIsBOOL(NSToolbarItem.setEnabled_, 0)
+        self.failUnlessResultIsBOOL(NSToolbarItem.autovalidates)
+        self.failUnlessArgIsBOOL(NSToolbarItem.setAutovalidates_, 0)
+        self.failUnlessResultIsBOOL(NSToolbarItem.allowsDuplicatesInToolbar_)
+
+    def testProtocols(self):
+        self.failUnlessResultIsBOOL(TestNSToolbarItemHelper.validateToolbarItem_)
+
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsview.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsview.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsview.py	Sun Mar 22 09:31:31 2009
@@ -3,6 +3,9 @@
 from AppKit import *
 import objc
 
+class TestNSViewHelper (NSObject):
+    def view_stringForToolTip_point_userData_(self, a, b, c, d): return 1
+
 class ObjCTestNSView_KnowPageRange (NSView):
     def knowsPageRange_(self, range):
         return  objc.YES, (1, 10)
@@ -50,14 +53,85 @@
 
 
     def testMethods(self):
-        self.fail("- (void)getRectsBeingDrawn:(const NSRect **)rects count:(NSInteger *)count;")
-        self.fail("- (void)sortSubviewsUsingFunction:(NSComparisonResult (*)(id, id, void *))compare context:(void *)context;")
-
-        self.fail("- (NSTrackingRectTag)addTrackingRect:(NSRect)aRect owner:(id)anObject userData:(void *)data assumeInside:(BOOL)flag;")
-        self.fail("- (NSToolTipTag)addToolTipRect:(NSRect)aRect owner:(id)anObject userData:(void *)data;")
-        self.fail("- (void)getRectsExposedDuringLiveResize:(NSRect[4])exposedRects count:(NSInteger *)count;")
-        self.fail("- (NSString *)view:(NSView *)view stringForToolTip:(NSToolTipTag)tag point:(NSPoint)point userData:(void *)data;")
-
+        self.failUnlessResultIsBOOL(NSView.isDescendantOf_)
+        self.failUnlessResultIsBOOL(NSView.isHidden)
+        self.failUnlessResultIsBOOL(NSView.isHiddenOrHasHiddenAncestor)
+        self.failUnlessArgIsBOOL(NSView.setHidden_, 0)
+        self.failUnlessResultIsBOOL(NSView.needsToDrawRect_)
+        self.failUnlessResultIsBOOL(NSView.wantsDefaultClipping)
+
+        self.failUnlessArgIsFunction(NSView.sortSubviewsUsingFunction_context_, 0, 'i@@@', False)
+        self.failUnlessArgHasType(NSView.sortSubviewsUsingFunction_context_, 1, '@')
+
+        self.failUnlessResultIsBOOL(NSView.postsFrameChangedNotifications)
+        self.failUnlessArgIsBOOL(NSView.setPostsFrameChangedNotifications_, 0)
+        self.failUnlessResultIsBOOL(NSView.autoresizesSubviews)
+        self.failUnlessArgIsBOOL(NSView.setAutoresizesSubviews_, 0)
+        self.failUnlessResultIsBOOL(NSView.isFlipped)
+        self.failUnlessResultIsBOOL(NSView.isRotatedFromBase)
+        self.failUnlessResultIsBOOL(NSView.isRotatedOrScaledFromBase)
+        self.failUnlessResultIsBOOL(NSView.isOpaque)
+        self.failUnlessResultIsBOOL(NSView.canDraw)
+        self.failUnlessArgIsBOOL(NSView.setNeedsDisplay_, 0)
+        self.failUnlessResultIsBOOL(NSView.needsDisplay)
+        self.failUnlessResultIsBOOL(NSView.lockFocusIfCanDraw)
+        self.failUnlessResultIsBOOL(NSView.lockFocusIfCanDrawInContext_)
+        self.failUnlessResultIsBOOL(NSView.scrollRectToVisible_)
+        self.failUnlessResultIsBOOL(NSView.autoscroll_)
+        self.failUnlessResultIsBOOL(NSView.mouse_inRect_)
+        self.failUnlessResultIsBOOL(NSView.performKeyEquivalent_)
+        self.failUnlessResultIsBOOL(NSView.acceptsFirstMouse_)
+        self.failUnlessResultIsBOOL(NSView.shouldDelayWindowOrderingForEvent_)
+        self.failUnlessResultIsBOOL(NSView.needsPanelToBecomeKey)
+        self.failUnlessResultIsBOOL(NSView.mouseDownCanMoveWindow)
+        self.failUnlessArgHasType(NSView.addTrackingRect_owner_userData_assumeInside_, 2, '^v')
+        self.failUnlessArgIsBOOL(NSView.addTrackingRect_owner_userData_assumeInside_, 3)
+        self.failUnlessResultIsBOOL(NSView.shouldDrawColor)
+        self.failUnlessResultIsBOOL(NSView.postsBoundsChangedNotifications)
+        self.failUnlessArgIsBOOL(NSView.setPostsBoundsChangedNotifications_, 0)
+        self.failUnlessResultIsBOOL(NSView.inLiveResize)
+        self.failUnlessResultIsBOOL(NSView.preservesContentDuringLiveResize)
+
+        self.failUnlessArgHasType(NSView.getRectsExposedDuringLiveResize_count_, 0, 'o^' + NSRect.__typestr__)
+        m = NSView.getRectsExposedDuringLiveResize_count_.__metadata__()['arguments'][2]
+        self.failUnlessEqual(m['c_array_of_fixed_length'], 4)
+        self.failUnlessArgIsOut(NSView.getRectsExposedDuringLiveResize_count_, 1)
+
+        self.failUnlessResultIsBOOL(NSView.performMnemonic_)
+        self.failUnlessResultIsBOOL(NSView.canBecomeKeyView)
+        self.failUnlessResultIsBOOL(NSView.knowsPageRange_)
+        self.failUnlessArgIsOut(NSView.adjustPageWidthNew_left_right_limit_, 0)
+        self.failUnlessArgIsOut(NSView.adjustPageHeightNew_top_bottom_limit_, 0)
+
+        self.failUnlessArgIsBOOL(NSView.dragImage_at_offset_event_pasteboard_source_slideBack_, 6)
+        self.failUnlessResultIsBOOL(NSView.dragFile_fromRect_slideBack_event_)
+        self.failUnlessArgIsBOOL(NSView.dragFile_fromRect_slideBack_event_, 2)
+        self.failUnlessResultIsBOOL(NSView.dragPromisedFilesOfTypes_fromRect_source_slideBack_event_)
+        self.failUnlessArgIsBOOL(NSView.dragPromisedFilesOfTypes_fromRect_source_slideBack_event_, 3)
+
+    @min_os_level('10.5')
+    def testMethods10_5(self):
+        self.failUnlessArgIsBOOL(NSView.setWantsLayer_, 0)
+        self.failUnlessResultIsBOOL(NSView.wantsLayer)
+        self.failUnlessResultIsBOOL(NSView.enterFullScreenMode_withOptions_)
+        self.failUnlessResultIsBOOL(NSView.isInFullScreenMode)
+
+
+    def testProtocol(self):
+        self.failUnlessArgHasType(TestNSViewHelper.view_stringForToolTip_point_userData_, 2, NSPoint.__typestr__)
+        self.failUnlessArgHasType(TestNSViewHelper.view_stringForToolTip_point_userData_, 3, '^v')
+
+
+    def testMissingTests(self):
+        v = NSView.alloc().init()
+        v.setNeedsDisplayInRect_(((0, 0), (50, 50)))
+        r = v.getRectsBeingDrawn_count_(None, None)
+        self.failUnlessIsInstance(r, tuple)
+        self.failUnlessEqual(len(r), 2)
+        self.failUnlessIsInstance(r[0], tuple)
+        self.failUnlessIsInstance(r[1], (int, long))
+        if r[1] != 0:
+            self.failUnlessIsInstance(r[0][0], NSRect)
 
 
 

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nswindow.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nswindow.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nswindow.py	Sun Mar 22 09:31:31 2009
@@ -1,6 +1,15 @@
-
 from PyObjCTools.TestSupport import *
 from AppKit import *
+from Quartz.CoreGraphics import *
+
+class TestNSWindowHelper (NSObject):
+    def windowShouldClose_(self, w): return 1
+    def windowWillResize_toSize_(self, w, a): return 1
+    def windowWillUseStandardFrame_defaultFrame_(self, w, a): return 1
+    def windowShouldZoom_toFrame_(self, w, a): return 1
+    def window_willPositionSheet_usingRect_(self, w, a, b): return 1
+    def window_shouldPopUpDocumentPathMenu_(self, w, a): return 1
+    def window_shouldDragDocumentWithEvent_from_withPasteboard_(self, w, a, b, c): return 1
 
 class TestNSWindow (TestCase):
     def testConstants(self):
@@ -32,7 +41,7 @@
         self.failUnlessEqual(NSWindowCollectionBehaviorMoveToActiveSpace, 1 << 1)
 
 
-        self.failUnlessEqual(NSDirectSelection = 0)
+        self.failUnlessEqual(NSDirectSelection, 0)
         self.failUnlessEqual(NSSelectingNext, 1)
         self.failUnlessEqual(NSSelectingPrevious, 2)
 
@@ -42,27 +51,25 @@
         self.failUnlessEqual(NSWindowToolbarButton, 3)
         self.failUnlessEqual(NSWindowDocumentIconButton, 4)
 
-        self.failUnlessIsEqual(NSWindowDidBecomeKeyNotification, unicode)
-        self.failUnlessIsEqual(NSWindowDidBecomeMainNotification, unicode)
-        self.failUnlessIsEqual(NSWindowDidChangeScreenNotification, unicode)
-        self.failUnlessIsEqual(NSWindowDidDeminiaturizeNotification, unicode)
-        self.failUnlessIsEqual(NSWindowDidExposeNotification, unicode)
-        self.failUnlessIsEqual(NSWindowDidMiniaturizeNotification, unicode)
-        self.failUnlessIsEqual(NSWindowDidMoveNotification, unicode)
-        self.failUnlessIsEqual(NSWindowDidResignKeyNotification, unicode)
-        self.failUnlessIsEqual(NSWindowDidResignMainNotification, unicode)
-        self.failUnlessIsEqual(NSWindowDidResizeNotification, unicode)
-        self.failUnlessIsEqual(NSWindowDidUpdateNotification, unicode)
-        self.failUnlessIsEqual(NSWindowWillCloseNotification, unicode)
-        self.failUnlessIsEqual(NSWindowWillMiniaturizeNotification, unicode)
-        self.failUnlessIsEqual(NSWindowWillMoveNotification, unicode)
-        self.failUnlessIsEqual(NSWindowWillBeginSheetNotification, unicode)
-        self.failUnlessIsEqual(NSWindowDidEndSheetNotification, unicode)
-        self.failUnlessIsEqual(NSWindowDidChangeScreenProfileNotification, unicode)
+        self.failUnlessIsInstance(NSWindowDidBecomeKeyNotification, unicode)
+        self.failUnlessIsInstance(NSWindowDidBecomeMainNotification, unicode)
+        self.failUnlessIsInstance(NSWindowDidChangeScreenNotification, unicode)
+        self.failUnlessIsInstance(NSWindowDidDeminiaturizeNotification, unicode)
+        self.failUnlessIsInstance(NSWindowDidExposeNotification, unicode)
+        self.failUnlessIsInstance(NSWindowDidMiniaturizeNotification, unicode)
+        self.failUnlessIsInstance(NSWindowDidMoveNotification, unicode)
+        self.failUnlessIsInstance(NSWindowDidResignKeyNotification, unicode)
+        self.failUnlessIsInstance(NSWindowDidResignMainNotification, unicode)
+        self.failUnlessIsInstance(NSWindowDidResizeNotification, unicode)
+        self.failUnlessIsInstance(NSWindowDidUpdateNotification, unicode)
+        self.failUnlessIsInstance(NSWindowWillCloseNotification, unicode)
+        self.failUnlessIsInstance(NSWindowWillMiniaturizeNotification, unicode)
+        self.failUnlessIsInstance(NSWindowWillMoveNotification, unicode)
+        self.failUnlessIsInstance(NSWindowWillBeginSheetNotification, unicode)
+        self.failUnlessIsInstance(NSWindowDidEndSheetNotification, unicode)
+        self.failUnlessIsInstance(NSWindowDidChangeScreenProfileNotification, unicode)
 
     def testMagicConstants(self):
-        # FIXME: The C code for kCGNormalWindowLevel and friends expands
-        # into a function call.
         self.failUnlessEqual(NSNormalWindowLevel, kCGNormalWindowLevel)
         self.failUnlessEqual(NSFloatingWindowLevel, kCGFloatingWindowLevel)
         self.failUnlessEqual(NSSubmenuWindowLevel, kCGTornOffMenuWindowLevel)
@@ -75,9 +82,96 @@
         self.failUnlessEqual(NSScreenSaverWindowLevel, kCGScreenSaverWindowLevel)
 
     def testMethods(self):
-        self.fail("- (NSWindow *)initWithWindowRef:(void * /* WindowRef */)windowRef;")
-        self.fail("- (void * /* WindowRef */)windowRef;")
-
+        self.failUnlessArgIsBOOL(NSWindow.initWithContentRect_styleMask_backing_defer_, 3)
+        self.failUnlessArgIsBOOL(NSWindow.initWithContentRect_styleMask_backing_defer_screen_, 3)
+        self.failUnlessArgIsBOOL(NSWindow.setExcludedFromWindowsMenu_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.isExcludedFromWindowsMenu)
+        self.failUnlessArgIsBOOL(NSWindow.fieldEditor_forObject_, 0)
+        self.failUnlessArgIsBOOL(NSWindow.setFrame_display_, 1)
+        self.failUnlessArgIsBOOL(NSWindow.setFrame_display_animate_, 1)
+        self.failUnlessArgIsBOOL(NSWindow.setFrame_display_animate_, 2)
+        self.failUnlessArgIsBOOL(NSWindow.setShowsResizeIndicator_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.showsResizeIndicator)
+        self.failUnlessArgIsBOOL(NSWindow.useOptimizedDrawing_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.isFlushWindowDisabled)
+        self.failUnlessResultIsBOOL(NSWindow.viewsNeedDisplay)
+        self.failUnlessArgIsBOOL(NSWindow.setViewsNeedDisplay_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.isAutodisplay)
+        self.failUnlessArgIsBOOL(NSWindow.setAutodisplay_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.preservesContentDuringLiveResize)
+        self.failUnlessArgIsBOOL(NSWindow.setPreservesContentDuringLiveResize_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.makeFirstResponder_)
+        self.failUnlessArgIsBOOL(NSWindow.setReleasedWhenClosed_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.isReleasedWhenClosed)
+        self.failUnlessResultIsBOOL(NSWindow.isZoomed)
+        self.failUnlessResultIsBOOL(NSWindow.isMiniaturized)
+        self.failUnlessResultIsBOOL(NSWindow.tryToPerform_with_)
+        self.failUnlessResultIsBOOL(NSWindow.isMovableByWindowBackground)
+        self.failUnlessArgIsBOOL(NSWindow.setMovableByWindowBackground_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.hidesOnDeactivate)
+        self.failUnlessArgIsBOOL(NSWindow.setHidesOnDeactivate_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.canHide)
+        self.failUnlessArgIsBOOL(NSWindow.setCanHide_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.isDocumentEdited)
+        self.failUnlessArgIsBOOL(NSWindow.setDocumentEdited_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.isDocumentEdited)
+        self.failUnlessResultIsBOOL(NSWindow.isVisible)
+        self.failUnlessResultIsBOOL(NSWindow.isKeyWindow)
+        self.failUnlessResultIsBOOL(NSWindow.isMainWindow)
+        self.failUnlessResultIsBOOL(NSWindow.canBecomeKeyWindow)
+        self.failUnlessResultIsBOOL(NSWindow.canBecomeMainWindow)
+        self.failUnlessResultIsBOOL(NSWindow.worksWhenModal)
+        self.failUnlessResultIsBOOL(NSWindow.isOneShot)
+        self.failUnlessArgIsBOOL(NSWindow.setOneShot_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.areCursorRectsEnabled)
+        self.failUnlessArgIsBOOL(NSWindow.setAllowsToolTipsWhenApplicationIsInactive_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.allowsToolTipsWhenApplicationIsInactive)
+        self.failUnlessArgIsBOOL(NSWindow.setDynamicDepthLimit_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.hasDynamicDepthLimit)
+        self.failUnlessArgIsBOOL(NSWindow.setHasShadow_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.hasShadow)
+        self.failUnlessResultIsBOOL(NSWindow.canStoreColor)
+        self.failUnlessArgIsBOOL(NSWindow.setOpaque_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.isOpaque)
+        self.failUnlessArgIsBOOL(NSWindow.setDisplaysWhenScreenProfileChanges_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.displaysWhenScreenProfileChanges)
+        self.failUnlessResultIsBOOL(NSWindow.setFrameUsingName_force_)
+        self.failUnlessArgIsBOOL(NSWindow.setFrameUsingName_force_, 1)
+        self.failUnlessResultIsBOOL(NSWindow.setFrameUsingName_)
+        self.failUnlessResultIsBOOL(NSWindow.setFrameAutosaveName_)
+        self.failUnlessArgIsBOOL(NSWindow.postEvent_atStart_, 1)
+        self.failUnlessResultIsBOOL(NSWindow.acceptsMouseMovedEvents)
+        self.failUnlessArgIsBOOL(NSWindow.setIgnoresMouseEvents_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.ignoresMouseEvents)
+        self.failUnlessResultIsBOOL(NSWindow.isSheet)
+        self.failUnlessArgIsBOOL(NSWindow.setAutorecalculatesKeyViewLoop_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.autorecalculatesKeyViewLoop)
+        self.failUnlessArgIsBOOL(NSWindow.setShowsToolbarButton_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.showsToolbarButton)
+        self.failUnlessArgIsBOOL(NSWindow.dragImage_at_offset_event_pasteboard_source_slideBack_, 6)
+
+    @min_os_level('10.5')
+    def testMethods10_5(self):
+        self.failUnlessResultIsBOOL(NSWindow.autorecalculatesContentBorderThicknessForEdge_)
+        self.failUnlessArgIsBOOL(NSWindow.setAutorecalculatesContentBorderThickness_forEdge_, 0)
+        self.failUnlessArgIsBOOL(NSWindow.setCanBecomeVisibleWithoutLogin_, 0)
+        self.failUnlessResultIsBOOL(NSWindow.canBecomeVisibleWithoutLogin)
+        self.failUnlessResultIsBOOL(NSWindow.canBeVisibleOnAllSpaces)
+        self.failUnlessArgIsBOOL(NSWindow.setCanBeVisibleOnAllSpaces_, 0)
+
+    def testProtocols(self):
+        self.failUnlessResultIsBOOL(TestNSWindowHelper.windowShouldClose_)
+        self.failUnlessResultHasType(TestNSWindowHelper.windowWillResize_toSize_, NSSize.__typestr__)
+        self.failUnlessArgHasType(TestNSWindowHelper.windowWillResize_toSize_, 1, NSSize.__typestr__)
+        self.failUnlessResultHasType(TestNSWindowHelper.windowWillUseStandardFrame_defaultFrame_, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSWindowHelper.windowWillUseStandardFrame_defaultFrame_, 1, NSRect.__typestr__)
+        self.failUnlessResultIsBOOL(TestNSWindowHelper.windowShouldZoom_toFrame_)
+        self.failUnlessArgHasType(TestNSWindowHelper.windowShouldZoom_toFrame_, 1, NSRect.__typestr__)
+        self.failUnlessResultHasType(TestNSWindowHelper.window_willPositionSheet_usingRect_, NSRect.__typestr__)
+        self.failUnlessArgHasType(TestNSWindowHelper.window_willPositionSheet_usingRect_, 2, NSRect.__typestr__)
+        self.failUnlessResultIsBOOL(TestNSWindowHelper.window_shouldPopUpDocumentPathMenu_)
+        self.failUnlessResultIsBOOL(TestNSWindowHelper.window_shouldDragDocumentWithEvent_from_withPasteboard_)
+        self.failUnlessArgHasType(TestNSWindowHelper.window_shouldDragDocumentWithEvent_from_withPasteboard_, 2, NSPoint.__typestr__)
 
 if __name__ == "__main__":
     main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsworkspace.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsworkspace.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsworkspace.py	Sun Mar 22 09:31:31 2009
@@ -2,8 +2,7 @@
 import objc
 import os
 
-from objc import YES, NO
-from AppKit import NSWorkspace
+from AppKit import *
 
 
 class TestNSWorkspace(TestCase):
@@ -19,24 +18,8 @@
         self.assert_(res[1] == u'/System/Library/CoreServices/Finder.app')
         self.assert_(res[2] == u'')
 
-    def testGetFileSystemInfo(self):
-        self.fail('- (BOOL)getFileSystemInfoForPath:(NSString *)fullPath isRemovable:(BOOL *)removableFlag isWritable:(BOOL *)writableFlag isUnmountable:(BOOL *)unmountableFlag description:(NSString **)description type:(NSString **)fileSystemType;')
-
-    def testPerformOperation(self):
-        self.fail('- (BOOL)performFileOperation:(NSString *)operation source:(NSString *)source destination:(NSString *)destination files:(NSArray *)files tag:(NSInteger *)tag;')
-
-    def testLaunchApp(self):
-        self.fail('- (BOOL)launchAppWithBundleIdentifier:(NSString *)bundleIdentifier options:(NSWorkspaceLaunchOptions)options additionalEventParamDescriptor:(NSAppleEventDescriptor *)descriptor launchIdentifier:(NSNumber **)identifier;')
-
-    def testOpenURLs(self):
-        self.fail('- (BOOL)openURLs:(NSArray *)urls withAppBundleIdentifier:(NSString *)bundleIdentifier options:(NSWorkspaceLaunchOptions)options additionalEventParamDescriptor:(NSAppleEventDescriptor *)descriptor launchIdentifiers:(NSArray **)identifiers;')
-
-    def testTypeOfFile(self):
-        self.fail('- (NSString *)typeOfFile:(NSString *)absoluteFilePath error:(NSError **)outError;')
-
-
     def testConstants(self):
-        self.assertEquals(NSWorkspaceLaunchAndPrint, 0x00000002)
+        self.assertEquals(NSWorkspaceLaunchAndPrint, 2)
         self.assertEquals(NSWorkspaceLaunchInhibitingBackgroundOnly, 0x00000080)
         self.assertEquals(NSWorkspaceLaunchWithoutAddingToRecents, 0x00000100)
         self.assertEquals(NSWorkspaceLaunchWithoutActivation, 0x00000200)
@@ -80,7 +63,42 @@
         self.failUnless(isinstance(NSWorkspaceRecycleOperation, unicode))
         self.failUnless(isinstance(NSWorkspaceDuplicateOperation, unicode))
 
-
+    def testMethods(self):
+        self.failUnlessResultIsBOOL(NSWorkspace.openFile_)
+        self.failUnlessResultIsBOOL(NSWorkspace.openFile_withApplication_)
+        self.failUnlessResultIsBOOL(NSWorkspace.openFile_withApplication_andDeactivate_)
+        self.failUnlessArgIsBOOL(NSWorkspace.openFile_withApplication_andDeactivate_, 2)
+        self.failUnlessResultIsBOOL(NSWorkspace.openTempFile_)
+        self.failUnlessResultIsBOOL(NSWorkspace.openFile_fromImage_at_inView_)
+        self.failUnlessResultIsBOOL(NSWorkspace.openURL_)
+        self.failUnlessResultIsBOOL(NSWorkspace.launchApplication_)
+        self.failUnlessResultIsBOOL(NSWorkspace.launchApplication_showIcon_autolaunch_)
+        self.failUnlessArgIsBOOL(NSWorkspace.launchApplication_showIcon_autolaunch_, 1)
+        self.failUnlessArgIsBOOL(NSWorkspace.launchApplication_showIcon_autolaunch_, 2)
+        self.failUnlessResultIsBOOL(NSWorkspace.selectFile_inFileViewerRootedAtPath_)
+        self.failUnlessResultIsBOOL(NSWorkspace.fileSystemChanged)
+        self.failUnlessResultIsBOOL(NSWorkspace.userDefaultsChanged)
+        self.failUnlessResultIsBOOL(NSWorkspace.getInfoForFile_application_type_)
+        self.failUnlessArgIsOut(NSWorkspace.getInfoForFile_application_type_, 1)
+        self.failUnlessArgIsOut(NSWorkspace.getInfoForFile_application_type_, 2)
+        self.failUnlessResultIsBOOL(NSWorkspace.isFilePackageAtPath_)
+        self.failUnlessResultIsBOOL(NSWorkspace.setIcon_forFile_options_)
+        self.failUnlessResultIsBOOL(NSWorkspace.getFileSystemInfoForPath_isRemovable_isWritable_isUnmountable_description_type_)
+        self.failUnlessArgHasType(NSWorkspace.getFileSystemInfoForPath_isRemovable_isWritable_isUnmountable_description_type_, 1, 'o^' + objc._C_NSBOOL)
+        self.failUnlessArgHasType(NSWorkspace.getFileSystemInfoForPath_isRemovable_isWritable_isUnmountable_description_type_, 2, 'o^' + objc._C_NSBOOL)
+        self.failUnlessArgHasType(NSWorkspace.getFileSystemInfoForPath_isRemovable_isWritable_isUnmountable_description_type_, 3, 'o^' + objc._C_NSBOOL)
+        self.failUnlessArgIsOut(NSWorkspace.getFileSystemInfoForPath_isRemovable_isWritable_isUnmountable_description_type_, 4)
+        self.failUnlessArgIsOut(NSWorkspace.getFileSystemInfoForPath_isRemovable_isWritable_isUnmountable_description_type_, 5)
+        self.failUnlessResultIsBOOL(NSWorkspace.performFileOperation_source_destination_files_tag_)
+        self.failUnlessArgIsOut(NSWorkspace.performFileOperation_source_destination_files_tag_, 4)
+        self.failUnlessResultIsBOOL(NSWorkspace.unmountAndEjectDeviceAtPath_)
+        self.failUnlessResultIsBOOL(NSWorkspace.launchAppWithBundleIdentifier_options_additionalEventParamDescriptor_launchIdentifier_)
+        self.failUnlessArgIsOut(NSWorkspace.launchAppWithBundleIdentifier_options_additionalEventParamDescriptor_launchIdentifier_, 3)
+        self.failUnlessResultIsBOOL(NSWorkspace.openURLs_withAppBundleIdentifier_options_additionalEventParamDescriptor_launchIdentifiers_)
+        self.failUnlessArgIsOut(NSWorkspace.openURLs_withAppBundleIdentifier_options_additionalEventParamDescriptor_launchIdentifiers_, 4)
+        self.failUnlessArgIsOut(NSWorkspace.typeOfFile_error_, 1)
+        self.failUnlessResultIsBOOL(NSWorkspace.filenameExtension_isValidForType_)
+        self.failUnlessResultIsBOOL(NSWorkspace.type_conformsToType_)
 
 
 if __name__ == '__main__':

------------------------------------------------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.