├── .gitignore ├── .travis.yml ├── BAHVimeoOAuth.podspec ├── Example ├── BAHVimeoOAuth.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ └── BAHVimeoOAuth-Example.xcscheme ├── BAHVimeoOAuth.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── .dat04de.0f1 ├── BAHVimeoOAuth │ ├── BAHAppDelegate.h │ ├── BAHAppDelegate.m │ ├── BAHTableViewController.h │ ├── BAHTableViewController.m │ ├── BAHViewController.h │ ├── BAHViewController.m │ ├── BAHVimeoOAuth-Info.plist │ ├── BAHVimeoOAuth-Prefix.pch │ ├── Base.lproj │ │ └── Main.storyboard │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── LaunchImage.launchimage │ │ │ └── Contents.json │ ├── en.lproj │ │ └── InfoPlist.strings │ └── main.m ├── Podfile ├── Podfile.lock ├── Pods │ ├── AFNetworking │ │ ├── AFNetworking │ │ │ ├── AFHTTPRequestOperation.h │ │ │ ├── AFHTTPRequestOperation.m │ │ │ ├── AFHTTPRequestOperationManager.h │ │ │ ├── AFHTTPRequestOperationManager.m │ │ │ ├── AFHTTPSessionManager.h │ │ │ ├── AFHTTPSessionManager.m │ │ │ ├── AFNetworkReachabilityManager.h │ │ │ ├── AFNetworkReachabilityManager.m │ │ │ ├── AFNetworking.h │ │ │ ├── AFSecurityPolicy.h │ │ │ ├── AFSecurityPolicy.m │ │ │ ├── AFURLConnectionOperation.h │ │ │ ├── AFURLConnectionOperation.m │ │ │ ├── AFURLRequestSerialization.h │ │ │ ├── AFURLRequestSerialization.m │ │ │ ├── AFURLResponseSerialization.h │ │ │ ├── AFURLResponseSerialization.m │ │ │ ├── AFURLSessionManager.h │ │ │ └── AFURLSessionManager.m │ │ ├── LICENSE │ │ ├── README.md │ │ └── UIKit+AFNetworking │ │ │ ├── AFNetworkActivityIndicatorManager.h │ │ │ ├── AFNetworkActivityIndicatorManager.m │ │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ │ ├── UIActivityIndicatorView+AFNetworking.m │ │ │ ├── UIAlertView+AFNetworking.h │ │ │ ├── UIAlertView+AFNetworking.m │ │ │ ├── UIButton+AFNetworking.h │ │ │ ├── UIButton+AFNetworking.m │ │ │ ├── UIImageView+AFNetworking.h │ │ │ ├── UIImageView+AFNetworking.m │ │ │ ├── UIKit+AFNetworking.h │ │ │ ├── UIProgressView+AFNetworking.h │ │ │ ├── UIProgressView+AFNetworking.m │ │ │ ├── UIRefreshControl+AFNetworking.h │ │ │ ├── UIRefreshControl+AFNetworking.m │ │ │ ├── UIWebView+AFNetworking.h │ │ │ └── UIWebView+AFNetworking.m │ ├── Expecta+Snapshots │ │ ├── EXPMatchers+FBSnapshotTest.h │ │ ├── EXPMatchers+FBSnapshotTest.m │ │ ├── LICENSE.md │ │ └── README.md │ ├── Expecta │ │ ├── Expecta │ │ │ ├── EXPBlockDefinedMatcher.h │ │ │ ├── EXPBlockDefinedMatcher.m │ │ │ ├── EXPDefines.h │ │ │ ├── EXPDoubleTuple.h │ │ │ ├── EXPDoubleTuple.m │ │ │ ├── EXPExpect.h │ │ │ ├── EXPExpect.m │ │ │ ├── EXPFloatTuple.h │ │ │ ├── EXPFloatTuple.m │ │ │ ├── EXPMatcher.h │ │ │ ├── EXPUnsupportedObject.h │ │ │ ├── EXPUnsupportedObject.m │ │ │ ├── Expecta.h │ │ │ ├── ExpectaObject.h │ │ │ ├── ExpectaObject.m │ │ │ ├── ExpectaSupport.h │ │ │ ├── ExpectaSupport.m │ │ │ ├── Matchers │ │ │ │ ├── EXPMatcherHelpers.h │ │ │ │ ├── EXPMatcherHelpers.m │ │ │ │ ├── EXPMatchers+beCloseTo.h │ │ │ │ ├── EXPMatchers+beCloseTo.m │ │ │ │ ├── EXPMatchers+beFalsy.h │ │ │ │ ├── EXPMatchers+beFalsy.m │ │ │ │ ├── EXPMatchers+beGreaterThan.h │ │ │ │ ├── EXPMatchers+beGreaterThan.m │ │ │ │ ├── EXPMatchers+beGreaterThanOrEqualTo.h │ │ │ │ ├── EXPMatchers+beGreaterThanOrEqualTo.m │ │ │ │ ├── EXPMatchers+beIdenticalTo.h │ │ │ │ ├── EXPMatchers+beIdenticalTo.m │ │ │ │ ├── EXPMatchers+beInTheRangeOf.h │ │ │ │ ├── EXPMatchers+beInTheRangeOf.m │ │ │ │ ├── EXPMatchers+beInstanceOf.h │ │ │ │ ├── EXPMatchers+beInstanceOf.m │ │ │ │ ├── EXPMatchers+beKindOf.h │ │ │ │ ├── EXPMatchers+beKindOf.m │ │ │ │ ├── EXPMatchers+beLessThan.h │ │ │ │ ├── EXPMatchers+beLessThan.m │ │ │ │ ├── EXPMatchers+beLessThanOrEqualTo.h │ │ │ │ ├── EXPMatchers+beLessThanOrEqualTo.m │ │ │ │ ├── EXPMatchers+beNil.h │ │ │ │ ├── EXPMatchers+beNil.m │ │ │ │ ├── EXPMatchers+beSubclassOf.h │ │ │ │ ├── EXPMatchers+beSubclassOf.m │ │ │ │ ├── EXPMatchers+beSupersetOf.h │ │ │ │ ├── EXPMatchers+beSupersetOf.m │ │ │ │ ├── EXPMatchers+beTruthy.h │ │ │ │ ├── EXPMatchers+beTruthy.m │ │ │ │ ├── EXPMatchers+beginWith.h │ │ │ │ ├── EXPMatchers+beginWith.m │ │ │ │ ├── EXPMatchers+conformTo.h │ │ │ │ ├── EXPMatchers+conformTo.m │ │ │ │ ├── EXPMatchers+contain.h │ │ │ │ ├── EXPMatchers+contain.m │ │ │ │ ├── EXPMatchers+endWith.h │ │ │ │ ├── EXPMatchers+endWith.m │ │ │ │ ├── EXPMatchers+equal.h │ │ │ │ ├── EXPMatchers+equal.m │ │ │ │ ├── EXPMatchers+haveCountOf.h │ │ │ │ ├── EXPMatchers+haveCountOf.m │ │ │ │ ├── EXPMatchers+match.h │ │ │ │ ├── EXPMatchers+match.m │ │ │ │ ├── EXPMatchers+postNotification.h │ │ │ │ ├── EXPMatchers+postNotification.m │ │ │ │ ├── EXPMatchers+raise.h │ │ │ │ ├── EXPMatchers+raise.m │ │ │ │ ├── EXPMatchers+raiseWithReason.h │ │ │ │ ├── EXPMatchers+raiseWithReason.m │ │ │ │ ├── EXPMatchers+respondTo.h │ │ │ │ ├── EXPMatchers+respondTo.m │ │ │ │ └── EXPMatchers.h │ │ │ ├── NSObject+Expecta.h │ │ │ ├── NSValue+Expecta.h │ │ │ └── NSValue+Expecta.m │ │ ├── LICENSE │ │ └── README.md │ ├── FBSnapshotTestCase │ │ ├── FBSnapshotTestCase │ │ │ ├── FBSnapshotTestCase.h │ │ │ ├── FBSnapshotTestCase.m │ │ │ ├── FBSnapshotTestController.h │ │ │ ├── FBSnapshotTestController.m │ │ │ ├── UIImage+Compare.h │ │ │ ├── UIImage+Compare.m │ │ │ ├── UIImage+Diff.h │ │ │ └── UIImage+Diff.m │ │ ├── LICENSE │ │ └── README.md │ ├── Headers │ │ ├── Build │ │ │ ├── AFNetworking │ │ │ │ ├── AFHTTPRequestOperation.h │ │ │ │ ├── AFHTTPRequestOperationManager.h │ │ │ │ ├── AFHTTPSessionManager.h │ │ │ │ ├── AFNetworkActivityIndicatorManager.h │ │ │ │ ├── AFNetworkReachabilityManager.h │ │ │ │ ├── AFNetworking.h │ │ │ │ ├── AFSecurityPolicy.h │ │ │ │ ├── AFURLConnectionOperation.h │ │ │ │ ├── AFURLRequestSerialization.h │ │ │ │ ├── AFURLResponseSerialization.h │ │ │ │ ├── AFURLSessionManager.h │ │ │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ │ │ ├── UIAlertView+AFNetworking.h │ │ │ │ ├── UIButton+AFNetworking.h │ │ │ │ ├── UIImageView+AFNetworking.h │ │ │ │ ├── UIKit+AFNetworking.h │ │ │ │ ├── UIProgressView+AFNetworking.h │ │ │ │ ├── UIRefreshControl+AFNetworking.h │ │ │ │ └── UIWebView+AFNetworking.h │ │ │ ├── BAHVimeoOAuth │ │ │ │ ├── BAHVimeoOAuth.h │ │ │ │ └── BAHVimeoOAuthViewController.h │ │ │ ├── Expecta+Snapshots │ │ │ │ └── EXPMatchers+FBSnapshotTest.h │ │ │ ├── Expecta │ │ │ │ ├── EXPBlockDefinedMatcher.h │ │ │ │ ├── EXPDefines.h │ │ │ │ ├── EXPDoubleTuple.h │ │ │ │ ├── EXPExpect.h │ │ │ │ ├── EXPFloatTuple.h │ │ │ │ ├── EXPMatcher.h │ │ │ │ ├── EXPMatcherHelpers.h │ │ │ │ ├── EXPMatchers+beCloseTo.h │ │ │ │ ├── EXPMatchers+beFalsy.h │ │ │ │ ├── EXPMatchers+beGreaterThan.h │ │ │ │ ├── EXPMatchers+beGreaterThanOrEqualTo.h │ │ │ │ ├── EXPMatchers+beIdenticalTo.h │ │ │ │ ├── EXPMatchers+beInTheRangeOf.h │ │ │ │ ├── EXPMatchers+beInstanceOf.h │ │ │ │ ├── EXPMatchers+beKindOf.h │ │ │ │ ├── EXPMatchers+beLessThan.h │ │ │ │ ├── EXPMatchers+beLessThanOrEqualTo.h │ │ │ │ ├── EXPMatchers+beNil.h │ │ │ │ ├── EXPMatchers+beSubclassOf.h │ │ │ │ ├── EXPMatchers+beSupersetOf.h │ │ │ │ ├── EXPMatchers+beTruthy.h │ │ │ │ ├── EXPMatchers+beginWith.h │ │ │ │ ├── EXPMatchers+conformTo.h │ │ │ │ ├── EXPMatchers+contain.h │ │ │ │ ├── EXPMatchers+endWith.h │ │ │ │ ├── EXPMatchers+equal.h │ │ │ │ ├── EXPMatchers+haveCountOf.h │ │ │ │ ├── EXPMatchers+match.h │ │ │ │ ├── EXPMatchers+postNotification.h │ │ │ │ ├── EXPMatchers+raise.h │ │ │ │ ├── EXPMatchers+raiseWithReason.h │ │ │ │ ├── EXPMatchers+respondTo.h │ │ │ │ ├── EXPMatchers.h │ │ │ │ ├── EXPUnsupportedObject.h │ │ │ │ ├── Expecta.h │ │ │ │ ├── ExpectaObject.h │ │ │ │ ├── ExpectaSupport.h │ │ │ │ ├── NSObject+Expecta.h │ │ │ │ └── NSValue+Expecta.h │ │ │ ├── FBSnapshotTestCase │ │ │ │ ├── FBSnapshotTestCase.h │ │ │ │ ├── FBSnapshotTestController.h │ │ │ │ ├── UIImage+Compare.h │ │ │ │ └── UIImage+Diff.h │ │ │ └── Specta │ │ │ │ ├── SPTCallSite.h │ │ │ │ ├── SPTCompiledExample.h │ │ │ │ ├── SPTExample.h │ │ │ │ ├── SPTExampleGroup.h │ │ │ │ ├── SPTSharedExampleGroups.h │ │ │ │ ├── SPTSpec.h │ │ │ │ ├── SPTTestSuite.h │ │ │ │ ├── Specta.h │ │ │ │ ├── SpectaDSL.h │ │ │ │ ├── SpectaTypes.h │ │ │ │ ├── SpectaUtility.h │ │ │ │ ├── XCTest+Private.h │ │ │ │ └── XCTestCase+Specta.h │ │ └── Public │ │ │ ├── AFNetworking │ │ │ ├── AFHTTPRequestOperation.h │ │ │ ├── AFHTTPRequestOperationManager.h │ │ │ ├── AFHTTPSessionManager.h │ │ │ ├── AFNetworkActivityIndicatorManager.h │ │ │ ├── AFNetworkReachabilityManager.h │ │ │ ├── AFNetworking.h │ │ │ ├── AFSecurityPolicy.h │ │ │ ├── AFURLConnectionOperation.h │ │ │ ├── AFURLRequestSerialization.h │ │ │ ├── AFURLResponseSerialization.h │ │ │ ├── AFURLSessionManager.h │ │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ │ ├── UIAlertView+AFNetworking.h │ │ │ ├── UIButton+AFNetworking.h │ │ │ ├── UIImageView+AFNetworking.h │ │ │ ├── UIKit+AFNetworking.h │ │ │ ├── UIProgressView+AFNetworking.h │ │ │ ├── UIRefreshControl+AFNetworking.h │ │ │ └── UIWebView+AFNetworking.h │ │ │ ├── BAHVimeoOAuth │ │ │ ├── BAHVimeoOAuth.h │ │ │ └── BAHVimeoOAuthViewController.h │ │ │ ├── Expecta+Snapshots │ │ │ └── EXPMatchers+FBSnapshotTest.h │ │ │ ├── Expecta │ │ │ ├── EXPBlockDefinedMatcher.h │ │ │ ├── EXPDefines.h │ │ │ ├── EXPDoubleTuple.h │ │ │ ├── EXPExpect.h │ │ │ ├── EXPFloatTuple.h │ │ │ ├── EXPMatcher.h │ │ │ ├── EXPMatcherHelpers.h │ │ │ ├── EXPMatchers+beCloseTo.h │ │ │ ├── EXPMatchers+beFalsy.h │ │ │ ├── EXPMatchers+beGreaterThan.h │ │ │ ├── EXPMatchers+beGreaterThanOrEqualTo.h │ │ │ ├── EXPMatchers+beIdenticalTo.h │ │ │ ├── EXPMatchers+beInTheRangeOf.h │ │ │ ├── EXPMatchers+beInstanceOf.h │ │ │ ├── EXPMatchers+beKindOf.h │ │ │ ├── EXPMatchers+beLessThan.h │ │ │ ├── EXPMatchers+beLessThanOrEqualTo.h │ │ │ ├── EXPMatchers+beNil.h │ │ │ ├── EXPMatchers+beSubclassOf.h │ │ │ ├── EXPMatchers+beSupersetOf.h │ │ │ ├── EXPMatchers+beTruthy.h │ │ │ ├── EXPMatchers+beginWith.h │ │ │ ├── EXPMatchers+conformTo.h │ │ │ ├── EXPMatchers+contain.h │ │ │ ├── EXPMatchers+endWith.h │ │ │ ├── EXPMatchers+equal.h │ │ │ ├── EXPMatchers+haveCountOf.h │ │ │ ├── EXPMatchers+match.h │ │ │ ├── EXPMatchers+postNotification.h │ │ │ ├── EXPMatchers+raise.h │ │ │ ├── EXPMatchers+raiseWithReason.h │ │ │ ├── EXPMatchers+respondTo.h │ │ │ ├── EXPMatchers.h │ │ │ ├── EXPUnsupportedObject.h │ │ │ ├── Expecta.h │ │ │ ├── ExpectaObject.h │ │ │ ├── ExpectaSupport.h │ │ │ ├── NSObject+Expecta.h │ │ │ └── NSValue+Expecta.h │ │ │ ├── FBSnapshotTestCase │ │ │ ├── FBSnapshotTestCase.h │ │ │ ├── FBSnapshotTestController.h │ │ │ ├── UIImage+Compare.h │ │ │ └── UIImage+Diff.h │ │ │ └── Specta │ │ │ ├── SPTCallSite.h │ │ │ ├── SPTCompiledExample.h │ │ │ ├── SPTExample.h │ │ │ ├── SPTExampleGroup.h │ │ │ ├── SPTSharedExampleGroups.h │ │ │ ├── SPTSpec.h │ │ │ ├── SPTTestSuite.h │ │ │ ├── Specta.h │ │ │ ├── SpectaDSL.h │ │ │ ├── SpectaTypes.h │ │ │ ├── SpectaUtility.h │ │ │ ├── XCTest+Private.h │ │ │ └── XCTestCase+Specta.h │ ├── Local Podspecs │ │ ├── BAHVimeoOAuth.podspec │ │ └── Specta.podspec │ ├── Manifest.lock │ ├── Pods.xcodeproj │ │ └── project.pbxproj │ ├── Specta │ │ ├── LICENSE │ │ ├── README.md │ │ └── Specta │ │ │ └── Specta │ │ │ ├── SPTCallSite.h │ │ │ ├── SPTCallSite.m │ │ │ ├── SPTCompiledExample.h │ │ │ ├── SPTCompiledExample.m │ │ │ ├── SPTExample.h │ │ │ ├── SPTExample.m │ │ │ ├── SPTExampleGroup.h │ │ │ ├── SPTExampleGroup.m │ │ │ ├── SPTSharedExampleGroups.h │ │ │ ├── SPTSharedExampleGroups.m │ │ │ ├── SPTSpec.h │ │ │ ├── SPTSpec.m │ │ │ ├── SPTTestSuite.h │ │ │ ├── SPTTestSuite.m │ │ │ ├── Specta.h │ │ │ ├── SpectaDSL.h │ │ │ ├── SpectaDSL.m │ │ │ ├── SpectaTypes.h │ │ │ ├── SpectaUtility.h │ │ │ ├── SpectaUtility.m │ │ │ ├── XCTest+Private.h │ │ │ ├── XCTestCase+Specta.h │ │ │ └── XCTestCase+Specta.m │ └── Target Support Files │ │ ├── Pods-BAHVimeoOAuth-AFNetworking │ │ ├── Pods-BAHVimeoOAuth-AFNetworking-Private.xcconfig │ │ ├── Pods-BAHVimeoOAuth-AFNetworking-dummy.m │ │ ├── Pods-BAHVimeoOAuth-AFNetworking-prefix.pch │ │ └── Pods-BAHVimeoOAuth-AFNetworking.xcconfig │ │ ├── Pods-BAHVimeoOAuth-BAHVimeoOAuth │ │ ├── Pods-BAHVimeoOAuth-BAHVimeoOAuth-Private.xcconfig │ │ ├── Pods-BAHVimeoOAuth-BAHVimeoOAuth-dummy.m │ │ ├── Pods-BAHVimeoOAuth-BAHVimeoOAuth-prefix.pch │ │ └── Pods-BAHVimeoOAuth-BAHVimeoOAuth.xcconfig │ │ ├── Pods-BAHVimeoOAuth │ │ ├── Pods-BAHVimeoOAuth-acknowledgements.markdown │ │ ├── Pods-BAHVimeoOAuth-acknowledgements.plist │ │ ├── Pods-BAHVimeoOAuth-dummy.m │ │ ├── Pods-BAHVimeoOAuth-environment.h │ │ ├── Pods-BAHVimeoOAuth-resources.sh │ │ ├── Pods-BAHVimeoOAuth.debug.xcconfig │ │ └── Pods-BAHVimeoOAuth.release.xcconfig │ │ ├── Pods-Tests-AFNetworking │ │ ├── Pods-Tests-AFNetworking-Private.xcconfig │ │ ├── Pods-Tests-AFNetworking-dummy.m │ │ ├── Pods-Tests-AFNetworking-prefix.pch │ │ └── Pods-Tests-AFNetworking.xcconfig │ │ ├── Pods-Tests-BAHVimeoOAuth │ │ ├── Pods-Tests-BAHVimeoOAuth-Private.xcconfig │ │ ├── Pods-Tests-BAHVimeoOAuth-dummy.m │ │ ├── Pods-Tests-BAHVimeoOAuth-prefix.pch │ │ └── Pods-Tests-BAHVimeoOAuth.xcconfig │ │ ├── Pods-Tests-Expecta+Snapshots │ │ ├── Pods-Tests-Expecta+Snapshots-Private.xcconfig │ │ ├── Pods-Tests-Expecta+Snapshots-dummy.m │ │ ├── Pods-Tests-Expecta+Snapshots-prefix.pch │ │ └── Pods-Tests-Expecta+Snapshots.xcconfig │ │ ├── Pods-Tests-Expecta │ │ ├── Pods-Tests-Expecta-Private.xcconfig │ │ ├── Pods-Tests-Expecta-dummy.m │ │ ├── Pods-Tests-Expecta-prefix.pch │ │ └── Pods-Tests-Expecta.xcconfig │ │ ├── Pods-Tests-FBSnapshotTestCase │ │ ├── Pods-Tests-FBSnapshotTestCase-Private.xcconfig │ │ ├── Pods-Tests-FBSnapshotTestCase-dummy.m │ │ ├── Pods-Tests-FBSnapshotTestCase-prefix.pch │ │ └── Pods-Tests-FBSnapshotTestCase.xcconfig │ │ ├── Pods-Tests-Specta │ │ ├── Pods-Tests-Specta-Private.xcconfig │ │ ├── Pods-Tests-Specta-dummy.m │ │ ├── Pods-Tests-Specta-prefix.pch │ │ └── Pods-Tests-Specta.xcconfig │ │ └── Pods-Tests │ │ ├── Pods-Tests-acknowledgements.markdown │ │ ├── Pods-Tests-acknowledgements.plist │ │ ├── Pods-Tests-dummy.m │ │ ├── Pods-Tests-environment.h │ │ ├── Pods-Tests-resources.sh │ │ ├── Pods-Tests.debug.xcconfig │ │ └── Pods-Tests.release.xcconfig └── Tests │ ├── Tests-Info.plist │ ├── Tests-Prefix.pch │ ├── Tests.m │ └── en.lproj │ └── InfoPlist.strings ├── LICENSE ├── Pod ├── Assets │ ├── .gitkeep │ └── vimeo_logo.png └── Classes │ ├── .gitkeep │ ├── BAHVimeoOAuth.h │ ├── BAHVimeoOAuth.m │ ├── BAHVimeoOAuthViewController.h │ └── BAHVimeoOAuthViewController.m └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # OS X 2 | .DS_Store 3 | 4 | # Xcode 5 | build/ 6 | *.pbxuser 7 | !default.pbxuser 8 | *.mode1v3 9 | !default.mode1v3 10 | *.mode2v3 11 | !default.mode2v3 12 | *.perspectivev3 13 | !default.perspectivev3 14 | xcuserdata 15 | *.xccheckout 16 | profile 17 | *.moved-aside 18 | DerivedData 19 | *.hmap 20 | *.ipa 21 | 22 | # Bundler 23 | .bundle 24 | 25 | # We recommend against adding the Pods directory to your .gitignore. However 26 | # you should judge for yourself, the pros and cons are mentioned at: 27 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 28 | # 29 | # Note: if you ignore the Pods directory, make sure to uncomment 30 | # `pod install` in .travis.yml 31 | # 32 | # Pods/ 33 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # references: 2 | # * http://www.objc.io/issue-6/travis-ci.html 3 | # * https://github.com/supermarin/xcpretty#usage 4 | 5 | language: objective-c 6 | # cache: cocoapods 7 | # podfile: Example/Podfile 8 | # before_install: 9 | # - gem install cocoapods # Since Travis is not always on latest version 10 | # - pod install --project-directory=Example 11 | install: 12 | - gem install xcpretty --no-rdoc --no-ri --no-document --quiet 13 | script: 14 | - set -o pipefail && xcodebuild test -workspace Example/BAHVimeoOAuth.xcworkspace -scheme BAHVimeoOAuth-Example -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO | xcpretty -c 15 | - pod lib lint --quick 16 | -------------------------------------------------------------------------------- /BAHVimeoOAuth.podspec: -------------------------------------------------------------------------------- 1 | # 2 | # Be sure to run `pod lib lint BAHVimeoOAuth.podspec' to ensure this is a 3 | # valid spec and remove all comments before submitting the spec. 4 | # 5 | # Any lines starting with a # are optional, but encouraged 6 | # 7 | # To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html 8 | # 9 | 10 | Pod::Spec.new do |s| 11 | s.name = "BAHVimeoOAuth" 12 | s.version = "0.1.1" 13 | s.summary = "Simple Vimeo OAuth 2.0 client" 14 | s.description = <<-DESC 15 | A very easy, simple to use, specific to Vimeo OAuth 2.0 client. 16 | 17 | DESC 18 | s.homepage = "https://github.com/BHughes3388/BAHVimeoOAuth" 19 | s.screenshots = "http://img.photobucket.com/albums/v235/rx7anator/Mobile%20Applications/6bffa370-627d-43b7-8128-136d11700b27_zpsgdk1fbjo.png" 20 | s.license = 'MIT' 21 | s.author = { "BHughes3388" => "BHughes3388@gmail.com" } 22 | s.source = { :git => "https://github.com/BHughes3388/BAHVimeoOAuth.git", :tag => s.version.to_s } 23 | # s.social_media_url = 'https://twitter.com/' 24 | 25 | s.platform = :ios, '7.0' 26 | s.requires_arc = true 27 | 28 | s.source_files = 'Pod/Classes/**/*' 29 | s.resource_bundles = { 30 | 'BAHVimeoOAuth' => ['Pod/Assets/*.png'] 31 | } 32 | 33 | # s.public_header_files = 'Pod/Classes/**/*.h' 34 | # s.frameworks = 'UIKit', 'MapKit' 35 | # s.dependency 'AFNetworking', '~> 2.3' 36 | end 37 | -------------------------------------------------------------------------------- /Example/BAHVimeoOAuth.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/BAHVimeoOAuth.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/BAHVimeoOAuth.xcworkspace/xcshareddata/.dat04de.0f1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDESourceControlProjectFavoriteDictionaryKey 6 | 7 | IDESourceControlProjectIdentifier 8 | 1ADEC99C-00FE-40D6-BF03-DC7ACC635C63 9 | IDESourceControlProjectName 10 | BAHVimeoOAuth 11 | IDESourceControlProjectOriginsDictionary 12 | 13 | E78A588FE5FBEF010E278301C5EE681C284233A1 14 | https://github.com/BHughes3388/BAHVimeoOAuth.git 15 | 16 | IDESourceControlProjectPath 17 | Example/BAHVimeoOAuth.xcworkspace 18 | IDESourceControlProjectRelativeInstallPathDictionary 19 | 20 | E78A588FE5FBEF010E278301C5EE681C284233A1 21 | ../.. 22 | 23 | IDESourceControlProjectURL 24 | https://github.com/BHughes3388/BAHVimeoOAuth.git 25 | IDESourceControlProjectVersion 26 | 111 27 | IDESourceControlProjectWCCIdentifier 28 | E78A588FE5FBEF010E278301C5EE681C284233A1 29 | IDESourceControlProjectWCConfigurations 30 | 31 | 32 | IDESourceControlRepositoryExtensionIdentifierKey 33 | public.vcs.git 34 | IDESourceControlWCCIdentifierKey 35 | E78A588FE5FBEF010E278301C5EE681C284233A1 36 | IDESourceControlWCCName 37 | BAHVimeoOAuth 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Example/BAHVimeoOAuth/BAHAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // BAHAppDelegate.h 3 | // BAHVimeoOAuth 4 | // 5 | // Created by CocoaPods on 02/12/2015. 6 | // Copyright (c) 2014 BHughes3388. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface BAHAppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Example/BAHVimeoOAuth/BAHAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // BAHAppDelegate.m 3 | // BAHVimeoOAuth 4 | // 5 | // Created by CocoaPods on 02/12/2015. 6 | // Copyright (c) 2014 BHughes3388. All rights reserved. 7 | // 8 | 9 | #import "BAHAppDelegate.h" 10 | 11 | @implementation BAHAppDelegate 12 | 13 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 14 | { 15 | // Override point for customization after application launch. 16 | return YES; 17 | } 18 | 19 | - (void)applicationWillResignActive:(UIApplication *)application 20 | { 21 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 22 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 23 | } 24 | 25 | - (void)applicationDidEnterBackground:(UIApplication *)application 26 | { 27 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 28 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 29 | } 30 | 31 | - (void)applicationWillEnterForeground:(UIApplication *)application 32 | { 33 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | - (void)applicationDidBecomeActive:(UIApplication *)application 37 | { 38 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 39 | } 40 | 41 | - (void)applicationWillTerminate:(UIApplication *)application 42 | { 43 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Example/BAHVimeoOAuth/BAHTableViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BAHTableViewController.h 3 | // BAHVimeoOAuth 4 | // 5 | // Created by BHughes on 2/12/15. 6 | // Copyright (c) 2015 BHughes3388. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BAHVimeoOAuth.h" 11 | #import "AFNetworking.h" 12 | 13 | 14 | @interface BAHTableViewController : UITableViewController 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Example/BAHVimeoOAuth/BAHViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BAHViewController.h 3 | // BAHVimeoOAuth 4 | // 5 | // Created by BHughes on 4/25/15. 6 | // Copyright (c) 2015 BHughes3388. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BAHTableViewController.h" 11 | #import "BAHVimeoOAuth.h" 12 | 13 | @interface BAHViewController : UIViewController 14 | @property (weak, nonatomic) IBOutlet UIButton *requestButton; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Example/BAHVimeoOAuth/BAHVimeoOAuth-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | LSRequiresIPhoneOS 26 | 27 | UIMainStoryboardFile 28 | Main 29 | UIMainStoryboardFile~ipad 30 | Main 31 | UIRequiredDeviceCapabilities 32 | 33 | armv7 34 | 35 | UISupportedInterfaceOrientations 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationLandscapeLeft 39 | UIInterfaceOrientationLandscapeRight 40 | 41 | UISupportedInterfaceOrientations~ipad 42 | 43 | UIInterfaceOrientationPortrait 44 | UIInterfaceOrientationPortraitUpsideDown 45 | UIInterfaceOrientationLandscapeLeft 46 | UIInterfaceOrientationLandscapeRight 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /Example/BAHVimeoOAuth/BAHVimeoOAuth-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /Example/BAHVimeoOAuth/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "60x60", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "ipad", 25 | "size" : "29x29", 26 | "scale" : "1x" 27 | }, 28 | { 29 | "idiom" : "ipad", 30 | "size" : "29x29", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "40x40", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "40x40", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "76x76", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "76x76", 51 | "scale" : "2x" 52 | } 53 | ], 54 | "info" : { 55 | "version" : 1, 56 | "author" : "xcode" 57 | } 58 | } -------------------------------------------------------------------------------- /Example/BAHVimeoOAuth/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "orientation" : "portrait", 20 | "idiom" : "ipad", 21 | "extent" : "full-screen", 22 | "minimum-system-version" : "7.0", 23 | "scale" : "1x" 24 | }, 25 | { 26 | "orientation" : "landscape", 27 | "idiom" : "ipad", 28 | "extent" : "full-screen", 29 | "minimum-system-version" : "7.0", 30 | "scale" : "1x" 31 | }, 32 | { 33 | "orientation" : "portrait", 34 | "idiom" : "ipad", 35 | "extent" : "full-screen", 36 | "minimum-system-version" : "7.0", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "orientation" : "landscape", 41 | "idiom" : "ipad", 42 | "extent" : "full-screen", 43 | "minimum-system-version" : "7.0", 44 | "scale" : "2x" 45 | } 46 | ], 47 | "info" : { 48 | "version" : 1, 49 | "author" : "xcode" 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Example/BAHVimeoOAuth/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Example/BAHVimeoOAuth/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // BAHVimeoOAuth 4 | // 5 | // Created by BHughes3388 on 02/12/2015. 6 | // Copyright (c) 2014 BHughes3388. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "BAHAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([BAHAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Example/Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/CocoaPods/Specs.git' 2 | 3 | target 'BAHVimeoOAuth', :exclusive => true do 4 | pod "BAHVimeoOAuth", :path => "../" 5 | pod 'AFNetworking', '~> 2.5' 6 | 7 | end 8 | 9 | target 'Tests', :exclusive => true do 10 | pod "BAHVimeoOAuth", :path => "../" 11 | pod 'AFNetworking', '~> 2.5' 12 | 13 | 14 | pod 'Specta', :git => 'https://github.com/specta/specta.git', :tag => 'v0.3.0.beta1' 15 | pod 'Expecta' 16 | pod 'FBSnapshotTestCase' 17 | pod 'Expecta+Snapshots' 18 | end 19 | -------------------------------------------------------------------------------- /Example/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AFNetworking (2.5.3): 3 | - AFNetworking/NSURLConnection (= 2.5.3) 4 | - AFNetworking/NSURLSession (= 2.5.3) 5 | - AFNetworking/Reachability (= 2.5.3) 6 | - AFNetworking/Security (= 2.5.3) 7 | - AFNetworking/Serialization (= 2.5.3) 8 | - AFNetworking/UIKit (= 2.5.3) 9 | - AFNetworking/NSURLConnection (2.5.3): 10 | - AFNetworking/Reachability 11 | - AFNetworking/Security 12 | - AFNetworking/Serialization 13 | - AFNetworking/NSURLSession (2.5.3): 14 | - AFNetworking/Reachability 15 | - AFNetworking/Security 16 | - AFNetworking/Serialization 17 | - AFNetworking/Reachability (2.5.3) 18 | - AFNetworking/Security (2.5.3) 19 | - AFNetworking/Serialization (2.5.3) 20 | - AFNetworking/UIKit (2.5.3): 21 | - AFNetworking/NSURLConnection 22 | - AFNetworking/NSURLSession 23 | - BAHVimeoOAuth (0.1.0) 24 | - Expecta (0.4.2) 25 | - Expecta+Snapshots (1.3.2): 26 | - Expecta (~> 0.3) 27 | - FBSnapshotTestCase (= 1.6) 28 | - FBSnapshotTestCase (1.6) 29 | - Specta (0.3.0.beta1) 30 | 31 | DEPENDENCIES: 32 | - AFNetworking (~> 2.5) 33 | - BAHVimeoOAuth (from `../`) 34 | - Expecta 35 | - Expecta+Snapshots 36 | - FBSnapshotTestCase 37 | - Specta (from `https://github.com/specta/specta.git`, tag `v0.3.0.beta1`) 38 | 39 | EXTERNAL SOURCES: 40 | BAHVimeoOAuth: 41 | :path: ../ 42 | Specta: 43 | :git: https://github.com/specta/specta.git 44 | :tag: v0.3.0.beta1 45 | 46 | CHECKOUT OPTIONS: 47 | Specta: 48 | :git: https://github.com/specta/specta.git 49 | :tag: v0.3.0.beta1 50 | 51 | SPEC CHECKSUMS: 52 | AFNetworking: e1d86c2a96bb5d2e7408da36149806706ee122fe 53 | BAHVimeoOAuth: c0ad316846f3e90c49a2a3ff155b23fcb4b6ad9b 54 | Expecta: 78b4e8b0c8291fa4524d7f74016b6065c2e391ec 55 | Expecta+Snapshots: 40c5ec43b43da3bae957f14fed5dc9177d08ec8b 56 | FBSnapshotTestCase: 9d5fe43b29ae3a0ed8fc829477971b281038f748 57 | Specta: 63e8ac8e07db6675c7096d37f77a266a1be4c02d 58 | 59 | COCOAPODS: 0.35.0 60 | -------------------------------------------------------------------------------- /Example/Pods/AFNetworking/AFNetworking/AFNetworking.h: -------------------------------------------------------------------------------- 1 | // AFNetworking.h 2 | // 3 | // Copyright (c) 2013 AFNetworking (http://afnetworking.com/) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in 13 | // all copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | // THE SOFTWARE. 22 | 23 | #import 24 | #import 25 | 26 | #ifndef _AFNETWORKING_ 27 | #define _AFNETWORKING_ 28 | 29 | #import "AFURLRequestSerialization.h" 30 | #import "AFURLResponseSerialization.h" 31 | #import "AFSecurityPolicy.h" 32 | #import "AFNetworkReachabilityManager.h" 33 | 34 | #import "AFURLConnectionOperation.h" 35 | #import "AFHTTPRequestOperation.h" 36 | #import "AFHTTPRequestOperationManager.h" 37 | 38 | #if ( ( defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 1090) || \ 39 | ( defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 ) ) 40 | #import "AFURLSessionManager.h" 41 | #import "AFHTTPSessionManager.h" 42 | #endif 43 | 44 | #endif /* _AFNETWORKING_ */ 45 | -------------------------------------------------------------------------------- /Example/Pods/AFNetworking/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2015 AFNetworking (http://afnetworking.com/) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Example/Pods/AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | // UIActivityIndicatorView+AFNetworking.h 2 | // 3 | // Copyright (c) 2013-2015 AFNetworking (http://afnetworking.com) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in 13 | // all copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | // THE SOFTWARE. 22 | 23 | #import 24 | 25 | #import 26 | 27 | #if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) 28 | 29 | #import 30 | 31 | @class AFURLConnectionOperation; 32 | 33 | /** 34 | This category adds methods to the UIKit framework's `UIActivityIndicatorView` class. The methods in this category provide support for automatically starting and stopping animation depending on the loading state of a request operation or session task. 35 | */ 36 | @interface UIActivityIndicatorView (AFNetworking) 37 | 38 | ///---------------------------------- 39 | /// @name Animating for Session Tasks 40 | ///---------------------------------- 41 | 42 | /** 43 | Binds the animating state to the state of the specified task. 44 | 45 | @param task The task. If `nil`, automatic updating from any previously specified operation will be disabled. 46 | */ 47 | #if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 48 | - (void)setAnimatingWithStateOfTask:(NSURLSessionTask *)task; 49 | #endif 50 | 51 | ///--------------------------------------- 52 | /// @name Animating for Request Operations 53 | ///--------------------------------------- 54 | 55 | /** 56 | Binds the animating state to the execution state of the specified operation. 57 | 58 | @param operation The operation. If `nil`, automatic updating from any previously specified operation will be disabled. 59 | */ 60 | - (void)setAnimatingWithStateOfOperation:(AFURLConnectionOperation *)operation; 61 | 62 | @end 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /Example/Pods/AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h: -------------------------------------------------------------------------------- 1 | // UIKit+AFNetworking.h 2 | // 3 | // Copyright (c) 2013 AFNetworking (http://afnetworking.com/) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in 13 | // all copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | // THE SOFTWARE. 22 | 23 | #import 24 | 25 | #ifndef _UIKIT_AFNETWORKING_ 26 | #define _UIKIT_AFNETWORKING_ 27 | 28 | #import "AFNetworkActivityIndicatorManager.h" 29 | 30 | #import "UIActivityIndicatorView+AFNetworking.h" 31 | #import "UIAlertView+AFNetworking.h" 32 | #import "UIButton+AFNetworking.h" 33 | #import "UIImageView+AFNetworking.h" 34 | #import "UIKit+AFNetworking.h" 35 | #import "UIProgressView+AFNetworking.h" 36 | #import "UIRefreshControl+AFNetworking.h" 37 | #import "UIWebView+AFNetworking.h" 38 | #endif /* _UIKIT_AFNETWORKING_ */ 39 | -------------------------------------------------------------------------------- /Example/Pods/AFNetworking/UIKit+AFNetworking/UIRefreshControl+AFNetworking.h: -------------------------------------------------------------------------------- 1 | // UIRefreshControl+AFNetworking.m 2 | // 3 | // Copyright (c) 2014 AFNetworking (http://afnetworking.com) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in 13 | // all copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | // THE SOFTWARE. 22 | 23 | #import 24 | 25 | #import 26 | 27 | #if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) 28 | 29 | #import 30 | 31 | @class AFURLConnectionOperation; 32 | 33 | /** 34 | This category adds methods to the UIKit framework's `UIRefreshControl` class. The methods in this category provide support for automatically begining and ending refreshing depending on the loading state of a request operation or session task. 35 | */ 36 | @interface UIRefreshControl (AFNetworking) 37 | 38 | ///----------------------------------- 39 | /// @name Refreshing for Session Tasks 40 | ///----------------------------------- 41 | 42 | /** 43 | Binds the refreshing state to the state of the specified task. 44 | 45 | @param task The task. If `nil`, automatic updating from any previously specified operation will be disabled. 46 | */ 47 | #if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 48 | - (void)setRefreshingWithStateOfTask:(NSURLSessionTask *)task; 49 | #endif 50 | 51 | ///---------------------------------------- 52 | /// @name Refreshing for Request Operations 53 | ///---------------------------------------- 54 | 55 | /** 56 | Binds the refreshing state to the execution state of the specified operation. 57 | 58 | @param operation The operation. If `nil`, automatic updating from any previously specified operation will be disabled. 59 | */ 60 | - (void)setRefreshingWithStateOfOperation:(AFURLConnectionOperation *)operation; 61 | 62 | @end 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /Example/Pods/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h: -------------------------------------------------------------------------------- 1 | // 2 | // EXPMatchers+FBSnapshotTest.h 3 | // Artsy 4 | // 5 | // Created by Daniel Doubrovkine on 1/14/14. 6 | // Copyright (c) 2014 Artsy Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface EXPExpectFBSnapshotTest : NSObject 12 | @end 13 | 14 | /// Set the default folder for image tests to run in 15 | extern void setGlobalReferenceImageDir(char *reference); 16 | 17 | EXPMatcherInterface(haveValidSnapshot, (void)); 18 | EXPMatcherInterface(recordSnapshot, (void)); 19 | 20 | EXPMatcherInterface(haveValidSnapshotNamed, (NSString *snapshot)); 21 | EXPMatcherInterface(recordSnapshotNamed, (NSString *snapshot)); 22 | -------------------------------------------------------------------------------- /Example/Pods/Expecta+Snapshots/LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2014 Daniel Doubrovkine, Artsy Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/EXPBlockDefinedMatcher.h: -------------------------------------------------------------------------------- 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 10 | #import "EXPMatcher.h" 11 | #import "EXPDefines.h" 12 | 13 | @interface EXPBlockDefinedMatcher : NSObject { 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 26 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/EXPBlockDefinedMatcher.m: -------------------------------------------------------------------------------- 1 | // 2 | // EXPRuntimeMatcher.m 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 "EXPBlockDefinedMatcher.h" 10 | 11 | @implementation EXPBlockDefinedMatcher 12 | 13 | - (void)dealloc 14 | { 15 | self.prerequisiteBlock = nil; 16 | self.matchBlock = nil; 17 | self.failureMessageForToBlock = nil; 18 | self.failureMessageForNotToBlock = nil; 19 | 20 | [super dealloc]; 21 | } 22 | 23 | @synthesize prerequisiteBlock; 24 | @synthesize matchBlock; 25 | @synthesize failureMessageForToBlock; 26 | @synthesize failureMessageForNotToBlock; 27 | 28 | - (BOOL)meetsPrerequesiteFor:(id)actual 29 | { 30 | if (self.prerequisiteBlock) { 31 | return self.prerequisiteBlock(); 32 | } 33 | return YES; 34 | } 35 | 36 | - (BOOL)matches:(id)actual 37 | { 38 | if (self.matchBlock) { 39 | return self.matchBlock(); 40 | } 41 | return YES; 42 | } 43 | 44 | - (NSString *)failureMessageForTo:(id)actual 45 | { 46 | if (self.failureMessageForToBlock) { 47 | return self.failureMessageForToBlock(); 48 | } 49 | return nil; 50 | } 51 | 52 | - (NSString *)failureMessageForNotTo:(id)actual 53 | { 54 | if (self.failureMessageForNotToBlock) { 55 | return self.failureMessageForNotToBlock(); 56 | } 57 | return nil; 58 | } 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/EXPDefines.h: -------------------------------------------------------------------------------- 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 18 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/EXPDoubleTuple.h: -------------------------------------------------------------------------------- 1 | #import 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 | - (instancetype)initWithDoubleValues:(double *)values size:(size_t)size NS_DESIGNATED_INITIALIZER; 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/EXPDoubleTuple.m: -------------------------------------------------------------------------------- 1 | #import "EXPDoubleTuple.h" 2 | 3 | @implementation EXPDoubleTuple 4 | 5 | @synthesize values = _values, size = _size; 6 | 7 | - (instancetype)initWithDoubleValues:(double *)values size:(size_t)size { 8 | if ((self = [super init])) { 9 | self.values = malloc(sizeof(double) * size); 10 | memcpy(self.values, values, sizeof(double) * size); 11 | self.size = size; 12 | } 13 | return self; 14 | } 15 | 16 | - (void)dealloc { 17 | free(self.values); 18 | [super dealloc]; 19 | } 20 | 21 | - (BOOL)isEqual:(id)object { 22 | if (![object isKindOfClass:[EXPDoubleTuple class]]) return NO; 23 | EXPDoubleTuple *other = (EXPDoubleTuple *)object; 24 | if (self.size == other.size) { 25 | for (int i = 0; i < self.size; ++i) { 26 | if (self.values[i] != other.values[i]) return NO; 27 | } 28 | return YES; 29 | } 30 | return NO; 31 | } 32 | 33 | - (NSString *)description { 34 | if (self.size == 2) { 35 | return [NSString stringWithFormat:@"Double tuple: {%f, %f}", self.values[0], self.values[1]]; 36 | } else if (self.size == 4) { 37 | return [NSString stringWithFormat:@"Double tuple: {%f, %f, %f, %f}", self.values[0], self.values[1], self.values[2], self.values[3]]; 38 | } 39 | return [NSString stringWithFormat:@"Double tuple of unexpected size %zd, sadly", self.size]; 40 | } 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/EXPExpect.h: -------------------------------------------------------------------------------- 1 | #import 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 | - (instancetype)initWithActualBlock:(id)actualBlock testCase:(id)testCase lineNumber:(int)lineNumber fileName:(const char *)fileName NS_DESIGNATED_INITIALIZER; 32 | + (EXPExpect *)expectWithActualBlock:(id)actualBlock testCase:(id)testCase lineNumber:(int)lineNumber fileName:(const char *)fileName; 33 | 34 | - (void)applyMatcher:(id)matcher; 35 | - (void)applyMatcher:(id)matcher to:(NSObject **)actual; 36 | 37 | @end 38 | 39 | @interface EXPDynamicPredicateMatcher : NSObject { 40 | EXPExpect *_expectation; 41 | SEL _selector; 42 | } 43 | - (instancetype)initWithExpectation:(EXPExpect *)expectation selector:(SEL)selector NS_DESIGNATED_INITIALIZER; 44 | @property (nonatomic, readonly, copy) void (^dispatch)(void); 45 | @end 46 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/EXPFloatTuple.h: -------------------------------------------------------------------------------- 1 | #import 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 | - (instancetype)initWithFloatValues:(float *)values size:(size_t)size NS_DESIGNATED_INITIALIZER; 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/EXPFloatTuple.m: -------------------------------------------------------------------------------- 1 | #import "EXPFloatTuple.h" 2 | 3 | @implementation EXPFloatTuple 4 | 5 | @synthesize values = _values, size = _size; 6 | 7 | - (instancetype)initWithFloatValues:(float *)values size:(size_t)size { 8 | if ((self = [super init])) { 9 | self.values = malloc(sizeof(float) * size); 10 | memcpy(self.values, values, sizeof(float) * size); 11 | self.size = size; 12 | } 13 | return self; 14 | } 15 | 16 | - (void)dealloc { 17 | free(self.values); 18 | [super dealloc]; 19 | } 20 | 21 | - (BOOL)isEqual:(id)object { 22 | if (![object isKindOfClass:[EXPFloatTuple class]]) return NO; 23 | EXPFloatTuple *other = (EXPFloatTuple *)object; 24 | if (self.size == other.size) { 25 | for (int i = 0; i < self.size; ++i) { 26 | if (self.values[i] != other.values[i]) return NO; 27 | } 28 | return YES; 29 | } 30 | return NO; 31 | } 32 | 33 | - (NSUInteger)hash 34 | { 35 | NSUInteger prime = 31; 36 | NSUInteger hash = 0; 37 | for (int i=0; i 10 | 11 | @protocol EXPMatcher 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 21 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/EXPUnsupportedObject.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface EXPUnsupportedObject : NSObject { 4 | NSString *_type; 5 | } 6 | 7 | @property (nonatomic, retain) NSString *type; 8 | 9 | - (instancetype)initWithType:(NSString *)type NS_DESIGNATED_INITIALIZER; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/EXPUnsupportedObject.m: -------------------------------------------------------------------------------- 1 | #import "EXPUnsupportedObject.h" 2 | 3 | @implementation EXPUnsupportedObject 4 | 5 | @synthesize type=_type; 6 | 7 | - (instancetype)initWithType:(NSString *)type { 8 | self = [super init]; 9 | if(self) { 10 | self.type = type; 11 | } 12 | return self; 13 | } 14 | 15 | - (void)dealloc { 16 | self.type = nil; 17 | [super dealloc]; 18 | } 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Expecta.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | //! Project version number for Expecta. 4 | FOUNDATION_EXPORT double ExpectaVersionNumber; 5 | 6 | //! Project version string for Expecta. 7 | FOUNDATION_EXPORT const unsigned char ExpectaVersionString[]; 8 | 9 | #import 10 | #import 11 | #import 12 | 13 | // Enable shorthand by default 14 | #define expect(...) EXP_expect((__VA_ARGS__)) 15 | #define failure(...) EXP_failure((__VA_ARGS__)) -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/ExpectaObject.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #define EXPObjectify(value) _EXPObjectify(@encode(__typeof__((value))), (value)) 4 | #define EXP_expect(actual) _EXP_expect(self, __LINE__, __FILE__, ^id{ return EXPObjectify((actual)); }) 5 | #define EXPMatcherInterface(matcherName, matcherArguments) _EXPMatcherInterface(matcherName, matcherArguments) 6 | #define EXPMatcherImplementationBegin(matcherName, matcherArguments) _EXPMatcherImplementationBegin(matcherName, matcherArguments) 7 | #define EXPMatcherImplementationEnd _EXPMatcherImplementationEnd 8 | #define EXPMatcherAliasImplementation(newMatcherName, oldMatcherName, matcherArguments) _EXPMatcherAliasImplementation(newMatcherName, oldMatcherName, matcherArguments) 9 | 10 | #define EXP_failure(message) EXPFail(self, __LINE__, __FILE__, message) 11 | 12 | 13 | @interface Expecta : NSObject 14 | 15 | + (NSTimeInterval)asynchronousTestTimeout; 16 | + (void)setAsynchronousTestTimeout:(NSTimeInterval)timeout; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/ExpectaObject.m: -------------------------------------------------------------------------------- 1 | #import "ExpectaObject.h" 2 | 3 | @implementation Expecta 4 | 5 | static NSTimeInterval _asynchronousTestTimeout = 1.0; 6 | 7 | + (NSTimeInterval)asynchronousTestTimeout { 8 | return _asynchronousTestTimeout; 9 | } 10 | 11 | + (void)setAsynchronousTestTimeout:(NSTimeInterval)timeout { 12 | _asynchronousTestTimeout = timeout; 13 | } 14 | 15 | @end -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/ExpectaSupport.h: -------------------------------------------------------------------------------- 1 | #import "EXPExpect.h" 2 | #import "EXPBlockDefinedMatcher.h" 3 | 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | id _EXPObjectify(const char *type, ...); 9 | EXPExpect *_EXP_expect(id testCase, int lineNumber, const char *fileName, EXPIdBlock actualBlock); 10 | 11 | void EXPFail(id testCase, int lineNumber, const char *fileName, NSString *message); 12 | NSString *EXPDescribeObject(id obj); 13 | 14 | void EXP_prerequisite(EXPBoolBlock block); 15 | void EXP_match(EXPBoolBlock block); 16 | void EXP_failureMessageForTo(EXPStringBlock block); 17 | void EXP_failureMessageForNotTo(EXPStringBlock block); 18 | 19 | #if __has_feature(objc_arc) 20 | #define _EXP_release(x) 21 | #define _EXP_autorelease(x) (x) 22 | 23 | #else 24 | #define _EXP_release(x) [x release] 25 | #define _EXP_autorelease(x) [x autorelease] 26 | #endif 27 | 28 | // workaround for the categories bug: http://developer.apple.com/library/mac/#qa/qa1490/_index.html 29 | #define EXPFixCategoriesBug(name) \ 30 | __attribute__((constructor)) static void EXPFixCategoriesBug##name() {} 31 | 32 | #define _EXPMatcherInterface(matcherName, matcherArguments) \ 33 | @interface EXPExpect (matcherName##Matcher) \ 34 | @property (nonatomic, readonly) void(^ matcherName) matcherArguments; \ 35 | @end 36 | 37 | #define _EXPMatcherImplementationBegin(matcherName, matcherArguments) \ 38 | EXPFixCategoriesBug(EXPMatcher##matcherName##Matcher); \ 39 | @implementation EXPExpect (matcherName##Matcher) \ 40 | @dynamic matcherName;\ 41 | - (void(^) matcherArguments) matcherName { \ 42 | EXPBlockDefinedMatcher *matcher = [[EXPBlockDefinedMatcher alloc] init]; \ 43 | [[[NSThread currentThread] threadDictionary] setObject:matcher forKey:@"EXP_currentMatcher"]; \ 44 | __block id actual = self.actual; \ 45 | __block void (^prerequisite)(EXPBoolBlock block) = ^(EXPBoolBlock block) { EXP_prerequisite(block); }; \ 46 | __block void (^match)(EXPBoolBlock block) = ^(EXPBoolBlock block) { EXP_match(block); }; \ 47 | __block void (^failureMessageForTo)(EXPStringBlock block) = ^(EXPStringBlock block) { EXP_failureMessageForTo(block); }; \ 48 | __block void (^failureMessageForNotTo)(EXPStringBlock block) = ^(EXPStringBlock block) { EXP_failureMessageForNotTo(block); }; \ 49 | prerequisite(nil); match(nil); failureMessageForTo(nil); failureMessageForNotTo(nil); \ 50 | void (^matcherBlock) matcherArguments = [^ matcherArguments { \ 51 | { 52 | 53 | #define _EXPMatcherImplementationEnd \ 54 | } \ 55 | [self applyMatcher:matcher to:&actual]; \ 56 | } copy]; \ 57 | _EXP_release(matcher); \ 58 | return _EXP_autorelease(matcherBlock); \ 59 | } \ 60 | @end 61 | 62 | #define _EXPMatcherAliasImplementation(newMatcherName, oldMatcherName, matcherArguments) \ 63 | EXPFixCategoriesBug(EXPMatcher##newMatcherName##Matcher); \ 64 | @implementation EXPExpect (newMatcherName##Matcher) \ 65 | @dynamic newMatcherName;\ 66 | - (void(^) matcherArguments) newMatcherName { \ 67 | return [self oldMatcherName]; \ 68 | }\ 69 | @end 70 | 71 | #ifdef __cplusplus 72 | } 73 | #endif 74 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatcherHelpers.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | BOOL EXPIsValuePointer(NSValue *value); 4 | BOOL EXPIsNumberFloat(NSNumber *number); 5 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatcherHelpers.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatcherHelpers.h" 2 | 3 | BOOL EXPIsValuePointer(NSValue *value) { 4 | return [value objCType][0] == @encode(void *)[0]; 5 | } 6 | 7 | BOOL EXPIsNumberFloat(NSNumber *number) { 8 | return strcmp([number objCType], @encode(float)) == 0; 9 | } 10 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beCloseTo.h: -------------------------------------------------------------------------------- 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))) 8 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beCloseTo.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+beCloseTo.h" 2 | #import "EXPMatcherHelpers.h" 3 | 4 | EXPMatcherImplementationBegin(_beCloseToWithin, (id expected, id within)) { 5 | prerequisite(^BOOL{ 6 | return [actual isKindOfClass:[NSNumber class]] && 7 | [expected isKindOfClass:[NSNumber class]] && 8 | ([within isKindOfClass:[NSNumber class]] || (within == nil)); 9 | }); 10 | 11 | match(^BOOL{ 12 | double actualValue = [actual doubleValue]; 13 | double expectedValue = [expected doubleValue]; 14 | 15 | if (within != nil) { 16 | double withinValue = [within doubleValue]; 17 | double lowerBound = expectedValue - withinValue; 18 | double upperBound = expectedValue + withinValue; 19 | return (actualValue >= lowerBound) && (actualValue <= upperBound); 20 | } else { 21 | double diff = fabs(actualValue - expectedValue); 22 | actualValue = fabs(actualValue); 23 | expectedValue = fabs(expectedValue); 24 | double largest = (expectedValue > actualValue) ? expectedValue : actualValue; 25 | return (diff <= largest * FLT_EPSILON); 26 | } 27 | }); 28 | 29 | failureMessageForTo(^NSString *{ 30 | if (within) { 31 | return [NSString stringWithFormat:@"expected %@ to be close to %@ within %@", 32 | EXPDescribeObject(actual), EXPDescribeObject(expected), EXPDescribeObject(within)]; 33 | } else { 34 | return [NSString stringWithFormat:@"expected %@ to be close to %@", 35 | EXPDescribeObject(actual), EXPDescribeObject(expected)]; 36 | } 37 | }); 38 | 39 | failureMessageForNotTo(^NSString *{ 40 | if (within) { 41 | return [NSString stringWithFormat:@"expected %@ not to be close to %@ within %@", 42 | EXPDescribeObject(actual), EXPDescribeObject(expected), EXPDescribeObject(within)]; 43 | } else { 44 | return [NSString stringWithFormat:@"expected %@ not to be close to %@", 45 | EXPDescribeObject(actual), EXPDescribeObject(expected)]; 46 | } 47 | }); 48 | } 49 | EXPMatcherImplementationEnd -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beFalsy.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(beFalsy, (void)); 4 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beFalsy.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+beFalsy.h" 2 | #import "EXPMatcherHelpers.h" 3 | 4 | EXPMatcherImplementationBegin(beFalsy, (void)) { 5 | match(^BOOL{ 6 | if([actual isKindOfClass:[NSNumber class]]) { 7 | return ![(NSNumber *)actual boolValue]; 8 | } else if([actual isKindOfClass:[NSValue class]]) { 9 | if(EXPIsValuePointer((NSValue *)actual)) { 10 | return ![(NSValue *)actual pointerValue]; 11 | } 12 | } 13 | return !actual; 14 | }); 15 | 16 | failureMessageForTo(^NSString *{ 17 | return [NSString stringWithFormat:@"expected: a falsy value, got: %@, which is truthy", EXPDescribeObject(actual)]; 18 | }); 19 | 20 | failureMessageForNotTo(^NSString *{ 21 | return [NSString stringWithFormat:@"expected: a non-falsy value, got: %@, which is falsy", EXPDescribeObject(actual)]; 22 | }); 23 | } 24 | EXPMatcherImplementationEnd 25 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beGreaterThan.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(_beGreaterThan, (id expected)); 4 | EXPMatcherInterface(beGreaterThan, (id expected)); 5 | 6 | #define beGreaterThan(expected) _beGreaterThan(EXPObjectify((expected))) 7 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beGreaterThan.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+beGreaterThan.h" 2 | #import "EXPMatcherHelpers.h" 3 | 4 | EXPMatcherImplementationBegin(_beGreaterThan, (id expected)) { 5 | match(^BOOL{ 6 | if ([actual respondsToSelector:@selector(compare:)]) { 7 | return [actual compare:expected] == NSOrderedDescending; 8 | } 9 | return NO; 10 | }); 11 | 12 | failureMessageForTo(^NSString *{ 13 | return [NSString stringWithFormat:@"expected: %@ to be greater than %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; 14 | }); 15 | 16 | failureMessageForNotTo(^NSString *{ 17 | return [NSString stringWithFormat:@"expected: %@ not to be greater than %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; 18 | }); 19 | } 20 | EXPMatcherImplementationEnd -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(_beGreaterThanOrEqualTo, (id expected)); 4 | EXPMatcherInterface(beGreaterThanOrEqualTo, (id expected)); 5 | 6 | #define beGreaterThanOrEqualTo(expected) _beGreaterThanOrEqualTo(EXPObjectify((expected))) 7 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+beGreaterThanOrEqualTo.h" 2 | #import "EXPMatcherHelpers.h" 3 | 4 | EXPMatcherImplementationBegin(_beGreaterThanOrEqualTo, (id expected)) { 5 | match(^BOOL{ 6 | if ([actual respondsToSelector:@selector(compare:)]) { 7 | return [actual compare:expected] != NSOrderedAscending; 8 | } 9 | return NO; 10 | }); 11 | 12 | failureMessageForTo(^NSString *{ 13 | return [NSString stringWithFormat:@"expected: %@ to be greater than or equal to %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; 14 | }); 15 | 16 | failureMessageForNotTo(^NSString *{ 17 | return [NSString stringWithFormat:@"expected: %@ not to be greater than or equal to %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; 18 | }); 19 | } 20 | EXPMatcherImplementationEnd -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beIdenticalTo.h: -------------------------------------------------------------------------------- 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(expected) _beIdenticalTo(expected) 10 | #endif 11 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beIdenticalTo.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+equal.h" 2 | #import "EXPMatcherHelpers.h" 3 | 4 | EXPMatcherImplementationBegin(_beIdenticalTo, (void *expected)) { 5 | match(^BOOL{ 6 | if(actual == expected) { 7 | return YES; 8 | } else if([actual isKindOfClass:[NSValue class]] && EXPIsValuePointer((NSValue *)actual)) { 9 | if([(NSValue *)actual pointerValue] == expected) { 10 | return YES; 11 | } 12 | } 13 | return NO; 14 | }); 15 | 16 | failureMessageForTo(^NSString *{ 17 | return [NSString stringWithFormat:@"expected: <%p>, got: <%p>", expected, actual]; 18 | }); 19 | 20 | failureMessageForNotTo(^NSString *{ 21 | return [NSString stringWithFormat:@"expected: not <%p>, got: <%p>", expected, actual]; 22 | }); 23 | } 24 | EXPMatcherImplementationEnd 25 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beInTheRangeOf.h: -------------------------------------------------------------------------------- 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))) 7 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beInTheRangeOf.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+beInTheRangeOf.h" 2 | #import "EXPMatcherHelpers.h" 3 | 4 | EXPMatcherImplementationBegin(_beInTheRangeOf, (id expectedLowerBound, id expectedUpperBound)) { 5 | match(^BOOL{ 6 | if ([actual respondsToSelector:@selector(compare:)]) { 7 | NSComparisonResult compareLowerBound = [expectedLowerBound compare: actual]; 8 | NSComparisonResult compareUpperBound = [expectedUpperBound compare: actual]; 9 | if (compareLowerBound == NSOrderedSame) { 10 | return YES; 11 | } 12 | if (compareUpperBound == NSOrderedSame) { 13 | return YES; 14 | } 15 | if ((compareLowerBound == NSOrderedAscending) && (compareUpperBound == NSOrderedDescending)) { 16 | return YES; 17 | } 18 | } 19 | return NO; 20 | }); 21 | 22 | failureMessageForTo(^NSString *{ 23 | return [NSString stringWithFormat:@"expected: %@ to be in the range [%@, %@] (inclusive)", EXPDescribeObject(actual), EXPDescribeObject(expectedLowerBound), EXPDescribeObject(expectedUpperBound)]; 24 | }); 25 | 26 | failureMessageForNotTo(^NSString *{ 27 | return [NSString stringWithFormat:@"expected: %@ not to be in the range [%@, %@] (inclusive)", EXPDescribeObject(actual), EXPDescribeObject(expectedLowerBound), EXPDescribeObject(expectedUpperBound)]; 28 | }); 29 | } 30 | EXPMatcherImplementationEnd -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beInstanceOf.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(beInstanceOf, (Class expected)); 4 | EXPMatcherInterface(beAnInstanceOf, (Class expected)); 5 | EXPMatcherInterface(beMemberOf, (Class expected)); 6 | EXPMatcherInterface(beAMemberOf, (Class expected)); 7 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beInstanceOf.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+beInstanceOf.h" 2 | 3 | EXPMatcherImplementationBegin(beInstanceOf, (Class expected)) { 4 | BOOL actualIsNil = (actual == nil); 5 | BOOL expectedIsNil = (expected == nil); 6 | 7 | prerequisite(^BOOL{ 8 | return !(actualIsNil || expectedIsNil); 9 | }); 10 | 11 | match(^BOOL{ 12 | return [actual isMemberOfClass:expected]; 13 | }); 14 | 15 | failureMessageForTo(^NSString *{ 16 | if(actualIsNil) return @"the actual value is nil/null"; 17 | if(expectedIsNil) return @"the expected value is nil/null"; 18 | return [NSString stringWithFormat:@"expected: an instance of %@, got: an instance of %@", [expected class], [actual class]]; 19 | }); 20 | 21 | failureMessageForNotTo(^NSString *{ 22 | if(actualIsNil) return @"the actual value is nil/null"; 23 | if(expectedIsNil) return @"the expected value is nil/null"; 24 | return [NSString stringWithFormat:@"expected: not an instance of %@, got: an instance of %@", [expected class], [actual class]]; 25 | }); 26 | } 27 | EXPMatcherImplementationEnd 28 | 29 | EXPMatcherAliasImplementation(beAnInstanceOf, beInstanceOf, (Class expected)); 30 | EXPMatcherAliasImplementation(beMemberOf, beInstanceOf, (Class expected)); 31 | EXPMatcherAliasImplementation(beAMemberOf, beInstanceOf, (Class expected)); 32 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beKindOf.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(beKindOf, (Class expected)); 4 | EXPMatcherInterface(beAKindOf, (Class expected)); 5 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beKindOf.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+beKindOf.h" 2 | 3 | EXPMatcherImplementationBegin(beKindOf, (Class expected)) { 4 | BOOL actualIsNil = (actual == nil); 5 | BOOL expectedIsNil = (expected == nil); 6 | 7 | prerequisite(^BOOL{ 8 | return !(actualIsNil || expectedIsNil); 9 | }); 10 | 11 | match(^BOOL{ 12 | return [actual isKindOfClass:expected]; 13 | }); 14 | 15 | failureMessageForTo(^NSString *{ 16 | if(actualIsNil) return @"the actual value is nil/null"; 17 | if(expectedIsNil) return @"the expected value is nil/null"; 18 | return [NSString stringWithFormat:@"expected: a kind of %@, got: an instance of %@, which is not a kind of %@", [expected class], [actual class], [expected class]]; 19 | }); 20 | 21 | failureMessageForNotTo(^NSString *{ 22 | if(actualIsNil) return @"the actual value is nil/null"; 23 | if(expectedIsNil) return @"the expected value is nil/null"; 24 | return [NSString stringWithFormat:@"expected: not a kind of %@, got: an instance of %@, which is a kind of %@", [expected class], [actual class], [expected class]]; 25 | }); 26 | } 27 | EXPMatcherImplementationEnd 28 | 29 | EXPMatcherAliasImplementation(beAKindOf, beKindOf, (Class expected)); 30 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beLessThan.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(_beLessThan, (id expected)); 4 | EXPMatcherInterface(beLessThan, (id expected)); 5 | 6 | #define beLessThan(expected) _beLessThan(EXPObjectify((expected))) 7 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beLessThan.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+beLessThan.h" 2 | #import "EXPMatcherHelpers.h" 3 | 4 | EXPMatcherImplementationBegin(_beLessThan, (id expected)) { 5 | match(^BOOL{ 6 | if ([actual respondsToSelector:@selector(compare:)]) { 7 | return [actual compare:expected] == NSOrderedAscending; 8 | } 9 | return NO; 10 | }); 11 | 12 | failureMessageForTo(^NSString *{ 13 | return [NSString stringWithFormat:@"expected: %@ to be less than %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; 14 | }); 15 | 16 | failureMessageForNotTo(^NSString *{ 17 | return [NSString stringWithFormat:@"expected: %@ not to be less than %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; 18 | }); 19 | } 20 | EXPMatcherImplementationEnd -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(_beLessThanOrEqualTo, (id expected)); 4 | EXPMatcherInterface(beLessThanOrEqualTo, (id expected)); 5 | 6 | #define beLessThanOrEqualTo(expected) _beLessThanOrEqualTo(EXPObjectify((expected))) 7 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+beLessThanOrEqualTo.h" 2 | #import "EXPMatcherHelpers.h" 3 | 4 | EXPMatcherImplementationBegin(_beLessThanOrEqualTo, (id expected)) { 5 | match(^BOOL{ 6 | if ([actual respondsToSelector:@selector(compare:)]) { 7 | return [actual compare:expected] != NSOrderedDescending; 8 | } 9 | return NO; 10 | }); 11 | 12 | failureMessageForTo(^NSString *{ 13 | return [NSString stringWithFormat:@"expected: %@ to be less than or equal to %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; 14 | }); 15 | 16 | failureMessageForNotTo(^NSString *{ 17 | return [NSString stringWithFormat:@"expected: %@ not to be less than or equal to %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; 18 | }); 19 | } 20 | EXPMatcherImplementationEnd -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beNil.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(beNil, (void)); 4 | EXPMatcherInterface(beNull, (void)); 5 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beNil.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+beNil.h" 2 | 3 | EXPMatcherImplementationBegin(beNil, (void)) { 4 | match(^BOOL{ 5 | return actual == nil; 6 | }); 7 | 8 | failureMessageForTo(^NSString *{ 9 | return [NSString stringWithFormat:@"expected: nil/null, got: %@", EXPDescribeObject(actual)]; 10 | }); 11 | 12 | failureMessageForNotTo(^NSString *{ 13 | return [NSString stringWithFormat:@"expected: not nil/null, got: %@", EXPDescribeObject(actual)]; 14 | }); 15 | } 16 | EXPMatcherImplementationEnd 17 | 18 | EXPMatcherAliasImplementation(beNull, beNil, (void)); 19 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beSubclassOf.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(beSubclassOf, (Class expected)); 4 | EXPMatcherInterface(beASubclassOf, (Class expected)); 5 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beSubclassOf.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+beSubclassOf.h" 2 | #import "NSValue+Expecta.h" 3 | #import 4 | 5 | EXPMatcherImplementationBegin(beSubclassOf, (Class expected)) { 6 | __block BOOL actualIsClass = YES; 7 | 8 | prerequisite(^BOOL { 9 | actualIsClass = class_isMetaClass(object_getClass(actual)); 10 | return actualIsClass; 11 | }); 12 | 13 | match(^BOOL{ 14 | return [actual isSubclassOfClass:expected]; 15 | }); 16 | 17 | failureMessageForTo(^NSString *{ 18 | if(!actualIsClass) return @"the actual value is not a Class"; 19 | return [NSString stringWithFormat:@"expected: a subclass of %@, got: a class %@, which is not a subclass of %@", [expected class], actual, [expected class]]; 20 | }); 21 | 22 | failureMessageForNotTo(^NSString *{ 23 | if(!actualIsClass) return @"the actual value is not a Class"; 24 | return [NSString stringWithFormat:@"expected: not a subclass of %@, got: a class %@, which is a subclass of %@", [expected class], actual, [expected class]]; 25 | }); 26 | } 27 | EXPMatcherImplementationEnd 28 | 29 | EXPMatcherAliasImplementation(beASubclassOf, beSubclassOf, (Class expected)); 30 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beSupersetOf.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(beSupersetOf, (id subset)); 4 | 5 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beSupersetOf.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+contain.h" 2 | 3 | EXPMatcherImplementationBegin(beSupersetOf, (id subset)) { 4 | BOOL actualIsCompatible = [actual isKindOfClass:[NSDictionary class]] || [actual respondsToSelector:@selector(containsObject:)]; 5 | BOOL subsetIsNil = (subset == nil); 6 | 7 | // For some instances the isKindOfClass: method returns false, even though 8 | // they are both actually dictionaries. e.g. Comparing a NSCFDictionary and a 9 | // NSDictionary. 10 | // Or in cases when you compare NSMutableArray (which implementation is __NSArrayM:NSMutableArray:NSArray) 11 | // and NSArray (which implementation is __NSArrayI:NSArray) 12 | BOOL bothAreIdenticalCollectionClasses = ([actual isKindOfClass:[NSDictionary class]] && [subset isKindOfClass:[NSDictionary class]]) || 13 | ([actual isKindOfClass:[NSArray class]] && [subset isKindOfClass:[NSArray class]]) || 14 | ([actual isKindOfClass:[NSSet class]] && [subset isKindOfClass:[NSSet class]]) || 15 | ([actual isKindOfClass:[NSOrderedSet class]] && [subset isKindOfClass:[NSOrderedSet class]]); 16 | 17 | BOOL classMatches = bothAreIdenticalCollectionClasses || [subset isKindOfClass:[actual class]]; 18 | 19 | prerequisite(^BOOL{ 20 | return actualIsCompatible && !subsetIsNil && classMatches; 21 | }); 22 | 23 | match(^BOOL{ 24 | if(!actualIsCompatible) return NO; 25 | 26 | if([actual isKindOfClass:[NSDictionary class]]) { 27 | for (id key in subset) { 28 | id actualValue = [actual valueForKey:key]; 29 | id subsetValue = [subset valueForKey:key]; 30 | 31 | if (![subsetValue isEqual:actualValue]) return NO; 32 | } 33 | } else { 34 | for (id object in subset) { 35 | if (![actual containsObject:object]) return NO; 36 | } 37 | } 38 | 39 | return YES; 40 | }); 41 | 42 | failureMessageForTo(^NSString *{ 43 | if(!actualIsCompatible) return [NSString stringWithFormat:@"%@ is not an instance of NSDictionary and does not implement -containsObject:", EXPDescribeObject(actual)]; 44 | 45 | if(subsetIsNil) return @"the expected value is nil/null"; 46 | 47 | if(!classMatches) return [NSString stringWithFormat:@"%@ does not match the class of %@", EXPDescribeObject(subset), EXPDescribeObject(actual)]; 48 | 49 | return [NSString stringWithFormat:@"expected %@ to be a superset of %@", EXPDescribeObject(actual), EXPDescribeObject(subset)]; 50 | }); 51 | 52 | failureMessageForNotTo(^NSString *{ 53 | if(!actualIsCompatible) return [NSString stringWithFormat:@"%@ is not an instance of NSDictionary and does not implement -containsObject:", EXPDescribeObject(actual)]; 54 | 55 | if(subsetIsNil) return @"the expected value is nil/null"; 56 | 57 | if(!classMatches) return [NSString stringWithFormat:@"%@ does not match the class of %@", EXPDescribeObject(subset), EXPDescribeObject(actual)]; 58 | 59 | return [NSString stringWithFormat:@"expected %@ not to be a superset of %@", EXPDescribeObject(actual), EXPDescribeObject(subset)]; 60 | }); 61 | } 62 | EXPMatcherImplementationEnd 63 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beTruthy.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(beTruthy, (void)); 4 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beTruthy.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+beTruthy.h" 2 | #import "EXPMatcherHelpers.h" 3 | 4 | EXPMatcherImplementationBegin(beTruthy, (void)) { 5 | match(^BOOL{ 6 | if([actual isKindOfClass:[NSNumber class]]) { 7 | return !![(NSNumber *)actual boolValue]; 8 | } else if([actual isKindOfClass:[NSValue class]]) { 9 | if(EXPIsValuePointer((NSValue *)actual)) { 10 | return !![(NSValue *)actual pointerValue]; 11 | } 12 | } 13 | return !!actual; 14 | }); 15 | 16 | failureMessageForTo(^NSString *{ 17 | return [NSString stringWithFormat:@"expected: a truthy value, got: %@, which is falsy", EXPDescribeObject(actual)]; 18 | }); 19 | 20 | failureMessageForNotTo(^NSString *{ 21 | return [NSString stringWithFormat:@"expected: a non-truthy value, got: %@, which is truthy", EXPDescribeObject(actual)]; 22 | }); 23 | } 24 | EXPMatcherImplementationEnd 25 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beginWith.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(beginWith, (id expected)); 4 | EXPMatcherInterface(startWith, (id expected)); 5 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beginWith.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+beginWith.h" 2 | 3 | EXPMatcherImplementationBegin(beginWith, (id expected)) { 4 | BOOL actualIsNil = (actual == nil); 5 | BOOL expectedIsNil = (expected == nil); 6 | //This condition allows the comparison of an immutable string or ordered collection to the mutable type of the same 7 | BOOL actualAndExpectedAreCompatible = (([actual isKindOfClass:[NSString class]] && [expected isKindOfClass:[NSString class]]) 8 | || ([actual isKindOfClass:[NSArray class]] && [expected isKindOfClass:[NSArray class]]) 9 | || ([actual isKindOfClass:[NSOrderedSet class]] && [expected isKindOfClass:[NSOrderedSet class]])); 10 | 11 | prerequisite(^BOOL { 12 | return actualAndExpectedAreCompatible; 13 | }); 14 | 15 | match(^BOOL { 16 | if ([actual isKindOfClass:[NSString class]]) { 17 | return [actual hasPrefix:expected]; 18 | } else if ([actual isKindOfClass:[NSArray class]]) { 19 | if ([expected count] > [actual count] || [expected count] == 0) { 20 | return NO; 21 | } 22 | NSArray *subArray = [actual subarrayWithRange:NSMakeRange(0, [expected count])]; 23 | return [subArray isEqualToArray:expected]; 24 | } else { 25 | if ([expected count] > [actual count] || [expected count] == 0) { 26 | return NO; 27 | } 28 | 29 | NSOrderedSet *subset = [NSOrderedSet orderedSetWithOrderedSet:actual range:NSMakeRange(0, [expected count]) copyItems:NO]; 30 | return [subset isEqualToOrderedSet:expected]; 31 | } 32 | }); 33 | 34 | failureMessageForTo(^NSString *{ 35 | if (actualIsNil) return @"the object is nil/null"; 36 | if (expectedIsNil) return @"the expected value is nil/null"; 37 | if (!actualAndExpectedAreCompatible) return [NSString stringWithFormat:@"%@ and %@ are not instances of one of %@, %@, or %@", EXPDescribeObject(actual), EXPDescribeObject(expected), [NSString class], [NSArray class], [NSOrderedSet class]]; 38 | return [NSString stringWithFormat:@"expected: %@ to begin with %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; 39 | }); 40 | 41 | failureMessageForNotTo(^NSString *{ 42 | if (actualIsNil) return @"the object is nil/null"; 43 | if (expectedIsNil) return @"the expected value is nil/null"; 44 | if (!actualAndExpectedAreCompatible) return [NSString stringWithFormat:@"%@ and %@ are not instances of one of %@, %@, or %@", EXPDescribeObject(actual), EXPDescribeObject(expected), [NSString class], [NSArray class], [NSOrderedSet class]]; 45 | 46 | return [NSString stringWithFormat:@"expected: %@ not to begin with %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; 47 | }); 48 | } 49 | EXPMatcherImplementationEnd 50 | 51 | EXPMatcherAliasImplementation(startWith, beginWith, (id expected)); 52 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+conformTo.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(conformTo, (Protocol *expected)); 4 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+conformTo.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+conformTo.h" 2 | #import "NSValue+Expecta.h" 3 | #import 4 | 5 | EXPMatcherImplementationBegin(conformTo, (Protocol *expected)) { 6 | BOOL actualIsNil = (actual == nil); 7 | BOOL expectedIsNil = (expected == nil); 8 | 9 | prerequisite(^BOOL{ 10 | return !(actualIsNil || expectedIsNil); 11 | }); 12 | 13 | match(^BOOL{ 14 | return [actual conformsToProtocol:expected]; 15 | }); 16 | 17 | failureMessageForTo(^NSString *{ 18 | if(actualIsNil) return @"the object is nil/null"; 19 | if(expectedIsNil) return @"the protocol is nil/null"; 20 | 21 | NSString *name = NSStringFromProtocol(expected); 22 | return [NSString stringWithFormat:@"expected: %@ to conform to %@", actual, name]; 23 | }); 24 | 25 | failureMessageForNotTo(^NSString *{ 26 | if(actualIsNil) return @"the object is nil/null"; 27 | if(expectedIsNil) return @"the protocol is nil/null"; 28 | 29 | NSString *name = NSStringFromProtocol(expected); 30 | return [NSString stringWithFormat:@"expected: %@ not to conform to %@", actual, name]; 31 | }); 32 | } 33 | EXPMatcherImplementationEnd 34 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+contain.h: -------------------------------------------------------------------------------- 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))) 6 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+contain.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+contain.h" 2 | 3 | EXPMatcherImplementationBegin(_contain, (id expected)) { 4 | BOOL actualIsCompatible = [actual isKindOfClass:[NSString class]] || [actual conformsToProtocol:@protocol(NSFastEnumeration)]; 5 | BOOL expectedIsNil = (expected == nil); 6 | 7 | prerequisite(^BOOL{ 8 | return actualIsCompatible && !expectedIsNil; 9 | }); 10 | 11 | match(^BOOL{ 12 | if(actualIsCompatible) { 13 | if([actual isKindOfClass:[NSString class]]) { 14 | return [(NSString *)actual rangeOfString:[expected description]].location != NSNotFound; 15 | } else { 16 | for (id object in actual) { 17 | if ([object isEqual:expected]) { 18 | return YES; 19 | } 20 | } 21 | } 22 | } 23 | return NO; 24 | }); 25 | 26 | failureMessageForTo(^NSString *{ 27 | if(!actualIsCompatible) return [NSString stringWithFormat:@"%@ is not an instance of NSString or NSFastEnumeration", EXPDescribeObject(actual)]; 28 | if(expectedIsNil) return @"the expected value is nil/null"; 29 | return [NSString stringWithFormat:@"expected %@ to contain %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; 30 | }); 31 | 32 | failureMessageForNotTo(^NSString *{ 33 | if(!actualIsCompatible) return [NSString stringWithFormat:@"%@ is not an instance of NSString or NSFastEnumeration", EXPDescribeObject(actual)]; 34 | if(expectedIsNil) return @"the expected value is nil/null"; 35 | return [NSString stringWithFormat:@"expected %@ not to contain %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; 36 | }); 37 | } 38 | EXPMatcherImplementationEnd 39 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+endWith.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(endWith, (id expected)); 4 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+endWith.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+endWith.h" 2 | 3 | EXPMatcherImplementationBegin(endWith, (id expected)) { 4 | BOOL actualIsNil = (actual == nil); 5 | BOOL expectedIsNil = (expected == nil); 6 | //This condition allows the comparison of an immutable string or ordered collection to the mutable type of the same 7 | BOOL actualAndExpectedAreCompatible = (([actual isKindOfClass:[NSString class]] && [expected isKindOfClass:[NSString class]]) 8 | || ([actual isKindOfClass:[NSArray class]] && [expected isKindOfClass:[NSArray class]]) 9 | || ([actual isKindOfClass:[NSOrderedSet class]] && [expected isKindOfClass:[NSOrderedSet class]])); 10 | 11 | prerequisite(^BOOL { 12 | return actualAndExpectedAreCompatible; 13 | }); 14 | 15 | match(^BOOL { 16 | if ([actual isKindOfClass:[NSString class]]) { 17 | return [actual hasSuffix:expected]; 18 | } else if ([actual isKindOfClass:[NSArray class]]) { 19 | if ([expected count] > [actual count] || [expected count] == 0) { 20 | return NO; 21 | } 22 | NSArray *subArray = [actual subarrayWithRange:NSMakeRange([actual count] - [expected count], [expected count])]; 23 | return [subArray isEqualToArray:expected]; 24 | } else { 25 | if ([expected count] > [actual count] || [expected count] == 0) { 26 | return NO; 27 | } 28 | 29 | NSOrderedSet *subset = [NSOrderedSet orderedSetWithOrderedSet:actual range:NSMakeRange([actual count] - [expected count], [expected count]) copyItems:NO]; 30 | return [subset isEqualToOrderedSet:expected]; 31 | } 32 | }); 33 | 34 | failureMessageForTo(^NSString *{ 35 | if (actualIsNil) return @"the object is nil/null"; 36 | if (expectedIsNil) return @"the expected value is nil/null"; 37 | if (!actualAndExpectedAreCompatible) return [NSString stringWithFormat:@"%@ and %@ are not instances of one of %@, %@, or %@", EXPDescribeObject(actual), EXPDescribeObject(expected), [NSString class], [NSArray class], [NSOrderedSet class]]; 38 | return [NSString stringWithFormat:@"expected: %@ to end with %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; 39 | }); 40 | 41 | failureMessageForNotTo(^NSString *{ 42 | if (actualIsNil) return @"the object is nil/null"; 43 | if (expectedIsNil) return @"the expected value is nil/null"; 44 | if (!actualAndExpectedAreCompatible) return [NSString stringWithFormat:@"%@ and %@ are not instances of one of %@, %@, or %@", EXPDescribeObject(actual), EXPDescribeObject(expected), [NSString class], [NSArray class], [NSOrderedSet class]]; 45 | 46 | return [NSString stringWithFormat:@"expected: %@ not to end with %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; 47 | }); 48 | } 49 | EXPMatcherImplementationEnd 50 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+equal.h: -------------------------------------------------------------------------------- 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__))) 6 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+equal.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+equal.h" 2 | #import "EXPMatcherHelpers.h" 3 | 4 | EXPMatcherImplementationBegin(_equal, (id expected)) { 5 | match(^BOOL{ 6 | if((actual == expected) || [actual isEqual:expected]) { 7 | return YES; 8 | } else if([actual isKindOfClass:[NSNumber class]] && [expected isKindOfClass:[NSNumber class]]) { 9 | if([actual isKindOfClass:[NSDecimalNumber class]] || [expected isKindOfClass:[NSDecimalNumber class]]) { 10 | NSDecimalNumber *actualDecimalNumber = [NSDecimalNumber decimalNumberWithDecimal:[(NSNumber *) actual decimalValue]]; 11 | NSDecimalNumber *expectedDecimalNumber = [NSDecimalNumber decimalNumberWithDecimal:[(NSNumber *) expected decimalValue]]; 12 | return [actualDecimalNumber isEqualToNumber:expectedDecimalNumber]; 13 | } 14 | else { 15 | if(EXPIsNumberFloat((NSNumber *)actual) || EXPIsNumberFloat((NSNumber *)expected)) { 16 | return [(NSNumber *)actual floatValue] == [(NSNumber *)expected floatValue]; 17 | } 18 | } 19 | } 20 | return NO; 21 | }); 22 | 23 | failureMessageForTo(^NSString *{ 24 | return [NSString stringWithFormat:@"expected: %@, got: %@", EXPDescribeObject(expected), EXPDescribeObject(actual)]; 25 | }); 26 | 27 | failureMessageForNotTo(^NSString *{ 28 | return [NSString stringWithFormat:@"expected: not %@, got: %@", EXPDescribeObject(expected), EXPDescribeObject(actual)]; 29 | }); 30 | } 31 | EXPMatcherImplementationEnd 32 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+haveCountOf.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(haveCountOf, (NSUInteger expected)); 4 | EXPMatcherInterface(haveCount, (NSUInteger expected)); 5 | EXPMatcherInterface(haveACountOf, (NSUInteger expected)); 6 | EXPMatcherInterface(haveLength, (NSUInteger expected)); 7 | EXPMatcherInterface(haveLengthOf, (NSUInteger expected)); 8 | EXPMatcherInterface(haveALengthOf, (NSUInteger expected)); 9 | 10 | #define beEmpty() haveCountOf(0) 11 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+haveCountOf.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+haveCountOf.h" 2 | 3 | EXPMatcherImplementationBegin(haveCountOf, (NSUInteger expected)) { 4 | BOOL actualIsStringy = [actual isKindOfClass:[NSString class]] || [actual isKindOfClass:[NSAttributedString class]]; 5 | BOOL actualIsCompatible = actualIsStringy || [actual respondsToSelector:@selector(count)]; 6 | 7 | prerequisite(^BOOL{ 8 | return actualIsCompatible; 9 | }); 10 | 11 | NSUInteger (^count)(id) = ^(id actual) { 12 | if(actualIsStringy) { 13 | return [actual length]; 14 | } else { 15 | return [actual count]; 16 | } 17 | }; 18 | 19 | match(^BOOL{ 20 | if(actualIsCompatible) { 21 | return count(actual) == expected; 22 | } 23 | return NO; 24 | }); 25 | 26 | failureMessageForTo(^NSString *{ 27 | if(!actualIsCompatible) return [NSString stringWithFormat:@"%@ is not an instance of NSString, NSAttributedString, NSArray, NSSet, NSOrderedSet, or NSDictionary", EXPDescribeObject(actual)]; 28 | return [NSString stringWithFormat:@"expected %@ to have a count of %zi but got %zi", EXPDescribeObject(actual), expected, count(actual)]; 29 | }); 30 | 31 | failureMessageForNotTo(^NSString *{ 32 | if(!actualIsCompatible) return [NSString stringWithFormat:@"%@ is not an instance of NSString, NSAttributedString, NSArray, NSSet, NSOrderedSet, or NSDictionary", EXPDescribeObject(actual)]; 33 | return [NSString stringWithFormat:@"expected %@ not to have a count of %zi", EXPDescribeObject(actual), expected]; 34 | }); 35 | } 36 | EXPMatcherImplementationEnd 37 | 38 | EXPMatcherAliasImplementation(haveCount, haveCountOf, (NSUInteger expected)); 39 | EXPMatcherAliasImplementation(haveACountOf, haveCountOf, (NSUInteger expected)); 40 | EXPMatcherAliasImplementation(haveLength, haveCountOf, (NSUInteger expected)); 41 | EXPMatcherAliasImplementation(haveLengthOf, haveCountOf, (NSUInteger expected)); 42 | EXPMatcherAliasImplementation(haveALengthOf, haveCountOf, (NSUInteger expected)); 43 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+match.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(match, (NSString *expected)); 4 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+match.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+match.h" 2 | #import "EXPMatcherHelpers.h" 3 | 4 | EXPMatcherImplementationBegin(match, (NSString *expected)) { 5 | BOOL actualIsNil = (actual == nil); 6 | BOOL expectedIsNil = (expected == nil); 7 | 8 | __block NSRegularExpression *regex = nil; 9 | __block NSError *regexError = nil; 10 | 11 | prerequisite (^BOOL { 12 | BOOL nilInput = (actualIsNil || expectedIsNil); 13 | if (!nilInput) { 14 | regex = [NSRegularExpression regularExpressionWithPattern:expected options:0 error:®exError]; 15 | } 16 | return !nilInput && regex; 17 | }); 18 | 19 | match(^BOOL { 20 | NSRange range = [regex rangeOfFirstMatchInString:actual options:0 range:NSMakeRange(0, [actual length])]; 21 | return !NSEqualRanges(range, NSMakeRange(NSNotFound, 0)); 22 | }); 23 | 24 | failureMessageForTo(^NSString *{ 25 | if (actualIsNil) return @"the object is nil/null"; 26 | if (expectedIsNil) return @"the expression is nil/null"; 27 | if (regexError) return [NSString stringWithFormat:@"unable to create regular expression from given parameter: %@", [regexError localizedDescription]]; 28 | return [NSString stringWithFormat:@"expected: %@ to match to %@", EXPDescribeObject(actual), expected]; 29 | }); 30 | 31 | failureMessageForNotTo(^NSString *{ 32 | if (actualIsNil) return @"the object is nil/null"; 33 | if (expectedIsNil) return @"the expression is nil/null"; 34 | if (regexError) return [NSString stringWithFormat:@"unable to create regular expression from given parameter: %@", [regexError localizedDescription]]; 35 | return [NSString stringWithFormat:@"expected: %@ not to match to %@", EXPDescribeObject(actual), expected]; 36 | }); 37 | } 38 | EXPMatcherImplementationEnd 39 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+postNotification.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(postNotification, (id expectedNotification)); 4 | EXPMatcherInterface(notify, (id expectedNotification)); 5 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+postNotification.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+postNotification.h" 2 | 3 | @implementation NSNotification (EXPEquality) 4 | 5 | - (BOOL)exp_isFunctionallyEqualTo:(NSNotification *)otherNotification 6 | { 7 | if (![otherNotification isKindOfClass:[NSNotification class]]) return NO; 8 | 9 | BOOL namesMatch = [otherNotification.name isEqualToString:self.name]; 10 | 11 | BOOL objectsMatch = YES; 12 | if (otherNotification.object || self.object) { 13 | objectsMatch = [otherNotification.object isEqual:self.object]; 14 | } 15 | 16 | BOOL userInfoMatches = YES; 17 | if (otherNotification.userInfo || self.userInfo) { 18 | userInfoMatches = [otherNotification.userInfo isEqual:self.userInfo]; 19 | } 20 | 21 | return (namesMatch && objectsMatch && userInfoMatches); 22 | } 23 | 24 | @end 25 | 26 | EXPMatcherImplementationBegin(postNotification, (id expected)){ 27 | BOOL actualIsNil = (actual == nil); 28 | BOOL expectedIsNil = (expected == nil); 29 | BOOL isNotification = [expected isKindOfClass:[NSNotification class]]; 30 | BOOL isName = [expected isKindOfClass:[NSString class]]; 31 | 32 | __block NSString *expectedName; 33 | __block BOOL expectedNotificationOccurred = NO; 34 | __block id observer; 35 | 36 | prerequisite(^BOOL{ 37 | expectedNotificationOccurred = NO; 38 | if (actualIsNil || expectedIsNil) return NO; 39 | if (isNotification) { 40 | expectedName = [expected name]; 41 | }else if(isName) { 42 | expectedName = expected; 43 | }else{ 44 | return NO; 45 | } 46 | 47 | observer = [[NSNotificationCenter defaultCenter] addObserverForName:expectedName object:nil queue:nil usingBlock:^(NSNotification *note){ 48 | if (isNotification) { 49 | expectedNotificationOccurred |= [expected exp_isFunctionallyEqualTo:note]; 50 | }else{ 51 | expectedNotificationOccurred = YES; 52 | } 53 | }]; 54 | ((EXPBasicBlock)actual)(); 55 | return YES; 56 | }); 57 | 58 | match(^BOOL{ 59 | if(expectedNotificationOccurred) { 60 | [[NSNotificationCenter defaultCenter] removeObserver:observer]; 61 | } 62 | return expectedNotificationOccurred; 63 | }); 64 | 65 | failureMessageForTo(^NSString *{ 66 | if (observer) { 67 | [[NSNotificationCenter defaultCenter] removeObserver:observer]; 68 | } 69 | if(actualIsNil) return @"the actual value is nil/null"; 70 | if(expectedIsNil) return @"the expected value is nil/null"; 71 | if(!(isNotification || isName)) return @"the actual value is not a notification or string"; 72 | return [NSString stringWithFormat:@"expected: %@, got: none",expectedName]; 73 | }); 74 | 75 | failureMessageForNotTo(^NSString *{ 76 | if (observer) { 77 | [[NSNotificationCenter defaultCenter] removeObserver:observer]; 78 | } 79 | if(actualIsNil) return @"the actual value is nil/null"; 80 | if(expectedIsNil) return @"the expected value is nil/null"; 81 | if(!(isNotification || isName)) return @"the actual value is not a notification or string"; 82 | return [NSString stringWithFormat:@"expected: none, got: %@", expectedName]; 83 | }); 84 | } 85 | 86 | EXPMatcherImplementationEnd 87 | 88 | EXPMatcherAliasImplementation(notify, postNotification, (id expectedNotification)) 89 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+raise.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(raise, (NSString *expectedExceptionName)); 4 | #define raiseAny() raise(nil) 5 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+raise.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+raise.h" 2 | #import "EXPDefines.h" 3 | 4 | EXPMatcherImplementationBegin(raise, (NSString *expectedExceptionName)) { 5 | __block NSException *exceptionCaught = nil; 6 | 7 | match(^BOOL{ 8 | BOOL expectedExceptionCaught = NO; 9 | @try { 10 | ((EXPBasicBlock)actual)(); 11 | } @catch(NSException *e) { 12 | exceptionCaught = e; 13 | expectedExceptionCaught = (expectedExceptionName == nil) || [[exceptionCaught name] isEqualToString:expectedExceptionName]; 14 | } 15 | return expectedExceptionCaught; 16 | }); 17 | 18 | failureMessageForTo(^NSString *{ 19 | return [NSString stringWithFormat:@"expected: %@, got: %@", 20 | expectedExceptionName ? expectedExceptionName : @"any exception", 21 | exceptionCaught ? [exceptionCaught name] : @"no exception"]; 22 | }); 23 | 24 | failureMessageForNotTo(^NSString *{ 25 | return [NSString stringWithFormat:@"expected: %@, got: %@", 26 | expectedExceptionName ? [NSString stringWithFormat:@"not %@", expectedExceptionName] : @"no exception", 27 | exceptionCaught ? [exceptionCaught name] : @"no exception"]; 28 | }); 29 | } 30 | EXPMatcherImplementationEnd 31 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+raiseWithReason.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(raiseWithReason, (NSString *expectedExceptionName, NSString *expectedReason)); 4 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+raiseWithReason.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+raiseWithReason.h" 2 | #import "EXPDefines.h" 3 | 4 | EXPMatcherImplementationBegin(raiseWithReason, (NSString *expectedExceptionName, NSString *expectedReason)) { 5 | __block NSException *exceptionCaught = nil; 6 | 7 | match(^BOOL{ 8 | BOOL expectedExceptionCaught = NO; 9 | @try { 10 | ((EXPBasicBlock)actual)(); 11 | } @catch(NSException *e) { 12 | exceptionCaught = e; 13 | expectedExceptionCaught = (((expectedExceptionName == nil) || [[exceptionCaught name] isEqualToString:expectedExceptionName]) && 14 | ((expectedReason == nil) || ([[exceptionCaught reason] isEqualToString:expectedReason]))); 15 | } 16 | return expectedExceptionCaught; 17 | }); 18 | 19 | failureMessageForTo(^NSString *{ 20 | return [NSString stringWithFormat:@"expected: %@ (%@), got: %@ (%@)", 21 | expectedExceptionName ?: @"any exception", 22 | expectedReason ?: @"any reason", 23 | exceptionCaught ? [exceptionCaught name] : @"no exception", 24 | exceptionCaught ? [exceptionCaught reason] : @""]; 25 | }); 26 | 27 | failureMessageForNotTo(^NSString *{ 28 | return [NSString stringWithFormat:@"expected: %@ (%@), got: %@ (%@)", 29 | expectedExceptionName ? [NSString stringWithFormat:@"not %@", expectedExceptionName] : @"no exception", 30 | expectedReason ? [NSString stringWithFormat:@"not '%@'", expectedReason] : @"no reason", 31 | exceptionCaught ? [exceptionCaught name] : @"no exception", 32 | exceptionCaught ? [exceptionCaught reason] : @"no reason"]; 33 | }); 34 | } 35 | EXPMatcherImplementationEnd 36 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+respondTo.h: -------------------------------------------------------------------------------- 1 | #import "Expecta.h" 2 | 3 | EXPMatcherInterface(respondTo, (SEL expected)); 4 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+respondTo.m: -------------------------------------------------------------------------------- 1 | #import "EXPMatchers+respondTo.h" 2 | #import "EXPMatcherHelpers.h" 3 | 4 | EXPMatcherImplementationBegin(respondTo, (SEL expected)) { 5 | BOOL actualIsNil = (actual == nil); 6 | BOOL expectedIsNull = (expected == NULL); 7 | 8 | prerequisite (^BOOL { 9 | return !(actualIsNil || expectedIsNull); 10 | }); 11 | 12 | match(^BOOL { 13 | return [actual respondsToSelector:expected]; 14 | }); 15 | 16 | failureMessageForTo(^NSString *{ 17 | if (actualIsNil) return @"the object is nil/null"; 18 | if (expectedIsNull) return @"the selector is null"; 19 | return [NSString stringWithFormat:@"expected: %@ to respond to %@", EXPDescribeObject(actual), NSStringFromSelector(expected)]; 20 | }); 21 | 22 | failureMessageForNotTo(^NSString *{ 23 | if (actualIsNil) return @"the object is nil/null"; 24 | if (expectedIsNull) return @"the selector is null"; 25 | return [NSString stringWithFormat:@"expected: %@ not to respond to %@", EXPDescribeObject(actual), NSStringFromSelector(expected)]; 26 | }); 27 | } 28 | EXPMatcherImplementationEnd 29 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/Matchers/EXPMatchers.h: -------------------------------------------------------------------------------- 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+postNotification.h" 23 | #import "EXPMatchers+beginWith.h" 24 | #import "EXPMatchers+endWith.h" 25 | #import "EXPMatchers+match.h" 26 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/NSObject+Expecta.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface NSObject (Expecta) 4 | 5 | - (void)recordFailureWithDescription:(NSString *)description 6 | inFile:(NSString *)filename 7 | atLine:(NSUInteger)lineNumber 8 | expected:(BOOL)expected; 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/NSValue+Expecta.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface NSValue (Expecta) 4 | 5 | @property (nonatomic) const char *_EXP_objCType; 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/Expecta/NSValue+Expecta.m: -------------------------------------------------------------------------------- 1 | #import "NSValue+Expecta.h" 2 | #import 3 | #import "Expecta.h" 4 | 5 | EXPFixCategoriesBug(NSValue_Expecta); 6 | 7 | @implementation NSValue (Expecta) 8 | 9 | static char _EXP_typeKey; 10 | 11 | - (const char *)_EXP_objCType { 12 | return [(NSString *)objc_getAssociatedObject(self, &_EXP_typeKey) cStringUsingEncoding:NSASCIIStringEncoding]; 13 | } 14 | 15 | - (void)set_EXP_objCType:(const char *)_EXP_objCType { 16 | objc_setAssociatedObject(self, &_EXP_typeKey, 17 | @(_EXP_objCType), 18 | OBJC_ASSOCIATION_COPY_NONATOMIC); 19 | } 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Example/Pods/Expecta/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2015 Specta Team - https://github.com/specta 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCase.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013, Facebook, Inc. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | * 9 | */ 10 | 11 | #import "FBSnapshotTestCase.h" 12 | 13 | #import "FBSnapshotTestController.h" 14 | 15 | @interface FBSnapshotTestCase () 16 | 17 | @property (readwrite, nonatomic, retain) FBSnapshotTestController *snapshotController; 18 | 19 | @end 20 | 21 | @implementation FBSnapshotTestCase 22 | 23 | - (void)setUp 24 | { 25 | [super setUp]; 26 | self.snapshotController = [[FBSnapshotTestController alloc] initWithTestName:NSStringFromClass([self class])]; 27 | } 28 | 29 | - (void)tearDown 30 | { 31 | self.snapshotController = nil; 32 | [super tearDown]; 33 | } 34 | 35 | - (BOOL)recordMode 36 | { 37 | return self.snapshotController.recordMode; 38 | } 39 | 40 | - (void)setRecordMode:(BOOL)recordMode 41 | { 42 | self.snapshotController.recordMode = recordMode; 43 | } 44 | 45 | - (BOOL)compareSnapshotOfLayer:(CALayer *)layer 46 | referenceImagesDirectory:(NSString *)referenceImagesDirectory 47 | identifier:(NSString *)identifier 48 | error:(NSError **)errorPtr 49 | { 50 | return [self _compareSnapshotOfViewOrLayer:layer 51 | referenceImagesDirectory:referenceImagesDirectory 52 | identifier:identifier 53 | error:errorPtr]; 54 | } 55 | 56 | - (BOOL)compareSnapshotOfView:(UIView *)view 57 | referenceImagesDirectory:(NSString *)referenceImagesDirectory 58 | identifier:(NSString *)identifier 59 | error:(NSError **)errorPtr 60 | { 61 | return [self _compareSnapshotOfViewOrLayer:view 62 | referenceImagesDirectory:referenceImagesDirectory 63 | identifier:identifier 64 | error:errorPtr]; 65 | } 66 | 67 | #pragma mark - 68 | #pragma mark Private API 69 | 70 | - (BOOL)_compareSnapshotOfViewOrLayer:(id)viewOrLayer 71 | referenceImagesDirectory:(NSString *)referenceImagesDirectory 72 | identifier:(NSString *)identifier 73 | error:(NSError **)errorPtr 74 | { 75 | _snapshotController.referenceImagesDirectory = referenceImagesDirectory; 76 | return [_snapshotController compareSnapshotOfViewOrLayer:viewOrLayer 77 | selector:self.invocation.selector 78 | identifier:identifier 79 | error:errorPtr]; 80 | } 81 | 82 | @end 83 | -------------------------------------------------------------------------------- /Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/UIImage+Compare.h: -------------------------------------------------------------------------------- 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 32 | 33 | @interface UIImage (Compare) 34 | 35 | - (BOOL)compareWithImage:(UIImage *)image; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/UIImage+Diff.h: -------------------------------------------------------------------------------- 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 32 | 33 | @interface UIImage (Diff) 34 | 35 | - (UIImage *)diffWithImage:(UIImage *)image; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/UIImage+Diff.m: -------------------------------------------------------------------------------- 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 57 | -------------------------------------------------------------------------------- /Example/Pods/FBSnapshotTestCase/LICENSE: -------------------------------------------------------------------------------- 1 | BSD License 2 | 3 | For the FBSnapshotTestCase software 4 | 5 | Copyright (c) 2013, Facebook, Inc. 6 | All rights reserved. 7 | 8 | Redistribution and use in source and binary forms, with or without 9 | modification, are permitted provided that the following conditions are met: 10 | 11 | * Redistributions of source code must retain the above copyright notice, 12 | this list of conditions and the following disclaimer. 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | * Neither the name Facebook nor the names of its contributors may be used to 17 | endorse or promote products derived from this software without specific 18 | prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/AFHTTPRequestOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperation.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/AFHTTPRequestOperationManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperationManager.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/AFHTTPSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPSessionManager.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/AFNetworkActivityIndicatorManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/AFNetworkReachabilityManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworkReachabilityManager.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/AFSecurityPolicy.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFSecurityPolicy.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/AFURLConnectionOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLConnectionOperation.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/AFURLRequestSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLRequestSerialization.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/AFURLResponseSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLResponseSerialization.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/AFURLSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLSessionManager.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/UIActivityIndicatorView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/UIAlertView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/UIButton+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/UIImageView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/UIKit+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/UIProgressView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/UIRefreshControl+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIRefreshControl+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/AFNetworking/UIWebView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/BAHVimeoOAuth/BAHVimeoOAuth.h: -------------------------------------------------------------------------------- 1 | ../../../../../Pod/Classes/BAHVimeoOAuth.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/BAHVimeoOAuth/BAHVimeoOAuthViewController.h: -------------------------------------------------------------------------------- 1 | ../../../../../Pod/Classes/BAHVimeoOAuthViewController.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPBlockDefinedMatcher.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/EXPBlockDefinedMatcher.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPDefines.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/EXPDefines.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPDoubleTuple.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/EXPDoubleTuple.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPExpect.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/EXPExpect.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPFloatTuple.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/EXPFloatTuple.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatcher.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/EXPMatcher.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatcherHelpers.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatcherHelpers.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+beCloseTo.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beCloseTo.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+beFalsy.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beFalsy.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+beGreaterThan.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beGreaterThan.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+beGreaterThanOrEqualTo.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+beIdenticalTo.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beIdenticalTo.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+beInTheRangeOf.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beInTheRangeOf.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+beInstanceOf.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beInstanceOf.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+beKindOf.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beKindOf.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+beLessThan.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beLessThan.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+beLessThanOrEqualTo.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+beNil.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beNil.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+beSubclassOf.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beSubclassOf.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+beSupersetOf.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beSupersetOf.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+beTruthy.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beTruthy.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+beginWith.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beginWith.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+conformTo.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+conformTo.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+contain.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+contain.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+endWith.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+endWith.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+equal.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+equal.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+haveCountOf.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+haveCountOf.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+match.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+match.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+postNotification.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+postNotification.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+raise.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+raise.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+raiseWithReason.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+raiseWithReason.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers+respondTo.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+respondTo.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPMatchers.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/EXPUnsupportedObject.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/EXPUnsupportedObject.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/Expecta.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Expecta.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/ExpectaObject.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/ExpectaObject.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/ExpectaSupport.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/ExpectaSupport.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/NSObject+Expecta.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/NSObject+Expecta.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Expecta/NSValue+Expecta.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/NSValue+Expecta.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/FBSnapshotTestCase/FBSnapshotTestCase.h: -------------------------------------------------------------------------------- 1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCase.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/FBSnapshotTestCase/FBSnapshotTestController.h: -------------------------------------------------------------------------------- 1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestController.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/FBSnapshotTestCase/UIImage+Compare.h: -------------------------------------------------------------------------------- 1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/UIImage+Compare.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/FBSnapshotTestCase/UIImage+Diff.h: -------------------------------------------------------------------------------- 1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/UIImage+Diff.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Specta/SPTCallSite.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SPTCallSite.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Specta/SPTCompiledExample.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SPTCompiledExample.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Specta/SPTExample.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SPTExample.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Specta/SPTExampleGroup.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SPTExampleGroup.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Specta/SPTSharedExampleGroups.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SPTSharedExampleGroups.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Specta/SPTSpec.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SPTSpec.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Specta/SPTTestSuite.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SPTTestSuite.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Specta/Specta.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/Specta.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Specta/SpectaDSL.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SpectaDSL.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Specta/SpectaTypes.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SpectaTypes.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Specta/SpectaUtility.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SpectaUtility.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Specta/XCTest+Private.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/XCTest+Private.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Build/Specta/XCTestCase+Specta.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/XCTestCase+Specta.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/AFHTTPRequestOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperation.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/AFHTTPRequestOperationManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperationManager.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/AFHTTPSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPSessionManager.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/AFNetworkActivityIndicatorManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/AFNetworkReachabilityManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworkReachabilityManager.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/AFSecurityPolicy.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFSecurityPolicy.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/AFURLConnectionOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLConnectionOperation.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/AFURLRequestSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLRequestSerialization.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/AFURLResponseSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLResponseSerialization.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/AFURLSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLSessionManager.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/UIActivityIndicatorView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/UIAlertView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/UIButton+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/UIImageView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/UIKit+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/UIProgressView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/UIRefreshControl+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIRefreshControl+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/AFNetworking/UIWebView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/BAHVimeoOAuth/BAHVimeoOAuth.h: -------------------------------------------------------------------------------- 1 | ../../../../../Pod/Classes/BAHVimeoOAuth.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/BAHVimeoOAuth/BAHVimeoOAuthViewController.h: -------------------------------------------------------------------------------- 1 | ../../../../../Pod/Classes/BAHVimeoOAuthViewController.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPBlockDefinedMatcher.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/EXPBlockDefinedMatcher.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPDefines.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/EXPDefines.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPDoubleTuple.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/EXPDoubleTuple.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPExpect.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/EXPExpect.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPFloatTuple.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/EXPFloatTuple.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatcher.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/EXPMatcher.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatcherHelpers.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatcherHelpers.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+beCloseTo.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beCloseTo.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+beFalsy.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beFalsy.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+beGreaterThan.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beGreaterThan.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+beGreaterThanOrEqualTo.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+beIdenticalTo.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beIdenticalTo.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+beInTheRangeOf.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beInTheRangeOf.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+beInstanceOf.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beInstanceOf.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+beKindOf.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beKindOf.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+beLessThan.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beLessThan.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+beLessThanOrEqualTo.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+beNil.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beNil.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+beSubclassOf.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beSubclassOf.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+beSupersetOf.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beSupersetOf.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+beTruthy.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beTruthy.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+beginWith.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beginWith.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+conformTo.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+conformTo.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+contain.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+contain.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+endWith.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+endWith.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+equal.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+equal.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+haveCountOf.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+haveCountOf.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+match.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+match.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+postNotification.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+postNotification.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+raise.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+raise.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+raiseWithReason.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+raiseWithReason.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers+respondTo.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+respondTo.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPMatchers.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Matchers/EXPMatchers.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/EXPUnsupportedObject.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/EXPUnsupportedObject.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/Expecta.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/Expecta.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/ExpectaObject.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/ExpectaObject.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/ExpectaSupport.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/ExpectaSupport.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/NSObject+Expecta.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/NSObject+Expecta.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Expecta/NSValue+Expecta.h: -------------------------------------------------------------------------------- 1 | ../../../Expecta/Expecta/NSValue+Expecta.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/FBSnapshotTestCase/FBSnapshotTestCase.h: -------------------------------------------------------------------------------- 1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCase.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/FBSnapshotTestCase/FBSnapshotTestController.h: -------------------------------------------------------------------------------- 1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestController.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/FBSnapshotTestCase/UIImage+Compare.h: -------------------------------------------------------------------------------- 1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/UIImage+Compare.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/FBSnapshotTestCase/UIImage+Diff.h: -------------------------------------------------------------------------------- 1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/UIImage+Diff.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Specta/SPTCallSite.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SPTCallSite.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Specta/SPTCompiledExample.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SPTCompiledExample.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Specta/SPTExample.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SPTExample.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Specta/SPTExampleGroup.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SPTExampleGroup.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Specta/SPTSharedExampleGroups.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SPTSharedExampleGroups.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Specta/SPTSpec.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SPTSpec.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Specta/SPTTestSuite.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SPTTestSuite.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Specta/Specta.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/Specta.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Specta/SpectaDSL.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SpectaDSL.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Specta/SpectaTypes.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SpectaTypes.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Specta/SpectaUtility.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/SpectaUtility.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Specta/XCTest+Private.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/XCTest+Private.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Public/Specta/XCTestCase+Specta.h: -------------------------------------------------------------------------------- 1 | ../../../Specta/Specta/Specta/XCTestCase+Specta.h -------------------------------------------------------------------------------- /Example/Pods/Local Podspecs/BAHVimeoOAuth.podspec: -------------------------------------------------------------------------------- 1 | # 2 | # Be sure to run `pod lib lint BAHVimeoOAuth.podspec' to ensure this is a 3 | # valid spec and remove all comments before submitting the spec. 4 | # 5 | # Any lines starting with a # are optional, but encouraged 6 | # 7 | # To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html 8 | # 9 | 10 | Pod::Spec.new do |s| 11 | s.name = "BAHVimeoOAuth" 12 | s.version = "0.1.0" 13 | s.summary = "Simple Vimeo OAuth 2.0 client" 14 | s.description = <<-DESC 15 | A very easy, simple to use, specific to Vimeo OAuth 2.0 client. 16 | 17 | * Markdown format. 18 | * Don't worry about the indent, we strip it! 19 | DESC 20 | s.homepage = "https://github.com/BHughes3388/BAHVimeoOAuth" 21 | # s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2" 22 | s.license = 'MIT' 23 | s.author = { "BHughes3388" => "BHughes3388@gmail.com" } 24 | s.source = { :git => "https://github.com/BHughes3388/BAHVimeoOAuth.git", :tag => s.version.to_s } 25 | # s.social_media_url = 'https://twitter.com/' 26 | 27 | s.platform = :ios, '7.0' 28 | s.requires_arc = true 29 | 30 | s.source_files = 'Pod/Classes/**/*' 31 | s.resource_bundles = { 32 | 'BAHVimeoOAuth' => ['Pod/Assets/*.png'] 33 | } 34 | 35 | # s.public_header_files = 'Pod/Classes/**/*.h' 36 | # s.frameworks = 'UIKit', 'MapKit' 37 | # s.dependency 'AFNetworking', '~> 2.3' 38 | end 39 | -------------------------------------------------------------------------------- /Example/Pods/Local Podspecs/Specta.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'Specta' 3 | s.version = '0.3.0.beta1' 4 | s.license = 'MIT' 5 | s.summary = 'A light-weight TDD / BDD framework for Objective-C & Cocoa.' 6 | s.homepage = 'http://github.com/specta/specta' 7 | s.author = { 'Peter Jihoon Kim' => 'raingrove@gmail.com' } 8 | 9 | s.source = { :git => 'https://github.com/specta/specta.git', :tag => 'v0.3.0.beta1' } 10 | 11 | s.description = 'Specta is a light-weight testing framework for Objective-C and Cocoa that adds RSpec-like DSL to XCTest.' 12 | 13 | s.source_files = 'Specta/Specta/**/*.{h,m}' 14 | 15 | s.frameworks = 'Foundation', 'XCTest' 16 | 17 | s.requires_arc = true 18 | s.osx.xcconfig = { 'FRAMEWORK_SEARCH_PATHS' => '$(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "$(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/Frameworks"' } 19 | s.ios.xcconfig = { 'FRAMEWORK_SEARCH_PATHS' => '$(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks"' } 20 | end 21 | 22 | -------------------------------------------------------------------------------- /Example/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AFNetworking (2.5.3): 3 | - AFNetworking/NSURLConnection (= 2.5.3) 4 | - AFNetworking/NSURLSession (= 2.5.3) 5 | - AFNetworking/Reachability (= 2.5.3) 6 | - AFNetworking/Security (= 2.5.3) 7 | - AFNetworking/Serialization (= 2.5.3) 8 | - AFNetworking/UIKit (= 2.5.3) 9 | - AFNetworking/NSURLConnection (2.5.3): 10 | - AFNetworking/Reachability 11 | - AFNetworking/Security 12 | - AFNetworking/Serialization 13 | - AFNetworking/NSURLSession (2.5.3): 14 | - AFNetworking/Reachability 15 | - AFNetworking/Security 16 | - AFNetworking/Serialization 17 | - AFNetworking/Reachability (2.5.3) 18 | - AFNetworking/Security (2.5.3) 19 | - AFNetworking/Serialization (2.5.3) 20 | - AFNetworking/UIKit (2.5.3): 21 | - AFNetworking/NSURLConnection 22 | - AFNetworking/NSURLSession 23 | - BAHVimeoOAuth (0.1.0) 24 | - Expecta (0.4.2) 25 | - Expecta+Snapshots (1.3.2): 26 | - Expecta (~> 0.3) 27 | - FBSnapshotTestCase (= 1.6) 28 | - FBSnapshotTestCase (1.6) 29 | - Specta (0.3.0.beta1) 30 | 31 | DEPENDENCIES: 32 | - AFNetworking (~> 2.5) 33 | - BAHVimeoOAuth (from `../`) 34 | - Expecta 35 | - Expecta+Snapshots 36 | - FBSnapshotTestCase 37 | - Specta (from `https://github.com/specta/specta.git`, tag `v0.3.0.beta1`) 38 | 39 | EXTERNAL SOURCES: 40 | BAHVimeoOAuth: 41 | :path: ../ 42 | Specta: 43 | :git: https://github.com/specta/specta.git 44 | :tag: v0.3.0.beta1 45 | 46 | CHECKOUT OPTIONS: 47 | Specta: 48 | :git: https://github.com/specta/specta.git 49 | :tag: v0.3.0.beta1 50 | 51 | SPEC CHECKSUMS: 52 | AFNetworking: e1d86c2a96bb5d2e7408da36149806706ee122fe 53 | BAHVimeoOAuth: c0ad316846f3e90c49a2a3ff155b23fcb4b6ad9b 54 | Expecta: 78b4e8b0c8291fa4524d7f74016b6065c2e391ec 55 | Expecta+Snapshots: 40c5ec43b43da3bae957f14fed5dc9177d08ec8b 56 | FBSnapshotTestCase: 9d5fe43b29ae3a0ed8fc829477971b281038f748 57 | Specta: 63e8ac8e07db6675c7096d37f77a266a1be4c02d 58 | 59 | COCOAPODS: 0.35.0 60 | -------------------------------------------------------------------------------- /Example/Pods/Specta/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012-2014 Specta Team. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | 21 | -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SPTCallSite.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface SPTCallSite : NSObject 4 | 5 | @property (nonatomic, copy, readonly) NSString *file; 6 | @property (nonatomic, readonly) NSUInteger line; 7 | 8 | + (instancetype)callSiteWithFile:(NSString *)file line:(NSUInteger)line; 9 | 10 | - (instancetype)initWithFile:(NSString *)file line:(NSUInteger)line; 11 | 12 | @end -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SPTCallSite.m: -------------------------------------------------------------------------------- 1 | #import "SPTCallSite.h" 2 | 3 | @implementation SPTCallSite 4 | 5 | + (instancetype)callSiteWithFile:(NSString *)file line:(NSUInteger)line { 6 | return [[self alloc] initWithFile:file line:line]; 7 | } 8 | 9 | - (instancetype)initWithFile:(NSString *)file line:(NSUInteger)line { 10 | self = [super init]; 11 | if (self) { 12 | _file = file; 13 | _line = line; 14 | } 15 | return self; 16 | } 17 | 18 | @end -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SPTCompiledExample.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "SpectaTypes.h" 3 | 4 | @interface SPTCompiledExample : NSObject 5 | 6 | @property (nonatomic, copy) NSString *name; 7 | @property (nonatomic, copy) NSString *testCaseName; 8 | @property (nonatomic, copy) SPTSpecBlock block; 9 | 10 | @property (nonatomic) BOOL pending; 11 | @property (nonatomic, getter=isFocused) BOOL focused; 12 | 13 | @property (nonatomic) SEL testMethodSelector; 14 | 15 | - (id)initWithName:(NSString *)name testCaseName:(NSString *)testCaseName block:(SPTSpecBlock)block pending:(BOOL)pending focused:(BOOL)focused; 16 | 17 | @end -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SPTCompiledExample.m: -------------------------------------------------------------------------------- 1 | #import "SPTCompiledExample.h" 2 | 3 | @implementation SPTCompiledExample 4 | 5 | - (id)initWithName:(NSString *)name testCaseName:(NSString *)testCaseName block:(SPTSpecBlock)block pending:(BOOL)pending focused:(BOOL)focused { 6 | self = [super init]; 7 | if (self) { 8 | self.name = name; 9 | self.testCaseName = testCaseName; 10 | self.block = block; 11 | self.pending = pending; 12 | self.focused = focused; 13 | } 14 | return self; 15 | } 16 | 17 | @end -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SPTExample.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "SpectaTypes.h" 3 | 4 | @class SPTCallSite; 5 | 6 | @interface SPTExample : NSObject 7 | 8 | @property (nonatomic, copy) NSString *name; 9 | @property (nonatomic, retain) SPTCallSite *callSite; 10 | @property (nonatomic, copy) SPTVoidBlock block; 11 | 12 | @property (nonatomic) BOOL pending; 13 | @property (nonatomic, getter=isFocused) BOOL focused; 14 | 15 | - (id)initWithName:(NSString *)name callSite:(SPTCallSite *)callSite focused:(BOOL)focused block:(SPTVoidBlock)block; 16 | 17 | @end -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SPTExample.m: -------------------------------------------------------------------------------- 1 | #import "SPTExample.h" 2 | 3 | @implementation SPTExample 4 | 5 | - (id)initWithName:(NSString *)name callSite:(SPTCallSite *)callSite focused:(BOOL)focused block:(SPTVoidBlock)block { 6 | self = [super init]; 7 | if (self) { 8 | self.name = name; 9 | self.callSite = callSite; 10 | self.block = block; 11 | self.focused = focused; 12 | self.pending = block == nil; 13 | } 14 | return self; 15 | } 16 | 17 | @end -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SPTExampleGroup.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import "SpectaTypes.h" 4 | 5 | @class SPTExample; 6 | @class SPTCallSite; 7 | 8 | @interface SPTExampleGroup : NSObject 9 | 10 | @property (nonatomic, copy) NSString *name; 11 | @property (nonatomic, strong) SPTExampleGroup *root; 12 | @property (nonatomic, strong) SPTExampleGroup *parent; 13 | @property (nonatomic, strong) NSMutableArray *children; 14 | @property (nonatomic, strong) NSMutableArray *beforeAllArray; 15 | @property (nonatomic, strong) NSMutableArray *afterAllArray; 16 | @property (nonatomic, strong) NSMutableArray *beforeEachArray; 17 | @property (nonatomic, strong) NSMutableArray *afterEachArray; 18 | @property (nonatomic, strong) NSMutableDictionary *sharedExamples; 19 | @property (nonatomic) unsigned int exampleCount; 20 | @property (nonatomic) unsigned int ranExampleCount; 21 | @property (nonatomic) unsigned int pendingExampleCount; 22 | @property (nonatomic, getter=isFocused) BOOL focused; 23 | 24 | - (id)initWithName:(NSString *)name parent:(SPTExampleGroup *)parent root:(SPTExampleGroup *)root; 25 | 26 | - (SPTExampleGroup *)addExampleGroupWithName:(NSString *)name focused:(BOOL)focused; 27 | - (SPTExample *)addExampleWithName:(NSString *)name callSite:(SPTCallSite *)callSite focused:(BOOL)focused block:(SPTVoidBlock)block; 28 | 29 | - (void)addBeforeAllBlock:(SPTVoidBlock)block; 30 | - (void)addAfterAllBlock:(SPTVoidBlock)block; 31 | - (void)addBeforeEachBlock:(SPTVoidBlock)block; 32 | - (void)addAfterEachBlock:(SPTVoidBlock)block; 33 | 34 | - (NSArray *)compileExamplesWithStack:(NSArray *)stack; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SPTSharedExampleGroups.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | 5 | @class _XCTestCaseImplementation; 6 | 7 | @class SPTExampleGroup; 8 | 9 | @interface SPTSharedExampleGroups : XCTestCase 10 | 11 | + (void)addSharedExampleGroupWithName:(NSString *)name block:(SPTDictionaryBlock)block exampleGroup:(SPTExampleGroup *)exampleGroup; 12 | + (SPTDictionaryBlock)sharedExampleGroupWithName:(NSString *)name exampleGroup:(SPTExampleGroup *)exampleGroup; 13 | 14 | - (void)sharedExampleGroups; 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SPTSharedExampleGroups.m: -------------------------------------------------------------------------------- 1 | #import "SPTSharedExampleGroups.h" 2 | #import "SPTExampleGroup.h" 3 | #import "SPTSpec.h" 4 | #import "SpectaUtility.h" 5 | #import 6 | 7 | NSMutableDictionary *globalSharedExampleGroups = nil; 8 | BOOL initialized = NO; 9 | 10 | @implementation SPTSharedExampleGroups 11 | 12 | + (void)initialize { 13 | Class SPTSharedExampleGroupsClass = [SPTSharedExampleGroups class]; 14 | if ([self class] == SPTSharedExampleGroupsClass) { 15 | if (!initialized) { 16 | initialized = YES; 17 | globalSharedExampleGroups = [[NSMutableDictionary alloc] init]; 18 | 19 | Class *classes = NULL; 20 | int numClasses = objc_getClassList(NULL, 0); 21 | 22 | if (numClasses > 0) { 23 | classes = (Class *)malloc(sizeof(Class) * numClasses); 24 | numClasses = objc_getClassList(classes, numClasses); 25 | 26 | Class klass, superClass; 27 | for(uint i = 0; i < numClasses; i++) { 28 | klass = classes[i]; 29 | superClass = class_getSuperclass(klass); 30 | if (superClass == SPTSharedExampleGroupsClass) { 31 | [[[klass alloc] init] sharedExampleGroups]; 32 | } 33 | } 34 | 35 | free(classes); 36 | } 37 | } 38 | } 39 | } 40 | 41 | + (void)addSharedExampleGroupWithName:(NSString *)name block:(SPTDictionaryBlock)block exampleGroup:(SPTExampleGroup *)exampleGroup { 42 | (exampleGroup == nil ? globalSharedExampleGroups : exampleGroup.sharedExamples)[name] = [block copy]; 43 | } 44 | 45 | + (SPTDictionaryBlock)sharedExampleGroupWithName:(NSString *)name exampleGroup:(SPTExampleGroup *)exampleGroup { 46 | SPTDictionaryBlock sharedExampleGroup = nil; 47 | while (exampleGroup != nil) { 48 | if ((sharedExampleGroup = exampleGroup.sharedExamples[name])) { 49 | return sharedExampleGroup; 50 | } 51 | exampleGroup = exampleGroup.parent; 52 | } 53 | return globalSharedExampleGroups[name]; 54 | } 55 | 56 | - (void)sharedExampleGroups {} 57 | 58 | - (void)spt_handleException:(NSException *)exception { 59 | [SPTCurrentSpec spt_handleException:exception]; 60 | } 61 | 62 | - (void)recordFailureWithDescription:(NSString *)description inFile:(NSString *)filename atLine:(NSUInteger)lineNumber expected:(BOOL)expected { 63 | [SPTCurrentSpec recordFailureWithDescription:description inFile:filename atLine:lineNumber expected:expected]; 64 | } 65 | 66 | - (void)_recordUnexpectedFailureWithDescription:(NSString *)description exception:(NSException *)exception { 67 | [SPTCurrentSpec _recordUnexpectedFailureWithDescription:description exception:exception]; 68 | } 69 | 70 | - (_XCTestCaseImplementation *)internalImplementation { 71 | return [SPTCurrentSpec internalImplementation]; 72 | } 73 | 74 | @end 75 | -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SPTSpec.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @class 5 | SPTTestSuite 6 | , SPTCompiledExample 7 | ; 8 | 9 | @interface SPTSpec : XCTestCase 10 | 11 | @property (strong) XCTestCaseRun *spt_run; 12 | @property (nonatomic) BOOL spt_pending; 13 | @property (nonatomic) BOOL spt_skipped; 14 | 15 | + (BOOL)spt_isDisabled; 16 | + (void)spt_setDisabled:(BOOL)disabled; 17 | + (BOOL)spt_focusedExamplesExist; 18 | + (SEL)spt_convertToTestMethod:(SPTCompiledExample *)example; 19 | + (SPTTestSuite *)spt_testSuite; 20 | + (void)spt_setCurrentTestSuite; 21 | + (void)spt_unsetCurrentTestSuite; 22 | + (void)spt_setCurrentTestSuiteFileName:(NSString *)fileName lineNumber:(NSUInteger)lineNumber; 23 | 24 | - (void)spec; 25 | - (BOOL)spt_shouldRunExample:(SPTCompiledExample *)example; 26 | - (void)spt_runExample:(SPTCompiledExample *)example; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SPTTestSuite.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @class 4 | SPTExample 5 | , SPTExampleGroup 6 | ; 7 | 8 | @interface SPTTestSuite : NSObject 9 | 10 | @property (nonatomic, strong) SPTExampleGroup *rootGroup; 11 | @property (nonatomic, strong) NSMutableArray *groupStack; 12 | @property (nonatomic, strong) NSArray *compiledExamples; 13 | @property (nonatomic, copy) NSString *fileName; 14 | @property (nonatomic) NSUInteger lineNumber; 15 | @property (nonatomic, getter = isDisabled) BOOL disabled; 16 | @property (nonatomic) BOOL hasFocusedExamples; 17 | 18 | - (SPTExampleGroup *)currentGroup; 19 | - (void)compile; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SPTTestSuite.m: -------------------------------------------------------------------------------- 1 | #import "SPTTestSuite.h" 2 | #import "SPTExampleGroup.h" 3 | #import "SPTCompiledExample.h" 4 | 5 | @implementation SPTTestSuite 6 | 7 | - (id)init { 8 | self = [super init]; 9 | if (self) { 10 | self.rootGroup = [[SPTExampleGroup alloc] init]; 11 | self.rootGroup.root = self.rootGroup; 12 | self.groupStack = [NSMutableArray arrayWithObject:self.rootGroup]; 13 | } 14 | return self; 15 | } 16 | 17 | - (SPTExampleGroup *)currentGroup { 18 | return [self.groupStack lastObject]; 19 | } 20 | 21 | - (void)compile { 22 | self.compiledExamples = [self.rootGroup compileExamplesWithStack:@[]]; 23 | for (SPTCompiledExample *example in self.compiledExamples) { 24 | if (example.focused) { 25 | self.hasFocusedExamples = YES; 26 | break; 27 | } 28 | } 29 | } 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/Specta.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | //! Project version number for Specta. 5 | FOUNDATION_EXPORT double SpectaVersionNumber; 6 | 7 | //! Project version string for Specta. 8 | FOUNDATION_EXPORT const unsigned char SpectaVersionString[]; 9 | 10 | // In this header, you should import all the public headers of your framework using statements like #import 11 | 12 | #import 13 | #import 14 | #import 15 | -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SpectaDSL.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #define SpecBegin(name) _SPTSpecBegin(name, __FILE__, __LINE__) 4 | #define SpecEnd _SPTSpecEnd 5 | 6 | #define SharedExamplesBegin(name) _SPTSharedExampleGroupsBegin(name) 7 | #define SharedExamplesEnd _SPTSharedExampleGroupsEnd 8 | #define SharedExampleGroupsBegin(name) _SPTSharedExampleGroupsBegin(name) 9 | #define SharedExampleGroupsEnd _SPTSharedExampleGroupsEnd 10 | 11 | typedef void (^DoneCallback)(void); 12 | 13 | void describe(NSString *name, void (^block)()); 14 | void fdescribe(NSString *name, void (^block)()); 15 | 16 | void context(NSString *name, void (^block)()); 17 | void fcontext(NSString *name, void (^block)()); 18 | 19 | void it(NSString *name, void (^block)()); 20 | void fit(NSString *name, void (^block)()); 21 | 22 | void example(NSString *name, void (^block)()); 23 | void fexample(NSString *name, void (^block)()); 24 | 25 | void specify(NSString *name, void (^block)()); 26 | void fspecify(NSString *name, void (^block)()); 27 | 28 | #define pending(...) spt_pending_(__VA_ARGS__, nil) 29 | #define xdescribe(...) spt_pending_(__VA_ARGS__, nil) 30 | #define xcontext(...) spt_pending_(__VA_ARGS__, nil) 31 | #define xexample(...) spt_pending_(__VA_ARGS__, nil) 32 | #define xit(...) spt_pending_(__VA_ARGS__, nil) 33 | #define xspecify(...) spt_pending_(__VA_ARGS__, nil) 34 | 35 | void beforeAll(void (^block)()); 36 | void afterAll(void (^block)()); 37 | 38 | void beforeEach(void (^block)()); 39 | void afterEach(void (^block)()); 40 | 41 | void before(void (^block)()); 42 | void after(void (^block)()); 43 | 44 | void sharedExamplesFor(NSString *name, void (^block)(NSDictionary *data)); 45 | void sharedExamples(NSString *name, void (^block)(NSDictionary *data)); 46 | 47 | #define itShouldBehaveLike(...) spt_itShouldBehaveLike_(@(__FILE__), __LINE__, __VA_ARGS__) 48 | #define itBehavesLike(...) spt_itShouldBehaveLike_(@(__FILE__), __LINE__, __VA_ARGS__) 49 | 50 | void waitUntil(void (^block)(DoneCallback done)); 51 | 52 | void setAsyncSpecTimeout(NSTimeInterval timeout); 53 | 54 | // ---------------------------------------------------------------------------- 55 | 56 | #define _SPTSpecBegin(name, file, line) \ 57 | @interface name##Spec : SPTSpec \ 58 | @end \ 59 | @implementation name##Spec \ 60 | - (void)spec { \ 61 | [[self class] spt_setCurrentTestSuiteFileName:(@(file)) lineNumber:(line)]; 62 | 63 | #define _SPTSpecEnd \ 64 | } \ 65 | @end 66 | 67 | #define _SPTSharedExampleGroupsBegin(name) \ 68 | @interface name##SharedExampleGroups : SPTSharedExampleGroups \ 69 | @end \ 70 | @implementation name##SharedExampleGroups \ 71 | - (void)sharedExampleGroups { 72 | 73 | #define _SPTSharedExampleGroupsEnd \ 74 | } \ 75 | @end 76 | 77 | void spt_it_(NSString *name, NSString *fileName, NSUInteger lineNumber, void (^block)()); 78 | void spt_fit_(NSString *name, NSString *fileName, NSUInteger lineNumber, void (^block)()); 79 | void spt_pending_(NSString *name, ...); 80 | void spt_itShouldBehaveLike_(NSString *fileName, NSUInteger lineNumber, NSString *name, id dictionaryOrBlock); 81 | void spt_itShouldBehaveLike_block(NSString *fileName, NSUInteger lineNumber, NSString *name, NSDictionary *(^block)()); -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SpectaTypes.h: -------------------------------------------------------------------------------- 1 | @class SPTSpec; 2 | 3 | typedef void (^SPTVoidBlock)(); 4 | typedef void (^SPTSpecBlock)(SPTSpec *spec); 5 | typedef void (^SPTDictionaryBlock)(NSDictionary *dictionary); 6 | -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SpectaUtility.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | extern NSString * const spt_kCurrentTestSuiteKey; 4 | extern NSString * const spt_kCurrentSpecKey; 5 | 6 | #define SPTCurrentTestSuite [[NSThread currentThread] threadDictionary][spt_kCurrentTestSuiteKey] 7 | #define SPTCurrentSpec [[NSThread currentThread] threadDictionary][spt_kCurrentSpecKey] 8 | #define SPTCurrentGroup [SPTCurrentTestSuite currentGroup] 9 | #define SPTGroupStack [SPTCurrentTestSuite groupStack] 10 | 11 | #define SPTReturnUnlessBlockOrNil(block) if ((block) && !SPTIsBlock((block))) return; 12 | #define SPTIsBlock(obj) [(obj) isKindOfClass:NSClassFromString(@"NSBlock")] 13 | 14 | BOOL spt_isSpecClass(Class aClass); 15 | NSString *spt_underscorize(NSString *string); 16 | NSArray *spt_map(NSArray *array, id (^block)(id obj, NSUInteger idx)); 17 | NSArray *spt_shuffle(NSArray *array); 18 | unsigned int spt_seed(); -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/SpectaUtility.m: -------------------------------------------------------------------------------- 1 | #import "SpectaUtility.h" 2 | #import "SPTSpec.h" 3 | #import 4 | 5 | NSString * const spt_kCurrentTestSuiteKey = @"SPTCurrentTestSuite"; 6 | NSString * const spt_kCurrentSpecKey = @"SPTCurrentSpec"; 7 | 8 | static unsigned int seed = 0; 9 | 10 | BOOL spt_isSpecClass(Class aClass) { 11 | Class superclass = class_getSuperclass(aClass); 12 | while (superclass != Nil) { 13 | if (superclass == [SPTSpec class]) { 14 | return YES; 15 | } else { 16 | superclass = class_getSuperclass(superclass); 17 | } 18 | } 19 | return NO; 20 | } 21 | 22 | NSString *spt_underscorize(NSString *string) { 23 | static NSMutableCharacterSet *invalidCharSet; 24 | static dispatch_once_t onceToken; 25 | dispatch_once(&onceToken, ^{ 26 | invalidCharSet = [[NSMutableCharacterSet alloc] init]; 27 | [invalidCharSet formUnionWithCharacterSet:[NSCharacterSet controlCharacterSet]]; 28 | [invalidCharSet formUnionWithCharacterSet:[NSCharacterSet illegalCharacterSet]]; 29 | [invalidCharSet formUnionWithCharacterSet:[NSCharacterSet newlineCharacterSet]]; 30 | [invalidCharSet formUnionWithCharacterSet:[NSCharacterSet nonBaseCharacterSet]]; 31 | [invalidCharSet formUnionWithCharacterSet:[NSCharacterSet punctuationCharacterSet]]; 32 | [invalidCharSet formUnionWithCharacterSet:[NSCharacterSet symbolCharacterSet]]; 33 | }); 34 | NSString *stripped = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 35 | stripped = [[stripped componentsSeparatedByCharactersInSet:invalidCharSet] componentsJoinedByString:@""]; 36 | 37 | NSArray *components = [stripped componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 38 | stripped = [[components objectsAtIndexes:[components indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) { 39 | return ![obj isEqualToString:@""]; 40 | }]] componentsJoinedByString:@"_"]; 41 | return stripped; 42 | } 43 | 44 | NSArray *spt_map(NSArray *array, id (^block)(id obj, NSUInteger idx)) { 45 | NSMutableArray *mapped = [NSMutableArray arrayWithCapacity:[array count]]; 46 | [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 47 | [mapped addObject:block(obj, idx)]; 48 | }]; 49 | return mapped; 50 | } 51 | 52 | NSArray *spt_shuffle(NSArray *array) { 53 | if (![[[[NSProcessInfo processInfo] environment] objectForKey:@"SPECTA_SHUFFLE"] isEqualToString:@"1"]) { 54 | return array; 55 | } 56 | spt_seed(); 57 | NSMutableArray *shuffled = [array mutableCopy]; 58 | NSUInteger count = [shuffled count]; 59 | for (NSUInteger i = 0; i < count; i++) { 60 | NSUInteger r = random() % count; 61 | [shuffled exchangeObjectAtIndex:i withObjectAtIndex:r]; 62 | } 63 | return shuffled; 64 | } 65 | 66 | unsigned int spt_seed() { 67 | static dispatch_once_t onceToken; 68 | dispatch_once(&onceToken, ^{ 69 | NSString *envSeed = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPECTA_SEED"]; 70 | if (envSeed) { 71 | sscanf([envSeed UTF8String], "%u", &seed); 72 | } else { 73 | seed = arc4random(); 74 | } 75 | srandom(seed); 76 | printf("Test Seed: %u\n", seed); 77 | }); 78 | return seed; 79 | } -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/XCTest+Private.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface XCTestObservationCenter : NSObject 4 | 5 | + (id)sharedObservationCenter; 6 | - (void)_suspendObservationForBlock:(void (^)(void))block; 7 | 8 | @end 9 | 10 | @protocol XCTestObservation 11 | @end 12 | 13 | @interface _XCTestDriverTestObserver : NSObject 14 | 15 | - (void)stopObserving; 16 | - (void)startObserving; 17 | 18 | @end 19 | 20 | @interface _XCTestCaseImplementation : NSObject 21 | @end 22 | 23 | @interface XCTestCase () 24 | 25 | - (_XCTestCaseImplementation *)internalImplementation; 26 | - (void)_recordUnexpectedFailureWithDescription:(NSString *)description exception:(NSException *)exception; 27 | 28 | @end -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/XCTestCase+Specta.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface XCTestCase (Specta) 4 | 5 | - (void)spt_handleException:(NSException *)exception; 6 | 7 | @end -------------------------------------------------------------------------------- /Example/Pods/Specta/Specta/Specta/XCTestCase+Specta.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import "XCTestCase+Specta.h" 3 | #import "SPTSpec.h" 4 | #import "SPTExample.h" 5 | #import "SPTSharedExampleGroups.h" 6 | #import "SpectaUtility.h" 7 | #import "XCTest+Private.h" 8 | 9 | @interface XCTestCase (xct_allSubclasses) 10 | 11 | - (NSArray *)allSubclasses; 12 | 13 | @end 14 | 15 | @implementation XCTestCase (Specta) 16 | 17 | + (void)load { 18 | Method allSubclasses = class_getClassMethod(self, @selector(allSubclasses)); 19 | Method allSubclasses_swizzle = class_getClassMethod(self , @selector(spt_allSubclasses_swizzle)); 20 | method_exchangeImplementations(allSubclasses, allSubclasses_swizzle); 21 | } 22 | 23 | + (NSArray *)spt_allSubclasses_swizzle { 24 | NSArray *subclasses = [self spt_allSubclasses_swizzle]; // call original 25 | NSMutableArray *filtered = [NSMutableArray arrayWithCapacity:[subclasses count]]; 26 | // exclude SPTSpec base class and all subclasses of SPTSharedExampleGroups 27 | for (id subclass in subclasses) { 28 | if (subclass != [SPTSpec class] && ![subclass isKindOfClass:[SPTSharedExampleGroups class]]) { 29 | [filtered addObject:subclass]; 30 | } 31 | } 32 | return spt_shuffle(filtered); 33 | } 34 | 35 | - (void)spt_handleException:(NSException *)exception { 36 | NSString *description = [exception reason]; 37 | if ([exception userInfo]) { 38 | id line = [exception userInfo][@"line"]; 39 | id file = [exception userInfo][@"file"]; 40 | if ([line isKindOfClass:[NSNumber class]] && [file isKindOfClass:[NSString class]]) { 41 | [self recordFailureWithDescription:description inFile:file atLine:[line unsignedIntegerValue] expected:YES]; 42 | return; 43 | } 44 | } 45 | [self _recordUnexpectedFailureWithDescription:description exception:exception]; 46 | } 47 | 48 | @end -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BAHVimeoOAuth-AFNetworking/Pods-BAHVimeoOAuth-AFNetworking-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-BAHVimeoOAuth-AFNetworking.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Build" "${PODS_ROOT}/Headers/Build/AFNetworking" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/Specta" 4 | OTHER_LDFLAGS = ${PODS_BAHVIMEOOAUTH_AFNETWORKING_OTHER_LDFLAGS} -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BAHVimeoOAuth-AFNetworking/Pods-BAHVimeoOAuth-AFNetworking-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_BAHVimeoOAuth_AFNetworking : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_BAHVimeoOAuth_AFNetworking 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BAHVimeoOAuth-AFNetworking/Pods-BAHVimeoOAuth-AFNetworking-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-BAHVimeoOAuth-environment.h" 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BAHVimeoOAuth-AFNetworking/Pods-BAHVimeoOAuth-AFNetworking.xcconfig: -------------------------------------------------------------------------------- 1 | PODS_BAHVIMEOOAUTH_AFNETWORKING_OTHER_LDFLAGS = -framework "CoreGraphics" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BAHVimeoOAuth-BAHVimeoOAuth/Pods-BAHVimeoOAuth-BAHVimeoOAuth-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-BAHVimeoOAuth-BAHVimeoOAuth.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Build" "${PODS_ROOT}/Headers/Build/BAHVimeoOAuth" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/Specta" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BAHVimeoOAuth-BAHVimeoOAuth/Pods-BAHVimeoOAuth-BAHVimeoOAuth-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_BAHVimeoOAuth_BAHVimeoOAuth : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_BAHVimeoOAuth_BAHVimeoOAuth 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BAHVimeoOAuth-BAHVimeoOAuth/Pods-BAHVimeoOAuth-BAHVimeoOAuth-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-BAHVimeoOAuth-environment.h" 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BAHVimeoOAuth-BAHVimeoOAuth/Pods-BAHVimeoOAuth-BAHVimeoOAuth.xcconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BHughes3388/BAHVimeoOAuth/eaa54005284d66238d71e940e171d777ca19644e/Example/Pods/Target Support Files/Pods-BAHVimeoOAuth-BAHVimeoOAuth/Pods-BAHVimeoOAuth-BAHVimeoOAuth.xcconfig -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BAHVimeoOAuth/Pods-BAHVimeoOAuth-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## AFNetworking 5 | 6 | Copyright (c) 2013-2015 AFNetworking (http://afnetworking.com/) 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in 16 | all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | THE SOFTWARE. 25 | 26 | 27 | ## BAHVimeoOAuth 28 | 29 | Copyright (c) 2015 BHughes3388 30 | 31 | Permission is hereby granted, free of charge, to any person obtaining a copy 32 | of this software and associated documentation files (the "Software"), to deal 33 | in the Software without restriction, including without limitation the rights 34 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 35 | copies of the Software, and to permit persons to whom the Software is 36 | furnished to do so, subject to the following conditions: 37 | 38 | The above copyright notice and this permission notice shall be included in 39 | all copies or substantial portions of the Software. 40 | 41 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 42 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 43 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 44 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 45 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 46 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 47 | THE SOFTWARE. 48 | 49 | Generated by CocoaPods - http://cocoapods.org 50 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BAHVimeoOAuth/Pods-BAHVimeoOAuth-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_BAHVimeoOAuth : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_BAHVimeoOAuth 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BAHVimeoOAuth/Pods-BAHVimeoOAuth-environment.h: -------------------------------------------------------------------------------- 1 | 2 | // To check if a library is compiled with CocoaPods you 3 | // can use the `COCOAPODS` macro definition which is 4 | // defined in the xcconfigs so it is available in 5 | // headers also when they are imported in the client 6 | // project. 7 | 8 | 9 | // AFNetworking 10 | #define COCOAPODS_POD_AVAILABLE_AFNetworking 11 | #define COCOAPODS_VERSION_MAJOR_AFNetworking 2 12 | #define COCOAPODS_VERSION_MINOR_AFNetworking 5 13 | #define COCOAPODS_VERSION_PATCH_AFNetworking 3 14 | 15 | // AFNetworking/NSURLConnection 16 | #define COCOAPODS_POD_AVAILABLE_AFNetworking_NSURLConnection 17 | #define COCOAPODS_VERSION_MAJOR_AFNetworking_NSURLConnection 2 18 | #define COCOAPODS_VERSION_MINOR_AFNetworking_NSURLConnection 5 19 | #define COCOAPODS_VERSION_PATCH_AFNetworking_NSURLConnection 3 20 | 21 | // AFNetworking/NSURLSession 22 | #define COCOAPODS_POD_AVAILABLE_AFNetworking_NSURLSession 23 | #define COCOAPODS_VERSION_MAJOR_AFNetworking_NSURLSession 2 24 | #define COCOAPODS_VERSION_MINOR_AFNetworking_NSURLSession 5 25 | #define COCOAPODS_VERSION_PATCH_AFNetworking_NSURLSession 3 26 | 27 | // AFNetworking/Reachability 28 | #define COCOAPODS_POD_AVAILABLE_AFNetworking_Reachability 29 | #define COCOAPODS_VERSION_MAJOR_AFNetworking_Reachability 2 30 | #define COCOAPODS_VERSION_MINOR_AFNetworking_Reachability 5 31 | #define COCOAPODS_VERSION_PATCH_AFNetworking_Reachability 3 32 | 33 | // AFNetworking/Security 34 | #define COCOAPODS_POD_AVAILABLE_AFNetworking_Security 35 | #define COCOAPODS_VERSION_MAJOR_AFNetworking_Security 2 36 | #define COCOAPODS_VERSION_MINOR_AFNetworking_Security 5 37 | #define COCOAPODS_VERSION_PATCH_AFNetworking_Security 3 38 | 39 | // AFNetworking/Serialization 40 | #define COCOAPODS_POD_AVAILABLE_AFNetworking_Serialization 41 | #define COCOAPODS_VERSION_MAJOR_AFNetworking_Serialization 2 42 | #define COCOAPODS_VERSION_MINOR_AFNetworking_Serialization 5 43 | #define COCOAPODS_VERSION_PATCH_AFNetworking_Serialization 3 44 | 45 | // AFNetworking/UIKit 46 | #define COCOAPODS_POD_AVAILABLE_AFNetworking_UIKit 47 | #define COCOAPODS_VERSION_MAJOR_AFNetworking_UIKit 2 48 | #define COCOAPODS_VERSION_MINOR_AFNetworking_UIKit 5 49 | #define COCOAPODS_VERSION_PATCH_AFNetworking_UIKit 3 50 | 51 | // BAHVimeoOAuth 52 | #define COCOAPODS_POD_AVAILABLE_BAHVimeoOAuth 53 | #define COCOAPODS_VERSION_MAJOR_BAHVimeoOAuth 0 54 | #define COCOAPODS_VERSION_MINOR_BAHVimeoOAuth 1 55 | #define COCOAPODS_VERSION_PATCH_BAHVimeoOAuth 0 56 | 57 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BAHVimeoOAuth/Pods-BAHVimeoOAuth.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/Specta" 3 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" -isystem "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" -isystem "${PODS_ROOT}/Headers/Public/Specta" 4 | OTHER_LDFLAGS = -ObjC -l"Pods-BAHVimeoOAuth-AFNetworking" -l"Pods-BAHVimeoOAuth-BAHVimeoOAuth" -framework "CoreGraphics" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" 5 | OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) 6 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BAHVimeoOAuth/Pods-BAHVimeoOAuth.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/Specta" 3 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" -isystem "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" -isystem "${PODS_ROOT}/Headers/Public/Specta" 4 | OTHER_LDFLAGS = -ObjC -l"Pods-BAHVimeoOAuth-AFNetworking" -l"Pods-BAHVimeoOAuth-BAHVimeoOAuth" -framework "CoreGraphics" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" 5 | OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) 6 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-AFNetworking/Pods-Tests-AFNetworking-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-Tests-AFNetworking.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Build" "${PODS_ROOT}/Headers/Build/AFNetworking" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/Specta" 4 | OTHER_LDFLAGS = ${PODS_TESTS_AFNETWORKING_OTHER_LDFLAGS} -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-AFNetworking/Pods-Tests-AFNetworking-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Tests_AFNetworking : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Tests_AFNetworking 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-AFNetworking/Pods-Tests-AFNetworking-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-Tests-environment.h" 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-AFNetworking/Pods-Tests-AFNetworking.xcconfig: -------------------------------------------------------------------------------- 1 | PODS_TESTS_AFNETWORKING_OTHER_LDFLAGS = -framework "CoreGraphics" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-BAHVimeoOAuth/Pods-Tests-BAHVimeoOAuth-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-Tests-BAHVimeoOAuth.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Build" "${PODS_ROOT}/Headers/Build/BAHVimeoOAuth" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/Specta" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-BAHVimeoOAuth/Pods-Tests-BAHVimeoOAuth-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Tests_BAHVimeoOAuth : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Tests_BAHVimeoOAuth 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-BAHVimeoOAuth/Pods-Tests-BAHVimeoOAuth-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-Tests-environment.h" 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-BAHVimeoOAuth/Pods-Tests-BAHVimeoOAuth.xcconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BHughes3388/BAHVimeoOAuth/eaa54005284d66238d71e940e171d777ca19644e/Example/Pods/Target Support Files/Pods-Tests-BAHVimeoOAuth/Pods-Tests-BAHVimeoOAuth.xcconfig -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-Expecta+Snapshots/Pods-Tests-Expecta+Snapshots-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-Tests-Expecta+Snapshots.xcconfig" 2 | FRAMEWORK_SEARCH_PATHS = ${PODS_TESTS_EXPECTA_SNAPSHOTS_FRAMEWORK_SEARCH_PATHS} 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Build" "${PODS_ROOT}/Headers/Build/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/Specta" 5 | OTHER_LDFLAGS = ${PODS_TESTS_EXPECTA_SNAPSHOTS_OTHER_LDFLAGS} -ObjC 6 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-Expecta+Snapshots/Pods-Tests-Expecta+Snapshots-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Tests_Expecta_Snapshots : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Tests_Expecta_Snapshots 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-Expecta+Snapshots/Pods-Tests-Expecta+Snapshots-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-Tests-environment.h" 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-Expecta+Snapshots/Pods-Tests-Expecta+Snapshots.xcconfig: -------------------------------------------------------------------------------- 1 | PODS_TESTS_EXPECTA_SNAPSHOTS_FRAMEWORK_SEARCH_PATHS = $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" "$(PLATFORM_DIR)/Developer/Library/Frameworks" 2 | PODS_TESTS_EXPECTA_SNAPSHOTS_OTHER_LDFLAGS = -framework "Foundation" -framework "XCTest" -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-Expecta/Pods-Tests-Expecta-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-Tests-Expecta.xcconfig" 2 | FRAMEWORK_SEARCH_PATHS = ${PODS_TESTS_EXPECTA_FRAMEWORK_SEARCH_PATHS} 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Build" "${PODS_ROOT}/Headers/Build/Expecta" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/Specta" 5 | OTHER_LDFLAGS = ${PODS_TESTS_EXPECTA_OTHER_LDFLAGS} -ObjC 6 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-Expecta/Pods-Tests-Expecta-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Tests_Expecta : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Tests_Expecta 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-Expecta/Pods-Tests-Expecta-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-Tests-environment.h" 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-Expecta/Pods-Tests-Expecta.xcconfig: -------------------------------------------------------------------------------- 1 | PODS_TESTS_EXPECTA_FRAMEWORK_SEARCH_PATHS = $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks" "$(SDKROOT)/Developer/Library/Frameworks" 2 | PODS_TESTS_EXPECTA_OTHER_LDFLAGS = -framework "Foundation" -framework "XCTest" -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-FBSnapshotTestCase/Pods-Tests-FBSnapshotTestCase-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-Tests-FBSnapshotTestCase.xcconfig" 2 | FRAMEWORK_SEARCH_PATHS = ${PODS_TESTS_FBSNAPSHOTTESTCASE_FRAMEWORK_SEARCH_PATHS} 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Build" "${PODS_ROOT}/Headers/Build/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/Specta" 5 | OTHER_LDFLAGS = ${PODS_TESTS_FBSNAPSHOTTESTCASE_OTHER_LDFLAGS} -ObjC 6 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-FBSnapshotTestCase/Pods-Tests-FBSnapshotTestCase-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Tests_FBSnapshotTestCase : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Tests_FBSnapshotTestCase 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-FBSnapshotTestCase/Pods-Tests-FBSnapshotTestCase-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-Tests-environment.h" 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-FBSnapshotTestCase/Pods-Tests-FBSnapshotTestCase.xcconfig: -------------------------------------------------------------------------------- 1 | PODS_TESTS_FBSNAPSHOTTESTCASE_FRAMEWORK_SEARCH_PATHS = $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" "$(PLATFORM_DIR)/Developer/Library/Frameworks" 2 | PODS_TESTS_FBSNAPSHOTTESTCASE_OTHER_LDFLAGS = -framework "XCTest" -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-Specta/Pods-Tests-Specta-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-Tests-Specta.xcconfig" 2 | FRAMEWORK_SEARCH_PATHS = ${PODS_TESTS_SPECTA_FRAMEWORK_SEARCH_PATHS} 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Build" "${PODS_ROOT}/Headers/Build/Specta" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/Specta" 5 | OTHER_LDFLAGS = ${PODS_TESTS_SPECTA_OTHER_LDFLAGS} -ObjC 6 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-Specta/Pods-Tests-Specta-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Tests_Specta : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Tests_Specta 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-Specta/Pods-Tests-Specta-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-Tests-environment.h" 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests-Specta/Pods-Tests-Specta.xcconfig: -------------------------------------------------------------------------------- 1 | PODS_TESTS_SPECTA_FRAMEWORK_SEARCH_PATHS = $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks" "$(SDKROOT)/Developer/Library/Frameworks" 2 | PODS_TESTS_SPECTA_OTHER_LDFLAGS = -framework "Foundation" -framework "XCTest" -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests/Pods-Tests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Tests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Tests 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests/Pods-Tests-environment.h: -------------------------------------------------------------------------------- 1 | 2 | // To check if a library is compiled with CocoaPods you 3 | // can use the `COCOAPODS` macro definition which is 4 | // defined in the xcconfigs so it is available in 5 | // headers also when they are imported in the client 6 | // project. 7 | 8 | 9 | // AFNetworking 10 | #define COCOAPODS_POD_AVAILABLE_AFNetworking 11 | #define COCOAPODS_VERSION_MAJOR_AFNetworking 2 12 | #define COCOAPODS_VERSION_MINOR_AFNetworking 5 13 | #define COCOAPODS_VERSION_PATCH_AFNetworking 3 14 | 15 | // AFNetworking/NSURLConnection 16 | #define COCOAPODS_POD_AVAILABLE_AFNetworking_NSURLConnection 17 | #define COCOAPODS_VERSION_MAJOR_AFNetworking_NSURLConnection 2 18 | #define COCOAPODS_VERSION_MINOR_AFNetworking_NSURLConnection 5 19 | #define COCOAPODS_VERSION_PATCH_AFNetworking_NSURLConnection 3 20 | 21 | // AFNetworking/NSURLSession 22 | #define COCOAPODS_POD_AVAILABLE_AFNetworking_NSURLSession 23 | #define COCOAPODS_VERSION_MAJOR_AFNetworking_NSURLSession 2 24 | #define COCOAPODS_VERSION_MINOR_AFNetworking_NSURLSession 5 25 | #define COCOAPODS_VERSION_PATCH_AFNetworking_NSURLSession 3 26 | 27 | // AFNetworking/Reachability 28 | #define COCOAPODS_POD_AVAILABLE_AFNetworking_Reachability 29 | #define COCOAPODS_VERSION_MAJOR_AFNetworking_Reachability 2 30 | #define COCOAPODS_VERSION_MINOR_AFNetworking_Reachability 5 31 | #define COCOAPODS_VERSION_PATCH_AFNetworking_Reachability 3 32 | 33 | // AFNetworking/Security 34 | #define COCOAPODS_POD_AVAILABLE_AFNetworking_Security 35 | #define COCOAPODS_VERSION_MAJOR_AFNetworking_Security 2 36 | #define COCOAPODS_VERSION_MINOR_AFNetworking_Security 5 37 | #define COCOAPODS_VERSION_PATCH_AFNetworking_Security 3 38 | 39 | // AFNetworking/Serialization 40 | #define COCOAPODS_POD_AVAILABLE_AFNetworking_Serialization 41 | #define COCOAPODS_VERSION_MAJOR_AFNetworking_Serialization 2 42 | #define COCOAPODS_VERSION_MINOR_AFNetworking_Serialization 5 43 | #define COCOAPODS_VERSION_PATCH_AFNetworking_Serialization 3 44 | 45 | // AFNetworking/UIKit 46 | #define COCOAPODS_POD_AVAILABLE_AFNetworking_UIKit 47 | #define COCOAPODS_VERSION_MAJOR_AFNetworking_UIKit 2 48 | #define COCOAPODS_VERSION_MINOR_AFNetworking_UIKit 5 49 | #define COCOAPODS_VERSION_PATCH_AFNetworking_UIKit 3 50 | 51 | // BAHVimeoOAuth 52 | #define COCOAPODS_POD_AVAILABLE_BAHVimeoOAuth 53 | #define COCOAPODS_VERSION_MAJOR_BAHVimeoOAuth 0 54 | #define COCOAPODS_VERSION_MINOR_BAHVimeoOAuth 1 55 | #define COCOAPODS_VERSION_PATCH_BAHVimeoOAuth 0 56 | 57 | // Expecta 58 | #define COCOAPODS_POD_AVAILABLE_Expecta 59 | #define COCOAPODS_VERSION_MAJOR_Expecta 0 60 | #define COCOAPODS_VERSION_MINOR_Expecta 4 61 | #define COCOAPODS_VERSION_PATCH_Expecta 2 62 | 63 | // Expecta+Snapshots 64 | #define COCOAPODS_POD_AVAILABLE_Expecta_Snapshots 65 | #define COCOAPODS_VERSION_MAJOR_Expecta_Snapshots 1 66 | #define COCOAPODS_VERSION_MINOR_Expecta_Snapshots 3 67 | #define COCOAPODS_VERSION_PATCH_Expecta_Snapshots 2 68 | 69 | // FBSnapshotTestCase 70 | #define COCOAPODS_POD_AVAILABLE_FBSnapshotTestCase 71 | #define COCOAPODS_VERSION_MAJOR_FBSnapshotTestCase 1 72 | #define COCOAPODS_VERSION_MINOR_FBSnapshotTestCase 6 73 | #define COCOAPODS_VERSION_PATCH_FBSnapshotTestCase 0 74 | 75 | // Specta 76 | #define COCOAPODS_POD_AVAILABLE_Specta 77 | // This library does not follow semantic-versioning, 78 | // so we were not able to define version macros. 79 | // Please contact the author. 80 | // Version: 0.3.0.beta1. 81 | 82 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests/Pods-Tests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks" "$(SDKROOT)/Developer/Library/Frameworks" $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks" "$(SDKROOT)/Developer/Library/Frameworks" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/Specta" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" -isystem "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" -isystem "${PODS_ROOT}/Headers/Public/Specta" 5 | OTHER_LDFLAGS = -ObjC -l"Pods-Tests-AFNetworking" -l"Pods-Tests-BAHVimeoOAuth" -l"Pods-Tests-Expecta" -l"Pods-Tests-Expecta+Snapshots" -l"Pods-Tests-FBSnapshotTestCase" -l"Pods-Tests-Specta" -framework "CoreGraphics" -framework "Foundation" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" -framework "XCTest" 6 | OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) 7 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-Tests/Pods-Tests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks" "$(SDKROOT)/Developer/Library/Frameworks" $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks" "$(SDKROOT)/Developer/Library/Frameworks" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/Specta" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/BAHVimeoOAuth" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" -isystem "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" -isystem "${PODS_ROOT}/Headers/Public/Specta" 5 | OTHER_LDFLAGS = -ObjC -l"Pods-Tests-AFNetworking" -l"Pods-Tests-BAHVimeoOAuth" -l"Pods-Tests-Expecta" -l"Pods-Tests-Expecta+Snapshots" -l"Pods-Tests-FBSnapshotTestCase" -l"Pods-Tests-Specta" -framework "CoreGraphics" -framework "Foundation" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" -framework "XCTest" 6 | OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) 7 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Example/Tests/Tests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /Example/Tests/Tests-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every test case source file. 5 | // 6 | 7 | #ifdef __OBJC__ 8 | 9 | #define EXP_SHORTHAND 10 | #import 11 | #import 12 | #import 13 | #import 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /Example/Tests/Tests.m: -------------------------------------------------------------------------------- 1 | // 2 | // BAHVimeoOAuthTests.m 3 | // BAHVimeoOAuthTests 4 | // 5 | // Created by BHughes3388 on 02/12/2015. 6 | // Copyright (c) 2014 BHughes3388. All rights reserved. 7 | // 8 | 9 | SpecBegin(InitialSpecs) 10 | 11 | describe(@"these will fail", ^{ 12 | 13 | it(@"can do maths", ^{ 14 | expect(1).to.equal(2); 15 | }); 16 | 17 | it(@"can read", ^{ 18 | expect(@"number").to.equal(@"string"); 19 | }); 20 | 21 | it(@"will wait and fail", ^AsyncBlock { 22 | 23 | }); 24 | }); 25 | 26 | describe(@"these will pass", ^{ 27 | 28 | it(@"can do maths", ^{ 29 | expect(1).beLessThan(23); 30 | }); 31 | 32 | it(@"can read", ^{ 33 | expect(@"team").toNot.contain(@"I"); 34 | }); 35 | 36 | it(@"will wait and succeed", ^AsyncBlock { 37 | dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{ 38 | done(); 39 | }); 40 | }); 41 | }); 42 | 43 | SpecEnd 44 | -------------------------------------------------------------------------------- /Example/Tests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 BHughes3388 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pod/Assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BHughes3388/BAHVimeoOAuth/eaa54005284d66238d71e940e171d777ca19644e/Pod/Assets/.gitkeep -------------------------------------------------------------------------------- /Pod/Assets/vimeo_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BHughes3388/BAHVimeoOAuth/eaa54005284d66238d71e940e171d777ca19644e/Pod/Assets/vimeo_logo.png -------------------------------------------------------------------------------- /Pod/Classes/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BHughes3388/BAHVimeoOAuth/eaa54005284d66238d71e940e171d777ca19644e/Pod/Classes/.gitkeep -------------------------------------------------------------------------------- /Pod/Classes/BAHVimeoOAuth.h: -------------------------------------------------------------------------------- 1 | // 2 | // BAHVimeoOAuth.h 3 | // BAHVimeoOAuth 4 | // 5 | // Created by BHughes on 1/31/15. 6 | // Copyright (c) 2015 BHughes. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "BAHVimeoOAuthViewController.h" 12 | 13 | 14 | //! Project version number for BAHVimeoOAuth. 15 | //FOUNDATION_EXPORT double BAHVimeoOAuthVersionNumber; 16 | 17 | //! Project version string for BAHVimeoOAuth. 18 | //FOUNDATION_EXPORT const unsigned char BAHVimeoOAuthVersionString[]; 19 | 20 | // In this header, you should import all the public headers of your framework using statements like #import 21 | 22 | 23 | typedef void (^VimeoCompletelion)(BOOL success, NSString *VimeoToken); 24 | 25 | @interface BAHVimeoOAuth : NSObject 26 | 27 | @property(copy, nonatomic)VimeoCompletelion completelion; 28 | 29 | - (void)authenticateWithVimeoUsingVimeoClientID:(NSString*)vimeoClientID 30 | vimeoAuthorizationHeader:(NSString*)vimeoAuthorizationHeader 31 | scope:(NSString*)scope 32 | state:(NSString*)state 33 | appURLCallBack:(NSString*)appURLCallBack 34 | viewController:(id)viewController 35 | :(void (^)(BOOL success, NSString *vimeoToken))completelion; 36 | 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /Pod/Classes/BAHVimeoOAuth.m: -------------------------------------------------------------------------------- 1 | // 2 | // BAHVimeoOAuth.m 3 | // BAHVimeoOAuth 4 | // 5 | // Created by BHughes on 1/31/15. 6 | // Copyright (c) 2015 BHughes. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BAHVimeoOAuth.h" 11 | 12 | 13 | @interface BAHVimeoOAuth () 14 | 15 | @end 16 | 17 | @implementation BAHVimeoOAuth : NSObject 18 | 19 | static NSString *vimeoAuthURL = @"https://api.vimeo.com/oauth/authorize"; 20 | 21 | - (void)authenticateWithVimeoUsingVimeoClientID:(NSString *)vimeoClientID vimeoAuthorizationHeader:(NSString *)vimeoAuthorizationHeader scope:(NSString *)scope state:(NSString *)state appURLCallBack:(NSString *)appURLCallBack viewController:(id)viewController :(void (^)(BOOL, NSString *))completelion{ 22 | 23 | if (!scope) { 24 | scope = @"public"; 25 | } 26 | 27 | NSString *authenticateURLString = [NSString stringWithFormat:@"%@?client_id=%@&response_type=code&state=%@&scope=%@&redirect_uri=%@", vimeoAuthURL, vimeoClientID, state, scope, appURLCallBack]; 28 | 29 | BAHVimeoOAuthViewController *OAuthController = [[BAHVimeoOAuthViewController alloc]init]; 30 | 31 | UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:OAuthController]; 32 | 33 | [viewController presentViewController:navController animated:YES completion:^{ 34 | OAuthController.vimeoAuthorizationHeader = vimeoAuthorizationHeader; 35 | OAuthController.uriCallBack = appURLCallBack; 36 | OAuthController.state = state; 37 | OAuthController.vimeoSender = self; 38 | [OAuthController.oAuthWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:authenticateURLString]]]; 39 | 40 | }]; 41 | 42 | self.completelion = completelion; 43 | 44 | } 45 | 46 | @end -------------------------------------------------------------------------------- /Pod/Classes/BAHVimeoOAuthViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BAHVimeoOAuthViewController.h 3 | // BAHVimeoOAuth 4 | // 5 | // Created by BHughes on 1/31/15. 6 | // Copyright (c) 2015 BHughes. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "BAHVimeoOAuth.h" 12 | 13 | 14 | @interface BAHVimeoOAuthViewController : UIViewController 15 | 16 | @property (nonatomic, strong)id vimeoSender; 17 | 18 | @property (nonatomic, strong)UIWebView *oAuthWebView; 19 | 20 | @property (nonatomic, strong)NSString *vimeoAuthorizationHeader; 21 | 22 | @property (nonatomic, strong)NSString *uriCallBack; 23 | 24 | @property (nonatomic, strong)NSString *state; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BAHVimeoOAuth 2 | 3 | [![CI Status](http://img.shields.io/travis/BHughes3388/BAHVimeoOAuth.svg?style=flat)](https://travis-ci.org/BHughes3388/BAHVimeoOAuth) 4 | [![Version](https://img.shields.io/cocoapods/v/BAHVimeoOAuth.svg?style=flat)](http://cocoadocs.org/docsets/BAHVimeoOAuth) 5 | [![License](https://img.shields.io/cocoapods/l/BAHVimeoOAuth.svg?style=flat)](http://cocoadocs.org/docsets/BAHVimeoOAuth) 6 | [![Platform](https://img.shields.io/cocoapods/p/BAHVimeoOAuth.svg?style=flat)](http://cocoadocs.org/docsets/BAHVimeoOAuth) 7 | 8 | ## Preview 9 | 10 | ![](http://img.photobucket.com/albums/v235/rx7anator/Mobile%20Applications/6bffa370-627d-43b7-8128-136d11700b27_zpsgdk1fbjo.png) ![](http://img.photobucket.com/albums/v235/rx7anator/Mobile%20Applications/VimeoOAuth_zpsl69a72mp.gif) 11 | 12 | ## Usage 13 | 14 | To run the example project, clone the repo, and run `pod install` from the Example directory first. 15 | 16 | ## Installation 17 | 18 | BAHVimeoOAuth is available through [CocoaPods](http://cocoapods.org). To install 19 | it, simply add the following line to your Podfile: 20 | 21 | pod "BAHVimeoOAuth" 22 | 23 | ## Setup 24 | 25 | Import 26 | ```Objective-C 27 | #import "BAHVimeoOAuth.h" 28 | ``` 29 | 30 | Where ever you would like your user to login to vimeo and retrieve a token 31 | ```Objective-C 32 | BAHVimeoOAuth *vimeoOAuth = [[BAHVimeoOAuth alloc]init]; 33 | 34 | [vimeoOAuth authenticateWithVimeoUsingVimeoClientID:vimeoClientID 35 | vimeoAuthorizationHeader:vimeoAuthorizationHeader 36 | scope:nil 37 | state:state 38 | appURLCallBack:appURLCallBack 39 | viewController:self 40 | :^(BOOL success, NSString *vimeoToken) { 41 | 42 | if (success) { 43 | 44 | //Optional saving the returned token to NSUserDefaults 45 | [[NSUserDefaults standardUserDefaults] setObject:vimeoToken forKey:@"vimeo_token"]; 46 | [[NSUserDefaults standardUserDefaults] synchronize]; 47 | 48 | //Do what ever you need to do with the returned token 49 | //[self requestVideosFromVimeo]; 50 | 51 | } 52 | 53 | }]; 54 | ``` 55 | 56 | ## Author 57 | 58 | BHughes3388, BHughes3388@gmail.com 59 | 60 | ## License 61 | 62 | BAHVimeoOAuth is available under the MIT license. See the LICENSE file for more info. 63 | 64 | --------------------------------------------------------------------------------