second_curtain 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. checksums.yaml +8 -8
  2. data/.gitignore +20 -0
  3. data/.travis.yml +7 -0
  4. data/CHANGELOG +20 -0
  5. data/Demo/Demo/ASHAppDelegate.h +15 -0
  6. data/Demo/Demo/ASHAppDelegate.m +18 -0
  7. data/Demo/Demo/ASHViewController.h +13 -0
  8. data/Demo/Demo/ASHViewController.m +30 -0
  9. data/Demo/Demo/Base.lproj/Main.storyboard +30 -0
  10. data/Demo/Demo/Demo-Info.plist +40 -0
  11. data/Demo/Demo/Demo-Prefix.pch +16 -0
  12. data/Demo/Demo/Images.xcassets/AppIcon.appiconset/Contents.json +23 -0
  13. data/Demo/Demo/Images.xcassets/LaunchImage.launchimage/Contents.json +23 -0
  14. data/Demo/Demo/en.lproj/InfoPlist.strings +2 -0
  15. data/Demo/Demo/main.m +18 -0
  16. data/Demo/Demo.xcodeproj/project.pbxproj +517 -0
  17. data/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  18. data/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/Demo.xccheckout +41 -0
  19. data/Demo/Demo.xcodeproj/project.xcworkspace/xcuserdata/ash.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  20. data/Demo/Demo.xcodeproj/xcshareddata/xcschemes/Demo.xcscheme +96 -0
  21. data/Demo/Demo.xcodeproj/xcuserdata/ash.xcuserdatad/xcschemes/xcschememanagement.plist +27 -0
  22. data/Demo/Demo.xcodeproj/xcuserdata/orta.xcuserdatad/xcschemes/xcschememanagement.plist +27 -0
  23. data/Demo/Demo.xcworkspace/contents.xcworkspacedata +1 -0
  24. data/Demo/Demo.xcworkspace/xcshareddata/Demo.xccheckout +41 -0
  25. data/Demo/Demo.xcworkspace/xcuserdata/ash.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  26. data/Demo/Demo.xcworkspace/xcuserdata/orta.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  27. data/Demo/DemoTests/DemoTests-Info.plist +22 -0
  28. data/Demo/DemoTests/DemoTests.m +52 -0
  29. data/Demo/DemoTests/ReferenceImages/ASHViewControllerSpec/a_view_controller_with_a_loaded_view_should_have_a_valid_snapshot@2x.png +0 -0
  30. data/Demo/DemoTests/ReferenceImages/ASHViewControllerSpec/views_should_be_green@2x.png +0 -0
  31. data/Demo/DemoTests/ReferenceImages/ASHViewControllerSpec/views_should_be_red@2x.png +0 -0
  32. data/Demo/DemoTests/en.lproj/InfoPlist.strings +2 -0
  33. data/Demo/Makefile +15 -0
  34. data/Demo/Podfile +16 -0
  35. data/Demo/Podfile.lock +21 -0
  36. data/Demo/Pods/BuildHeaders/Expecta/EXPBackwardCompatibility.h +42 -0
  37. data/Demo/Pods/BuildHeaders/Expecta/EXPBlockDefinedMatcher.h +25 -0
  38. data/Demo/Pods/BuildHeaders/Expecta/EXPDefines.h +17 -0
  39. data/Demo/Pods/BuildHeaders/Expecta/EXPDoubleTuple.h +13 -0
  40. data/Demo/Pods/BuildHeaders/Expecta/EXPExpect.h +45 -0
  41. data/Demo/Pods/BuildHeaders/Expecta/EXPFloatTuple.h +13 -0
  42. data/Demo/Pods/BuildHeaders/Expecta/EXPMatcher.h +20 -0
  43. data/Demo/Pods/BuildHeaders/Expecta/EXPMatcherHelpers.h +4 -0
  44. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+beCloseTo.h +7 -0
  45. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+beFalsy.h +3 -0
  46. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+beGreaterThan.h +6 -0
  47. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+beGreaterThanOrEqualTo.h +6 -0
  48. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+beIdenticalTo.h +10 -0
  49. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+beInTheRangeOf.h +6 -0
  50. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+beInstanceOf.h +7 -0
  51. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+beKindOf.h +5 -0
  52. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+beLessThan.h +6 -0
  53. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+beLessThanOrEqualTo.h +6 -0
  54. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+beNil.h +5 -0
  55. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+beSubclassOf.h +5 -0
  56. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+beSupersetOf.h +4 -0
  57. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+beTruthy.h +3 -0
  58. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+beginWith.h +5 -0
  59. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+conformTo.h +3 -0
  60. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+contain.h +5 -0
  61. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+endWith.h +3 -0
  62. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+equal.h +5 -0
  63. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+haveCountOf.h +10 -0
  64. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+notify.h +4 -0
  65. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+raise.h +4 -0
  66. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+raiseWithReason.h +3 -0
  67. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers+respondTo.h +3 -0
  68. data/Demo/Pods/BuildHeaders/Expecta/EXPMatchers.h +24 -0
  69. data/Demo/Pods/BuildHeaders/Expecta/EXPUnsupportedObject.h +11 -0
  70. data/Demo/Pods/BuildHeaders/Expecta/Expecta.h +27 -0
  71. data/Demo/Pods/BuildHeaders/Expecta/ExpectaSupport.h +64 -0
  72. data/Demo/Pods/BuildHeaders/Expecta/NSObject+Expecta.h +14 -0
  73. data/Demo/Pods/BuildHeaders/Expecta/NSValue+Expecta.h +8 -0
  74. data/Demo/Pods/BuildHeaders/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h +21 -0
  75. data/Demo/Pods/BuildHeaders/FBSnapshotTestCase/FBSnapshotTestCase.h +87 -0
  76. data/Demo/Pods/BuildHeaders/FBSnapshotTestCase/FBSnapshotTestController.h +147 -0
  77. data/Demo/Pods/BuildHeaders/FBSnapshotTestCase/UIImage+Compare.h +37 -0
  78. data/Demo/Pods/BuildHeaders/FBSnapshotTestCase/UIImage+Diff.h +37 -0
  79. data/Demo/Pods/BuildHeaders/Specta/SPTExample.h +14 -0
  80. data/Demo/Pods/BuildHeaders/Specta/SPTExampleGroup.h +40 -0
  81. data/Demo/Pods/BuildHeaders/Specta/SPTNestedReporter.h +5 -0
  82. data/Demo/Pods/BuildHeaders/Specta/SPTReporter.h +33 -0
  83. data/Demo/Pods/BuildHeaders/Specta/SPTSharedExampleGroups.h +17 -0
  84. data/Demo/Pods/BuildHeaders/Specta/SPTSpec.h +21 -0
  85. data/Demo/Pods/BuildHeaders/Specta/SPTXCTestCase.h +27 -0
  86. data/Demo/Pods/BuildHeaders/Specta/SPTXCTestReporter.h +9 -0
  87. data/Demo/Pods/BuildHeaders/Specta/Specta.h +70 -0
  88. data/Demo/Pods/BuildHeaders/Specta/SpectaSupport.h +46 -0
  89. data/Demo/Pods/BuildHeaders/Specta/SpectaTypes.h +3 -0
  90. data/Demo/Pods/BuildHeaders/Specta/SpectaUtility.h +14 -0
  91. data/Demo/Pods/BuildHeaders/Specta/XCTestCase+Specta.h +4 -0
  92. data/Demo/Pods/BuildHeaders/Specta/XCTestLog+Specta.h +7 -0
  93. data/Demo/Pods/BuildHeaders/Specta/XCTestRun+Specta.h +8 -0
  94. data/Demo/Pods/Expecta/LICENSE +19 -0
  95. data/Demo/Pods/Expecta/README.md +308 -0
  96. data/Demo/Pods/Expecta/src/EXPBackwardCompatibility.h +42 -0
  97. data/Demo/Pods/Expecta/src/EXPBackwardCompatibility.m +17 -0
  98. data/Demo/Pods/Expecta/src/EXPBlockDefinedMatcher.h +25 -0
  99. data/Demo/Pods/Expecta/src/EXPBlockDefinedMatcher.m +60 -0
  100. data/Demo/Pods/Expecta/src/EXPDefines.h +17 -0
  101. data/Demo/Pods/Expecta/src/EXPDoubleTuple.h +13 -0
  102. data/Demo/Pods/Expecta/src/EXPDoubleTuple.m +42 -0
  103. data/Demo/Pods/Expecta/src/EXPExpect.h +45 -0
  104. data/Demo/Pods/Expecta/src/EXPExpect.m +214 -0
  105. data/Demo/Pods/Expecta/src/EXPFloatTuple.h +13 -0
  106. data/Demo/Pods/Expecta/src/EXPFloatTuple.m +42 -0
  107. data/Demo/Pods/Expecta/src/EXPMatcher.h +20 -0
  108. data/Demo/Pods/Expecta/src/EXPUnsupportedObject.h +11 -0
  109. data/Demo/Pods/Expecta/src/EXPUnsupportedObject.m +20 -0
  110. data/Demo/Pods/Expecta/src/Expecta.h +27 -0
  111. data/Demo/Pods/Expecta/src/Expecta.m +15 -0
  112. data/Demo/Pods/Expecta/src/ExpectaSupport.h +64 -0
  113. data/Demo/Pods/Expecta/src/ExpectaSupport.m +187 -0
  114. data/Demo/Pods/Expecta/src/NSObject+Expecta.h +14 -0
  115. data/Demo/Pods/Expecta/src/NSValue+Expecta.h +8 -0
  116. data/Demo/Pods/Expecta/src/NSValue+Expecta.m +21 -0
  117. data/Demo/Pods/Expecta/src/matchers/EXPMatcherHelpers.h +4 -0
  118. data/Demo/Pods/Expecta/src/matchers/EXPMatcherHelpers.m +9 -0
  119. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beCloseTo.h +7 -0
  120. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beCloseTo.m +49 -0
  121. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beFalsy.h +3 -0
  122. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beFalsy.m +24 -0
  123. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThan.h +6 -0
  124. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThan.m +20 -0
  125. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThanOrEqualTo.h +6 -0
  126. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThanOrEqualTo.m +20 -0
  127. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beIdenticalTo.h +10 -0
  128. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beIdenticalTo.m +24 -0
  129. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beInTheRangeOf.h +6 -0
  130. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beInTheRangeOf.m +30 -0
  131. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beInstanceOf.h +7 -0
  132. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beInstanceOf.m +27 -0
  133. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beKindOf.h +5 -0
  134. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beKindOf.m +27 -0
  135. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beLessThan.h +6 -0
  136. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beLessThan.m +20 -0
  137. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beLessThanOrEqualTo.h +6 -0
  138. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beLessThanOrEqualTo.m +20 -0
  139. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beNil.h +5 -0
  140. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beNil.m +16 -0
  141. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beSubclassOf.h +5 -0
  142. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beSubclassOf.m +27 -0
  143. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beSupersetOf.h +4 -0
  144. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beSupersetOf.m +57 -0
  145. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beTruthy.h +3 -0
  146. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beTruthy.m +24 -0
  147. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beginWith.h +5 -0
  148. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+beginWith.m +49 -0
  149. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+conformTo.h +3 -0
  150. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+conformTo.m +33 -0
  151. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+contain.h +5 -0
  152. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+contain.m +38 -0
  153. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+endWith.h +3 -0
  154. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+endWith.m +49 -0
  155. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+equal.h +5 -0
  156. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+equal.m +24 -0
  157. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+haveCountOf.h +10 -0
  158. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+haveCountOf.m +36 -0
  159. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+notify.h +4 -0
  160. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+notify.m +63 -0
  161. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+raise.h +4 -0
  162. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+raise.m +30 -0
  163. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+raiseWithReason.h +3 -0
  164. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+raiseWithReason.m +35 -0
  165. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+respondTo.h +3 -0
  166. data/Demo/Pods/Expecta/src/matchers/EXPMatchers+respondTo.m +28 -0
  167. data/Demo/Pods/Expecta/src/matchers/EXPMatchers.h +24 -0
  168. data/Demo/Pods/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h +21 -0
  169. data/Demo/Pods/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.m +308 -0
  170. data/Demo/Pods/Expecta+Snapshots/LICENSE.md +22 -0
  171. data/Demo/Pods/Expecta+Snapshots/README.md +85 -0
  172. data/Demo/Pods/FBSnapshotTestCase/FBSnapshotTestCase.h +87 -0
  173. data/Demo/Pods/FBSnapshotTestCase/FBSnapshotTestCase.m +82 -0
  174. data/Demo/Pods/FBSnapshotTestCase/FBSnapshotTestController.h +147 -0
  175. data/Demo/Pods/FBSnapshotTestCase/FBSnapshotTestController.m +376 -0
  176. data/Demo/Pods/FBSnapshotTestCase/LICENSE +29 -0
  177. data/Demo/Pods/FBSnapshotTestCase/README.md +83 -0
  178. data/Demo/Pods/FBSnapshotTestCase/UIImage+Compare.h +37 -0
  179. data/Demo/Pods/FBSnapshotTestCase/UIImage+Compare.m +87 -0
  180. data/Demo/Pods/FBSnapshotTestCase/UIImage+Diff.h +37 -0
  181. data/Demo/Pods/FBSnapshotTestCase/UIImage+Diff.m +56 -0
  182. data/Demo/Pods/Headers/Expecta/EXPBackwardCompatibility.h +42 -0
  183. data/Demo/Pods/Headers/Expecta/EXPBlockDefinedMatcher.h +25 -0
  184. data/Demo/Pods/Headers/Expecta/EXPDefines.h +17 -0
  185. data/Demo/Pods/Headers/Expecta/EXPDoubleTuple.h +13 -0
  186. data/Demo/Pods/Headers/Expecta/EXPExpect.h +45 -0
  187. data/Demo/Pods/Headers/Expecta/EXPFloatTuple.h +13 -0
  188. data/Demo/Pods/Headers/Expecta/EXPMatcher.h +20 -0
  189. data/Demo/Pods/Headers/Expecta/EXPMatcherHelpers.h +4 -0
  190. data/Demo/Pods/Headers/Expecta/EXPMatchers+beCloseTo.h +7 -0
  191. data/Demo/Pods/Headers/Expecta/EXPMatchers+beFalsy.h +3 -0
  192. data/Demo/Pods/Headers/Expecta/EXPMatchers+beGreaterThan.h +6 -0
  193. data/Demo/Pods/Headers/Expecta/EXPMatchers+beGreaterThanOrEqualTo.h +6 -0
  194. data/Demo/Pods/Headers/Expecta/EXPMatchers+beIdenticalTo.h +10 -0
  195. data/Demo/Pods/Headers/Expecta/EXPMatchers+beInTheRangeOf.h +6 -0
  196. data/Demo/Pods/Headers/Expecta/EXPMatchers+beInstanceOf.h +7 -0
  197. data/Demo/Pods/Headers/Expecta/EXPMatchers+beKindOf.h +5 -0
  198. data/Demo/Pods/Headers/Expecta/EXPMatchers+beLessThan.h +6 -0
  199. data/Demo/Pods/Headers/Expecta/EXPMatchers+beLessThanOrEqualTo.h +6 -0
  200. data/Demo/Pods/Headers/Expecta/EXPMatchers+beNil.h +5 -0
  201. data/Demo/Pods/Headers/Expecta/EXPMatchers+beSubclassOf.h +5 -0
  202. data/Demo/Pods/Headers/Expecta/EXPMatchers+beSupersetOf.h +4 -0
  203. data/Demo/Pods/Headers/Expecta/EXPMatchers+beTruthy.h +3 -0
  204. data/Demo/Pods/Headers/Expecta/EXPMatchers+beginWith.h +5 -0
  205. data/Demo/Pods/Headers/Expecta/EXPMatchers+conformTo.h +3 -0
  206. data/Demo/Pods/Headers/Expecta/EXPMatchers+contain.h +5 -0
  207. data/Demo/Pods/Headers/Expecta/EXPMatchers+endWith.h +3 -0
  208. data/Demo/Pods/Headers/Expecta/EXPMatchers+equal.h +5 -0
  209. data/Demo/Pods/Headers/Expecta/EXPMatchers+haveCountOf.h +10 -0
  210. data/Demo/Pods/Headers/Expecta/EXPMatchers+notify.h +4 -0
  211. data/Demo/Pods/Headers/Expecta/EXPMatchers+raise.h +4 -0
  212. data/Demo/Pods/Headers/Expecta/EXPMatchers+raiseWithReason.h +3 -0
  213. data/Demo/Pods/Headers/Expecta/EXPMatchers+respondTo.h +3 -0
  214. data/Demo/Pods/Headers/Expecta/EXPMatchers.h +24 -0
  215. data/Demo/Pods/Headers/Expecta/EXPUnsupportedObject.h +11 -0
  216. data/Demo/Pods/Headers/Expecta/Expecta.h +27 -0
  217. data/Demo/Pods/Headers/Expecta/ExpectaSupport.h +64 -0
  218. data/Demo/Pods/Headers/Expecta/NSObject+Expecta.h +14 -0
  219. data/Demo/Pods/Headers/Expecta/NSValue+Expecta.h +8 -0
  220. data/Demo/Pods/Headers/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h +21 -0
  221. data/Demo/Pods/Headers/FBSnapshotTestCase/FBSnapshotTestCase.h +87 -0
  222. data/Demo/Pods/Headers/FBSnapshotTestCase/FBSnapshotTestController.h +147 -0
  223. data/Demo/Pods/Headers/FBSnapshotTestCase/UIImage+Compare.h +37 -0
  224. data/Demo/Pods/Headers/FBSnapshotTestCase/UIImage+Diff.h +37 -0
  225. data/Demo/Pods/Headers/Specta/SPTExample.h +14 -0
  226. data/Demo/Pods/Headers/Specta/SPTExampleGroup.h +40 -0
  227. data/Demo/Pods/Headers/Specta/SPTNestedReporter.h +5 -0
  228. data/Demo/Pods/Headers/Specta/SPTReporter.h +33 -0
  229. data/Demo/Pods/Headers/Specta/SPTSharedExampleGroups.h +17 -0
  230. data/Demo/Pods/Headers/Specta/SPTSpec.h +21 -0
  231. data/Demo/Pods/Headers/Specta/SPTXCTestCase.h +27 -0
  232. data/Demo/Pods/Headers/Specta/SPTXCTestReporter.h +9 -0
  233. data/Demo/Pods/Headers/Specta/Specta.h +70 -0
  234. data/Demo/Pods/Headers/Specta/SpectaSupport.h +46 -0
  235. data/Demo/Pods/Headers/Specta/SpectaTypes.h +3 -0
  236. data/Demo/Pods/Headers/Specta/SpectaUtility.h +14 -0
  237. data/Demo/Pods/Headers/Specta/XCTestCase+Specta.h +4 -0
  238. data/Demo/Pods/Headers/Specta/XCTestLog+Specta.h +7 -0
  239. data/Demo/Pods/Headers/Specta/XCTestRun+Specta.h +8 -0
  240. data/Demo/Pods/Manifest.lock +21 -0
  241. data/Demo/Pods/Pods-DemoTests-EXPMatchers+FBSnapshotTest-Private.xcconfig +6 -0
  242. data/Demo/Pods/Pods-DemoTests-EXPMatchers+FBSnapshotTest-dummy.m +5 -0
  243. data/Demo/Pods/Pods-DemoTests-EXPMatchers+FBSnapshotTest-prefix.pch +5 -0
  244. data/Demo/Pods/Pods-DemoTests-EXPMatchers+FBSnapshotTest.xcconfig +2 -0
  245. data/Demo/Pods/Pods-DemoTests-Expecta+Snapshots-Private.xcconfig +6 -0
  246. data/Demo/Pods/Pods-DemoTests-Expecta+Snapshots-dummy.m +5 -0
  247. data/Demo/Pods/Pods-DemoTests-Expecta+Snapshots-prefix.pch +5 -0
  248. data/Demo/Pods/Pods-DemoTests-Expecta+Snapshots.xcconfig +2 -0
  249. data/Demo/Pods/Pods-DemoTests-Expecta-Private.xcconfig +5 -0
  250. data/Demo/Pods/Pods-DemoTests-Expecta-dummy.m +5 -0
  251. data/Demo/Pods/Pods-DemoTests-Expecta-prefix.pch +5 -0
  252. data/Demo/Pods/Pods-DemoTests-Expecta.xcconfig +1 -0
  253. data/Demo/Pods/Pods-DemoTests-FBSnapshotTestCase-Private.xcconfig +6 -0
  254. data/Demo/Pods/Pods-DemoTests-FBSnapshotTestCase-dummy.m +5 -0
  255. data/Demo/Pods/Pods-DemoTests-FBSnapshotTestCase-prefix.pch +6 -0
  256. data/Demo/Pods/Pods-DemoTests-FBSnapshotTestCase.xcconfig +2 -0
  257. data/Demo/Pods/Pods-DemoTests-Specta-Private.xcconfig +6 -0
  258. data/Demo/Pods/Pods-DemoTests-Specta-dummy.m +5 -0
  259. data/Demo/Pods/Pods-DemoTests-Specta-prefix.pch +5 -0
  260. data/Demo/Pods/Pods-DemoTests-Specta.xcconfig +2 -0
  261. data/Demo/Pods/Pods-DemoTests-acknowledgements.markdown +109 -0
  262. data/Demo/Pods/Pods-DemoTests-acknowledgements.plist +151 -0
  263. data/Demo/Pods/Pods-DemoTests-dummy.m +5 -0
  264. data/Demo/Pods/Pods-DemoTests-environment.h +32 -0
  265. data/Demo/Pods/Pods-DemoTests-resources.sh +68 -0
  266. data/Demo/Pods/Pods-DemoTests.xcconfig +6 -0
  267. data/Demo/Pods/Pods.xcodeproj/project.pbxproj +1390 -0
  268. data/Demo/Pods/Pods.xcodeproj/xcuserdata/ash.xcuserdatad/xcschemes/Pods-DemoTests-Expecta+Snapshots.xcscheme +59 -0
  269. data/Demo/Pods/Pods.xcodeproj/xcuserdata/ash.xcuserdatad/xcschemes/Pods-DemoTests-Expecta.xcscheme +59 -0
  270. data/Demo/Pods/Pods.xcodeproj/xcuserdata/ash.xcuserdatad/xcschemes/Pods-DemoTests-FBSnapshotTestCase.xcscheme +59 -0
  271. data/Demo/Pods/Pods.xcodeproj/xcuserdata/ash.xcuserdatad/xcschemes/Pods-DemoTests-Specta.xcscheme +59 -0
  272. data/Demo/Pods/Pods.xcodeproj/xcuserdata/ash.xcuserdatad/xcschemes/Pods-DemoTests.xcscheme +59 -0
  273. data/Demo/Pods/Pods.xcodeproj/xcuserdata/ash.xcuserdatad/xcschemes/xcschememanagement.plist +62 -0
  274. data/Demo/Pods/Specta/LICENSE +20 -0
  275. data/Demo/Pods/Specta/README.md +146 -0
  276. data/Demo/Pods/Specta/src/SPTExample.h +14 -0
  277. data/Demo/Pods/Specta/src/SPTExample.m +16 -0
  278. data/Demo/Pods/Specta/src/SPTExampleGroup.h +40 -0
  279. data/Demo/Pods/Specta/src/SPTExampleGroup.m +326 -0
  280. data/Demo/Pods/Specta/src/SPTNestedReporter.h +5 -0
  281. data/Demo/Pods/Specta/src/SPTNestedReporter.m +194 -0
  282. data/Demo/Pods/Specta/src/SPTReporter.h +33 -0
  283. data/Demo/Pods/Specta/src/SPTReporter.m +134 -0
  284. data/Demo/Pods/Specta/src/SPTSharedExampleGroups.h +17 -0
  285. data/Demo/Pods/Specta/src/SPTSharedExampleGroups.m +62 -0
  286. data/Demo/Pods/Specta/src/SPTSpec.h +21 -0
  287. data/Demo/Pods/Specta/src/SPTSpec.m +31 -0
  288. data/Demo/Pods/Specta/src/SPTXCTestCase.h +27 -0
  289. data/Demo/Pods/Specta/src/SPTXCTestCase.m +151 -0
  290. data/Demo/Pods/Specta/src/SPTXCTestReporter.h +9 -0
  291. data/Demo/Pods/Specta/src/SPTXCTestReporter.m +11 -0
  292. data/Demo/Pods/Specta/src/Specta.h +70 -0
  293. data/Demo/Pods/Specta/src/Specta.m +144 -0
  294. data/Demo/Pods/Specta/src/SpectaSupport.h +46 -0
  295. data/Demo/Pods/Specta/src/SpectaTypes.h +3 -0
  296. data/Demo/Pods/Specta/src/SpectaUtility.h +14 -0
  297. data/Demo/Pods/Specta/src/SpectaUtility.m +65 -0
  298. data/Demo/Pods/Specta/src/XCTestCase+Specta.h +4 -0
  299. data/Demo/Pods/Specta/src/XCTestCase+Specta.m +26 -0
  300. data/Demo/Pods/Specta/src/XCTestLog+Specta.h +7 -0
  301. data/Demo/Pods/Specta/src/XCTestLog+Specta.m +49 -0
  302. data/Demo/Pods/Specta/src/XCTestRun+Specta.h +8 -0
  303. data/Demo/Pods/Specta/src/XCTestRun+Specta.m +44 -0
  304. data/Gemfile +5 -0
  305. data/LICENSE +21 -0
  306. data/README.md +146 -0
  307. data/Rakefile +7 -0
  308. data/second_curtain.gemspec +20 -0
  309. data/spec/sample_output.txt +79 -0
  310. data/spec/second_shutter/kaleidoscope_command_spec.rb +25 -0
  311. data/spec/second_shutter/parser_spec.rb +39 -0
  312. data/spec/second_shutter/test_suite_spec.rb +32 -0
  313. data/spec/second_shutter/upload_manager_spec.rb +60 -0
  314. data/spec/second_shutter/upload_spec.rb +34 -0
  315. data/spec/second_shutter/xcode_test_case_spec.rb +22 -0
  316. metadata +315 -1
@@ -0,0 +1,87 @@
1
+ //
2
+ // Created by Gabriel Handford on 3/1/09.
3
+ // Copyright 2009-2013. All rights reserved.
4
+ // Created by John Boiles on 10/20/11.
5
+ // Copyright (c) 2011. All rights reserved
6
+ // Modified by Felix Schulze on 2/11/13.
7
+ // Copyright 2013. All rights reserved.
8
+ //
9
+ // Permission is hereby granted, free of charge, to any person
10
+ // obtaining a copy of this software and associated documentation
11
+ // files (the "Software"), to deal in the Software without
12
+ // restriction, including without limitation the rights to use,
13
+ // copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ // copies of the Software, and to permit persons to whom the
15
+ // Software is furnished to do so, subject to the following
16
+ // conditions:
17
+ //
18
+ // The above copyright notice and this permission notice shall be
19
+ // included in all copies or substantial portions of the Software.
20
+ //
21
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22
+ // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
23
+ // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24
+ // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25
+ // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
26
+ // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
27
+ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
28
+ // OTHER DEALINGS IN THE SOFTWARE.
29
+ //
30
+
31
+ #import "UIImage+Compare.h"
32
+
33
+ @implementation UIImage (Compare)
34
+
35
+ - (BOOL)compareWithImage:(UIImage *)image
36
+ {
37
+ NSAssert(CGSizeEqualToSize(self.size, image.size), @"Images must be same size.");
38
+
39
+ // The images have the equal size, so we could use the smallest amount of bytes because of byte padding
40
+ size_t minBytesPerRow = MIN(CGImageGetBytesPerRow(self.CGImage), CGImageGetBytesPerRow(image.CGImage));
41
+ size_t referenceImageSizeBytes = CGImageGetHeight(self.CGImage) * minBytesPerRow;
42
+ void *referenceImagePixels = calloc(1, referenceImageSizeBytes);
43
+ void *imagePixels = calloc(1, referenceImageSizeBytes);
44
+
45
+ if (!referenceImagePixels || !imagePixels) {
46
+ free(referenceImagePixels);
47
+ free(imagePixels);
48
+ return NO;
49
+ }
50
+
51
+ CGContextRef referenceImageContext = CGBitmapContextCreate(referenceImagePixels,
52
+ CGImageGetWidth(self.CGImage),
53
+ CGImageGetHeight(self.CGImage),
54
+ CGImageGetBitsPerComponent(self.CGImage),
55
+ minBytesPerRow,
56
+ CGImageGetColorSpace(self.CGImage),
57
+ (CGBitmapInfo)kCGImageAlphaPremultipliedLast
58
+ );
59
+ CGContextRef imageContext = CGBitmapContextCreate(imagePixels,
60
+ CGImageGetWidth(image.CGImage),
61
+ CGImageGetHeight(image.CGImage),
62
+ CGImageGetBitsPerComponent(image.CGImage),
63
+ minBytesPerRow,
64
+ CGImageGetColorSpace(image.CGImage),
65
+ (CGBitmapInfo)kCGImageAlphaPremultipliedLast
66
+ );
67
+
68
+ if (!referenceImageContext || !imageContext) {
69
+ CGContextRelease(referenceImageContext);
70
+ CGContextRelease(imageContext);
71
+ free(referenceImagePixels);
72
+ free(imagePixels);
73
+ return NO;
74
+ }
75
+
76
+ CGContextDrawImage(referenceImageContext, CGRectMake(0.0f, 0.0f, self.size.width, self.size.height), self.CGImage);
77
+ CGContextDrawImage(imageContext, CGRectMake(0.0f, 0.0f, image.size.width, image.size.height), image.CGImage);
78
+ CGContextRelease(referenceImageContext);
79
+ CGContextRelease(imageContext);
80
+
81
+ BOOL imageEqual = (memcmp(referenceImagePixels, imagePixels, referenceImageSizeBytes) == 0);
82
+ free(referenceImagePixels);
83
+ free(imagePixels);
84
+ return imageEqual;
85
+ }
86
+
87
+ @end
@@ -0,0 +1,37 @@
1
+ //
2
+ // Created by Gabriel Handford on 3/1/09.
3
+ // Copyright 2009-2013. All rights reserved.
4
+ // Created by John Boiles on 10/20/11.
5
+ // Copyright (c) 2011. All rights reserved
6
+ // Modified by Felix Schulze on 2/11/13.
7
+ // Copyright 2013. All rights reserved.
8
+ //
9
+ // Permission is hereby granted, free of charge, to any person
10
+ // obtaining a copy of this software and associated documentation
11
+ // files (the "Software"), to deal in the Software without
12
+ // restriction, including without limitation the rights to use,
13
+ // copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ // copies of the Software, and to permit persons to whom the
15
+ // Software is furnished to do so, subject to the following
16
+ // conditions:
17
+ //
18
+ // The above copyright notice and this permission notice shall be
19
+ // included in all copies or substantial portions of the Software.
20
+ //
21
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22
+ // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
23
+ // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24
+ // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25
+ // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
26
+ // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
27
+ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
28
+ // OTHER DEALINGS IN THE SOFTWARE.
29
+ //
30
+
31
+ #import <UIKit/UIKit.h>
32
+
33
+ @interface UIImage (Diff)
34
+
35
+ - (UIImage *)diffWithImage:(UIImage *)image;
36
+
37
+ @end
@@ -0,0 +1,56 @@
1
+ //
2
+ // Created by Gabriel Handford on 3/1/09.
3
+ // Copyright 2009-2013. All rights reserved.
4
+ // Created by John Boiles on 10/20/11.
5
+ // Copyright (c) 2011. All rights reserved
6
+ // Modified by Felix Schulze on 2/11/13.
7
+ // Copyright 2013. All rights reserved.
8
+ //
9
+ // Permission is hereby granted, free of charge, to any person
10
+ // obtaining a copy of this software and associated documentation
11
+ // files (the "Software"), to deal in the Software without
12
+ // restriction, including without limitation the rights to use,
13
+ // copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ // copies of the Software, and to permit persons to whom the
15
+ // Software is furnished to do so, subject to the following
16
+ // conditions:
17
+ //
18
+ // The above copyright notice and this permission notice shall be
19
+ // included in all copies or substantial portions of the Software.
20
+ //
21
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22
+ // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
23
+ // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24
+ // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25
+ // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
26
+ // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
27
+ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
28
+ // OTHER DEALINGS IN THE SOFTWARE.
29
+ //
30
+
31
+ #import "UIImage+Diff.h"
32
+
33
+ @implementation UIImage (Diff)
34
+
35
+ - (UIImage *)diffWithImage:(UIImage *)image
36
+ {
37
+ if (!image) {
38
+ return nil;
39
+ }
40
+ CGSize imageSize = CGSizeMake(MAX(self.size.width, image.size.width), MAX(self.size.height, image.size.height));
41
+ UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0.0);
42
+ CGContextRef context = UIGraphicsGetCurrentContext();
43
+ [self drawInRect:CGRectMake(0, 0, self.size.width, self.size.height)];
44
+ CGContextSetAlpha(context, 0.5f);
45
+ CGContextBeginTransparencyLayer(context, NULL);
46
+ [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
47
+ CGContextSetBlendMode(context, kCGBlendModeDifference);
48
+ CGContextSetFillColorWithColor(context,[UIColor whiteColor].CGColor);
49
+ CGContextFillRect(context, CGRectMake(0, 0, self.size.width, self.size.height));
50
+ CGContextEndTransparencyLayer(context);
51
+ UIImage *returnImage = UIGraphicsGetImageFromCurrentImageContext();
52
+ UIGraphicsEndImageContext();
53
+ return returnImage;
54
+ }
55
+
56
+ @end
@@ -0,0 +1,42 @@
1
+ #import "EXPExpect.h"
2
+
3
+ @interface EXPExpect (BackwardCompatiblity)
4
+
5
+ @property(nonatomic, readonly) EXPExpect *Not;
6
+ @property(nonatomic, readonly) EXPExpect *isGoing;
7
+ @property(nonatomic, readonly) EXPExpect *isNotGoing;
8
+
9
+ @end
10
+
11
+ #define toBeFalsy beFalsy
12
+ #define toBeGreaterThan beGreaterThan
13
+ #define toBeGreaterThanOrEqualTo beGreaterThanOrEqualTo
14
+ #define toBeIdenticalTo beIdenticalTo
15
+ #define toBeInTheRangeOf beInTheRangeOf
16
+ #define toBeInstanceOf beInstanceOf
17
+ #define toBeAnInstanceOf beInstanceOf
18
+ #define toBeMemberOf beInstanceOf
19
+ #define toBeAMemberOf beInstanceOf
20
+ #define toBeKindOf beKindOf
21
+ #define toBeAKindOf beKindOf
22
+ #define toBeLessThan beLessThan
23
+ #define toBeLessThanOrEqualTo beLessThanOrEqualTo
24
+ #define toBeNil beNil
25
+ #define toBeNull beNil
26
+ #define toBeSubclassOf beSubclassOf
27
+ #define toBeASubclassOf beSubclassOf
28
+ #define toBeTruthy beTruthy
29
+ #define toBeFalsy beFalsy
30
+ #define toContain contain
31
+ #define toEqual equal
32
+ #define toBeCloseTo beCloseTo
33
+ #define toBeCloseToWithin beCloseToWithin
34
+ #define toHaveCount haveCountOf
35
+ #define toHaveCountOf haveCountOf
36
+ #define toHaveACountOf haveCountOf
37
+ #define toHaveLength haveCountOf
38
+ #define toHaveLengthOf haveCountOf
39
+ #define toHaveALengthOf haveCountOf
40
+ #define toBeEmpty beEmpty
41
+ #define toRaise raise
42
+ #define toRaiseAny raiseAny
@@ -0,0 +1,25 @@
1
+ //
2
+ // EXPRuntimeMatcher.h
3
+ // Expecta
4
+ //
5
+ // Created by Luke Redpath on 26/03/2012.
6
+ // Copyright (c) 2012 Peter Jihoon Kim. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import "EXPMatcher.h"
11
+ #import "EXPDefines.h"
12
+
13
+ @interface EXPBlockDefinedMatcher : NSObject <EXPMatcher> {
14
+ EXPBoolBlock prerequisiteBlock;
15
+ EXPBoolBlock matchBlock;
16
+ EXPStringBlock failureMessageForToBlock;
17
+ EXPStringBlock failureMessageForNotToBlock;
18
+ }
19
+
20
+ @property(nonatomic, copy) EXPBoolBlock prerequisiteBlock;
21
+ @property(nonatomic, copy) EXPBoolBlock matchBlock;
22
+ @property(nonatomic, copy) EXPStringBlock failureMessageForToBlock;
23
+ @property(nonatomic, copy) EXPStringBlock failureMessageForNotToBlock;
24
+
25
+ @end
@@ -0,0 +1,17 @@
1
+ //
2
+ // EXPDefines.h
3
+ // Expecta
4
+ //
5
+ // Created by Luke Redpath on 26/03/2012.
6
+ // Copyright (c) 2012 Peter Jihoon Kim. All rights reserved.
7
+ //
8
+
9
+ #ifndef Expecta_EXPDefines_h
10
+ #define Expecta_EXPDefines_h
11
+
12
+ typedef void (^EXPBasicBlock)();
13
+ typedef id (^EXPIdBlock)();
14
+ typedef BOOL (^EXPBoolBlock)();
15
+ typedef NSString *(^EXPStringBlock)();
16
+
17
+ #endif
@@ -0,0 +1,13 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ @interface EXPDoubleTuple : NSObject {
4
+ double *_values;
5
+ size_t _size;
6
+ }
7
+
8
+ @property (nonatomic, assign) double *values;
9
+ @property (nonatomic, assign) size_t size;
10
+
11
+ - (id)initWithDoubleValues:(double *)values size:(size_t)size;
12
+
13
+ @end
@@ -0,0 +1,45 @@
1
+ #import <Foundation/Foundation.h>
2
+ #import "EXPMatcher.h"
3
+ #import "EXPDefines.h"
4
+
5
+ @interface EXPExpect : NSObject {
6
+ EXPIdBlock _actualBlock;
7
+ id _testCase;
8
+ int _lineNumber;
9
+ char *_fileName;
10
+ BOOL _negative;
11
+ BOOL _asynchronous;
12
+ NSTimeInterval _timeout;
13
+ }
14
+
15
+ @property(nonatomic, copy) EXPIdBlock actualBlock;
16
+ @property(nonatomic, readonly) id actual;
17
+ @property(nonatomic, assign) id testCase;
18
+ @property(nonatomic) int lineNumber;
19
+ @property(nonatomic) const char *fileName;
20
+ @property(nonatomic) BOOL negative;
21
+ @property(nonatomic) BOOL asynchronous;
22
+ @property(nonatomic) NSTimeInterval timeout;
23
+
24
+ @property(nonatomic, readonly) EXPExpect *to;
25
+ @property(nonatomic, readonly) EXPExpect *toNot;
26
+ @property(nonatomic, readonly) EXPExpect *notTo;
27
+ @property(nonatomic, readonly) EXPExpect *will;
28
+ @property(nonatomic, readonly) EXPExpect *willNot;
29
+ @property(nonatomic, readonly) EXPExpect *(^after)(NSTimeInterval timeInterval);
30
+
31
+ - (id)initWithActualBlock:(id)actualBlock testCase:(id)testCase lineNumber:(int)lineNumber fileName:(const char *)fileName;
32
+ + (EXPExpect *)expectWithActualBlock:(id)actualBlock testCase:(id)testCase lineNumber:(int)lineNumber fileName:(const char *)fileName;
33
+
34
+ - (void)applyMatcher:(id<EXPMatcher>)matcher;
35
+ - (void)applyMatcher:(id<EXPMatcher>)matcher to:(NSObject **)actual;
36
+
37
+ @end
38
+
39
+ @interface EXPDynamicPredicateMatcher : NSObject <EXPMatcher> {
40
+ EXPExpect *_expectation;
41
+ SEL _selector;
42
+ }
43
+ - (id)initWithExpectation:(EXPExpect *)expectation selector:(SEL)selector;
44
+ - (void (^)(void))dispatch;
45
+ @end
@@ -0,0 +1,13 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ @interface EXPFloatTuple : NSObject {
4
+ float *_values;
5
+ size_t _size;
6
+ }
7
+
8
+ @property (nonatomic, assign) float *values;
9
+ @property (nonatomic, assign) size_t size;
10
+
11
+ - (id)initWithFloatValues:(float *)values size:(size_t)size;
12
+
13
+ @end
@@ -0,0 +1,20 @@
1
+ //
2
+ // EXPMatcher.h
3
+ // Expecta
4
+ //
5
+ // Created by Luke Redpath on 26/03/2012.
6
+ // Copyright (c) 2012 Peter Jihoon Kim. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+
11
+ @protocol EXPMatcher <NSObject>
12
+
13
+ - (BOOL)matches:(id)actual;
14
+
15
+ @optional
16
+ - (BOOL)meetsPrerequesiteFor:(id)actual;
17
+ - (NSString *)failureMessageForTo:(id)actual;
18
+ - (NSString *)failureMessageForNotTo:(id)actual;
19
+
20
+ @end
@@ -0,0 +1,4 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ BOOL EXPIsValuePointer(NSValue *value);
4
+ BOOL EXPIsNumberFloat(NSNumber *number);
@@ -0,0 +1,7 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(_beCloseToWithin, (id expected, id within));
4
+ EXPMatcherInterface(beCloseToWithin, (id expected, id within));
5
+
6
+ #define beCloseTo(expected) _beCloseToWithin(EXPObjectify((expected)), nil)
7
+ #define beCloseToWithin(expected, range) _beCloseToWithin(EXPObjectify((expected)), EXPObjectify((range)))
@@ -0,0 +1,3 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(beFalsy, (void));
@@ -0,0 +1,6 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(_beGreaterThan, (id expected));
4
+ EXPMatcherInterface(beGreaterThan, (id expected));
5
+
6
+ #define beGreaterThan(expected) _beGreaterThan(EXPObjectify((expected)))
@@ -0,0 +1,6 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(_beGreaterThanOrEqualTo, (id expected));
4
+ EXPMatcherInterface(beGreaterThanOrEqualTo, (id expected));
5
+
6
+ #define beGreaterThanOrEqualTo(expected) _beGreaterThanOrEqualTo(EXPObjectify((expected)))
@@ -0,0 +1,10 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(_beIdenticalTo, (void *expected));
4
+ EXPMatcherInterface(beIdenticalTo, (void *expected)); // to aid code completion
5
+
6
+ #if __has_feature(objc_arc)
7
+ #define beIdenticalTo(expected) _beIdenticalTo((__bridge void*)expected)
8
+ #else
9
+ #define beIdenticalTo _beIdenticalTo
10
+ #endif
@@ -0,0 +1,6 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(_beInTheRangeOf, (id expectedLowerBound, id expectedUpperBound));
4
+ EXPMatcherInterface(beInTheRangeOf, (id expectedLowerBound, id expectedUpperBound));
5
+
6
+ #define beInTheRangeOf(expectedLowerBound, expectedUpperBound) _beInTheRangeOf(EXPObjectify((expectedLowerBound)), EXPObjectify((expectedUpperBound)))
@@ -0,0 +1,7 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(beInstanceOf, (Class expected));
4
+
5
+ #define beAnInstanceOf beInstanceOf
6
+ #define beMemberOf beInstanceOf
7
+ #define beAMemberOf beInstanceOf
@@ -0,0 +1,5 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(beKindOf, (Class expected));
4
+
5
+ #define beAKindOf beKindOf
@@ -0,0 +1,6 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(_beLessThan, (id expected));
4
+ EXPMatcherInterface(beLessThan, (id expected));
5
+
6
+ #define beLessThan(expected) _beLessThan(EXPObjectify((expected)))
@@ -0,0 +1,6 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(_beLessThanOrEqualTo, (id expected));
4
+ EXPMatcherInterface(beLessThanOrEqualTo, (id expected));
5
+
6
+ #define beLessThanOrEqualTo(expected) _beLessThanOrEqualTo(EXPObjectify((expected)))
@@ -0,0 +1,5 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(beNil, (void));
4
+
5
+ #define beNull beNil
@@ -0,0 +1,5 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(beSubclassOf, (Class expected));
4
+
5
+ #define beASubclassOf beSubclassOf
@@ -0,0 +1,4 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(beSupersetOf, (id subset));
4
+
@@ -0,0 +1,3 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(beTruthy, (void));
@@ -0,0 +1,5 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(beginWith, (id expected));
4
+
5
+ #define startWith beginWith
@@ -0,0 +1,3 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(conformTo, (Protocol *expected));
@@ -0,0 +1,5 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(_contain, (id expected));
4
+ EXPMatcherInterface(contain, (id expected)); // to aid code completion
5
+ #define contain(expected) _contain(EXPObjectify((expected)))
@@ -0,0 +1,3 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(endWith, (id expected));
@@ -0,0 +1,5 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(_equal, (id expected));
4
+ EXPMatcherInterface(equal, (id expected)); // to aid code completion
5
+ #define equal(...) _equal(EXPObjectify((__VA_ARGS__)))
@@ -0,0 +1,10 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(haveCountOf, (NSUInteger expected));
4
+
5
+ #define haveCount haveCountOf
6
+ #define haveACountOf haveCountOf
7
+ #define haveLength haveCountOf
8
+ #define haveLengthOf haveCountOf
9
+ #define haveALengthOf haveCountOf
10
+ #define beEmpty() haveCountOf(0)
@@ -0,0 +1,4 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(notify, (id expectedNotification));
4
+
@@ -0,0 +1,4 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(raise, (NSString *expectedExceptionName));
4
+ #define raiseAny() raise(nil)
@@ -0,0 +1,3 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(raiseWithReason, (NSString *expectedExceptionName, NSString *expectedReason));
@@ -0,0 +1,3 @@
1
+ #import "Expecta.h"
2
+
3
+ EXPMatcherInterface(respondTo, (SEL expected));
@@ -0,0 +1,24 @@
1
+ #import "EXPMatchers+beNil.h"
2
+ #import "EXPMatchers+equal.h"
3
+ #import "EXPMatchers+beInstanceOf.h"
4
+ #import "EXPMatchers+beKindOf.h"
5
+ #import "EXPMatchers+beSubclassOf.h"
6
+ #import "EXPMatchers+conformTo.h"
7
+ #import "EXPMatchers+beTruthy.h"
8
+ #import "EXPMatchers+beFalsy.h"
9
+ #import "EXPMatchers+contain.h"
10
+ #import "EXPMatchers+beSupersetOf.h"
11
+ #import "EXPMatchers+haveCountOf.h"
12
+ #import "EXPMatchers+beIdenticalTo.h"
13
+ #import "EXPMatchers+beGreaterThan.h"
14
+ #import "EXPMatchers+beGreaterThanOrEqualTo.h"
15
+ #import "EXPMatchers+beLessThan.h"
16
+ #import "EXPMatchers+beLessThanOrEqualTo.h"
17
+ #import "EXPMatchers+beInTheRangeOf.h"
18
+ #import "EXPMatchers+beCloseTo.h"
19
+ #import "EXPMatchers+raise.h"
20
+ #import "EXPMatchers+raiseWithReason.h"
21
+ #import "EXPMatchers+respondTo.h"
22
+ #import "EXPMatchers+notify.h"
23
+ #import "EXPMatchers+beginWith.h"
24
+ #import "EXPMatchers+endWith.h"
@@ -0,0 +1,11 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ @interface EXPUnsupportedObject : NSObject {
4
+ NSString *_type;
5
+ }
6
+
7
+ @property (nonatomic, retain) NSString *type;
8
+
9
+ - (id)initWithType:(NSString *)type;
10
+
11
+ @end
@@ -0,0 +1,27 @@
1
+ #import <Foundation/Foundation.h>
2
+ #import "ExpectaSupport.h"
3
+
4
+ #define EXPObjectify(value) _EXPObjectify(@encode(__typeof__((value))), (value))
5
+
6
+ #define EXP_expect(actual) _EXP_expect(self, __LINE__, __FILE__, ^id{ return EXPObjectify((actual)); })
7
+
8
+ #define EXPMatcherInterface(matcherName, matcherArguments) _EXPMatcherInterface(matcherName, matcherArguments)
9
+ #define EXPMatcherImplementationBegin(matcherName, matcherArguments) _EXPMatcherImplementationBegin(matcherName, matcherArguments)
10
+ #define EXPMatcherImplementationEnd _EXPMatcherImplementationEnd
11
+
12
+ #import "EXPMatchers.h"
13
+
14
+ #ifdef EXP_SHORTHAND
15
+ # define expect(...) EXP_expect((__VA_ARGS__))
16
+ #endif
17
+
18
+ #ifdef EXP_OLD_SYNTAX
19
+ # import "EXPBackwardCompatibility.h"
20
+ #endif
21
+
22
+ @interface Expecta : NSObject
23
+
24
+ + (NSTimeInterval)asynchronousTestTimeout;
25
+ + (void)setAsynchronousTestTimeout:(NSTimeInterval)timeout;
26
+
27
+ @end