Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Rebuilding iOS and Mac OS X project files; Removing BWToolkit

  • Loading branch information...
commit d2c25a309a7fbeb55a8613d673f256ce2c667413 1 parent 8cdb468
Gabriel Handford gabriel authored
Showing with 1,366 additions and 6,415 deletions.
  1. +6 −2 CHANGELOG.md
  2. +1 −0  Classes-MacOSX/UI/GHTestOutlineViewModel.h
  3. +984 −1,481 Classes-MacOSX/UI/GHTestView.xib
  4. +6 −3 Classes-MacOSX/UI/GHTestViewController.h
  5. +71 −21 Classes-MacOSX/UI/GHTestViewController.m
  6. +1 −1  Classes-MacOSX/UI/GHTestWindowController.m
  7. +3 −3 Classes-IPhone/GHUnitIPhoneAppDelegate.h → Classes-iOS/GHUnitIOSAppDelegate.h
  8. +6 −6 Classes-IPhone/GHUnitIPhoneAppDelegate.m → Classes-iOS/GHUnitIOSAppDelegate.m
  9. +3 −3 Classes-IPhone/GHUnitIPhoneTableViewDataSource.h → Classes-iOS/GHUnitIOSTableViewDataSource.h
  10. +4 −4 Classes-IPhone/GHUnitIPhoneTableViewDataSource.m → Classes-iOS/GHUnitIOSTableViewDataSource.m
  11. +3 −3 Classes-IPhone/GHUnitIPhoneTestViewController.h → Classes-iOS/GHUnitIOSTestViewController.h
  12. +4 −4 Classes-IPhone/GHUnitIPhoneTestViewController.m → Classes-iOS/GHUnitIOSTestViewController.m
  13. +3 −3 Classes-IPhone/GHUnitIPhoneView.h → Classes-iOS/GHUnitIOSView.h
  14. +4 −4 Classes-IPhone/GHUnitIPhoneView.m → Classes-iOS/GHUnitIOSView.m
  15. +9 −9 Classes-IPhone/GHUnitIPhoneViewController.h → Classes-iOS/GHUnitIOSViewController.h
  16. +9 −9 Classes-IPhone/GHUnitIPhoneViewController.m → Classes-iOS/GHUnitIOSViewController.m
  17. +36 −0 Classes-iOS/GHUnitIPhoneAppDelegate.h
  18. +34 −0 Classes-iOS/GHUnitIPhoneAppDelegate.m
  19. 0  {Classes-IPhone → Classes-iOS}/Mock/GHMockCLLocationManager.h
  20. 0  {Classes-IPhone → Classes-iOS}/Mock/GHMockCLLocationManager.m
  21. +2 −2 Classes/GHTest/GHTestRunner.m
  22. +20 −19 Classes/GHUnit.h
  23. BIN  Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/GHUnit
  24. +0 −47 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/BWSplitView.h
  25. +0 −132 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/GHNSInvocation+Utils.h
  26. +0 −133 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/GHNSInvocationProxy.h
  27. +0 −100 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/GHNSObject+Invocation.h
  28. +1 −0  Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/GHTestOutlineViewModel.h
  29. +6 −3 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/GHTestViewController.h
  30. +70 −31 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/GHUnit.h
  31. +0 −105 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/GTMStackTrace.h
  32. BIN  Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/English.lproj/InfoPlist.strings
  33. BIN  Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/GHTestApp.nib
  34. BIN  Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/GHTestView.nib
  35. BIN  Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/GHTestWindow.nib
  36. +0 −4 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/GHUnit-Debug.xcconfig
  37. +0 −15 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/GHUnit.xcconfig
  38. BIN  Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/GradientSplitViewDimpleBitmap.tif
  39. BIN  Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/GradientSplitViewDimpleVector.pdf
  40. +22 −2 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/Info.plist
  41. 0  ...rr; Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/en.lproj}/InfoPlist.strings
  42. +43 −48 Examples/MyTestable-MacOSX/GHUnitTestMain.m
  43. +6 −6 Examples/MyTestable-MacOSX/MyTestable-MacOSX.xcodeproj/project.pbxproj
  44. +7 −0 Examples/MyTestable-MacOSX/MyTestable-MacOSX.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  45. +2 −10 Examples/MyTestable-MacOSX/RunTests.sh
  46. +0 −14 Examples/MyTestable-MacOSX/main.m
  47. +0 −1  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/BWToolkitFramework
  48. +0 −1  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Headers
  49. +0 −1  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Resources
  50. BIN  ...es-MaxOSX/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/BWToolkitFramework
  51. +0 −21 ...X/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWAnchoredButton.h
  52. +0 −27 ...WToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWAnchoredButtonBar.h
  53. +0 −16 ...Toolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWAnchoredButtonCell.h
  54. +0 −21 ...oolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWAnchoredPopUpButton.h
  55. +0 −16 ...it.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWAnchoredPopUpButtonCell.h
  56. +0 −24 ...xOSX/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWGradientBox.h
  57. +0 −18 .../BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWHyperlinkButton.h
  58. +0 −16 ...oolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWHyperlinkButtonCell.h
  59. +0 −16 ...X/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWInsetTextField.h
  60. +0 −36 ...WToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWSelectableToolbar.h
  61. +0 −31 .../BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWSheetController.h
  62. +0 −44 ...MaxOSX/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWSplitView.h
  63. +0 −33 .../BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWStyledTextField.h
  64. +0 −22 ...oolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWStyledTextFieldCell.h
  65. +0 −25 ...X/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTexturedSlider.h
  66. +0 −19 ...Toolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTexturedSliderCell.h
  67. +0 −17 ...oolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTokenAttachmentCell.h
  68. +0 −16 ...axOSX/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTokenField.h
  69. +0 −16 ...X/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTokenFieldCell.h
  70. +0 −16 ...xOSX/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWToolbarItem.h
  71. +0 −16 ...lkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWToolbarShowColorsItem.h
  72. +0 −16 ...olkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWToolbarShowFontsItem.h
  73. +0 −47 ...BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWToolkitFramework.h
  74. +0 −16 ...WToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentButton.h
  75. +0 −17 ...lkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentButtonCell.h
  76. +0 −16 ...oolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentCheckbox.h
  77. +0 −17 ...it.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentCheckboxCell.h
  78. +0 −16 ...kit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentPopUpButton.h
  79. +0 −16 ...ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentPopUpButtonCell.h
  80. +0 −16 ...lkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentScrollView.h
  81. +0 −16 ...oolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentScroller.h
  82. +0 −16 ...WToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentSlider.h
  83. +0 −16 ...lkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentSliderCell.h
  84. +0 −16 ...olkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentTableView.h
  85. +0 −16 ...t.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentTableViewCell.h
  86. +0 −16 ...t.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentTextFieldCell.h
  87. +0 −16 ...BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWUnanchoredButton.h
  88. +0 −17 ...olkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWUnanchoredButtonCell.h
  89. +0 −15 ...it.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/NSApplication+BWAdditions.h
  90. +0 −16 ...WToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/NSColor+BWAdditions.h
  91. +0 −19 ...WToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/NSImage+BWAdditions.h
  92. +0 −22 .../BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/NSTokenAttachment.h
  93. +0 −52 ...oolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/NSTokenAttachmentCell.h
  94. +0 −15 ...BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/NSView+BWAdditions.h
  95. +0 −16 ...Toolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/NSWindow+BWAdditions.h
  96. BIN  ...t.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/ButtonBarPullDownArrow.pdf
  97. BIN  ...gin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/GradientSplitViewDimpleBitmap.tif
  98. BIN  ...gin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/GradientSplitViewDimpleVector.pdf
  99. BIN  ....ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/Library-SheetController.tif
  100. +0 −16 ...MaxOSX/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/License.rtf
  101. +0 −319 .../BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/Release Notes.rtf
  102. BIN  ...ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TexturedSliderPhotoLarge.tif
  103. BIN  ...ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TexturedSliderPhotoSmall.tif
  104. BIN  ...bplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TexturedSliderSpeakerLoud.png
  105. BIN  ...plugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TexturedSliderSpeakerQuiet.png
  106. BIN  ...it.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TexturedSliderThumbN.tiff
  107. BIN  ...it.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TexturedSliderThumbP.tiff
  108. BIN  ...ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TexturedSliderTrackFill.tiff
  109. BIN  ...ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TexturedSliderTrackLeft.tiff
  110. BIN  ...bplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TexturedSliderTrackRight.tiff
  111. BIN  ...olkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/ToolbarItemColors.tiff
  112. BIN  ...oolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/ToolbarItemFonts.tiff
  113. BIN  ....ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentButtonFillN.tiff
  114. BIN  ....ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentButtonFillP.tiff
  115. BIN  ....ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentButtonLeftN.tiff
  116. BIN  ....ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentButtonLeftP.tiff
  117. BIN  ...ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentButtonRightN.tiff
  118. BIN  ...ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentButtonRightP.tiff
  119. BIN  ...ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentCheckboxOffN.tiff
  120. BIN  ...ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentCheckboxOffP.tiff
  121. BIN  ....ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentCheckboxOnN.tiff
  122. BIN  ....ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentCheckboxOnP.tiff
  123. BIN  ...t.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentPopUpFillN.tiff
  124. BIN  ...t.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentPopUpFillP.tiff
  125. BIN  ...t.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentPopUpLeftN.tiff
  126. BIN  ...t.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentPopUpLeftP.tiff
  127. BIN  ...in/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentPopUpPullDownRightN.tif
  128. BIN  ...in/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentPopUpPullDownRightP.tif
  129. BIN  ....ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentPopUpRightN.tiff
  130. BIN  ....ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentPopUpRightP.tiff
  131. BIN  ...gin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentScrollerKnobBottom.tif
  132. BIN  ...ents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentScrollerKnobHorizontalFill.tif
  133. BIN  ...lugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentScrollerKnobLeft.tif
  134. BIN  ...ugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentScrollerKnobRight.tif
  135. BIN  ...plugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentScrollerKnobTop.tif
  136. BIN  ...ntents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentScrollerKnobVerticalFill.tif
  137. BIN  ...gin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentScrollerSlotBottom.tif
  138. BIN  ...ents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentScrollerSlotHorizontalFill.tif
  139. BIN  ...lugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentScrollerSlotLeft.tif
  140. BIN  ...ugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentScrollerSlotRight.tif
  141. BIN  ...plugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentScrollerSlotTop.tif
  142. BIN  ...ntents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentScrollerSlotVerticalFill.tif
  143. BIN  ...ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentSliderThumbN.tiff
  144. BIN  ...ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentSliderThumbP.tiff
  145. BIN  ...lugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentSliderTrackFill.tiff
  146. BIN  ...lugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentSliderTrackLeft.tiff
  147. BIN  ...ugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentSliderTrackRight.tiff
  148. BIN  .../Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentSliderTriangleThumbN.tiff
  149. BIN  .../Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Resources/TransparentSliderTriangleThumbP.tiff
  150. +0 −1  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/Current
  151. +0 −26 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Info.plist
  152. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/MacOS/BWToolkit
  153. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWAddMiniBottomBar.classdescription
  154. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWAddRegularBottomBar.classdescription
  155. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWAddSmallBottomBar.classdescription
  156. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWAnchoredButton.classdescription
  157. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWAnchoredButtonBar.classdescription
  158. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWAnchoredButtonBarInspector.nib
  159. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWAnchoredPopUpButton.classdescription
  160. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWBottomBarLibrary.nib
  161. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWButtonBarLibrary.nib
  162. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWControllersLibrary.nib
  163. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWGradientBoxInspector.nib
  164. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWHyperlinkButtonInspector.nib
  165. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWInsetTextField.classdescription
  166. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWRemoveBottomBar.classdescription
  167. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWSelectableToolbar.classdescription
  168. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWSelectableToolbarInspector.nib
  169. +0 −14 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWSheetController.classdescription
  170. +0 −11 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWSplitView.classdescription
  171. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWSplitViewInspector.nib
  172. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWSplitViewLibrary.nib
  173. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWStyledTextFieldInspector.nib
  174. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTexturedSlider.classdescription
  175. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTexturedSliderCell.classdescription
  176. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTexturedSliderInspector.nib
  177. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTokenField.classdescription
  178. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTokenFieldCell.classdescription
  179. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWToolbarItem.classdescription
  180. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWToolbarItemInspector.nib
  181. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWToolbarItemsLibrary.nib
  182. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWToolbarShowColorsItem.classdescription
  183. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWToolbarShowFontsItem.classdescription
  184. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTransparentButton.classdescription
  185. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTransparentButtonCell.classdescription
  186. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTransparentCheckbox.classdescription
  187. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTransparentCheckboxCell.classdescription
  188. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTransparentControlsLibrary.nib
  189. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTransparentPopUpButton.classdescription
  190. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTransparentPopUpButtonCell.classdescription
  191. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTransparentScroller.classdescription
  192. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTransparentSlider.classdescription
  193. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTransparentSliderCell.classdescription
  194. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTransparentTableView.classdescription
  195. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTransparentTableViewCell.classdescription
  196. +0 −12 Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/BWTransparentTextFieldCell.classdescription
  197. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/English.lproj/BWToolkitLibrary.nib
  198. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/English.lproj/InfoPlist.strings
  199. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/GradientWellPattern.tif
  200. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Inspector-ButtonBarMode1.tif
  201. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Inspector-ButtonBarMode1Pressed.tif
  202. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Inspector-ButtonBarMode2.tif
  203. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Inspector-ButtonBarMode2Pressed.tif
  204. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Inspector-ButtonBarMode3.tif
  205. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Inspector-ButtonBarMode3Pressed.tif
  206. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Inspector-ButtonBarModeSelection.tif
  207. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Inspector-SplitViewArrowBlueLeft.tif
  208. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Inspector-SplitViewArrowBlueRight.tif
  209. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Inspector-SplitViewArrowRedFill.tif
  210. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Inspector-SplitViewArrowRedLeft.tif
  211. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Inspector-SplitViewArrowRedRight.tif
  212. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Inspector-SplitViewBackground.tiff
  213. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-AddMiniBottomBar.tif
  214. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-AddRegularBottomBar.tif
  215. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-AddSheetBottomBar.tif
  216. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-AddSmallBottomBar.tif
  217. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-AnchoredButton.tif
  218. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-AnchoredButtonBar.tif
  219. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-AnchoredPopUpButton.tif
  220. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-GradientBox.tif
  221. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-GradientSplitView.tif
  222. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-HorizontalSplitView.tif
  223. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-InsetTextField.tif
  224. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-RemoveBottomBar.tif
  225. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-SelectableToolbar.tif
  226. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-SheetController.tif
  227. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-ShowColors.tif
  228. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-ShowFonts.tif
  229. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-StyledTextField.tif
  230. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-TexturedAddButton.tif
  231. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-TexturedRemoveButton.tif
  232. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-TexturedSlider.tif
  233. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-TokenField.tif
  234. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-ToolbarItem.tiff
  235. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-TransparentButton.tif
  236. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-TransparentCheckbox.tif
  237. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-TransparentCheckboxCell.tif
  238. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-TransparentLabel.tif
  239. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-TransparentPopUpButton.tif
  240. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-TransparentSlider.tif
  241. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-TransparentTableView.tif
  242. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-TransparentTextView.tif
  243. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/Library-VerticalSplitView.tif
  244. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/ToolbarItemColors.tiff
  245. BIN  Libraries-MaxOSX/BWToolkit.ibplugin/Contents/Resources/ToolbarItemFonts.tiff
  246. +0 −15 Libraries-MaxOSX/BWToolkitFramework/BWHyperlinkButton.h
  247. +0 −23 Libraries-MaxOSX/BWToolkitFramework/BWHyperlinkButton.m
  248. +0 −16 Libraries-MaxOSX/BWToolkitFramework/BWHyperlinkButtonCell.h
  249. +0 −42 Libraries-MaxOSX/BWToolkitFramework/BWHyperlinkButtonCell.m
  250. +0 −47 Libraries-MaxOSX/BWToolkitFramework/BWSplitView.h
  251. +0 −1,433 Libraries-MaxOSX/BWToolkitFramework/BWSplitView.m
  252. BIN  Libraries-MaxOSX/BWToolkitFramework/GradientSplitViewDimpleBitmap.tif
  253. BIN  Libraries-MaxOSX/BWToolkitFramework/GradientSplitViewDimpleVector.pdf
  254. +0 −16 Libraries-MaxOSX/BWToolkitFramework/NSColor+BWAdditions.h
  255. +0 −79 Libraries-MaxOSX/BWToolkitFramework/NSColor+BWAdditions.m
  256. +0 −19 Libraries-MaxOSX/BWToolkitFramework/NSEvent+BWAdditions.h
  257. +0 −53 Libraries-MaxOSX/BWToolkitFramework/NSEvent+BWAdditions.m
  258. +0 −1  Libraries/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/BWToolkitFramework
  259. +0 −1  Libraries/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Headers
  260. +0 −1  Libraries/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Resources
  261. BIN  Libraries/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/BWToolkitFramework
  262. +0 −21 ...s/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWAnchoredButton.h
  263. +0 −27 ...WToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWAnchoredButtonBar.h
  264. +0 −16 ...Toolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWAnchoredButtonCell.h
  265. +0 −21 ...oolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWAnchoredPopUpButton.h
  266. +0 −16 ...it.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWAnchoredPopUpButtonCell.h
  267. +0 −24 ...ries/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWGradientBox.h
  268. +0 −18 .../BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWHyperlinkButton.h
  269. +0 −16 ...oolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWHyperlinkButtonCell.h
  270. +0 −16 ...s/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWInsetTextField.h
  271. +0 −36 ...WToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWSelectableToolbar.h
  272. +0 −31 .../BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWSheetController.h
  273. +0 −45 Libraries/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWSplitView.h
  274. +0 −33 .../BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWStyledTextField.h
  275. +0 −23 ...oolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWStyledTextFieldCell.h
  276. +0 −25 ...s/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTexturedSlider.h
  277. +0 −19 ...Toolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTexturedSliderCell.h
  278. +0 −17 ...oolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTokenAttachmentCell.h
  279. +0 −16 ...aries/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTokenField.h
  280. +0 −16 ...s/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTokenFieldCell.h
  281. +0 −16 ...ries/BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWToolbarItem.h
  282. +0 −16 ...lkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWToolbarShowColorsItem.h
  283. +0 −16 ...olkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWToolbarShowFontsItem.h
  284. +0 −47 ...BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWToolkitFramework.h
  285. +0 −16 ...WToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentButton.h
  286. +0 −17 ...lkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentButtonCell.h
  287. +0 −16 ...oolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentCheckbox.h
  288. +0 −17 ...it.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentCheckboxCell.h
  289. +0 −16 ...kit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentPopUpButton.h
  290. +0 −16 ...ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentPopUpButtonCell.h
  291. +0 −16 ...lkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentScrollView.h
  292. +0 −16 ...oolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentScroller.h
  293. +0 −16 ...WToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentSlider.h
  294. +0 −16 ...lkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentSliderCell.h
  295. +0 −16 ...olkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentTableView.h
  296. +0 −16 ...t.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentTableViewCell.h
  297. +0 −16 ...t.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWTransparentTextFieldCell.h
  298. +0 −16 ...BWToolkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWUnanchoredButton.h
  299. +0 −17 ...olkit.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWUnanchoredButtonCell.h
  300. +0 −15 ...it.ibplugin/Contents/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/NSApplication+BWAdditions.h
Sorry, we could not display the entire diff because too many files (1,057) changed.
8 CHANGELOG.md
View
@@ -1,3 +1,7 @@
+# Release 0.4.29
+- Changing paths to use iOS instead of iPhone
+- Rebuilding iOS project using XCode 4
+
# Release 0.4.28
- Building as GHUnitIOS.framework for iOS.
- Fix issue #37
@@ -7,7 +11,7 @@
- Fix issue #19
# Release 0.4.27
-- Added in GHUnitIPhoneAppDelegate for subclassing test app delegate
+- Added in GHUnitIOSAppDelegate for subclassing test app delegate
# Release 0.4.26
- Fixing LLVM/clang warnings (Whitney Young, nolanw)
@@ -98,7 +102,7 @@
- UI fixes
# Release 0.4.5 (2008-07-21)
-- Including GHUnitIPhoneAppDelegate so you can subclass and interact with UIApplication delegate in tests
+- Including GHUnitIOSAppDelegate so you can subclass and interact with UIApplication delegate in tests
# Release 0.4.4 (2008-07-20)
- Ignore disable/cancelled tests in scroll (iPhone)
1  Classes-MacOSX/UI/GHTestOutlineViewModel.h
View
@@ -9,6 +9,7 @@
#import "GHTestViewModel.h"
@class GHTestOutlineViewModel;
+#define MIN_WINDOW_WIDTH (635.0)
@protocol GHTestOutlineViewModelDelegate <NSObject>
- (void)testOutlineViewModelDidChangeSelection:(GHTestOutlineViewModel *)testOutlineViewModel;
2,465 Classes-MacOSX/UI/GHTestView.xib
View
984 additions, 1,481 deletions not shown
9 Classes-MacOSX/UI/GHTestViewController.h
View
@@ -31,11 +31,10 @@
#import "GHTestGroup.h"
#import "GHTestOutlineViewModel.h"
-#import "BWSplitView.h"
-@interface GHTestViewController : NSViewController <GHTestRunnerDelegate, GHTestOutlineViewModelDelegate> {
+@interface GHTestViewController : NSViewController <GHTestRunnerDelegate, GHTestOutlineViewModelDelegate, NSSplitViewDelegate> {
- IBOutlet BWSplitView *_splitView;
+ IBOutlet NSSplitView *_splitView;
IBOutlet NSView *_statusView;
IBOutlet NSView *_detailsView;
IBOutlet NSOutlineView *_outlineView;
@@ -43,6 +42,7 @@
IBOutlet NSSegmentedControl *_textSegmentedControl;
IBOutlet NSSegmentedControl *_segmentedControl;
IBOutlet NSSearchField *_searchField;
+ IBOutlet NSButton *_detailsToggleButton;
BOOL wrapInTextView_;
NSString *status_;
@@ -73,6 +73,9 @@
@property (retain, nonatomic) NSString *exceptionFilename;
@property (assign, nonatomic) NSInteger exceptionLineNumber;
+@property (assign, nonatomic) BOOL reraiseExceptions;
+@property (assign, nonatomic) BOOL runInParallel;
+
- (void)loadTestSuite;
92 Classes-MacOSX/UI/GHTestViewController.m
View
@@ -55,7 +55,7 @@ - (id)init {
dataSource_ = [[GHTestOutlineViewModel alloc] initWithIdentifier:identifier suite:suite_];
dataSource_.delegate = self;
[dataSource_ loadDefaults];
- self.view; // Force nib awaken
+ [self view]; // Force nib awaken
}
return self;
}
@@ -65,18 +65,23 @@ - (void)dealloc {
[dataSource_ release];
[suite_ release];
[status_ release];
+ [_detailsView release];
[super dealloc];
}
- (void)awakeFromNib {
_outlineView.delegate = dataSource_;
- _outlineView.dataSource = dataSource_;
+ _outlineView.dataSource = dataSource_;
+
+ [_detailsView retain]; // If we remove from superview, need to keep it retained
[_textView setTextColor:[NSColor whiteColor]];
[_textView setFont:[NSFont fontWithName:@"Monaco" size:10.0]];
[_textView setString:@""];
_textSegmentedControl.selectedSegment = [[NSUserDefaults standardUserDefaults] integerForKey:@"TextSelectedSegment"];
+ _splitView.delegate = self;
+
NSString *prefix = [self _prefix];
if (prefix) {
[_searchField setStringValue:prefix];
@@ -111,12 +116,12 @@ - (void)runTests {
[self loadTestSuite];
self.status = @"Starting tests...";
self.runLabel = @"Cancel";
- BOOL inParallel = [[NSUserDefaults standardUserDefaults] boolForKey:@"RunInParallel"];
- BOOL reraiseExceptions = [[NSUserDefaults standardUserDefaults] boolForKey:@"ReraiseExceptions"];
+ BOOL inParallel = self.runInParallel;
+ BOOL reraiseExceptions = self.reraiseExceptions;
// TODO(gabe): This is confusing; Choosing reraise over in parallel since can't have both
if (inParallel && reraiseExceptions) inParallel = NO;
- GHTestOptions options;
- if (reraiseExceptions) options |= GHTestOptionReraiseExceptions;
+ GHTestOptions options = 0;
+ if (self.reraiseExceptions) options |= GHTestOptionReraiseExceptions;
[dataSource_ run:self inParallel:inParallel options:options];
}
}
@@ -205,30 +210,65 @@ - (IBAction)rerunTest:(id)sender {
[test run:GHTestOptionForceSetUpTearDownClass];
[self _updateDetailForTest:test prefix:@"Re-ran test. (This feature is experimental.)"];
[test release];
-}
+}
- (BOOL)isShowingDetails {
return ![[NSUserDefaults standardUserDefaults] boolForKey:@"ViewCollapsed"];
}
+- (void)setShowingDetails:(BOOL)showingDetails {
+ [[NSUserDefaults standardUserDefaults] setBool:(!showingDetails) forKey:@"ViewCollapsed"];
+ [[NSUserDefaults standardUserDefaults] synchronize];
+}
+
+- (void)setReraiseExceptions:(BOOL)reraiseExceptions {
+ [[NSUserDefaults standardUserDefaults] setBool:reraiseExceptions forKey:@"ReraiseExceptions"];
+ [[NSUserDefaults standardUserDefaults] synchronize];
+}
+
+- (BOOL)reraiseExceptions {
+ return [[NSUserDefaults standardUserDefaults] boolForKey:@"ReraiseExceptions"];
+}
+
+- (void)setRunInParallel:(BOOL)runInParallel {
+ [[NSUserDefaults standardUserDefaults] setBool:runInParallel forKey:@"RunInParallel"];
+ [[NSUserDefaults standardUserDefaults] synchronize];
+}
+
+- (BOOL)runInParallel {
+ return [[NSUserDefaults standardUserDefaults] boolForKey:@"RunInParallel"];
+}
+
+- (void)hideDetails {
+ [_detailsView removeFromSuperview];
+ [_detailsToggleButton setState:NSOffState];
+ [self setShowingDetails:NO];
+}
+
+- (void)showDetails {
+ CGFloat windowWidth = self.view.window.frame.size.width;
+ CGFloat minWindowWidth = MIN_WINDOW_WIDTH;
+ if (windowWidth < minWindowWidth) {
+ NSRect frame = self.view.window.frame;
+ frame.size.width = minWindowWidth;
+ [self.view.window setFrame:frame display:YES animate:YES];
+ }
+ [_splitView addSubview:_detailsView];
+ [_detailsToggleButton setState:NSOnState];
+ [self setShowingDetails:YES];
+}
+
- (IBAction)toggleDetails:(id)sender {
- if ([[NSUserDefaults standardUserDefaults] boolForKey:@"ViewCollapsed"]) {
- [_detailsView removeFromSuperview];
+ if ([self isShowingDetails]) {
+ [self hideDetails];
} else {
- CGFloat windowWidth = self.view.window.frame.size.width;
- CGFloat minWindowWidth = 600;
- if (windowWidth < minWindowWidth) {
- NSRect frame = self.view.window.frame;
- frame.size.width = minWindowWidth;
- [self.view.window setFrame:frame display:YES animate:YES];
- }
- [_splitView addSubview:_detailsView];
- }
+ [self showDetails];
+ }
}
- (void)loadDefaults {
- if (![[NSUserDefaults standardUserDefaults] boolForKey:@"ViewCollapsed"]) {
- [self toggleDetails:nil];
+ if (![self isShowingDetails]) {
+ [self hideDetails];
}
}
@@ -369,7 +409,7 @@ - (void)testRunnerDidEnd:(GHTestRunner *)runner {
if (getenv("GHUNIT_AUTOEXIT")) {
NSLog(@"Exiting (GHUNIT_AUTOEXIT)");
- exit(runner.test.stats.failureCount);
+ exit((int)runner.test.stats.failureCount);
[NSApp terminate:self];
}
}
@@ -381,4 +421,14 @@ - (void)testRunnerDidCancel:(GHTestRunner *)runner {
self.running = NO;
}
+#pragma mark Delegates (NSSplitView)
+
+- (CGFloat)splitView:(NSSplitView *)splitView constrainMinCoordinate:(CGFloat)proposedMin ofSubviewAt:(NSInteger)dividerIndex {
+ return 300;
+}
+
+- (CGFloat)splitView:(NSSplitView *)splitView constrainMaxCoordinate:(CGFloat)proposedMax ofSubviewAt:(NSInteger)dividerIndex {
+ return [self view].frame.size.width - 335;
+}
+
@end
2  Classes-MacOSX/UI/GHTestWindowController.m
View
@@ -67,7 +67,7 @@ - (void)windowWillClose:(NSNotification *)notification {
}
- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize {
- if ([viewController_ isShowingDetails] && frameSize.width < 600) return sender.frame.size;
+ if ([viewController_ isShowingDetails] && frameSize.width < MIN_WINDOW_WIDTH) return sender.frame.size;
return frameSize;
}
6 Classes-IPhone/GHUnitIPhoneAppDelegate.h → Classes-iOS/GHUnitIOSAppDelegate.h
View
@@ -1,6 +1,6 @@
//
-// GHUnitIPhoneAppDelegate.h
-// GHUnitIPhone
+// GHUnitIOSAppDelegate.h
+// GHUnitIOS
//
// Created by Gabriel Handford on 1/25/09.
// Copyright 2009. All rights reserved.
@@ -29,7 +29,7 @@
#import <UIKit/UIKit.h>
-@interface GHUnitIPhoneAppDelegate : NSObject <UIApplicationDelegate> {
+@interface GHUnitIOSAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window_;
UINavigationController *navigationController_;
12 Classes-IPhone/GHUnitIPhoneAppDelegate.m → Classes-iOS/GHUnitIOSAppDelegate.m
View
@@ -1,6 +1,6 @@
//
-// GHUnitIPhoneAppDelegate.m
-// GHUnitIPhone
+// GHUnitIOSAppDelegate.m
+// GHUnitIOS
//
// Created by Gabriel Handford on 1/25/09.
// Copyright 2009. All rights reserved.
@@ -27,13 +27,13 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-#import "GHUnitIPhoneAppDelegate.h"
-#import "GHUnitIPhoneViewController.h"
+#import "GHUnitIOSAppDelegate.h"
+#import "GHUnitIOSViewController.h"
-@implementation GHUnitIPhoneAppDelegate
+@implementation GHUnitIOSAppDelegate
- (void)applicationDidFinishLaunching:(UIApplication *)application {
- GHUnitIPhoneViewController *viewController = [[GHUnitIPhoneViewController alloc] init];
+ GHUnitIOSViewController *viewController = [[GHUnitIOSViewController alloc] init];
[viewController loadDefaults];
navigationController_ = [[UINavigationController alloc] initWithRootViewController:viewController];
[viewController release];
6 Classes-IPhone/GHUnitIPhoneTableViewDataSource.h → Classes-iOS/GHUnitIOSTableViewDataSource.h
View
@@ -1,6 +1,6 @@
//
-// GHUnitIPhoneTableViewDataSource.h
-// GHUnitIPhone
+// GHUnitIOSTableViewDataSource.h
+// GHUnitIOS
//
// Created by Gabriel Handford on 5/5/09.
// Copyright 2009. All rights reserved.
@@ -29,7 +29,7 @@
#import "GHTestViewModel.h"
-@interface GHUnitIPhoneTableViewDataSource : GHTestViewModel <UITableViewDataSource> {
+@interface GHUnitIOSTableViewDataSource : GHTestViewModel <UITableViewDataSource> {
}
8 Classes-IPhone/GHUnitIPhoneTableViewDataSource.m → Classes-iOS/GHUnitIOSTableViewDataSource.m
View
@@ -1,6 +1,6 @@
//
-// GHUnitIPhoneTableViewDataSource.m
-// GHUnitIPhone
+// GHUnitIOSTableViewDataSource.m
+// GHUnitIOS
//
// Created by Gabriel Handford on 5/5/09.
// Copyright 2009. All rights reserved.
@@ -27,9 +27,9 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-#import "GHUnitIPhoneTableViewDataSource.h"
+#import "GHUnitIOSTableViewDataSource.h"
-@implementation GHUnitIPhoneTableViewDataSource
+@implementation GHUnitIOSTableViewDataSource
- (GHTestNode *)nodeForIndexPath:(NSIndexPath *)indexPath {
GHTestNode *sectionNode = [[[self root] children] objectAtIndex:indexPath.section];
6 Classes-IPhone/GHUnitIPhoneTestViewController.h → Classes-iOS/GHUnitIOSTestViewController.h
View
@@ -1,6 +1,6 @@
//
-// GHUnitIPhoneTestViewController.h
-// GHUnitIPhone
+// GHUnitIOSTestViewController.h
+// GHUnitIOS
//
// Created by Gabriel Handford on 2/20/09.
// Copyright 2009. All rights reserved.
@@ -29,7 +29,7 @@
#import "GHTestViewModel.h"
-@interface GHUnitIPhoneTestViewController : UIViewController <GHTestRunnerDelegate> {
+@interface GHUnitIOSTestViewController : UIViewController <GHTestRunnerDelegate> {
UITextView *textView_;
GHTestNode *testNode_;
8 Classes-IPhone/GHUnitIPhoneTestViewController.m → Classes-iOS/GHUnitIOSTestViewController.m
View
@@ -1,6 +1,6 @@
//
-// GHUnitIPhoneTestViewController.m
-// GHUnitIPhone
+// GHUnitIOSTestViewController.m
+// GHUnitIOS
//
// Created by Gabriel Handford on 2/20/09.
// Copyright 2009. All rights reserved.
@@ -27,10 +27,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-#import "GHUnitIPhoneTestViewController.h"
+#import "GHUnitIOSTestViewController.h"
-@implementation GHUnitIPhoneTestViewController
+@implementation GHUnitIOSTestViewController
- (id)init {
if ((self = [super init])) {
6 Classes-IPhone/GHUnitIPhoneView.h → Classes-iOS/GHUnitIOSView.h
View
@@ -1,6 +1,6 @@
//
-// GHUnitIPhoneView.h
-// GHUnitIPhone
+// GHUnitIOSView.h
+// GHUnitIOS
//
// Created by Gabriel Handford on 4/12/10.
// Copyright 2010. All rights reserved.
@@ -28,7 +28,7 @@
//
-@interface GHUnitIPhoneView : UIView {
+@interface GHUnitIOSView : UIView {
UISearchBar *searchBar_;
UITableView *tableView_;
8 Classes-IPhone/GHUnitIPhoneView.m → Classes-iOS/GHUnitIOSView.m
View
@@ -1,6 +1,6 @@
//
-// GHUnitIPhoneView.m
-// GHUnitIPhone
+// GHUnitIOSView.m
+// GHUnitIOS
//
// Created by Gabriel Handford on 4/12/10.
// Copyright 2010. All rights reserved.
@@ -27,9 +27,9 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-#import "GHUnitIPhoneView.h"
+#import "GHUnitIOSView.h"
-@implementation GHUnitIPhoneView
+@implementation GHUnitIOSView
@synthesize statusLabel=statusLabel_, filterControl=filterControl_, searchBar=searchBar_, tableView=tableView_;
18 Classes-IPhone/GHUnitIPhoneViewController.h → Classes-iOS/GHUnitIOSViewController.h
View
@@ -1,6 +1,6 @@
//
-// GHUnitIPhoneViewController.h
-// GHUnitIPhone
+// GHUnitIOSViewController.h
+// GHUnitIOS
//
// Created by Gabriel Handford on 1/25/09.
// Copyright 2009. All rights reserved.
@@ -27,17 +27,17 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-#import "GHUnitIPhoneView.h"
+#import "GHUnitIOSView.h"
-#import "GHUnitIPhoneTableViewDataSource.h"
-#import "GHUnitIPhoneTestViewController.h"
+#import "GHUnitIOSTableViewDataSource.h"
+#import "GHUnitIOSTestViewController.h"
-@interface GHUnitIPhoneViewController : UIViewController <UITableViewDelegate, GHTestRunnerDelegate, UISearchBarDelegate> {
+@interface GHUnitIOSViewController : UIViewController <UITableViewDelegate, GHTestRunnerDelegate, UISearchBarDelegate> {
- GHUnitIPhoneView *view_;
+ GHUnitIOSView *view_;
//! Data source for table view
- GHUnitIPhoneTableViewDataSource *dataSource_;
+ GHUnitIOSTableViewDataSource *dataSource_;
GHTestSuite *suite_;
UIBarButtonItem *runButton_;
@@ -65,7 +65,7 @@
- (void)loadDefaults;
- (void)saveDefaults;
-- (GHUnitIPhoneTableViewDataSource *)dataSource;
+- (GHUnitIOSTableViewDataSource *)dataSource;
@end
18 Classes-IPhone/GHUnitIPhoneViewController.m → Classes-iOS/GHUnitIOSViewController.m
View
@@ -1,6 +1,6 @@
//
-// GHUnitIPhoneViewController.m
-// GHUnitIPhone
+// GHUnitIOSViewController.m
+// GHUnitIOS
//
// Created by Gabriel Handford on 1/25/09.
// Copyright 2009. All rights reserved.
@@ -27,19 +27,19 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-#import "GHUnitIPhoneViewController.h"
+#import "GHUnitIOSViewController.h"
NSString *const GHUnitPrefixKey = @"Prefix";
NSString *const GHUnitFilterKey = @"Filter";
-@interface GHUnitIPhoneViewController ()
+@interface GHUnitIOSViewController ()
- (NSString *)_prefix;
- (void)_setPrefix:(NSString *)prefix;
- (void)_setFilterIndex:(NSInteger)index;
- (NSInteger)_filterIndex;
@end
-@implementation GHUnitIPhoneViewController
+@implementation GHUnitIOSViewController
@synthesize suite=suite_;
@@ -79,7 +79,7 @@ - (void)loadView {
view_.searchBar.delegate = nil;
[view_ release];
- view_ = [[GHUnitIPhoneView alloc] initWithFrame:CGRectMake(0, 0, 320, 344)];
+ view_ = [[GHUnitIOSView alloc] initWithFrame:CGRectMake(0, 0, 320, 344)];
view_.searchBar.delegate = self;
NSString *prefix = [self _prefix];
if (prefix) view_.searchBar.text = prefix;
@@ -91,9 +91,9 @@ - (void)loadView {
[self reload];
}
-- (GHUnitIPhoneTableViewDataSource *)dataSource {
+- (GHUnitIOSTableViewDataSource *)dataSource {
if (!dataSource_) {
- dataSource_ = [[GHUnitIPhoneTableViewDataSource alloc] initWithIdentifier:@"Tests" suite:[GHTestSuite suiteFromEnv]];
+ dataSource_ = [[GHUnitIOSTableViewDataSource alloc] initWithIdentifier:@"Tests" suite:[GHTestSuite suiteFromEnv]];
[dataSource_ loadDefaults];
}
return dataSource_;
@@ -203,7 +203,7 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath
GHTestNode *sectionNode = [[[dataSource_ root] children] objectAtIndex:indexPath.section];
GHTestNode *testNode = [[sectionNode children] objectAtIndex:indexPath.row];
- GHUnitIPhoneTestViewController *testViewController = [[GHUnitIPhoneTestViewController alloc] init];
+ GHUnitIOSTestViewController *testViewController = [[GHUnitIOSTestViewController alloc] init];
[testViewController setTest:testNode.test];
[self.navigationController pushViewController:testViewController animated:YES];
[testViewController release];
36 Classes-iOS/GHUnitIPhoneAppDelegate.h
View
@@ -0,0 +1,36 @@
+//
+// GHUnitIPhoneAppDelegate.h
+// GHUnitIOS
+//
+// Created by Gabriel Handford on 6/28/11.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use,
+// copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following
+// conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#import "GHUnitIOSAppDelegate.h"
+
+// For backwards compatibility (see GHUnitIOSAppDelegate)
+@interface GHUnitIPhoneAppDelegate : GHUnitIOSAppDelegate {
+
+}
+
+@end
34 Classes-iOS/GHUnitIPhoneAppDelegate.m
View
@@ -0,0 +1,34 @@
+//
+// GHUnitIPhoneAppDelegate.m
+// GHUnitIOS
+//
+// Created by Gabriel Handford on 6/28/11.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use,
+// copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following
+// conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#import "GHUnitIPhoneAppDelegate.h"
+
+
+@implementation GHUnitIPhoneAppDelegate
+
+@end
0  Classes-IPhone/Mock/GHMockCLLocationManager.h → Classes-iOS/Mock/GHMockCLLocationManager.h
View
File renamed without changes
0  Classes-IPhone/Mock/GHMockCLLocationManager.m → Classes-iOS/Mock/GHMockCLLocationManager.m
View
File renamed without changes
4 Classes/GHTest/GHTestRunner.m
View
@@ -105,7 +105,7 @@ + (GHTestRunner *)runnerFromEnv {
+ (int)run {
GHTestRunner *testRunner = [GHTestRunner runnerFromEnv];
[testRunner runTests];
- return testRunner.stats.failureCount;
+ return (int)testRunner.stats.failureCount;
}
- (void)setInParallel:(BOOL)inParallel {
@@ -134,7 +134,7 @@ - (int)runTests {
} else {
[test_ run:options_];
}
- return self.stats.failureCount;
+ return (int)self.stats.failureCount;
}
- (NSTimeInterval)interval {
39 Classes/GHUnit.h
View
@@ -43,7 +43,7 @@
#import "NSValue+GHValueFormatter.h"
#if TARGET_OS_IPHONE
-#import "GHUnitIPhoneAppDelegate.h"
+#import "GHUnitIOSAppDelegate.h"
#endif
#ifdef DEBUG
@@ -117,6 +117,8 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
- Add the GHUnitIOSTestMain.m (http://github.com/gabriel/gh-unit/blob/master/Project-IPhone/GHUnitIOSTestMain.m) file into your project and make sure its enabled for the "Tests" target. You should delete the existing main.m file (or replace the contents of the existing main.m with GHUnitIOSTestMain.m).
- @ref Examples "Create a test"
- Build and run the "Tests" target.
+ - You can remove the files: TestsAppDelete* and MainWindow* that were generated with the Tests target.
+ - (Optional) @ref Makefile "Install Makefile"
@section InstallingIOSXCode3 Installing in XCode 3 (iOS)
@@ -132,26 +134,25 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
- 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 and make sure its enabled for the "Tests" target.
- (Optional) Create and and set a prefix header (<tt>Tests_Prefix.pch</tt>) and add <tt>#import <GHUnitIOS/GHUnit.h></tt> to it, and then you won't have to include that import for every test.
- - (Optional) @ref Makefile "Install Makefile"
- @ref Examples "Create a test"
- Build and run the "Tests" target.
+ - (Optional) @ref Makefile "Install Makefile"
@section InstallMacOSXXCode4 Installing in XCode 4 (Mac OS X)
- Add a <tt>New Target</tt>. Select <tt>Application -> Cocoa Application</tt>. Name it <tt>Tests</tt> (or something similar).
- Copy and add <tt>GHUnit.framework</tt> into your project: Add Files to 'App'..., select <tt>GHUnit.framework</tt>, and select only the "Tests" target.
- - In the "Tests" target, in Build Settings, add <tt>@loader_path/../Frameworks</tt> to <tt>Runpath Search Paths</tt>.
+ - In the "Tests" target, in Build Settings, add <tt>@@loader_path/../Frameworks</tt> to <tt>Runpath Search Paths</tt>.
- In the "Tests" target, in Build Phases, select <tt>Add Build Phase</tt> and then <tt>Add Copy Files</tt>.
- Change the Destination to <tt>Frameworks</tt>.
- Drag <tt>GHUnit.framework</tt> from the project file view into the the Copy Files 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. You should delete the existing main.m file (or replace the contents of the existing main.m with GHUnitTestMain.m).
-
+ - By default, the Tests-Info.plist file includes <tt>MainWindow</tt> for <tt>Main nib file base name</tt>. You should clear this field. You can also delete the existing MainMenu.xib and files like TestsAppDelegate.*.
- @ref Examples "Create a test"
- - By default, the Tests-Info.plist file includes <tt>MainWindow</tt> for <tt>Main nib file base name</tt>. You should clear this field. You can also delete the existing MainMenu.xib.
+ - Build and run the "Tests" target.
- (Optional) @ref Makefile "Install Makefile"
- - @ref Examples "Create a test"
@section InstallMacOSXXCode3 Installing in XCode 3 (Mac OS X)
@@ -169,8 +170,8 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
- 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) @ref Makefile "Install Makefile"
- @ref Examples "Create a test"
+ - (Optional) @ref Makefile "Install Makefile"
@subsection InstallProject Installing in your project
@@ -191,8 +192,8 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
- 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) @ref Makefile "Install Makefile"
- @ref Examples "Create a test"
+ - (Optional) @ref Makefile "Install Makefile"
*/
/*!
@@ -225,7 +226,8 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
@implementation ExampleTest
- (BOOL)shouldRunOnMainThread {
- // By default NO, but if you have a UI test or test dependent on running on the main thread return YES
+ // By default NO, but if you have a UI test or test dependent on running on the main thread return YES.
+ // Also an async test that calls back on the main thread, you'll probably want to return YES.
return NO;
}
@@ -400,11 +402,10 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
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'
+ - Copy the RunTests.sh (http://github.com/gabriel/gh-unit/tree/master/Scripts/RunTests.sh) file into your project directory.
+ - In the <tt>Tests</tt> target, (and Build Phases in XCode 4), 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):
@@ -432,7 +433,7 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
Example Makefile's for Mac or iPhone apps:
- Makefile (Mac OS X): http://github.com/gabriel/gh-unit/tree/master/Project/Makefile.example (for a Mac App)
- - Makefile (iOS): http://github.com/gabriel/gh-unit/tree/master/Project-IPhone/Makefile.example (for an iOS App)
+ - Makefile (iOS): http://github.com/gabriel/gh-unit/tree/master/Project-iOS/Makefile.example (for an iOS App)
The script will return a non-zero exit code on test failure.
@@ -516,16 +517,16 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
[[GHTesting sharedInstance] registerClassName:@"MySpecialTestCase"];
@endcode
- @section AlternateIOSAppDelegate Using an Alternate iPhone Application Delegate
+ @section AlternateIOSAppDelegate Using an Alternate iOS Application Delegate
- If you want to use a custom application delegate in your test environment, you should subclass GHUnitIPhoneAppDelegate:
+ If you want to use a custom application delegate in your test environment, you should subclass GHUnitIOSAppDelegate:
@code
- @interface MyTestApplicationDelegate : GHUnitIPhoneAppDelegate { }
+ @interface MyTestApplicationDelegate : GHUnitIOSAppDelegate { }
@end
@endcode
- Then in GHUnitIPhoneTestMain.m:
+ Then in GHUnitIOSTestMain.m:
@code
retVal = UIApplicationMain(argc, argv, nil, @"MyTestApplicationDelegate");
BIN  Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/GHUnit
View
Binary file not shown
47 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/BWSplitView.h
View
@@ -1,47 +0,0 @@
-//
-// BWSplitView.h
-// BWToolkit
-//
-// Created by Brandon Walkin (www.brandonwalkin.com) and Fraser Kuyvenhoven.
-// All code is provided under the New BSD license.
-//
-
-#import <Cocoa/Cocoa.h>
-
-@interface BWSplitView : NSSplitView
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 // on lines like this to not confuse IB
- <NSSplitViewDelegate>
-#endif
-{
- NSColor *color;
- BOOL colorIsEnabled, checkboxIsEnabled, dividerCanCollapse, collapsibleSubviewCollapsed;
- id secondaryDelegate;
- NSMutableDictionary *minValues, *maxValues, *minUnits, *maxUnits;
- NSMutableDictionary *resizableSubviewPreferredProportion, *nonresizableSubviewPreferredSize;
- NSArray *stateForLastPreferredCalculations;
- int collapsiblePopupSelection;
- float uncollapsedSize;
-
- // Collapse button
- NSButton *toggleCollapseButton;
- BOOL isAnimating;
-}
-
-@property (retain) NSMutableDictionary *minValues, *maxValues, *minUnits, *maxUnits;
-@property (retain) NSMutableDictionary *resizableSubviewPreferredProportion, *nonresizableSubviewPreferredSize;
-@property (retain) NSArray *stateForLastPreferredCalculations;
-@property (retain) NSButton *toggleCollapseButton;
-@property BOOL collapsibleSubviewCollapsed;
-@property int collapsiblePopupSelection;
-@property BOOL dividerCanCollapse;
-
-// The split view divider color
-@property (copy) NSColor *color;
-
-// Flag for whether a custom divider color is enabled. If not, the standard divider color is used.
-@property BOOL colorIsEnabled;
-
-// Call this method to collapse or expand a subview configured as collapsible in the IB inspector.
-- (IBAction)toggleCollapse:(id)sender;
-
-@end
132 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/GHNSInvocation+Utils.h
View
@@ -1,132 +0,0 @@
-//
-// GHNSInvocation+Utils.h
-// GHKit
-//
-// Created by Gabriel Handford on 1/17/09.
-// Copyright 2009. All rights reserved.
-//
-// Permission is hereby granted, free of charge, to any person
-// obtaining a copy of this software and associated documentation
-// files (the "Software"), to deal in the Software without
-// restriction, including without limitation the rights to use,
-// copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following
-// conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-// OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#import <Foundation/Foundation.h>
-
-//
-// Creates arguments NSArray from var args, with first object named 'object'
-// - (void)methodName:(id)arg1 withObjects:object, ...
-//
-#define GHConvertVarArgs(object) \
-NSMutableArray *arguments = [NSMutableArray array]; \
-do { \
-id arg; \
-va_list args; \
-if (object) { \
-[arguments addObject:object]; \
-va_start(args, object); \
-while ((arg = va_arg(args, id))) \
-[arguments addObject:arg]; \
-va_end(args); \
-} \
-} while(0);
-
-@interface NSInvocation (GHUtils_GHUNIT)
-
-/*!
- Invoke on main thread.
- @param waitUntilDone Whether to join on the call
- */
-- (void)ghu_invokeOnMainThread:(BOOL)waitUntilDone;
-
-/*!
- Invoke target selector with multiple arguments.
- @param target Invocation target
- @param selector Method
- @param withObjects (Variable) Arguments list
- */
-+ (id)ghu_invokeWithTarget:(id)target selector:(SEL)selector withObjects:object, ...;
-
-/*!
- Invoke target selector with multiple arguments.
- @param target Invocation target
- @param selector Method
- @param arguments Arguments list
- */
-+ (id)ghu_invokeWithTarget:(id)target selector:(SEL)selector arguments:(NSArray *)arguments;
-
-/*!
- Invoke target selector with multiple arguments.
- @param target Invocation target
- @param selector Method
- @param afterDelay Time interval for delay (in seconds)
- @param arguments Arguments list
- */
-+ (id)ghu_invokeWithTarget:(id)target selector:(SEL)selector afterDelay:(NSTimeInterval)delay arguments:(NSArray *)arguments;
-
-/*!
- Invoke target selector on main thread with multiple arguments.
- Use [NSNull null] for nil arguments.
- @param target Target
- @param selector Action
- @param waitUntilDone Whether to wait for call to finish
- @param withObjects Nil terminated list of (object) arguments; Use [NSNull null] for nil arguments
- */
-+ (void)ghu_invokeTargetOnMainThread:(id)target selector:(SEL)selector waitUntilDone:(BOOL)waitUntilDone withObjects:object, ...;
-
-/*!
- Invoke target selector on main thread with multiple arguments.
- @param target Target
- @param selector Action
- @param waitUntilDone Whether to wait for call to finish
- @param arguments Arguments list
- */
-+ (void)ghu_invokeTargetOnMainThread:(id)target selector:(SEL)selector waitUntilDone:(BOOL)waitUntilDone arguments:(NSArray *)arguments;
-
-/*!
-Invoke target selector on main thread with multiple arguments.
- @param target Target
- @param selector Action
- @param waitUntilDone Whether to wait for call to finish
- @param afterDelay Time interval for delay (in seconds)
- @param arguments Arguments list
- */
-+ (void)ghu_invokeTargetOnMainThread:(id)target selector:(SEL)selector waitUntilDone:(BOOL)waitUntilDone afterDelay:(NSTimeInterval)delay arguments:(NSArray *)arguments;
-
-/*!
- Create invocation with variable arguments.
- Use [NSNull null] for nil arguments.
- @param target Invocation target
- @param selector Method
- @param hasReturnValue Will be set to YES, if there is a return value
- @param withObjects (Variable) Arguments list
- */
-+ (NSInvocation *)ghu_invocationWithTarget:(id)target selector:(SEL)selector hasReturnValue:(BOOL *)hasReturnValue withObjects:object, ...;
-
-/*!
- Create invocation with variable arguments.
- Use [NSNull null] for nil arguments.
- @param target Invocation target
- @param selector Method
- @param hasReturnValue Will be set to YES, if there is a return value
- @param arguments Arguments array
- */
-+ (NSInvocation *)ghu_invocationWithTarget:target selector:(SEL)selector hasReturnValue:(BOOL *)hasReturnValue arguments:(NSArray *)arguments;
-
-@end
133 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/GHNSInvocationProxy.h
View
@@ -1,133 +0,0 @@
-//
-// GHNSInvocationProxy_GHUNIT.h
-// GHKit
-//
-// Modified by Gabriel Handford on 5/9/09.
-// This class is based on DDInvocationGrabber.
-//
-
-/*
- * Copyright (c) 2007-2009 Dave Dribin
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy,
- * modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-
-/*
- * This class is based on CInvocationGrabber:
- *
- * Copyright (c) 2007, Toxic Software
- * All rights reserved.
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of the Toxic Software nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-/*!
- Proxy that allows invocation on a separate thread, or with a delay.
-
- Use with the GHNSObject+Invocation category:
-
- @code
- NSMutableArray *array = ...;
- // Adds object to array after 5 seconds
- [[array ghu_proxyAfterDelay:5.0] addObject:@"test"];
-
-
- NSThread *thread = ...
- // Remove all objects from another thread
- [[array ghu_proxyOnThread:thread waitUntilDone:NO] removeAllObjects];
- @endcode
-
- Create invocation proxy for a NSMutableArray.
-
- @code
- NSMutableArray *array = ...;
- NSThread *thread = ...
-
- GHNSInvocationProxy_GHUNIT *arrayProxy = [GHNSInvocationProxy_GHUNIT invocation];
- arrayProxy.target = array;
- arrayProxy.thread = thread;
- arrayProxy.waitUntilDone = NO;
-
- // Performs method on thread and doesn't wait for return
- [arrayProxy addObject:@"test"];
- @endcode
- */
-@interface GHNSInvocationProxy_GHUNIT : NSProxy {
-
- id target_;
-
- NSThread *thread_;
- BOOL waitUntilDone_;
- NSTimeInterval delay_;
-
- // If debuging time to set
- NSTimeInterval *time_;
-
- NSInvocation *invocation_;
-}
-
-@property (retain, nonatomic) id target;
-@property (retain, nonatomic) NSInvocation *invocation;
-@property (retain, nonatomic) NSThread *thread;
-@property (assign, nonatomic) BOOL waitUntilDone;
-@property (assign, nonatomic) NSTimeInterval delay;
-@property (assign, nonatomic) NSTimeInterval *time;
-
-/*!
- Create autoreleased empty invocation proxy.
- @result Invocation proxy
- */
-+ (id)invocation;
-
-/*!
- Create invocation proxy with target.
- @param target
- @result Invocation proxy
- */
-- (id)prepareWithInvocationTarget:(id)target;
-
-@end
100 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/GHNSObject+Invocation.h
View
@@ -1,100 +0,0 @@
-//
-// GHNSObject+Invocation.h
-// GHKit
-//
-// Created by Gabriel Handford on 1/18/09.
-// Copyright 2009. All rights reserved.
-//
-// Permission is hereby granted, free of charge, to any person
-// obtaining a copy of this software and associated documentation
-// files (the "Software"), to deal in the Software without
-// restriction, including without limitation the rights to use,
-// copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following
-// conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-// OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#import "GHNSInvocation+Utils.h"
-#import "GHNSInvocationProxy.h"
-
-/*!
- Adds performSelector methods that take a nil-terminated variable argument list,
- for when you need to pass more arguments to performSelector.
- */
-@interface NSObject (GHInvocation_GHUNIT)
-
-/*!
- Perform selector if responds.
- @param selector
- @result nil if we don't respond to the selector, otherwise the selector result
- */
-- (id)ghu_performIfRespondsToSelector:(SEL)selector;
-
-/*!
- Perform selector if responds with multiple arguments.
- @param selector
- @param withObjects nil terminated variable argument list
- @result nil if we don't respond to the selector, otherwise the selector result
- */
-- (id)ghu_performIfRespondsToSelector:(SEL)selector withObjects:object, ...;
-
-/*!
- Invoke selector with arguments.
- @param selector
- @param withObjects nil terminated variable argument list
- */
-- (id)ghu_performSelector:(SEL)selector withObjects:object, ...;
-
-- (id)ghu_performSelector:(SEL)selector afterDelay:(NSTimeInterval)delay withObjects:object, ...;
-
-/*!
- Invoke selector with arguments on main thread.
- Does not wait until selector is finished.
- @param selector
- @param withObjects nil terminated variable argument list
- */
-- (void)ghu_performSelectorOnMainThread:(SEL)selector withObjects:object, ...;
-
-/*!
- Invoke selector with arguments on main thread.
- @param selector
- @param waitUntilDone Whether to join on selector and wait for it to finish.
- @param withObjects nil terminated variable argument list
- */
-- (void)ghu_performSelectorOnMainThread:(SEL)selector waitUntilDone:(BOOL)waitUntilDone withObjects:object, ...;
-
-
-- (void)ghu_performSelector:(SEL)selector onMainThread:(BOOL)onMainThread waitUntilDone:(BOOL)waitUntilDone withObjects:object, ...;
-
-- (void)ghu_performSelector:(SEL)selector onMainThread:(BOOL)onMainThread waitUntilDone:(BOOL)waitUntilDone arguments:(NSArray *)arguments;
-
-- (void)ghu_performSelector:(SEL)selector onMainThread:(BOOL)onMainThread waitUntilDone:(BOOL)waitUntilDone
- afterDelay:(NSTimeInterval)delay arguments:(NSArray *)arguments;
-
-
-// Invocation proxies
-
-- (id)ghu_proxyOnMainThread;
-- (id)ghu_proxyOnMainThread:(BOOL)waitUntilDone;
-- (id)ghu_proxyOnThread:(NSThread *)thread;
-- (id)ghu_proxyOnThread:(NSThread *)thread waitUntilDone:(BOOL)waitUntilDone;
-- (id)ghu_proxyAfterDelay:(NSTimeInterval)delay;
-
-// Debug proxies
-- (id)ghu_timedProxy:(NSTimeInterval *)time;
-- (id)ghu_debugProxy:(NSTimeInterval *)time proxy:(GHNSInvocationProxy_GHUNIT **)proxy;
-
-@end
1  Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/GHTestOutlineViewModel.h
View
@@ -9,6 +9,7 @@
#import "GHTestViewModel.h"
@class GHTestOutlineViewModel;
+#define MIN_WINDOW_WIDTH (635.0)
@protocol GHTestOutlineViewModelDelegate <NSObject>
- (void)testOutlineViewModelDidChangeSelection:(GHTestOutlineViewModel *)testOutlineViewModel;
9 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/GHTestViewController.h
View
@@ -31,11 +31,10 @@
#import "GHTestGroup.h"
#import "GHTestOutlineViewModel.h"
-#import "BWSplitView.h"
-@interface GHTestViewController : NSViewController <GHTestRunnerDelegate, GHTestOutlineViewModelDelegate> {
+@interface GHTestViewController : NSViewController <GHTestRunnerDelegate, GHTestOutlineViewModelDelegate, NSSplitViewDelegate> {
- IBOutlet BWSplitView *_splitView;
+ IBOutlet NSSplitView *_splitView;
IBOutlet NSView *_statusView;
IBOutlet NSView *_detailsView;
IBOutlet NSOutlineView *_outlineView;
@@ -43,6 +42,7 @@
IBOutlet NSSegmentedControl *_textSegmentedControl;
IBOutlet NSSegmentedControl *_segmentedControl;
IBOutlet NSSearchField *_searchField;
+ IBOutlet NSButton *_detailsToggleButton;
BOOL wrapInTextView_;
NSString *status_;
@@ -73,6 +73,9 @@
@property (retain, nonatomic) NSString *exceptionFilename;
@property (assign, nonatomic) NSInteger exceptionLineNumber;
+@property (assign, nonatomic) BOOL reraiseExceptions;
+@property (assign, nonatomic) BOOL runInParallel;
+
- (void)loadTestSuite;
101 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/GHUnit.h
View
@@ -43,7 +43,7 @@
#import "NSValue+GHValueFormatter.h"
#if TARGET_OS_IPHONE
-#import "GHUnitIPhoneAppDelegate.h"
+#import "GHUnitIOSAppDelegate.h"
#endif
#ifdef DEBUG
@@ -97,29 +97,64 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
/*!
@page Installing Installing
- - @ref InstallingIOS
- - @ref InstallMacOSX
+ - @ref InstallingIOSXCode4
+ - @ref InstallingIOSXCode3
+ - @ref InstallMacOSXXCode4
+ - @ref InstallMacOSXXCode3
- @section InstallingIOS Installing (iOS)
+ @section InstallingIOSXCode4 Installing in XCode 4 (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 a <tt>New Target</tt>. Select <tt>iOS -> Application</tt>. You can select the Window-based application. Name it <tt>Tests</tt> (or something similar). And you can deselect the 'Add Unit Tests' option.
+ - Copy and add <tt>GHUnitIOS.framework</tt> into your project: Add Files to 'App'..., select <tt>GHUnitIOS.framework</tt>, and select only the "Tests" target.
+ - In the "Tests" target, Build Phases, Link Binary with Libraries, make sure the following Frameworks are present:
+ - <tt>GHUnitIOS.framework</tt>
+ - <tt>CoreGraphics.framework</tt>
+ - <tt>Foundation.framework</tt>
+ - <tt>UIKit.framework</tt>
+ - In the "Tests" target, Build Settings, under 'Framework Search Paths' make sure the (parent) directory to GHUnitIOS.framework is listed.
+ - In the "Tests" target, Build Settigns, under 'Other Linker Flags' in the "Tests" target, add <tt>-ObjC</tt> and <tt>-all_load</tt>
+ - By default, the Tests-Info.plist file includes <tt>MainWindow_iPhone</tt> and <tt>MainWindow_iPad</tt> for <tt>Main nib file base name</tt>. You should remove both these fields.
+ - Add the GHUnitIOSTestMain.m (http://github.com/gabriel/gh-unit/blob/master/Project-IPhone/GHUnitIOSTestMain.m) file into your project and make sure its enabled for the "Tests" target. You should delete the existing main.m file (or replace the contents of the existing main.m with GHUnitIOSTestMain.m).
+ - @ref Examples "Create a test"
+ - Build and run the "Tests" target.
+ - You can remove the files: TestsAppDelete* and MainWindow* that were generated with the Tests target.
+ - (Optional) @ref Makefile "Install Makefile"
+
+ @section InstallingIOSXCode3 Installing in XCode 3 (iOS)
+
+ - Add a <tt>New Target</tt>. Select <tt>iOS -> Application</tt>. Name it <tt>Tests</tt> (or something similar).
+ - Copy and add <tt>GHUnitIOS.framework</tt> into your project: Add Files to ..., select <tt>GHUnitIOS.framework</tt>, and select the <tt>Tests</tt> target.
- 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>
- - Under 'Framework Search Paths' make sure the (parent) directory to GHUnit.framework is listed.
- - Under 'Other Linker Flags' in the <tt>Tests</tt> target, add <tt>-ObjC</tt> and <tt>-all_load</tt>
+ - In Build Settings, under 'Framework Search Paths' make sure the (parent) directory to GHUnitIOS.framework is listed.
+ - In Build Settings, under 'Other Linker Flags' in the <tt>Tests</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.
+ - Add the GHUnitIOSTestMain.m (http://github.com/gabriel/gh-unit/blob/master/Project-IPhone/GHUnitIOSTestMain.m) file into your project and make sure its enabled for the "Tests" target.
- (Optional) Create and and set a prefix header (<tt>Tests_Prefix.pch</tt>) and add <tt>#import <GHUnitIOS/GHUnit.h></tt> to it, and then you won't have to include that import for every test.
- - (Optional) @ref Makefile "Install Makefile"
- @ref Examples "Create a test"
+ - Build and run the "Tests" target.
+ - (Optional) @ref Makefile "Install Makefile"
- 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)
+ @section InstallMacOSXXCode4 Installing in XCode 4 (Mac OS X)
+
+ - Add a <tt>New Target</tt>. Select <tt>Application -> Cocoa Application</tt>. Name it <tt>Tests</tt> (or something similar).
+ - Copy and add <tt>GHUnit.framework</tt> into your project: Add Files to 'App'..., select <tt>GHUnit.framework</tt>, and select only the "Tests" target.
+ - In the "Tests" target, in Build Settings, add <tt>@@loader_path/../Frameworks</tt> to <tt>Runpath Search Paths</tt>.
+ - In the "Tests" target, in Build Phases, select <tt>Add Build Phase</tt> and then <tt>Add Copy Files</tt>.
+ - Change the Destination to <tt>Frameworks</tt>.
+ - Drag <tt>GHUnit.framework</tt> from the project file view into the the Copy Files 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. You should delete the existing main.m file (or replace the contents of the existing main.m with GHUnitTestMain.m).
+ - By default, the Tests-Info.plist file includes <tt>MainWindow</tt> for <tt>Main nib file base name</tt>. You should clear this field. You can also delete the existing MainMenu.xib and files like TestsAppDelegate.*.
+ - @ref Examples "Create a test"
+ - Build and run the "Tests" target.
+ - (Optional) @ref Makefile "Install Makefile"
+
+ @section InstallMacOSXXCode3 Installing in XCode 3 (Mac OS X)
You can install it globally in /Library/Frameworks or with a little extra effort embed it with your project.
@@ -135,8 +170,8 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
- 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) @ref Makefile "Install Makefile"
- @ref Examples "Create a test"
+ - (Optional) @ref Makefile "Install Makefile"
@subsection InstallProject Installing in your project
@@ -157,8 +192,8 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
- 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) @ref Makefile "Install Makefile"
- @ref Examples "Create a test"
+ - (Optional) @ref Makefile "Install Makefile"
*/
/*!
@@ -191,7 +226,8 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
@implementation ExampleTest
- (BOOL)shouldRunOnMainThread {
- // By default NO, but if you have a UI test or test dependent on running on the main thread return YES
+ // By default NO, but if you have a UI test or test dependent on running on the main thread return YES.
+ // Also an async test that calls back on the main thread, you'll probably want to return YES.
return NO;
}
@@ -348,7 +384,7 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
@endverbatim
- Somewhere between runTest and NSObject alloc there may be an object that wasn't retained.
+ Somewhere between runTest and NSObject alloc (in [Foo foo]) there may be an object that wasn't retained. 38615 is the thread id from "2009-10-15 13:02:24.746 Tests[38615:40b]", and 0x1c8e680 is the address in "message sent to deallocated instance 0x1c8e680".
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.
@@ -366,20 +402,19 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
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'
+ - Copy the RunTests.sh (http://github.com/gabriel/gh-unit/tree/master/Scripts/RunTests.sh) file into your project directory.
+ - In the <tt>Tests</tt> target, (and Build Phases in XCode 4), 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
+ GHUNIT_CLI=1 xcodebuild -target Tests -configuration Debug -sdk macosx build
- // For iPhone app
- GHUNIT_CLI=1 xcodebuild -target Tests -configuration Debug -sdk iphonesimulator4.0 build
+ // For iOS app
+ GHUNIT_CLI=1 xcodebuild -target Tests -configuration Debug -sdk iphonesimulator 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.
@@ -392,10 +427,13 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
Follow the directions above for adding command line support.
+ Unfortunately, running Mac OS X and iOS tests from the command line isn't always supported since certain frameworks can't work
+ headless and will seg fault.
+
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)
+ - Makefile (Mac OS X): http://github.com/gabriel/gh-unit/tree/master/Project/Makefile.example (for a Mac App)
+ - Makefile (iOS): http://github.com/gabriel/gh-unit/tree/master/Project-iOS/Makefile.example (for an iOS App)
The script will return a non-zero exit code on test failure.
@@ -479,16 +517,16 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
[[GHTesting sharedInstance] registerClassName:@"MySpecialTestCase"];
@endcode
- @section AlternateIOSAppDelegate Using an Alternate iPhone Application Delegate
+ @section AlternateIOSAppDelegate Using an Alternate iOS Application Delegate
- If you want to use a custom application delegate in your test environment, you should subclass GHUnitIPhoneAppDelegate:
+ If you want to use a custom application delegate in your test environment, you should subclass GHUnitIOSAppDelegate:
@code
- @interface MyTestApplicationDelegate : GHUnitIPhoneAppDelegate { }
+ @interface MyTestApplicationDelegate : GHUnitIOSAppDelegate { }
@end
@endcode
- Then in GHUnitIPhoneTestMain.m:
+ Then in GHUnitIOSTestMain.m:
@code
retVal = UIApplicationMain(argc, argv, nil, @"MyTestApplicationDelegate");
@@ -573,7 +611,7 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
the following in <tt>Test report XMLs</tt>:
@verbatim
- build/test-results/\*.xml
+ build/test-results/ *.xml (Remove the extra-space, which is there to work around doxygen bug)
@endverbatim
That's all it takes. Check in a change that breaks one of your tests. Hudson
@@ -588,3 +626,4 @@ fputs([[[NSString stringWithFormat:fmt, ##__VA_ARGS__] stringByAppendingString:@
address this.
*/
+
105 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Headers/GTMStackTrace.h
View
@@ -1,105 +0,0 @@
-//
-// GTMStackTrace.h
-//
-// Copyright 2007-2008 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may not
-// use this file except in compliance with the License. You may obtain a copy
-// of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations under
-// the License.
-//
-
-#include <CoreFoundation/CoreFoundation.h>
-#import "GTMDefines.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct GHU_GTMAddressDescriptor {
- const void *address; // address
- const char *symbol; // nearest symbol to address
- const char *class_name; // if it is an obj-c method, the method's class
- BOOL is_class_method; // if it is an obj-c method, type of method
- const char *filename; // file that the method came from.
-};
-
-// Returns a string containing a nicely formatted stack trace.
-//
-// This function gets the stack trace for the current thread. It will
-// be from the caller of GTMStackTrace upwards to the top the calling stack.
-// Typically this function will be used along with some logging,
-// as in the following:
-//
-// MyAppLogger(@"Should never get here:\n%@", GTMStackTrace());
-//
-// Here is a sample stack trace returned from this function:
-//
-// #0 0x00002d92 D () [/Users/me/./StackLog]
-// #1 0x00002e45 C () [/Users/me/./StackLog]
-// #2 0x00002e53 B () [/Users/me/./StackLog]
-// #3 0x00002e61 A () [/Users/me/./StackLog]
-// #4 0x00002e6f main () [/Users/me/./StackLog]
-// #5 0x00002692 tart () [/Users/me/./StackLog]
-// #6 0x000025b9 tart () [/Users/me/./StackLog]
-//
-
-NSString *GHU_GTMStackTrace(void);
-
-#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
-// Returns a string containing a nicely formatted stack trace from the
-// exception. Only available on 10.5 or later, uses
-// -[NSException callStackReturnAddresses].
-//
-NSString *GHU_GTMStackTraceFromException(NSException *e);
-#endif
-
-#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
-// Returns an array of program counters from the current thread's stack.
-// *** You should probably use GTMStackTrace() instead of this function ***
-// However, if you actually want all the PCs in "void *" form, then this
-// funtion is more convenient. This will include PCs of GTMStaceTrace and
-// its inner utility functions that you may want to strip out.
-//
-// You can use +[NSThread callStackReturnAddresses] in 10.5 or later.
-//
-// Args:
-// outPcs - an array of "void *" pointers to the program counters found on the
-// current thread's stack.
-// count - the number of entries in the outPcs array
-//
-// Returns:
-// The number of program counters actually added to outPcs.
-//
-NSUInteger GHU_GTMGetStackProgramCounters(void *outPcs[], NSUInteger count);
-#endif // MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
-
-// Returns an array of GTMAddressDescriptors from the current thread's stack.
-// *** You should probably use GTMStackTrace() instead of this function ***
-// However, if you actually want all the PCs with symbols, this is the way
-// to get them. There is no memory allocations done, so no clean up is required
-// except for the caller to free outDescs if they allocated it themselves.
-// This will include PCs of GTMStaceTrace and its inner utility functions that
-// you may want to strip out.
-//
-// Args:
-// outDescs - an array of "struct GTMAddressDescriptor" pointers corresponding
-// to the program counters found on the current thread's stack.
-// count - the number of entries in the outDescs array
-//
-// Returns:
-// The number of program counters actually added to outPcs.
-//
-NSUInteger GHU_GTMGetStackAddressDescriptors(struct GHU_GTMAddressDescriptor outDescs[],
- NSUInteger count);
-
-#ifdef __cplusplus
-}
-#endif
BIN  Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/English.lproj/InfoPlist.strings
View
Binary file not shown
BIN  Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/GHTestApp.nib
View
Binary file not shown
BIN  Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/GHTestView.nib
View
Binary file not shown
BIN  Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/GHTestWindow.nib
View
Binary file not shown
4 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/GHUnit-Debug.xcconfig
View
@@ -1,4 +0,0 @@
-
-#include "GHUnit.xcconfig"
-
-GCC_OPTIMIZATION_LEVEL = 0
15 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/GHUnit.xcconfig
View
@@ -1,15 +0,0 @@
-
-#include "Shared.xcconfig"
-
-ARCHS = $(ARCHS_STANDARD_32_64_BIT)
-INSTALL_PATH = @rpath
-DYLIB_COMPATIBILITY_VERSION = 0
-DYLIB_CURRENT_VERSION = $(GHUNIT_VERSION)
-LD_RUNPATH_SEARCH_PATHS = @loader_path/../Frameworks
-INFOPLIST_FILE = Info.plist
-PRODUCT_NAME = GHUnit
-WRAPPER_EXTENSION = framework
-GCC_ENABLE_OBJC_GC = supported
-GCC_PRECOMPILE_PREFIX_HEADER = YES
-GCC_PREFIX_HEADER = GHUnit_Prefix.pch
-GCC_MODEL_TUNING = G5
BIN  ...les/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/GradientSplitViewDimpleBitmap.tif
View
Binary file not shown
BIN  ...les/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/GradientSplitViewDimpleVector.pdf
View
Binary file not shown
24 Examples/MyTestable-MacOSX/Frameworks/GHUnit.framework/Versions/A/Resources/Info.plist
View
@@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
+ <key>BuildMachineOSBuild</key>
+ <string>10J4138</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
@@ -14,9 +16,27 @@
<string>GHUnit</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
<key>CFBundleSignature</key>
- <string>GABE</string>
+ <string>????</string>
<key>CFBundleVersion</key>
- <string>0.4.28</string>
+ <string>0.4.29</string>
+ <key>DTCompiler</key>
+ <string>com.apple.compilers.llvm.clang.1_0</string>
+ <key>DTPlatformBuild</key>
+ <string>4A2002a</string>
+ <key>DTPlatformVersion</key>
+ <string>GM</string>
+ <key>DTSDKBuild</key>
+ <string>4A2002a</string>
+ <key>DTSDKName</key>
+ <string>macosx10.6</string>
+ <key>DTXcode</key>
+ <string>0402</string>
+ <key>DTXcodeBuild</key>
+ <string>4A2002a</string>
+ <key>NSHumanReadableCopyright</key>
+ <string>Copyright © 2011 rel.me. All rights reserved.</string>
</dict>
</plist>
0  Project/English.lproj/InfoPlist.strings → ...k/Versions/A/Resources/en.lproj/InfoPlist.strings
View
File renamed without changes
91 Examples/MyTestable-MacOSX/GHUnitTestMain.m
View
@@ -33,56 +33,51 @@
#import <GHUnit/GHTestApp.h>
// Default exception handler
-void exceptionHandler(NSException *exception) {
- NSLog(@"%@\n%@", [exception reason], GHUStackTraceFromException(exception));
+void exceptionHandler(NSException *exception) {
+ NSLog(@"%@\n%@", [exception reason], GHUStackTraceFromException(exception));
}
int main(int argc, char *argv[]) {
- /*!
- For debugging:
- Go into the "Get Info" contextual menu of your (test) executable (inside the "Executables" group in the left panel of XCode).
- Then go in the "Arguments" tab. You can add the following environment variables:
-
- Default: Set to:
- NSDebugEnabled NO "YES"
- NSZombieEnabled NO "YES"
- NSDeallocateZombies NO "YES"
- NSHangOnUncaughtException NO "YES"
-
- NSEnableAutoreleasePool YES "NO"
- NSAutoreleaseFreedObjectCheckEnabled NO "YES"
- NSAutoreleaseHighWaterMark 0 non-negative integer
- NSAutoreleaseHighWaterResolution 0 non-negative integer
-
- For info on these varaiables see NSDebug.h; http://theshadow.uw.hu/iPhoneSDKdoc/Foundation.framework/NSDebug.h.html
-
- For malloc debugging see: http://developer.apple.com/mac/library/documentation/Performance/Conceptual/ManagingMemory/Articles/MallocDebug.html
- */
-
- NSSetUncaughtExceptionHandler(&exceptionHandler);
-
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-
- // Register any special test case classes
- //[[GHTesting sharedInstance] registerClassName:@"GHSpecialTestCase"];
-
- int retVal = 0;
- // If GHUNIT_CLI is set we are using the command line interface and run the tests
- // Otherwise load the GUI app
- if (getenv("GHUNIT_CLI")) {
- retVal = [GHTestRunner run];
- } else {
- // To run all tests (from ENV)
- GHTestApp *app = [[GHTestApp alloc] init];
- // To run a different test suite:
- //GHTestSuite *suite = [GHTestSuite suiteWithTestFilter:@"GHSlowTest,GHAsyncTestCaseTest"];
- //GHTestApp *app = [[GHTestApp alloc] initWithSuite:suite];
- // Or set global:
- //GHUnitTest = @"GHSlowTest";
- [NSApp run];
- [app release];
- }
- [pool release];
- return retVal;
+ /*!
+ Default: Set to:
+ NSDebugEnabled NO "YES"
+ NSZombieEnabled NO "YES"
+ NSDeallocateZombies NO "YES"
+ NSHangOnUncaughtException NO "YES"
+
+ NSEnableAutoreleasePool YES "NO"
+ NSAutoreleaseFreedObjectCheckEnabled NO "YES"
+ NSAutoreleaseHighWaterMark 0 non-negative integer
+ NSAutoreleaseHighWaterResolution 0 non-negative integer
+
+ For info on these varaiables see NSDebug.h; http://theshadow.uw.hu/iPhoneSDKdoc/Foundation.framework/NSDebug.h.html
+
+ For malloc debugging see: http://developer.apple.com/mac/library/documentation/Performance/Conceptual/ManagingMemory/Articles/MallocDebug.html
+ */
+ NSSetUncaughtExceptionHandler(&exceptionHandler);
+
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
+ // Register any special test case classes
+ //[[GHTesting sharedInstance] registerClassName:@"GHSpecialTestCase"];
+
+ int retVal = 0;
+ // If GHUNIT_CLI is set we are using the command line interface and run the tests
+ // Otherwise load the GUI app
+ if (getenv("GHUNIT_CLI")) {
+ retVal = [GHTestRunner run];
+ } else {
+ // To run all tests (from ENV)
+ GHTestApp *app = [[GHTestApp alloc] init];
+ // To run a different test suite:
+ //GHTestSuite *suite = [GHTestSuite suiteWithTestFilter:@"GHSlowTest,GHAsyncTestCaseTest"];
+ //GHTestApp *app = [[GHTestApp alloc] initWithSuite:suite];
+ // Or set global:
+ //GHUnitTest = @"GHSlowTest";
+ [NSApp run];
+ [app release];
+ }
+ [pool release];
+ return retVal;
}
12 Examples/MyTestable-MacOSX/MyTestable-MacOSX.xcodeproj/project.pbxproj
View
@@ -7,8 +7,8 @@
objects = {
/* Begin PBXBuildFile section */
- 00C023E11212064C0020483D /* GHUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C023E01212064C0020483D /* GHUnit.framework */; };
- 00C023E2121206570020483D /* GHUnit.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00C023E01212064C0020483D /* GHUnit.framework */; };
+ 0090D63D13C2A45400C25A92 /* GHUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0090D63C13C2A45400C25A92 /* GHUnit.framework */; };
+ 0090D63E13C2A48F00C25A92 /* GHUnit.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 0090D63C13C2A45400C25A92 /* GHUnit.framework */; };
00F6106110A2000F000E0CB3 /* GHUnitTestMain.m in Sources */ = {isa = PBXBuildFile; fileRef = 00F6106010A2000F000E0CB3 /* GHUnitTestMain.m */; };
00F6106410A20061000E0CB3 /* MyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 00F6106310A20061000E0CB3 /* MyTest.m */; };
1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; };
@@ -25,7 +25,7 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
- 00C023E2121206570020483D /* GHUnit.framework in CopyFiles */,
+ 0090D63E13C2A48F00C25A92 /* GHUnit.framework in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -34,7 +34,7 @@
/* Begin PBXFileReference section */
00041A50120AAF20007589A0 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
00041A8D120AB18C007589A0 /* RunTests.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = RunTests.sh; sourceTree = "<group>"; };
- 00C023E01212064C0020483D /* GHUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GHUnit.framework; sourceTree = "<group>"; };
+ 0090D63C13C2A45400C25A92 /* GHUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GHUnit.framework; sourceTree = "<group>"; };
00F6103510A1FEBD000E0CB3 /* Tests.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Tests.app; sourceTree = BUILT_PRODUCTS_DIR; };
00F6103710A1FEBE000E0CB3 /* Tests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = "<group>"; };
00F6106010A2000F000E0CB3 /* GHUnitTestMain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GHUnitTestMain.m; sourceTree = "<group>"; };
@@ -58,7 +58,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 00C023E11212064C0020483D /* GHUnit.framework in Frameworks */,
+ 0090D63D13C2A45400C25A92 /* GHUnit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -76,7 +76,7 @@
00F6103B10A1FEDE000E0CB3 /* Frameworks */ = {
isa = PBXGroup;
children = (
- 00C023E01212064C0020483D /* GHUnit.framework */,
+ 0090D63C13C2A45400C25A92 /* GHUnit.framework */,
);
path = Frameworks;
sourceTree = "<group>";
7 Examples/MyTestable-MacOSX/MyTestable-MacOSX.xcodeproj/project.xcworkspace/contents.xcworkspacedata
View
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+ version = "1.0">
+ <FileRef
+ location = "self:MyTestable-MacOSX.xcodeproj">
+ </FileRef>