Permalink
Browse files

Updating documentation for Doxygen

  • Loading branch information...
1 parent ffb5172 commit f6265839fdf455b5af9a92209f73a2e5df6e3547 @gabriel gabriel committed Oct 22, 2010
Showing with 1,132 additions and 806 deletions.
  1. +2 −1 .gitignore
  2. +15 −6 Classes/GHAsyncTestCase.h
  3. +5 −1 Classes/GHTest/GHTest+JUnitXML.h
  4. +5 −1 Classes/GHTest/GHTest+JUnitXML.m
  5. +4 −1 Classes/GHTest/GHTest.h
  6. +5 −1 Classes/GHTest/GHTest.m
  7. +5 −1 Classes/GHTest/GHTestGroup+JUnitXML.h
  8. +5 −1 Classes/GHTest/GHTestGroup+JUnitXML.m
  9. +4 −0 Classes/GHTest/GHTestGroup.h
  10. +4 −0 Classes/GHTest/GHTestGroup.m
  11. +5 −1 Classes/GHTest/GHTestOperation.h
  12. +3 −0 Classes/GHTest/GHTestOperation.m
  13. +3 −0 Classes/GHTest/GHTestRunner.h
  14. +4 −0 Classes/GHTest/GHTestRunner.m
  15. +4 −0 Classes/GHTest/GHTestSuite.h
  16. +4 −0 Classes/GHTest/GHTestSuite.m
  17. +4 −0 Classes/GHTest/GHTesting.h
  18. +4 −0 Classes/GHTest/GHTesting.m
  19. +6 −2 Classes/GHTest/NSException+GHTestFailureExceptions.h
  20. +7 −3 Classes/GHTest/NSException+GHTestFailureExceptions.m
  21. +5 −1 Classes/GHTest/NSValue+GHValueFormatter.h
  22. +5 −1 Classes/GHTest/NSValue+GHValueFormatter.m
  23. +7 −2 Classes/GHTestCase.h
  24. +220 −226 Classes/GHTestMacros.h
  25. +525 −1 Classes/GHUnit.h
  26. +4 −0 Classes/Mock/GHMockNSHTTPURLResponse.h
  27. +4 −0 Classes/Mock/GHMockNSHTTPURLResponse.m
  28. +11 −0 Classes/Mock/GHMockNSURLConnection.h
  29. +4 −0 Classes/Mock/GHMockNSURLConnection.m
  30. +5 −1 Classes/Mock/GHNSLocale+Mock.h
  31. +5 −1 Classes/Mock/GHNSLocale+Mock.m
  32. +5 −1 Classes/Mock/GHUNSObject+Swizzle.h
  33. +6 −2 Classes/Mock/GHUNSObject+Swizzle.m
  34. +5 −1 Classes/SharedUI/GHTestViewModel.h
  35. +5 −1 Classes/SharedUI/GHTestViewModel.m
  36. BIN Documentation/GHUnit-0.4.18.png
  37. BIN Documentation/GHUnit-IPhone-0.4.18.png
  38. +193 −75 Doxyfile
  39. +0 −48 HUDSON-HOWTO.md
  40. +16 −0 Makefile
  41. +0 −4 Project-IPhone/GHUnitIPhone.xcodeproj/project.pbxproj
  42. +0 −3 Project/Makefile
  43. +2 −394 README.md
  44. +0 −25 Tests/GHTestMacros.m
  45. +7 −0 Tests/GHTestMacrosTest.m
View
3 .gitignore
@@ -4,7 +4,8 @@ build
*.pbxuser
*.perspectivev3
.DS_Store
-Documentation
+Documentation/html
+Documentation/GHUnit.docset.tgz
*.tm_build_errors
*.swp
*~.nib
View
21 Classes/GHAsyncTestCase.h
@@ -31,10 +31,10 @@
// Some default statuses to use; Or define and use your own
enum {
- kGHUnitWaitStatusUnknown = 0,
- kGHUnitWaitStatusSuccess,
- kGHUnitWaitStatusFailure,
- kGHUnitWaitStatusCancelled
+ kGHUnitWaitStatusUnknown = 0, //!< Unknown wait status
+ kGHUnitWaitStatusSuccess, //!< Wait status success
+ kGHUnitWaitStatusFailure, //!< Wait status failure
+ kGHUnitWaitStatusCancelled //!< Wait status cancelled
};
/*!
@@ -46,6 +46,12 @@ enum {
Be sure to call prepare before the asynchronous method (otherwise an exception will raise).
@code
+
+ @interface MyAsyncTest : GHAsyncTestCase { }
+ @end
+
+ @implementation MyAsyncTest
+
- (void)testSuccess {
[self prepare];
@@ -61,6 +67,8 @@ enum {
// To ignore the check, forSelector can be NULL.
[self notify:kGHUnitWaitStatusSuccess forSelector:@selector(testSuccess)];
}
+
+ @end
@endcode
*/
@interface GHAsyncTestCase : GHTestCase {
@@ -88,7 +96,6 @@ enum {
/*!
Prepare and specify the selector we will use in notify.
-
@param selector
*/
- (void)prepare:(SEL)selector;
@@ -112,7 +119,9 @@ enum {
*/
- (void)waitForStatus:(NSInteger)status timeout:(NSTimeInterval)timeout;
-// Deprecated
+/*!
+ @deprecated
+ */
- (void)waitFor:(NSInteger)status timeout:(NSTimeInterval)timeout;
/*!
View
6 Classes/GHTest/GHTest+JUnitXML.h
@@ -27,9 +27,11 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import "GHTest.h"
-@interface GHTest (JUnitXML)
+@interface GHTest(JUnitXML)
/*!
Return test results in JUnit XML format for external parsing use
@@ -38,3 +40,5 @@
- (NSString *)JUnitXML;
@end
+
+//! @endcond
View
6 Classes/GHTest/GHTest+JUnitXML.m
@@ -30,7 +30,9 @@
#import "GHTest+JUnitXML.h"
#import "GHTesting.h"
-@implementation GHTest (JUnitXML)
+//! @cond DEV
+
+@implementation GHTest(JUnitXML)
- (NSString *)JUnitXML {
return [NSString stringWithFormat:
@@ -41,3 +43,5 @@ - (NSString *)JUnitXML {
}
@end
+
+//! @endcond
View
5 Classes/GHTest/GHTest.h
@@ -1,6 +1,6 @@
//
// GHTest.h
-// GHKit
+// GHUnit
//
// Created by Gabriel Handford on 1/18/09.
// Copyright 2009. All rights reserved.
@@ -27,6 +27,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
/*!
Test status.
*/
@@ -179,3 +181,4 @@ extern NSString *NSStringFromGHTestStats(GHTestStats stats);
@end
+//! @endcond
View
6 Classes/GHTest/GHTest.m
@@ -1,6 +1,6 @@
//
// GHTest.m
-// GHKit
+// GHUnit
//
// Created by Gabriel Handford on 1/18/09.
// Copyright 2009. All rights reserved.
@@ -27,6 +27,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import "GHTest.h"
#import "GHTest+JUnitXML.h"
@@ -270,3 +272,5 @@ - (id)copyWithZone:(NSZone *)zone {
}
@end
+
+//! @endcond
View
6 Classes/GHTest/GHTestGroup+JUnitXML.h
@@ -27,12 +27,16 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import "GHTestGroup.h"
-@interface GHTestGroup (JUnitXML)
+@interface GHTestGroup(JUnitXML)
- (NSString *)JUnitXML;
- (BOOL)writeJUnitXMLAtPath:(NSString *)documentsPath error:(NSError **)error;
@end
+
+//! @endcond
View
6 Classes/GHTest/GHTestGroup+JUnitXML.m
@@ -27,10 +27,12 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import "GHTestGroup+JUnitXML.h"
-@implementation GHTestGroup (JUnitXML)
+@implementation GHTestGroup(JUnitXML)
- (BOOL)writeJUnitXMLAtPath:(NSString *)path error:(NSError **)error {
if (self.stats.testCount > 0) {
@@ -58,3 +60,5 @@ - (NSString *)JUnitXML {
}
@end
+
+//! @endcond
View
4 Classes/GHTest/GHTestGroup.h
@@ -26,6 +26,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import "GHTest.h"
#import "GHTestCase.h"
@@ -149,3 +151,5 @@
- (void)runInOperationQueue:(NSOperationQueue *)operationQueue options:(GHTestOptions)options;
@end
+
+//! @endcond
View
4 Classes/GHTest/GHTestGroup.m
@@ -26,6 +26,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import "GHTestGroup.h"
#import "GHTestCase.h"
#import "GHTestOperation.h"
@@ -385,3 +387,5 @@ - (id)copyWithZone:(NSZone *)zone {
}
@end
+
+//! @endcond
View
6 Classes/GHTest/GHTestOperation.h
@@ -27,6 +27,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import "GHTest.h"
/*!
@@ -39,4 +41,6 @@
- (id)initWithTest:(id<GHTest>)test options:(GHTestOptions)options;
-@end
+@end
+
+//! @endcond
View
3 Classes/GHTest/GHTestOperation.m
@@ -29,6 +29,7 @@
#import "GHTestOperation.h"
+//! @cond DEV
@implementation GHTestOperation
@@ -58,3 +59,5 @@ - (void)main {
}
@end
+
+//! @endcond
View
3 Classes/GHTest/GHTestRunner.h
@@ -26,6 +26,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
//
// Portions of this file fall under the following license, marked with:
// GTM_BEGIN : GTM_END
@@ -156,4 +158,5 @@
@end
+//! @endcond
View
4 Classes/GHTest/GHTestRunner.m
@@ -25,6 +25,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
//
// Portions of this file fall under the following license, marked with:
// GTM_BEGIN : GTM_END
@@ -282,3 +284,5 @@ - (void)_notifyFinished {
}
@end
+
+//! @endcond
View
4 Classes/GHTest/GHTestSuite.h
@@ -27,6 +27,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import "GHTestGroup.h"
/*!
@@ -112,3 +114,5 @@ extern NSString *GHUnitTest;
- (BOOL)writeJUnitXML:(NSError **)error;
@end
+
+//! @endcond
View
4 Classes/GHTest/GHTestSuite.m
@@ -27,6 +27,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import "GHTestSuite.h"
#import "GHTesting.h"
@@ -161,3 +163,5 @@ - (BOOL)writeJUnitXML:(NSError **)error {
}
@end
+
+//! @endcond
View
4 Classes/GHTest/GHTesting.h
@@ -27,6 +27,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
//
// Portions of this file fall under the following license, marked with:
// GTM_BEGIN : GTM_END
@@ -142,3 +144,5 @@ BOOL isTestFixtureOfClass(Class aClass, Class testCaseClass);
@protocol GHSenTestCase
- (void)raiseAfterFailure;
@end
+
+//! @endcond
View
4 Classes/GHTest/GHTesting.m
@@ -27,6 +27,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
//
// Portions of this file fall under the following license, marked with:
// GTM_BEGIN : GTM_END
@@ -334,3 +336,5 @@ + (BOOL)runTestOrRaiseWithTarget:(id)target selector:(SEL)selector exception:(NS
// GTM_END
@end
+
+//! @endcond
View
8 Classes/GHTest/NSException+GHTestFailureExceptions.h
@@ -26,6 +26,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
//
// Portions of this file fall under the following license, marked with:
// GTM_BEGIN : GTM_END
@@ -54,7 +56,7 @@ extern NSString *const GHTestFailureException;
#import <Foundation/Foundation.h>
-@interface NSException (GHUTestFailureExceptions)
+@interface NSException(GHUTestFailureExceptions)
+ (NSException *)ghu_failureInFile:(NSString *)filename
atLine:(int)lineNumber
withDescription:(NSString *)formatString, ...;
@@ -85,4 +87,6 @@ extern NSString *const GHTestFailureException;
withDescription:(NSString *)formatString, ...;
@end
-// GTM_END
+// GTM_END
+
+//! @endcond
View
10 Classes/GHTest/NSException+GHTestFailureExceptions.m
@@ -26,6 +26,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
//
// Portions of this file fall under the following license, marked with:
// GTM_BEGIN : GTM_END
@@ -56,13 +58,13 @@
NSString *const GHTestLineNumberKey = @"GHTestLineNumberKey";
NSString *const GHTestFailureException = @"GHTestFailureException";
-@interface NSException (GHTestFailureExceptionsPrivateAdditions)
+@interface NSException(GHTestFailureExceptionsPrivateAdditions)
+ (NSException *)ghu_failureInFile:(NSString *)filename
atLine:(int)lineNumber
reason:(NSString *)reason;
@end
-@implementation NSException (GHTestFailureExceptionsPrivateAdditions)
+@implementation NSException(GHTestFailureExceptionsPrivateAdditions)
+ (NSException *)ghu_failureInFile:(NSString *)filename
atLine:(int)lineNumber
reason:(NSString *)reason {
@@ -78,7 +80,7 @@ + (NSException *)ghu_failureInFile:(NSString *)filename
}
@end
-@implementation NSException (GHTestFailureExceptions)
+@implementation NSException(GHTestFailureExceptions)
+ (NSException *)ghu_failureInFile:(NSString *)filename
atLine:(int)lineNumber
@@ -234,3 +236,5 @@ + (NSException *)ghu_failureInRaise:(NSString *)expression
}
// GTM_END
+
+//! @endcond
View
6 Classes/GHTest/NSValue+GHValueFormatter.h
@@ -26,6 +26,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
//
// Portions of this file fall under the following license, marked with
// SENTE_BEGIN - SENTE_END
@@ -61,7 +63,9 @@
#import <Foundation/Foundation.h>
// SENTE_BEGIN
-@interface NSValue (GHValueFormatter)
+@interface NSValue(GHValueFormatter)
- (NSString *)ghu_contentDescription;
@end
// SENTE_END
+
+//! @endcond
View
6 Classes/GHTest/NSValue+GHValueFormatter.m
@@ -26,6 +26,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
//
// Portions of this file fall under the following license, marked with
// SENTE_BEGIN - SENTE_END
@@ -63,7 +65,7 @@
// SENTE_BEGIN
-@implementation NSValue (GHValueFormatter)
+@implementation NSValue(GHValueFormatter)
- (NSString *)ghu_contentDescription {
const char *objCType = [self objCType];
if (objCType != NULL) {
@@ -155,3 +157,5 @@ - (NSString *)ghu_contentDescription {
@end
// SENTE_END
+
+//! @endcond
View
9 Classes/GHTestCase.h
@@ -49,8 +49,13 @@
#import "GHTestMacros.h"
#import "GHTest.h"
-// Log to your test case logger.
-// For example, GHTestLog(@"Some debug info, %@", obj)
+/*!
+ Log to your test case logger.
+ For example,
+ @code
+ GHTestLog(@"Some debug info, %@", obj);
+ @endcode
+ */
#define GHTestLog(...) [self log:[NSString stringWithFormat:__VA_ARGS__, nil]]
/*!
View
446 Classes/GHTestMacros.h
@@ -77,6 +77,11 @@
// the License.
//
+/*!
+ @file GHTestMacros.h
+ @brief Assert macros for testing.
+ */
+
#import "NSException+GHTestFailureExceptions.h"
#import "NSValue+GHValueFormatter.h"
@@ -89,14 +94,16 @@ extern NSString *const GHTestFailureException;
#if defined(__cplusplus)
extern "C"
#endif
+
NSString *GHComposeString(NSString *, ...);
-// Generates a failure when a1 != noErr
-// Args:
-// a1: should be either an OSErr or an OSStatus
-// description: A format string as in the printf() function. Can be nil or
-// an empty string but must be present.
-// ...: A variable number of arguments to the format string. Can be absent.
+
+/*!
+ Generates a failure when a1 != noErr
+ @param a1 Should be either an OSErr or an OSStatus
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present.
+ @param ...: A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertNoErr(a1, description, ...) \
do { \
@try {\
@@ -120,13 +127,13 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
}\
} while(0)
-// Generates a failure when a1 != a2
-// Args:
-// a1: received value. Should be either an OSErr or an OSStatus
-// a2: expected value. Should be either an OSErr or an OSStatus
-// description: A format string as in the printf() function. Can be nil or
-// an empty string but must be present.
-// ...: A variable number of arguments to the format string. Can be absent.
+/*!
+ Generates a failure when a1 != a2
+ @param a1 Rreceived value. Should be either an OSErr or an OSStatus
+ @param a2 Expected value. Should be either an OSErr or an OSStatus
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present.
+ @param ... A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertErr(a1, a2, description, ...) \
do { \
@try {\
@@ -152,12 +159,12 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
} while(0)
-// Generates a failure when a1 is NULL
-// Args:
-// a1: should be a pointer (use GHAssertNotNil for an object)
-// description: A format string as in the printf() function. Can be nil or
-// an empty string but must be present.
-// ...: A variable number of arguments to the format string. Can be absent.
+/*!
+ Generates a failure when a1 is NULL
+ @param a1 Should be a pointer (use GHAssertNotNil for an object)
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present.
+ @param ... A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertNotNULL(a1, description, ...) \
do { \
@try {\
@@ -181,12 +188,12 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
}\
} while(0)
-// Generates a failure when a1 is not NULL
-// Args:
-// a1: should be a pointer (use GHAssertNil for an object)
-// description: A format string as in the printf() function. Can be nil or
-// an empty string but must be present.
-// ...: A variable number of arguments to the format string. Can be absent.
+/*!
+ Generates a failure when a1 is not NULL
+ @param a1 should be a pointer (use GHAssertNil for an object)
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present.
+ @param ... A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertNULL(a1, description, ...) \
do { \
@try {\
@@ -210,14 +217,13 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
}\
} while(0)
-// Generates a failure when a1 is equal to a2. This test is for C scalars,
-// structs and unions.
-// Args:
-// a1: argument 1
-// a2: argument 2
-// description: A format string as in the printf() function. Can be nil or
-// an empty string but must be present.
-// ...: A variable number of arguments to the format string. Can be absent.
+/*!
+ Generates a failure when a1 is equal to a2. This test is for C scalars, structs and unions.
+ @param a1 Argument 1
+ @param a2 Argument 2
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present.
+ @param ... A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertNotEquals(a1, a2, description, ...) \
do { \
@try {\
@@ -250,13 +256,13 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
}\
} while(0)
-// Generates a failure when a1 is equal to a2. This test is for objects.
-// Args:
-// a1: argument 1. object.
-// a2: argument 2. object.
-// description: A format string as in the printf() function. Can be nil or
-// an empty string but must be present.
-// ...: A variable number of arguments to the format string. Can be absent.
+/*!
+ Generates a failure when a1 is equal to a2. This test is for objects.
+ @param a1 Argument 1. object.
+ @param a2 Argument 2. object.
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present.
+ @param ... A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertNotEqualObjects(a1, a2, desc, ...) \
do { \
@try {\
@@ -282,14 +288,14 @@ withDescription:GHComposeString(desc, ##__VA_ARGS__)]]; \
}\
} while(0)
-// Generates a failure when a1 is not 'op' to a2. This test is for C scalars.
-// Args:
-// a1: argument 1
-// a2: argument 2
-// op: operation
-// description: A format string as in the printf() function. Can be nil or
-// an empty string but must be present.
-// ...: A variable number of arguments to the format string. Can be absent.
+/*!
+ Generates a failure when a1 is not 'op' to a2. This test is for C scalars.
+ @param a1 Argument 1
+ @param a2 Argument 2
+ @param op Operation
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present.
+ @param ... A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertOperation(a1, a2, op, description, ...) \
do { \
@try {\
@@ -323,61 +329,60 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
}\
} while(0)
-// Generates a failure when a1 is not > a2. This test is for C scalars.
-// Args:
-// a1: argument 1
-// a2: argument 2
-// op: operation
-// description: A format string as in the printf() function. Can be nil or
-// an empty string but must be present.
-// ...: A variable number of arguments to the format string. Can be absent.
+/*!
+ Generates a failure when a1 is not > a2. This test is for C scalars.
+ @param a1 argument 1
+ @param a2 argument 2
+ @param op operation
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present.
+ @param ... A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertGreaterThan(a1, a2, description, ...) \
GHAssertOperation(a1, a2, >, description, ##__VA_ARGS__)
-// Generates a failure when a1 is not >= a2. This test is for C scalars.
-// Args:
-// a1: argument 1
-// a2: argument 2
-// op: operation
-// description: A format string as in the printf() function. Can be nil or
-// an empty string but must be present.
-// ...: A variable number of arguments to the format string. Can be absent.
+/*!
+ Generates a failure when a1 is not >= a2. This test is for C scalars.
+ @param a1 argument 1
+ @param a2 argument 2
+ @param op operation
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present.
+ @param ... A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertGreaterThanOrEqual(a1, a2, description, ...) \
GHAssertOperation(a1, a2, >=, description, ##__VA_ARGS__)
-// Generates a failure when a1 is not < a2. This test is for C scalars.
-// Args:
-// a1: argument 1
-// a2: argument 2
-// op: operation
-// description: A format string as in the printf() function. Can be nil or
-// an empty string but must be present.
-// ...: A variable number of arguments to the format string. Can be absent.
+/*!
+ Generates a failure when a1 is not < a2. This test is for C scalars.
+ @param a1 argument 1
+ @param a2 argument 2
+ @param op operation
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present.
+ @param ... A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertLessThan(a1, a2, description, ...) \
GHAssertOperation(a1, a2, <, description, ##__VA_ARGS__)
-// Generates a failure when a1 is not <= a2. This test is for C scalars.
-// Args:
-// a1: argument 1
-// a2: argument 2
-// op: operation
-// description: A format string as in the printf() function. Can be nil or
-// an empty string but must be present.
-// ...: A variable number of arguments to the format string. Can be absent.
+/*! Generates a failure when a1 is not <= a2. This test is for C scalars.
+ @param a1 argument 1
+ @param a2 argument 2
+ @param op operation
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present.
+ @param ... A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertLessThanOrEqual(a1, a2, description, ...) \
GHAssertOperation(a1, a2, <=, description, ##__VA_ARGS__)
-// Generates a failure when string a1 is not equal to string a2. This call
-// differs from GHAssertEqualObjects in that strings that are different in
-// composition (precomposed vs decomposed) will compare equal if their final
-// representation is equal.
-// ex O + umlaut decomposed is the same as O + umlaut composed.
-// Args:
-// a1: string 1
-// a2: string 2
-// description: A format string as in the printf() function. Can be nil or
-// an empty string but must be present.
-// ...: A variable number of arguments to the format string. Can be absent.
+/*!
+ Generates a failure when string a1 is not equal to string a2. This call
+ differs from GHAssertEqualObjects in that strings that are different in
+ composition (precomposed vs decomposed) will compare equal if their final
+ representation is equal.
+ ex O + umlaut decomposed is the same as O + umlaut composed.
+ @param a1 string 1
+ @param a2 string 2
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present.
+ @param ... A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertEqualStrings(a1, a2, description, ...) \
do { \
@try {\
@@ -402,17 +407,17 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
}\
} while(0)
-// Generates a failure when string a1 is equal to string a2. This call
-// differs from GHAssertEqualObjects in that strings that are different in
-// composition (precomposed vs decomposed) will compare equal if their final
-// representation is equal.
-// ex O + umlaut decomposed is the same as O + umlaut composed.
-// Args:
-// a1: string 1
-// a2: string 2
-// description: A format string as in the printf() function. Can be nil or
-// an empty string but must be present.
-// ...: A variable number of arguments to the format string. Can be absent.
+/*!
+ Generates a failure when string a1 is equal to string a2. This call
+ differs from GHAssertEqualObjects in that strings that are different in
+ composition (precomposed vs decomposed) will compare equal if their final
+ representation is equal.
+ ex O + umlaut decomposed is the same as O + umlaut composed.
+ @param a1 string 1
+ @param a2 string 2
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present.
+ @param ... A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertNotEqualStrings(a1, a2, description, ...) \
do { \
@try {\
@@ -439,13 +444,13 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
}\
} while(0)
-// Generates a failure when c-string a1 is not equal to c-string a2.
-// Args:
-// a1: string 1
-// a2: string 2
-// description: A format string as in the printf() function. Can be nil or
-// an empty string but must be present.
-// ...: A variable number of arguments to the format string. Can be absent.
+/*!
+ Generates a failure when c-string a1 is not equal to c-string a2.
+ @param a1 string 1
+ @param a2 string 2
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present.
+ @param ... A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertEqualCStrings(a1, a2, description, ...) \
do { \
@try {\
@@ -468,13 +473,13 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
}\
} while(0)
-// Generates a failure when c-string a1 is equal to c-string a2.
-// Args:
-// a1: string 1
-// a2: string 2
-// description: A format string as in the printf() function. Can be nil or
-// an empty string but must be present.
-// ...: A variable number of arguments to the format string. Can be absent.
+/*!
+ Generates a failure when c-string a1 is equal to c-string a2.
+ @param a1 string 1
+ @param a2 string 2
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present.
+ @param ... A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertNotEqualCStrings(a1, a2, description, ...) \
do { \
@try {\
@@ -499,14 +504,13 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
// GTM_END
// SENTE_BEGIN
-/*" Generates a failure when !{ [a1 isEqualTo:a2] } is false
+/*! Generates a failure when !{ [a1 isEqualTo:a2] } is false
(or one is nil and the other is not).
- _{a1 The object on the left.}
- _{a2 The object on the right.}
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.}
- "*/
+ @param a1 The object on the left
+ @param a2 The object on the right
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent
+ */
#define GHAssertEqualObjects(a1, a2, description, ...) \
do { \
@try {\
@@ -532,14 +536,13 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
} while(0)
-/*" Generates a failure when a1 is not equal to a2. This test is for
+/*! Generates a failure when a1 is not equal to a2. This test is for
C scalars, structs and unions.
- _{a1 The argument on the left.}
- _{a2 The argument on the right.}
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.}
- "*/
+ @param a1 The argument on the left
+ @param a2 The argument on the right
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent
+ */
#define GHAssertEquals(a1, a2, description, ...) \
do { \
@try {\
@@ -571,21 +574,20 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
}\
} while(0)
+//! Absolute difference
#define GHAbsoluteDifference(left,right) (MAX(left,right)-MIN(left,right))
-/*" Generates a failure when a1 is not equal to a2 within + or - accuracy is false.
+/*!
+ Generates a failure when a1 is not equal to a2 within + or - accuracy is false.
This test is for scalars such as floats and doubles where small differences
could make these items not exactly equal, but also works for all scalars.
- _{a1 The scalar on the left.}
- _{a2 The scalar on the right.}
- _{accuracy The maximum difference between a1 and a2 for these values to be
- considered equal.}
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.}
- "*/
-
+ @param a1 The scalar on the left
+ @param a2 The scalar on the right
+ @param accuracy The maximum difference between a1 and a2 for these values to be considered equal
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent
+ */
#define GHAssertEqualsWithAccuracy(a1, a2, accuracy, description, ...) \
do { \
@try {\
@@ -621,24 +623,22 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
-/*" Generates a failure unconditionally.
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.}
- "*/
+/*! Generates a failure unconditionally.
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent
+ */
#define GHFail(description, ...) \
[self failWithException:[NSException ghu_failureInFile: [NSString stringWithUTF8String:__FILE__] \
atLine: __LINE__ \
withDescription: GHComposeString(description, ##__VA_ARGS__)]]
-/*" Generates a failure when a1 is not nil.
- _{a1 An object.}
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.}
- "*/
+/*! Generates a failure when a1 is not nil.
+ @param a1 An object
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent
+ */
#define GHAssertNil(a1, description, ...) \
do { \
@try {\
@@ -663,12 +663,11 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
} while(0)
-/*" Generates a failure when a1 is nil.
- _{a1 An object.}
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.}
- "*/
+/*! Generates a failure when a1 is nil.
+ @param a1 An object
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent
+ */
#define GHAssertNotNil(a1, description, ...) \
do { \
@try {\
@@ -693,12 +692,12 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
} while(0)
-/*" Generates a failure when expression evaluates to false.
- _{expr The expression that is tested.}
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.}
- "*/
+/*!
+ Generates a failure when expression evaluates to false.
+ @param expr The expression that is tested
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent
+ */
#define GHAssertTrue(expr, description, ...) \
do { \
BOOL _evaluatedExpression = (expr);\
@@ -713,13 +712,14 @@ withDescription: GHComposeString(description, ##__VA_ARGS__)]]; \
} while (0)
-/*" Generates a failure when expression evaluates to false and in addition will
+/*!
+ Generates a failure when expression evaluates to false and in addition will
generate error messages if an exception is encountered.
- _{expr The expression that is tested.}
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.}
- "*/
+
+ @param expr The expression that is tested
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent
+ */
#define GHAssertTrueNoThrow(expr, description, ...) \
do { \
@try {\
@@ -743,12 +743,11 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
} while (0)
-/*" Generates a failure when the expression evaluates to true.
- _{expr The expression that is tested.}
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.}
- "*/
+/*! Generates a failure when the expression evaluates to true.
+ @param expr The expression that is tested
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent
+ */
#define GHAssertFalse(expr, description, ...) \
do { \
BOOL _evaluatedExpression = (expr);\
@@ -763,13 +762,12 @@ withDescription: GHComposeString(description, ##__VA_ARGS__)]]; \
} while (0)
-/*" Generates a failure when the expression evaluates to true and in addition
+/*! Generates a failure when the expression evaluates to true and in addition
will generate error messages if an exception is encountered.
- _{expr The expression that is tested.}
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.}
- "*/
+ @param expr The expression that is tested
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent
+ */
#define GHAssertFalseNoThrow(expr, description, ...) \
do { \
@try {\
@@ -793,12 +791,11 @@ withDescription:GHComposeString(description, ##__VA_ARGS__)]]; \
} while (0)
-/*" Generates a failure when expression does not throw an exception.
- _{expression The expression that is evaluated.}
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.
- "*/
+/*! Generates a failure when expression does not throw an exception.
+ @param expression The expression that is evaluated
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent.
+ */
#define GHAssertThrows(expr, description, ...) \
do { \
@try { \
@@ -815,14 +812,13 @@ withDescription: GHComposeString(description, ##__VA_ARGS__)]]; \
} while (0)
-/*" Generates a failure when expression does not throw an exception of a
+/*! Generates a failure when expression does not throw an exception of a
specific class.
- _{expression The expression that is evaluated.}
- _{specificException The specified class of the exception.}
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.}
- "*/
+ @param expression The expression that is evaluated
+ @param specificException The specified class of the exception
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent
+ */
#define GHAssertThrowsSpecific(expr, specificException, description, ...) \
do { \
@try { \
@@ -849,18 +845,16 @@ withDescription: GHComposeString(_descrip, ##__VA_ARGS__)]]; \
} while (0)
-/*" Generates a failure when expression does not throw an exception of a
+/*! Generates a failure when expression does not throw an exception of a
specific class with a specific name. Useful for those frameworks like
AppKit or Foundation that throw generic NSException w/specific names
(NSInvalidArgumentException, etc).
- _{expression The expression that is evaluated.}
- _{specificException The specified class of the exception.}
- _{aName The name of the specified exception.}
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.}
-
- "*/
+ @param expression The expression that is evaluated
+ @param specificException The specified class of the exception
+ @param aName The name of the specified exception
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent
+ */
#define GHAssertThrowsSpecificNamed(expr, specificException, aName, description, ...) \
do { \
@try { \
@@ -897,12 +891,11 @@ withDescription: GHComposeString(_descrip, ##__VA_ARGS__)]]; \
} while (0)
-/*" Generates a failure when expression does throw an exception.
- _{expression The expression that is evaluated.}
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.}
- "*/
+/*! Generates a failure when expression does throw an exception.
+ @param expression The expression that is evaluated
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent
+ */
#define GHAssertNoThrow(expr, description, ...) \
do { \
@try { \
@@ -918,14 +911,13 @@ withDescription: GHComposeString(description, ##__VA_ARGS__)]]; \
} while (0)
-/*" Generates a failure when expression does throw an exception of the specitied
+/*! Generates a failure when expression does throw an exception of the specitied
class. Any other exception is okay (i.e. does not generate a failure).
- _{expression The expression that is evaluated.}
- _{specificException The specified class of the exception.}
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.}
- "*/
+ @param expression The expression that is evaluated
+ @param specificException The specified class of the exception
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent
+ */
#define GHAssertNoThrowSpecific(expr, specificException, description, ...) \
do { \
@try { \
@@ -944,18 +936,16 @@ withDescription: GHComposeString(description, ##__VA_ARGS__)]]; \
} while (0)
-/*" Generates a failure when expression does throw an exception of a
+/*! Generates a failure when expression does throw an exception of a
specific class with a specific name. Useful for those frameworks like
AppKit or Foundation that throw generic NSException w/specific names
(NSInvalidArgumentException, etc).
- _{expression The expression that is evaluated.}
- _{specificException The specified class of the exception.}
- _{aName The name of the specified exception.}
- _{description A format string as in the printf() function. Can be nil or
- an empty string but must be present.}
- _{... A variable number of arguments to the format string. Can be absent.}
-
- "*/
+ @param expression The expression that is evaluated.
+ @param specificException The specified class of the exception
+ @param aName The name of the specified exception
+ @param description A format string as in the printf() function. Can be nil or an empty string but must be present
+ @param ... A variable number of arguments to the format string. Can be absent
+ */
#define GHAssertNoThrowSpecificNamed(expr, specificException, aName, description, ...) \
do { \
@try { \
@@ -979,7 +969,9 @@ continue; \
} while (0)
-@interface NSException (GHTestMacros_GTMSenTestAdditions)
+//! @cond DEV
+
+@interface NSException(GHTestMacros_GTMSenTestAdditions)
+ (NSException *)ghu_failureInFile:(NSString *)filename
atLine:(int)lineNumber
withDescription:(NSString *)formatString, ...;
@@ -1010,4 +1002,6 @@ continue; \
withDescription:(NSString *)formatString, ...;
@end
+//! @endcond
+
// SENTE_END
View
526 Classes/GHUnit.h
@@ -48,4 +48,528 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
} while(0)
#else
#define GHUDebug(fmt, ...) do {} while(0)
-#endif
+#endif
+
+/*!
+ @mainpage GHUnit
+
+
+ GHUnit is a test framework for Objective-C (Mac OS X 10.5 and above and iPhone 3.x and above).
+ It can be used with SenTestingKit, GTM or all by itself.
+
+ For example, your test cases will be run if they subclass any of the following:
+
+ - GHTestCase
+ - SenTestCase
+ - GTMTestCase
+
+
+ Source: http://github.com/gabriel/gh-unit
+
+ View docs online: http://gabriel.github.com/gh-unit/
+
+
+ This manual is divided in the following sections:
+ - @subpage Examples
+ - @subpage TestMacros
+ - @subpage Installing
+ - @subpage EnvVariables
+ - @subpage CommandLine "Command Line & Makefiles"
+ - @subpage Customizing
+ - @subpage Hudson
+
+ @section Notes Notes
+
+ GHUnit was inspired by and uses parts of GTM (google-toolbox-for-mac) code, mostly from UnitTesting: http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/UnitTesting/
+
+ */
+
+/*!
+ @page Installing Installing
+
+ - @ref InstallingIOS
+ - @ref InstallMacOSX
+
+ @section InstallingIOS Installing (iOS)
+
+ - Add a <tt>New Target</tt>. Select <tt>Cocoa Touch -> Application</tt>. Name it <tt>Tests</tt> (or something similar).
+ - Add the <tt>GHUnitIOS.framework</tt> to your project.
+ - Add the following frameworks to <tt>Linked Libraries</tt>:
+ - <tt>GHUnitIOS.framework</tt>
+ - <tt>CoreGraphics.framework</tt>
+ - <tt>Foundation.framework</tt>
+ - <tt>UIKit.framework</tt>
+ - (Optional) <tt>CoreLocation.framework</tt>
+ - Under 'Framework Search Paths' make sure the (parent) directory to GHUnitIOS.framework is listed.
+ - Under 'Other Linker Flags' in the <tt>Test</tt> target, add <tt>-ObjC</tt> and <tt>-all_load</tt>
+ - By default, the Tests-Info.plist file includes <tt>MainWindow</tt> for <tt>Main nib file base name</tt>. You should clear this field.
+ - Add the GHUnitIOSTestMain.m (http://github.com/gabriel/gh-unit/blob/master/Project-IPhone/GHUnitIOSTestMain.m) file into your project.
+ - (Optional) Install Makefile (see instructions below)
+ - (Optional) Create and and set a prefix header (<tt>Tests_Prefix.pch</tt>) and add <tt>#import <GHUnitIOS/GHUnitIOS.h></tt> to it, and then you won't have to include that import for every test.
+
+ Now you can create a test (either by subclassing <tt>SenTestCase</tt> or <tt>GHTestCase</tt>), adding it to your test target.
+
+ @section InstallMacOSX Installing (Mac OS X)
+
+ You can install it globally in /Library/Frameworks or with a little extra effort embed it with your project.
+
+ @subsection InstallLibraryFrameworks Installing in /Library/Frameworks
+
+ - Copy <tt>GHUnit.framework</tt> to <tt>/Library/Frameworks/</tt>
+ - Add a <tt>New Target</tt>. Select <tt>Cocoa -> Application</tt>. Name it <tt>Tests</tt> (or something similar).
+ - In the <tt>Target 'Tests' Info</tt> window, <tt>General</tt> tab:
+ - Add a linked library, under <tt>Mac OS X 10.X SDK</tt> section, select <tt>GHUnit.framework</tt>
+ - If your main target is a library: Add a linked library, and select your main target.
+ - If your main target is an application, you will need to include these source files in the <tt>Test</tt> project manually.
+ - Add a direct dependency, and select your project. (This will cause your application or framework to build before the test target.)
+ - Copy GHUnitTestMain.m (http://github.com/gabriel/gh-unit/tree/master/Classes-MacOSX/GHUnitTestMain.m) into your project and include in the Test target.
+ - Now create a test (either by subclassing <tt>SenTestCase</tt> or <tt>GHTestCase</tt>), adding it to your test target. (See example test case below.)
+ - By default, the Tests-Info.plist file includes <tt>MainWindow</tt> for <tt>Main nib file base name</tt>. You should clear this field.
+ - (Optional) Install Makefile (see instructions below)
+
+ @subsection InstallProject Installing in your project
+
+ - Add a <tt>New Target</tt>. Select <tt>Cocoa -> Application</tt>. Name it <tt>Tests</tt> (or something similar).
+ - In the Finder, copy <tt>GHUnit.framework</tt> to your project directory (maybe in MyProject/Frameworks/.)
+ - In the <tt>Tests</tt> target, add the <tt>GHUnit.framework</tt> files (from MyProject/Frameworks/). It should now be visible as a <tt>Linked Framework</tt> in the target.
+ - In the <tt>Tests</tt> target, under Build Settings, add <tt>@loader_path/../Frameworks</tt> to <tt>Runpath Search Paths</tt> (Under All Configurations)
+ - In the <tt>Tests</tt> target, add <tt>New Build Phase</tt> | <tt>New Copy Files Build Phase</tt>.
+ - Change the Destination to <tt>Frameworks</tt>.
+ - Drag <tt>GHUnit.framework</tt> into the the build phase
+ - Make sure the copy phase appears before any <tt>Run Script</tt> phases
+ - Copy GHUnitTestMain.m (http://github.com/gabriel/gh-unit/tree/master/Classes-MacOSX/GHUnitTestMain.m) into your project and include in the Test target.
+
+ - If your main target is a library:
+ - In the <tt>Target 'Tests' Info</tt> window, <tt>General</tt> tab:
+ - Add a linked library, and select your main target; This is so you can link your test target against your main target, and then you don't have to manually include source files in both targets.
+ - If your main target is an application, you will need to include these source files to the <tt>Test</tt> project manually.
+
+ - Now create a test (either by subclassing <tt>SenTestCase</tt> or <tt>GHTestCase</tt>), adding it to your test target. (See example test case below.)
+ - By default, the Tests-Info.plist file includes <tt>MainWindow</tt> for <tt>Main nib file base name</tt>. You should clear this field.
+ - (Optional) Install Makefile (see instructions below)
+
+ */
+
+/*!
+ @page Examples Examples
+
+ - @ref ExampleIOS
+ - @ref ExampleMacOSX
+
+ @section ExampleIOS Example Test Class (iOS)
+
+ For example <tt>MyTest.m</tt>:
+
+ @code
+ #import <GHUnitIOS/GHUnitIOS.h>
+
+ @interface MyTest : GHTestCase { }
+ @end
+
+ @implementation MyTest
+
+ - (BOOL)shouldRunOnMainThread {
+ // By default NO, but if you have a UI test or test dependent on running on the main thread return YES
+ }
+
+ - (void)setUpClass {
+ // Run at start of all tests in the class
+ }
+
+ - (void)tearDownClass {
+ // Run at end of all tests in the class
+ }
+
+ - (void)setUp {
+ // Run before each test method
+ }
+
+ - (void)tearDown {
+ // Run after each test method
+ }
+
+ - (void)testFoo {
+ // Assert a is not NULL, with no custom error description
+ GHAssertNotNULL(a, nil);
+
+ // Assert equal objects, add custom error description
+ GHAssertEqualObjects(a, b, @"Foo should be equal to: %@. Something bad happened", bar);
+ }
+
+ - (void)testBar {
+ // Another test
+ }
+
+ @end
+ @endcode
+
+ Now you should be ready to Build and Run the <tt>Test</tt> target.
+
+ You should see something like:
+
+ @image html http://rel.me.s3.amazonaws.com/gh-unit/images/GHUnit-IPhone-0.4.18.png
+
+ An example of an iPhone project with GHUnit test setup can be found at: MyTestable-IPhone (http://github.com/gabriel/gh-unit/tree/master/Examples/MyTestable-IPhone).
+
+
+ @section ExampleMacOSX Example Test Class (Mac OS X)
+
+ @code
+ For example <tt>MyTest.m</tt>:
+
+ #import <GHUnit/GHUnit.h>
+
+ @interface MyTest : GHTestCase { }
+ @end
+
+ @implementation MyTest
+
+ - (BOOL)shouldRunOnMainThread {
+ // By default NO, but if you have a UI test or test dependent on running on the main thread return YES
+ }
+
+ - (void)setUpClass {
+ // Run at start of all tests in the class
+ }
+
+ - (void)tearDownClass {
+ // Run at end of all tests in the class
+ }
+
+ - (void)setUp {
+ // Run before each test method
+ }
+
+ - (void)tearDown {
+ // Run after each test method
+ }
+
+ - (void)testFoo {
+ GHTestLog(@"I can log to the GHUnit test console: %@", foo);
+
+ // Assert a is not NULL, with no custom error description
+ GHAssertNotNULL(a, nil);
+
+ // Assert equal objects, add custom error description
+ GHAssertEqualObjects(a, b, @"Foo should be equal to: %@. Something bad happened", bar);
+ }
+
+ - (void)testBar {
+ // Another test
+ }
+
+ @end
+
+ @endcode
+
+ You should see something like:
+
+ @image html http://rel.me.s3.amazonaws.com/gh-unit/images/GHUnit-0.4.18.png
+
+ - Optionally, you can create and and set a prefix header (<tt>Tests_Prefix.pch</tt>) and add <tt>#import <GHUnit/GHUnit.h></tt> to it, and then you won't have to include that import for every test.
+
+ */
+
+/*!
+ @page EnvVariables Environment Variables
+
+ @section GHUnitEnvVariables GHUnit Environment Variables
+
+ Go into the "Get Info" contextual menu of your (Tests) executable (inside the "Executables" group in the left panel of XCode).
+ Then go in the "Arguments" tab. You can add the following environment variables:
+
+ @verbatim
+ GHUNIT_CLI - Default NO; Runs tests on the command line (see Debugger Console, Cmd-Shift-R)
+ GHUNIT_RERAISE - Default NO; If an exception is encountered it re-raises it allowing you to crash into the debugger
+ GHUNIT_AUTORUN - Default NO; If YES, tests will start automatically
+ GHUNIT_AUTOEXIT - Default NO; If YES, will exit upon test completion (no matter what); For command line MacOSX testing
+ @endverbatim
+
+
+ @section EnvVariablesTest Test Environment Variables (Recommended)
+
+ Go into the "Get Info" contextual menu of your (Tests) executable (inside the "Executables" group in the left panel of XCode).
+ Then go in the "Arguments" tab. You can add the following environment variables:
+
+ @verbatim
+ Environment Variable: Default: Set to:
+ NSDebugEnabled NO YES
+ NSZombieEnabled NO YES
+ NSDeallocateZombies NO NO (or YES)
+ NSHangOnUncaughtException NO YES
+ NSAutoreleaseFreedObjectCheckEnabled NO YES
+ @endverbatim
+
+ If Using NSDeallocateZombies=NO, then all objects will leak so be sure to turn it off when debugging memory leaks.
+
+ For more info on these varaiables see NSDebug.h (http://theshadow.uw.hu/iPhoneSDKdoc/Foundation.framework/NSDebug.h.html)
+
+ For malloc debugging:
+
+ @verbatim
+ MallocStackLogging
+ MallocStackLoggingNoCompact
+ MallocScribble
+ MallocPreScribble
+ MallocGuardEdges
+ MallocDoNotProtectPrelude
+ MallocDoNotProtectPostlude
+ MallocCheckHeapStart
+ MallocCheckHeapEach
+ @endverbatim
+
+ If you see a message like:
+
+ @verbatim
+ 2009-10-15 13:02:24.746 Tests[38615:40b] *** -[Foo class]: message sent to deallocated instance 0x1c8e680
+ @endverbatim
+
+ Re-run (in gdb) with <tt>MallocStackLogging=YES</tt> (or <tt>MallocStackLoggingNoCompact=YES</tt>), then if you run under gdb:
+
+ @verbatim
+ (gdb) shell malloc_history 38615 0x1c8e680
+
+ ALLOC 0x1a9ad10-0x1a9ad6f [size=96]: thread_a024a500 |start | main | UIApplicationMain | GSEventRun | GSEventRunModal | CFRunLoopRunInMode | CFRunLoopRunSpecific | __NSThreadPerformPerform | -[GHTestGroup _run:] | -[GHTest run] | +[GHTesting runTest:selector:withObject:exception:interval:] | -[Foo foo] | +[NSObject alloc] | +[NSObject allocWithZone:] | _internal_class_createInstance | _internal_class_createInstanceFromZone | calloc | malloc_zone_calloc
+
+ @endverbatim
+
+ Somewhere between runTest and NSObject alloc there may be an object that wasn't retained.
+
+ Also using <tt>MallocScribble=YES</tt> causes the malloc library to overwrite freed memory with a well-known value (0x55), and occasionally checks freed malloc blocks to make sure the memory has not been over-written overwritten written since it was cleared.
+
+ For more info on these variables see MallocDebug (http://developer.apple.com/mac/library/documentation/Performance/Conceptual/ManagingMemory/Articles/MallocDebug.html)
+
+ For more info on malloc_history see malloc_history (http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/malloc_history.1.html)
+
+ */
+
+/*!
+
+ @page CommandLine Command Line
+
+ @section CommandLineRunningTests Running Tests
+
+ To run the tests from the command line:
+
+ - Copy the RunTests.sh (http://github.com/gabriel/gh-unit/tree/master/Scripts/RunTests.sh) file into your project directory (if you haven't already).
+ - In XCode:
+ - To the <tt>Tests</tt> target, Add <tt>New Build Phase</tt> | <tt>New Run Script Build Phase</tt>
+ - Enter <tt>sh RunTests.sh</tt> as the script. The path to <tt>RunTests.sh</tt> should be relative to the xcode project file (.xcodeproj)!
+ - (Optional) Uncheck 'Show environment variables in build log'
+
+ From the command line, run the tests from xcodebuild (with the GHUNIT_CLI environment variable set):
+
+ @verbatim
+ // For mac app; This might seg fault in 10.6, in which case you should use make test via Makefile below
+ GHUNIT_CLI=1 xcodebuild -target Tests -configuration Debug -sdk macosx10.5 build
+
+ // For iPhone app
+ GHUNIT_CLI=1 xcodebuild -target Tests -configuration Debug -sdk iphonesimulator4.0 build
+ @endverbatim
+
+ If you are wondering, the <tt>RunTests.sh</tt> script will only run the tests if the env variable GHUNIT_CLI is set.
+ This is why this RunScript phase is ignored when running the test GUI. This is how we use a single Test target for both the GUI and command line testing.
+
+ This may seem strange that we run via xcodebuild with a RunScript phase in order to work on the command line, but otherwise we may not have
+ the environment settings or other XCode specific configuration right.
+
+ @section Makefile Makefile
+
+ Follow the directions above for adding command line support.
+
+ Example Makefile's for Mac or iPhone apps:
+
+ - Makefile (Mac OS X): http://github.com/gabriel/gh-unit/tree/master/Project/Makefile (for a Mac App)
+ - Makefile (iOS): http://github.com/gabriel/gh-unit/tree/master/Project-IPhone/Makefile (for an iPhone App)
+
+ The script will return a non-zero exit code on test failure.
+
+ To run the tests via the Makefile:
+
+ @verbatim
+ make test
+ @endverbatim
+
+ @section RunningATest Running a Test Case / Single Test
+
+ The <tt>TEST</tt> environment variable can be used to run a single test or test case.
+
+ @verbatim
+ // Run all tests in GHSlowTest
+ make test TEST="GHSlowTest"
+
+ // Run the method testSlowA in GHSlowTest
+ make test TEST="GHSlowTest/testSlowA"
+ @endverbatim
+
+ */
+
+/*!
+
+ @page TestMacros Test Macros
+
+ The following test macros are included.
+
+ These macros are directly from: GTMSenTestCase.h (http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/UnitTesting/GTMSenTestCase.h)
+ prefixed with GH so as not to conflict with the GTM macros if you are using those in your project.
+
+ The <tt>description</tt> argument appends extra information for when the assert fails; though most of the time you might leave it as nil.
+
+ @code
+ GHAssertNoErr(a1, description, ...)
+ GHAssertErr(a1, a2, description, ...)
+ GHAssertNotNULL(a1, description, ...)
+ GHAssertNULL(a1, description, ...)
+ GHAssertNotEquals(a1, a2, description, ...)
+ GHAssertNotEqualObjects(a1, a2, desc, ...)
+ GHAssertOperation(a1, a2, op, description, ...)
+ GHAssertGreaterThan(a1, a2, description, ...)
+ GHAssertGreaterThanOrEqual(a1, a2, description, ...)
+ GHAssertLessThan(a1, a2, description, ...)
+ GHAssertLessThanOrEqual(a1, a2, description, ...)
+ GHAssertEqualStrings(a1, a2, description, ...)
+ GHAssertNotEqualStrings(a1, a2, description, ...)
+ GHAssertEqualCStrings(a1, a2, description, ...)
+ GHAssertNotEqualCStrings(a1, a2, description, ...)
+ GHAssertEqualObjects(a1, a2, description, ...)
+ GHAssertEquals(a1, a2, description, ...)
+ GHAbsoluteDifference(left,right) (MAX(left,right)-MIN(left,right))
+ GHAssertEqualsWithAccuracy(a1, a2, accuracy, description, ...)
+ GHFail(description, ...)
+ GHAssertNil(a1, description, ...)
+ GHAssertNotNil(a1, description, ...)
+ GHAssertTrue(expr, description, ...)
+ GHAssertTrueNoThrow(expr, description, ...)
+ GHAssertFalse(expr, description, ...)
+ GHAssertFalseNoThrow(expr, description, ...)
+ GHAssertThrows(expr, description, ...)
+ GHAssertThrowsSpecific(expr, specificException, description, ...)
+ GHAssertThrowsSpecificNamed(expr, specificException, aName, description, ...)
+ GHAssertNoThrow(expr, description, ...)
+ GHAssertNoThrowSpecific(expr, specificException, description, ...)
+ GHAssertNoThrowSpecificNamed(expr, specificException, aName, description, ...)
+ @endcode
+
+ */
+
+/*!
+
+ @page Customizing Customizing
+
+ @section CustomTests Custom Test Case Classes
+
+ You can register additional classes at runtime; if you have your own. For example:
+
+ @code
+ [[GHTesting sharedInstance] registerClassName:@"MySpecialTestCase"];
+ @endcode
+
+ @section AlternateIOSAppDelegate Using an Alternate iPhone Application Delegate
+
+ If you want to use a custom application delegate in your test environment, you should subclass GHUnitIPhoneAppDelegate:
+
+ @code
+ @interface MyTestApplicationDelegate : GHUnitIPhoneAppDelegate { }
+ @end
+ @endcode
+
+ Then in GHUnitIPhoneTestMain.m:
+
+ @code
+ retVal = UIApplicationMain(argc, argv, nil, @"MyTestApplicationDelegate");
+ @endcode
+
+ I am looking into removing this dependency but this will work in the meantime.
+
+ @section UsingSenTesting Using SenTestingKit
+
+ You can also use GHUnit with SenTestCase, for example:
+
+ @code
+ #import <SenTestingKit/SenTestingKit.h>
+
+ @interface MyTest : SenTestCase { }
+ @end
+
+ @implementation MyTest
+
+ - (void)setUp {
+ // Run before each test method
+ }
+
+ - (void)tearDown {
+ // Run after each test method
+ }
+
+ - (void)testFoo {
+ // Assert a is not NULL, with no custom error description
+ STAssertNotNULL(a, nil);
+
+ // Assert equal objects, add custom error description
+ STAssertEqualObjects(a, b, @"Foo should be equal to: %@. Something bad happened", bar);
+ }
+
+ - (void)testBar {
+ // Another test
+ }
+
+ @end
+ @endcode
+
+ */
+
+/*!
+
+ @page Hudson Hudson
+
+ @section Using Using Hudson with GHUnit
+
+ Hudson (http://hudson-ci.org/) is a continuous
+ integration server that has a broad set of support and plugins, and is easy to set up. You
+ can use Hudson to run your GHUnit tests after every checkin, and report the
+ results to your development group in a variety of ways (by email, to Campfire,
+ and so on).
+
+ Here's how to set up Hudson with GHUnit.
+
+ 1. Follow the instructions to set up a Makefile for your GHUnit project.
+
+ 2. Download <tt>hudson.war</tt> from http://hudson-ci.org/.
+ Run it with <tt>java -jar hudson.war</tt>. It will start up on
+ http://localhost:8080/
+
+ 3. Go to <tt>Manage Hudson -> Manage Plugins</tt> and install whatever plugins you
+ need for your project. For instance, you might want to install the Git
+ and GitHub plugins if you host your code on GitHub (http://www.github.com)
+
+ 4. Create a new job for your project and click on <tt>Configure</tt>. Most of the options
+ are self-explanatory or can be figured out with the online help. You probably
+ want to configure <tt>Source Code Management</tt>, and then under <tt>Build Triggers</tt> check
+ <tt>Poll SCM</tt> and add a schedule of <tt>* * * * *</tt> (which checks your source control
+ system for new changes once a minute).
+
+ 5. Under <tt>Build</tt>, enter the following command:
+
+ @verbatim
+ make clean && WRITE_JUNIT_XML=YES make test
+ @endverbatim
+
+ 6. Under <tt/>Post-build Actions</tt>, check <tt/>Publish JUnit test result report</tt> and enter
+ the following in <tt>Test report XMLs</tt>:
+
+ @verbatim
+ build/test-results/*.xml
+ @endverbatim
+
+ That's all it takes. Check in a change that breaks one of your tests. Hudson
+ should detect the change, run a build and test, and then report the failure.
+ Fix the test, check in again, and you should see a successful build report.
+
+ @section Troubleshooting Troubleshooting
+
+ If your XCode build fails with a set of font-related errors, you may be running
+ Hudson headless (e.g., via an SSH session). Launch Hudson via Terminal.app on
+ the build machine (or otherwise attach a DISPLAY to the session) in order to
+ address this.
+
+ */
View
4 Classes/Mock/GHMockNSHTTPURLResponse.h
@@ -27,6 +27,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import <Foundation/Foundation.h>
/*!
@@ -44,3 +46,5 @@
- (void)setHeaders:(NSDictionary *)headers;
@end
+
+//! @endcond
View
4 Classes/Mock/GHMockNSHTTPURLResponse.m
@@ -27,6 +27,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import "GHMockNSHTTPURLResponse.h"
@implementation GHMockNSHTTPURLResponse
@@ -63,3 +65,5 @@ - (NSDictionary *)allHeaderFields {
}
@end
+
+//! @endcond
View
11 Classes/Mock/GHMockNSURLConnection.h
@@ -27,6 +27,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import <Foundation/Foundation.h>
extern NSString *const GHMockNSURLConnectionException;
@@ -115,6 +117,13 @@ extern NSString *const GHMockNSURLConnectionException;
*/
- (void)receiveData:(NSData *)data afterDelay:(NSTimeInterval)delay;
+/*!
+ Send data to connection delegate.
+ @param data Data to send
+ @param statusCode HTTP status code
+ @param MIMEType Mime type
+ @param afterDelay Delay
+ */
- (void)receiveData:(NSData *)data statusCode:(NSInteger)statusCode MIMEType:(NSString *)MIMEType afterDelay:(NSTimeInterval)delay;
/*!
@@ -160,3 +169,5 @@ extern NSString *const GHMockNSURLConnectionException;
- (void)failWithError:(NSError *)error afterDelay:(NSTimeInterval)delay;
@end
+
+//! @endcond
View
4 Classes/Mock/GHMockNSURLConnection.m
@@ -27,6 +27,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import "GHMockNSURLConnection.h"
#import "GHMockNSHTTPURLResponse.h"
#import "GHNSObject+Invocation.h"
@@ -123,3 +125,5 @@ - (void)failWithError:(NSError *)error afterDelay:(NSTimeInterval)delay {
}
@end
+
+//! @endcond
View
6 Classes/Mock/GHNSLocale+Mock.h
@@ -27,6 +27,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
/*!
Category for overriding the current locale at runtime.
@@ -38,7 +40,7 @@
[[NSLocale currentLocale] localeIdentifier] == "en_GB"
@endcode
*/
-@interface NSLocale (GHMock)
+@interface NSLocale(GHMock)
+ (void)gh_setLocaleIdentifier:(NSString *)localeIdentifier;
@@ -57,3 +59,5 @@
+ (NSArray *)gh_preferredLanguages;
@end
+
+//! @endcond
View
6 Classes/Mock/GHNSLocale+Mock.m
@@ -26,12 +26,15 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.
//
+
+//! @cond DEV
+
#import "GHNSLocale+Mock.h"
#import "GHUNSObject+Swizzle.h"
// Allows us to override the current locale for testing
-@implementation NSLocale (GHMock)
+@implementation NSLocale(GHMock)
static NSString *gGHUNSLocaleLocaleIdentifier = NULL;
static NSArray *gGHUNSLocalePreferredLanguages = NULL;
@@ -79,3 +82,4 @@ + (NSArray *)gh_preferredLanguages {
@end
+//! @endcond
View
6 Classes/Mock/GHUNSObject+Swizzle.h
@@ -27,10 +27,14 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-@interface NSObject (GHUSwizzle)
+//! @cond DEV
+
+@interface NSObject(GHUSwizzle)
+ (void)ghu_swizzleMethod:(SEL)original withMethod:(SEL)alternate;
+ (void)ghu_swizzleClassMethod:(SEL)original withClassMethod:(SEL)alternate;
@end
+//! @endcond
+
View
8 Classes/Mock/GHUNSObject+Swizzle.m
@@ -27,13 +27,15 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import "GHUNSObject+Swizzle.h"
#import <objc/runtime.h>
BOOL GHU_PerformSwizzle(Class klass, SEL origSel, SEL altSel, BOOL forInstance);
-@implementation NSObject (GHUSwizzle)
+@implementation NSObject(GHUSwizzle)
+ (void)ghu_swizzleMethod:(SEL)original withMethod:(SEL)alternate {
GHU_PerformSwizzle([self class], original, alternate, YES);
@@ -124,4 +126,6 @@ BOOL GHU_PerformSwizzle(Class klass, SEL origSel, SEL altSel, BOOL forInstance)
free(mlist);
return YES;
-}
+}
+
+//! @endcond
View
6 Classes/SharedUI/GHTestViewModel.h
@@ -1,6 +1,6 @@
//
// GHTest.h
-// GHKit
+// GHUnit
//
// Created by Gabriel Handford on 1/17/09.
// Copyright 2009. All rights reserved.
@@ -27,6 +27,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import "GHTestGroup.h"
@class GHTestNode;
@@ -161,3 +163,5 @@ typedef enum {
- (void)setFilter:(GHTestNodeFilter)filter textFilter:(NSString *)textFilter;
@end
+
+//! @endcond
View
6 Classes/SharedUI/GHTestViewModel.m
@@ -1,6 +1,6 @@
//
// GHTestViewModel.m
-// GHKit
+// GHUnit
//
// Created by Gabriel Handford on 1/17/09.
// Copyright 2009. All rights reserved.
@@ -27,6 +27,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+//! @cond DEV
+
#import "GHTestViewModel.h"
#import "GTMStackTrace.h"
#import "GHTesting.h"
@@ -418,3 +420,5 @@ - (void)setSelected:(BOOL)selected {
}
@end
+
+//! @endcond
View
BIN Documentation/GHUnit-0.4.18.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN Documentation/GHUnit-IPhone-0.4.18.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
268 Doxyfile
@@ -1,4 +1,4 @@
-# Doxyfile 1.5.8
+# Doxyfile 1.7.1
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project
@@ -31,14 +31,14 @@ PROJECT_NAME = GHUnit
# This could be handy for archiving the generated documentation or
# if some version control system is used.
-PROJECT_NUMBER = 0.3.4
+PROJECT_NUMBER = 0.4.26
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
-OUTPUT_DIRECTORY = /Users/gabe/Projects/gh-unit/Documentation
+OUTPUT_DIRECTORY = Documentation
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
# 4096 sub-directories (in 2 levels) under the output directory of each output
@@ -54,11 +54,11 @@ CREATE_SUBDIRS = NO
# information to generate all constant output in the proper language.
# The default language is English, other supported languages are:
# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek,
-# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages),
-# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish,
-# Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene,
-# Spanish, Swedish, and Ukrainian.
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
OUTPUT_LANGUAGE = English
@@ -102,7 +102,7 @@ ABBREVIATE_BRIEF = "The $name class" \
# Doxygen will generate a detailed section even if there is only a brief
# description.
-ALWAYS_DETAILED_SEC = YES
+ALWAYS_DETAILED_SEC = NO
# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
# inherited members of a class in the documentation of that class as if those
@@ -124,7 +124,7 @@ FULL_PATH_NAMES = YES
# If left blank the directory from which doxygen is run is used as the
# path to strip.
-STRIP_FROM_PATH = /Users/dimitri/doxygen/mail/1.5.7/doxywizard/
+STRIP_FROM_PATH =
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
# the path mentioned in the documentation of a class, which tells
@@ -147,7 +147,7 @@ SHORT_NAMES = NO
# comments will behave just like regular Qt-style comments
# (thus requiring an explicit @brief command for a brief description.)
-JAVADOC_AUTOBRIEF = NO
+JAVADOC_AUTOBRIEF = YES
# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
# interpret the first line (until the first dot) of a Qt-style
@@ -169,7 +169,7 @@ MULTILINE_CPP_IS_BRIEF = NO
# member inherits the documentation from any documented member that it
# re-implements.
-INHERIT_DOCS = YES
+INHERIT_DOCS = NO
# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
# a new page for each member. If set to NO, the documentation of a member will
@@ -180,7 +180,7 @@ SEPARATE_MEMBER_PAGES = NO
# The TAB_SIZE tag can be used to set the number of spaces in a tab.
# Doxygen uses this value to replace tabs by spaces in code fragments.
-TAB_SIZE = 2