aboutsummaryrefslogtreecommitdiff
path: root/UnitTesting/GTMUnitTestingUtilities.h
diff options
context:
space:
mode:
authorGravatar thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2008-12-12 15:24:34 +0000
committerGravatar thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2008-12-12 15:24:34 +0000
commit2e8516354aacef064d01425808da06d2cdcb4791 (patch)
tree9da4758828930280d32f18d54ece7a249df742c7 /UnitTesting/GTMUnitTestingUtilities.h
parent9f64d056dd70f2f938ac6f5adb8e75b650dc2e1a (diff)
- GTMStackTrace works on 10.5+ (and iPhone) using NSThread to build the call stack.
- Added GTM_EXTERN that makes it easier to mix and match objc and objc++ code. - Added GTMHotKeysTextField for display and editing of hot key settings. - Added GTMCarbonEvent for dealing with Carbon Events and HotKeys in a ObjC like way. - Backported the Atomic Barrier Swap functions for Objective C back to Tiger. - Added a variety of new functions to GTMUnitTestingUtilities for checking if the screensaver is in the way, waiting on user events, and generating keystrokes. - If you are using any Carbon routines that log (DebugStr, AssertMacros.h) and use GTMUnitTestDevLog, the log routines now go through _GTMDevLog so that they can be caught in GTMUnitTestDevLog and verified like any _GTMDevLog calls you may make. For an example of this in action see GTMCarbonEventTest.m. - Added GTMFileSystemKQueue. It provides a simple wrapper for kqueuing something in the file system and tracking changes to it. - RunIPhoneUnitTest.sh now cleans up the user home directory and creates a documents directory within it, used when requesting a NSDocumentDirectory. - Added GTMNSFileManager+Carbon which contains routines for path <-> Alias conversion and path <-> FSRef conversion. - Added GTMNSArray+Merge for merging one array into another with or without a custom merging function, returning a new array with the merged contents.
Diffstat (limited to 'UnitTesting/GTMUnitTestingUtilities.h')
-rw-r--r--UnitTesting/GTMUnitTestingUtilities.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/UnitTesting/GTMUnitTestingUtilities.h b/UnitTesting/GTMUnitTestingUtilities.h
index eca0825..128a4c4 100644
--- a/UnitTesting/GTMUnitTestingUtilities.h
+++ b/UnitTesting/GTMUnitTestingUtilities.h
@@ -39,5 +39,53 @@
// }
+ (void)setUpForUIUnitTestsIfBeingTested;
+// Check if the screen saver is running. Some unit tests don't work when
+// the screen saver is active.
++ (BOOL)isScreenSaverActive;
+
+// Allows for posting either a keydown or a keyup with all the modifiers being
+// applied. Passing a 'g' with NSKeyDown and NSShiftKeyMask
+// generates two events (a shift key key down and a 'g' key keydown). Make sure
+// to balance this with a keyup, or things could get confused. Events get posted
+// using the CGRemoteOperation events which means that it gets posted in the
+// system event queue. Thus you can affect other applications if your app isn't
+// the active app (or in some cases, such as hotkeys, even if it is).
+// Arguments:
+// type - Event type. Currently accepts NSKeyDown and NSKeyUp
+// keyChar - character on the keyboard to type. Make sure it is lower case.
+// If you need upper case, pass in the NSShiftKeyMask in the
+// modifiers. i.e. to generate "G" pass in 'g' and NSShiftKeyMask.
+// to generate "+" pass in '=' and NSShiftKeyMask.
+// cocoaModifiers - an int made up of bit masks. Handles NSAlphaShiftKeyMask,
+// NSShiftKeyMask, NSControlKeyMask, NSAlternateKeyMask, and
+// NSCommandKeyMask
++ (void)postKeyEvent:(NSEventType)type
+ character:(CGCharCode)keyChar
+ modifiers:(UInt32)cocoaModifiers;
+
+// Syntactic sugar for posting a keydown immediately followed by a key up event
+// which is often what you really want.
+// Arguments:
+// keyChar - character on the keyboard to type. Make sure it is lower case.
+// If you need upper case, pass in the NSShiftKeyMask in the
+// modifiers. i.e. to generate "G" pass in 'g' and NSShiftKeyMask.
+// to generate "+" pass in '=' and NSShiftKeyMask.
+// cocoaModifiers - an int made up of bit masks. Handles NSAlphaShiftKeyMask,
+// NSShiftKeyMask, NSControlKeyMask, NSAlternateKeyMask, and
+// NSCommandKeyMask
++ (void)postTypeCharacterEvent:(CGCharCode)keyChar
+ modifiers:(UInt32)cocoaModifiers;
+
+// Runs the event loop in NSDefaultRunLoopMode until date. Can be useful for
+// testing user interface responses in a controlled timed event loop. For most
+// uses using:
+// [[NSRunLoop currentRunLoop] runUntilDate:date]
+// will do. The only reason you would want to use this is if you were
+// using the postKeyEvent:character:modifiers to send events and wanted to
+// receive user input.
+// Arguments:
+// date - end of execution time
++ (void)runUntilDate:(NSDate*)date;
+
@end