second_curtain 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
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