├── CHANGELOG.md ├── CONTRIBUTORS.md ├── TestsAndSample ├── Pods │ ├── Pods-SHSegueBlocks.xcconfig │ ├── Pods-SHUIKitBlocks.xcconfig │ ├── Pods-SHActionSheetBlocks.xcconfig │ ├── Pods-SHAlertViewBlocks.xcconfig │ ├── Pods-SHControlBlocks.xcconfig │ ├── Pods-SHObjectUserInfo.xcconfig │ ├── Pods-SHTextFieldBlocks.xcconfig │ ├── Pods-SHTextViewBlocks.xcconfig │ ├── Pods-SHTransitionBlocks.xcconfig │ ├── Pods-SHWebViewBlocks.xcconfig │ ├── Pods-SHBarButtonItemBlocks.xcconfig │ ├── Pods-SHTabBarControllerBlocks.xcconfig │ ├── Headers │ │ ├── KIF │ │ │ ├── KIF.h │ │ │ ├── KIFTypist.h │ │ │ ├── KIFTestActor.h │ │ │ ├── KIFTestCase.h │ │ │ ├── KIFUITestActor.h │ │ │ ├── KIFSystemTestActor.h │ │ │ ├── KIFTestStepValidation.h │ │ │ ├── NSBundle-KIFAdditions.h │ │ │ ├── NSError-KIFAdditions.h │ │ │ ├── UITouch-KIFAdditions.h │ │ │ ├── UIView-KIFAdditions.h │ │ │ ├── UIWindow-KIFAdditions.h │ │ │ ├── CGGeometry-KIFAdditions.h │ │ │ ├── XCTestCase-KIFAdditions.h │ │ │ ├── NSException-KIFAdditions.h │ │ │ ├── NSFileManager-KIFAdditions.h │ │ │ ├── UIApplication-KIFAdditions.h │ │ │ ├── UIScrollView-KIFAdditions.h │ │ │ └── UIAccessibilityElement-KIFAdditions.h │ │ ├── SHUIKitBlocks │ │ │ └── SHUIKitBlocks.h │ │ ├── SHSegueBlocks │ │ │ ├── SHSegueBlocks.h │ │ │ └── UIViewController+SHSegueBlocks.h │ │ ├── SHControlBlocks │ │ │ ├── SHControlBlocks.h │ │ │ └── UIControl+SHControlBlocks.h │ │ ├── SHWebViewBlocks │ │ │ ├── SHWebViewBlocks.h │ │ │ └── UIWebView+SHWebViewBlocks.h │ │ ├── SHObjectUserInfo │ │ │ ├── SHObjectUserInfo.h │ │ │ └── NSObject+SHObjectUserInfo.h │ │ ├── SHTextViewBlocks │ │ │ ├── SHTextViewBlocks.h │ │ │ └── UITextView+SHTextViewBlocks.h │ │ ├── SHAlertViewBlocks │ │ │ ├── SHAlertViewBlocks.h │ │ │ └── UIAlertView+SHAlertViewBlocks.h │ │ ├── SHTextFieldBlocks │ │ │ ├── SHTextFieldBlocks.h │ │ │ └── UITextField+SHTextFieldBlocks.h │ │ ├── SHTransitionBlocks │ │ │ ├── SHTransitionBlocks.h │ │ │ └── UIViewController+SHTransitionBlocks.h │ │ ├── SHActionSheetBlocks │ │ │ ├── SHActionSheetBlocks.h │ │ │ └── UIActionSheet+SHActionSheetBlocks.h │ │ ├── SHTestCaseAdditions │ │ │ ├── __SHTestCaseInternal.h │ │ │ ├── __SHTestCaseShared.h │ │ │ ├── SHTestCaseAdditions.h │ │ │ └── XCTestCase+SHTestCaseAdditions.h │ │ ├── SHBarButtonItemBlocks │ │ │ ├── SHBarButtonItemBlocks.h │ │ │ └── UIBarButtonItem+SHBarButtonItemBlocks.h │ │ ├── SHTabBarControllerBlocks │ │ │ ├── SHTabBarControllerBlocks.h │ │ │ └── UITabBarController+SHTabBarControllerBlocks.h │ │ ├── SHGestureRecognizerBlocks │ │ │ ├── SHGestureRecognizerBlocks.h │ │ │ └── UIGestureRecognizer+SHGestureRecognizerBlocks.h │ │ ├── SHPopoverControllerBlocks │ │ │ ├── SHPopoverControllerBlocks.h │ │ │ └── UIPopoverController+SHPopoverControllerBlocks.h │ │ └── SHNavigationControllerBlocks │ │ │ ├── SHNavigationControllerBlocks.h │ │ │ └── UINavigationController+SHNavigationControllerBlocks.h │ ├── Pods-SHGestureRecognizerBlocks.xcconfig │ ├── Pods-SHNavigationControllerBlocks.xcconfig │ ├── Pods-SHPopoverControllerBlocks.xcconfig │ ├── BuildHeaders │ │ ├── KIF │ │ │ ├── KIF.h │ │ │ ├── KIFTypist.h │ │ │ ├── KIFTestActor.h │ │ │ ├── KIFTestCase.h │ │ │ ├── KIFUITestActor.h │ │ │ ├── LoadableCategory.h │ │ │ ├── KIFSystemTestActor.h │ │ │ ├── KIFTestStepValidation.h │ │ │ ├── NSBundle-KIFAdditions.h │ │ │ ├── NSError-KIFAdditions.h │ │ │ ├── UITouch-KIFAdditions.h │ │ │ ├── UIView-KIFAdditions.h │ │ │ ├── UIWindow-KIFAdditions.h │ │ │ ├── CGGeometry-KIFAdditions.h │ │ │ ├── XCTestCase-KIFAdditions.h │ │ │ ├── NSException-KIFAdditions.h │ │ │ ├── NSFileManager-KIFAdditions.h │ │ │ ├── UIApplication-KIFAdditions.h │ │ │ ├── UIScrollView-KIFAdditions.h │ │ │ └── UIAccessibilityElement-KIFAdditions.h │ │ ├── SHUIKitBlocks │ │ │ └── SHUIKitBlocks.h │ │ ├── SHSegueBlocks │ │ │ ├── SHSegueBlocks.h │ │ │ └── UIViewController+SHSegueBlocks.h │ │ ├── SHControlBlocks │ │ │ ├── SHControlBlocks.h │ │ │ └── UIControl+SHControlBlocks.h │ │ ├── SHWebViewBlocks │ │ │ ├── SHWebViewBlocks.h │ │ │ └── UIWebView+SHWebViewBlocks.h │ │ ├── SHObjectUserInfo │ │ │ ├── SHObjectUserInfo.h │ │ │ └── NSObject+SHObjectUserInfo.h │ │ ├── SHTextViewBlocks │ │ │ ├── SHTextViewBlocks.h │ │ │ └── UITextView+SHTextViewBlocks.h │ │ ├── SHAlertViewBlocks │ │ │ ├── SHAlertViewBlocks.h │ │ │ └── UIAlertView+SHAlertViewBlocks.h │ │ ├── SHTextFieldBlocks │ │ │ ├── SHTextFieldBlocks.h │ │ │ └── UITextField+SHTextFieldBlocks.h │ │ ├── SHTransitionBlocks │ │ │ ├── SHTransitionBlocks.h │ │ │ └── UIViewController+SHTransitionBlocks.h │ │ ├── SHActionSheetBlocks │ │ │ ├── SHActionSheetBlocks.h │ │ │ └── UIActionSheet+SHActionSheetBlocks.h │ │ ├── SHTestCaseAdditions │ │ │ ├── __SHTestCaseInternal.h │ │ │ ├── __SHTestCaseShared.h │ │ │ ├── SHTestCaseAdditions.h │ │ │ └── XCTestCase+SHTestCaseAdditions.h │ │ ├── SHBarButtonItemBlocks │ │ │ ├── SHBarButtonItemBlocks.h │ │ │ └── UIBarButtonItem+SHBarButtonItemBlocks.h │ │ ├── SHTabBarControllerBlocks │ │ │ ├── SHTabBarControllerBlocks.h │ │ │ └── UITabBarController+SHTabBarControllerBlocks.h │ │ ├── SHGestureRecognizerBlocks │ │ │ ├── SHGestureRecognizerBlocks.h │ │ │ └── UIGestureRecognizer+SHGestureRecognizerBlocks.h │ │ ├── SHPopoverControllerBlocks │ │ │ ├── SHPopoverControllerBlocks.h │ │ │ └── UIPopoverController+SHPopoverControllerBlocks.h │ │ └── SHNavigationControllerBlocks │ │ │ ├── SHNavigationControllerBlocks.h │ │ │ └── UINavigationController+SHNavigationControllerBlocks.h │ ├── SHWebViewBlocks │ │ ├── SHWebViewBlocks │ │ │ ├── SHWebViewBlocks.h │ │ │ └── UIWebView+SHWebViewBlocks.h │ │ ├── LICENSE.md │ │ └── README.md │ ├── SHControlBlocks │ │ ├── SHControlBlocks │ │ │ ├── SHControlBlocks.h │ │ │ └── UIControl+SHControlBlocks.h │ │ └── LICENSE.md │ ├── SHSegueBlocks │ │ ├── SHSegueBlocks │ │ │ ├── SHSegueBlocks.h │ │ │ └── UIViewController+SHSegueBlocks.h │ │ └── LICENSE.md │ ├── SHAlertViewBlocks │ │ ├── SHAlertViewBlocks │ │ │ ├── SHAlertViewBlocks.h │ │ │ └── UIAlertView+SHAlertViewBlocks.h │ │ └── LICENSE.md │ ├── SHObjectUserInfo │ │ ├── SHObjectUserInfo │ │ │ ├── SHObjectUserInfo.h │ │ │ ├── NSObject+SHObjectUserInfo.h │ │ │ └── NSObject+SHObjectUserInfo.m │ │ ├── LICENSE.md │ │ └── README.md │ ├── SHTextViewBlocks │ │ ├── SHTextViewBlocks │ │ │ ├── SHTextViewBlocks.h │ │ │ └── UITextView+SHTextViewBlocks.h │ │ ├── LICENSE.md │ │ └── README.md │ ├── SHTextFieldBlocks │ │ ├── SHTextFieldBlocks │ │ │ ├── SHTextFieldBlocks.h │ │ │ └── UITextField+SHTextFieldBlocks.h │ │ ├── LICENSE.md │ │ └── README.md │ ├── SHActionSheetBlocks │ │ ├── SHActionSheetBlocks │ │ │ ├── SHActionSheetBlocks.h │ │ │ └── UIActionSheet+SHActionSheetBlocks.h │ │ └── LICENSE.md │ ├── SHTestCaseAdditions │ │ ├── SHTestCaseAdditions │ │ │ ├── XCTest │ │ │ │ ├── SHTestCaseAdditions.h │ │ │ │ ├── XCTestCase+SHTestCaseAdditions.h │ │ │ │ └── XCTestCase+SHTestCaseAdditions.m │ │ │ ├── __SHTestCaseShared.h │ │ │ ├── __SHTestCaseInternal.h │ │ │ └── __SHTestCaseInternal.m │ │ └── LICENSE.md │ ├── SHTransitionBlocks │ │ ├── SHTransitionBlocks │ │ │ ├── SHTransitionBlocks.h │ │ │ └── UIViewController+SHTransitionBlocks.h │ │ └── LICENSE.md │ ├── SHBarButtonItemBlocks │ │ ├── SHBarButtonItemBlocks │ │ │ ├── SHBarButtonItemBlocks.h │ │ │ └── UIBarButtonItem+SHBarButtonItemBlocks.h │ │ └── LICENSE.md │ ├── Pods-SHControlBlocks-prefix.pch │ ├── Pods-SHSegueBlocks-prefix.pch │ ├── Pods-SHUIKitBlocks-prefix.pch │ ├── Pods-SHWebViewBlocks-prefix.pch │ ├── Pods-SHActionSheetBlocks-prefix.pch │ ├── Pods-SHAlertViewBlocks-prefix.pch │ ├── Pods-SHObjectUserInfo-prefix.pch │ ├── Pods-SHTextFieldBlocks-prefix.pch │ ├── Pods-SHTextViewBlocks-prefix.pch │ ├── Pods-SHTransitionBlocks-prefix.pch │ ├── Pods-SHBarButtonItemBlocks-prefix.pch │ ├── Pods-SHGestureRecognizerBlocks-prefix.pch │ ├── Pods-SHPopoverControllerBlocks-prefix.pch │ ├── Pods-SHTabBarControllerBlocks-prefix.pch │ ├── SHTabBarControllerBlocks │ │ ├── SHTabBarControllerBlocks │ │ │ ├── SHTabBarControllerBlocks.h │ │ │ └── UITabBarController+SHTabBarControllerBlocks.h │ │ └── LICENSE.md │ ├── Pods-SHNavigationControllerBlocks-prefix.pch │ ├── SHGestureRecognizerBlocks │ │ ├── SHGestureRecognizerBlocks │ │ │ ├── SHGestureRecognizerBlocks.h │ │ │ └── UIGestureRecognizer+SHGestureRecognizerBlocks.h │ │ └── LICENSE.md │ ├── SHPopoverControllerBlocks │ │ ├── SHPopoverControllerBlocks │ │ │ ├── SHPopoverControllerBlocks.h │ │ │ └── UIPopoverController+SHPopoverControllerBlocks.h │ │ └── LICENSE.md │ ├── Pods-Tests-SHTestCaseAdditions-prefix.pch │ ├── Pods-dummy.m │ ├── SHNavigationControllerBlocks │ │ ├── SHNavigationControllerBlocks │ │ │ ├── SHNavigationControllerBlocks.h │ │ │ └── UINavigationController+SHNavigationControllerBlocks.h │ │ └── LICENSE.md │ ├── Pods-Tests-dummy.m │ ├── Pods-Tests-KIF-prefix.pch │ ├── Pods-Tests-KIF-dummy.m │ ├── Pods-SHSegueBlocks-dummy.m │ ├── Pods-SHUIKitBlocks-dummy.m │ ├── Pods-SHControlBlocks-dummy.m │ ├── Pods-SHWebViewBlocks-dummy.m │ ├── Pods-SHAlertViewBlocks-dummy.m │ ├── Pods-SHObjectUserInfo-dummy.m │ ├── Pods-SHTextFieldBlocks-dummy.m │ ├── Pods-SHTextViewBlocks-dummy.m │ ├── Pods-SHTransitionBlocks-dummy.m │ ├── Pods-SHActionSheetBlocks-dummy.m │ ├── Pods-SHBarButtonItemBlocks-dummy.m │ ├── Pods-Tests-SHTestCaseAdditions.xcconfig │ ├── Pods-SHGestureRecognizerBlocks-dummy.m │ ├── Pods-SHPopoverControllerBlocks-dummy.m │ ├── Pods-SHTabBarControllerBlocks-dummy.m │ ├── Pods-Tests-SHTestCaseAdditions-dummy.m │ ├── Pods-SHNavigationControllerBlocks-dummy.m │ ├── Pods-Tests-KIF.xcconfig │ ├── KIF │ │ ├── Additions │ │ │ ├── NSBundle-KIFAdditions.h │ │ │ ├── XCTestCase-KIFAdditions.h │ │ │ ├── NSException-KIFAdditions.h │ │ │ ├── CGGeometry-KIFAdditions.m │ │ │ ├── UIWindow-KIFAdditions.m │ │ │ ├── NSError-KIFAdditions.h │ │ │ ├── UIWindow-KIFAdditions.h │ │ │ ├── UIScrollView-KIFAdditions.h │ │ │ ├── NSFileManager-KIFAdditions.h │ │ │ ├── NSBundle-KIFAdditions.m │ │ │ ├── UITouch-KIFAdditions.h │ │ │ ├── CGGeometry-KIFAdditions.h │ │ │ ├── LoadableCategory.h │ │ │ ├── NSException-KIFAdditions.m │ │ │ ├── XCTestCase-KIFAdditions.m │ │ │ ├── NSError-KIFAdditions.m │ │ │ ├── NSFileManager-KIFAdditions.m │ │ │ ├── UIScrollView-KIFAdditions.m │ │ │ └── UITouch-KIFAdditions.m │ │ ├── Classes │ │ │ ├── KIFTypist.h │ │ │ ├── KIF.h │ │ │ ├── KIFTestStepValidation.m │ │ │ ├── KIFTestStepValidation.h │ │ │ ├── KIFTestCase.h │ │ │ ├── KIFSystemTestActor.h │ │ │ └── KIFSystemTestActor.m │ │ └── LICENSE │ ├── Pods-SHSegueBlocks-Private.xcconfig │ ├── Pods-SHUIKitBlocks-Private.xcconfig │ ├── Pods-SHControlBlocks-Private.xcconfig │ ├── Pods-SHObjectUserInfo-Private.xcconfig │ ├── Pods-SHTextViewBlocks-Private.xcconfig │ ├── Pods-SHWebViewBlocks-Private.xcconfig │ ├── Pods-SHAlertViewBlocks-Private.xcconfig │ ├── Pods-SHTextFieldBlocks-Private.xcconfig │ ├── Pods-SHActionSheetBlocks-Private.xcconfig │ ├── Pods-SHTransitionBlocks-Private.xcconfig │ ├── Pods-SHBarButtonItemBlocks-Private.xcconfig │ ├── Pods-SHTabBarControllerBlocks-Private.xcconfig │ ├── Pods-SHGestureRecognizerBlocks-Private.xcconfig │ ├── Pods-SHPopoverControllerBlocks-Private.xcconfig │ ├── Pods-SHNavigationControllerBlocks-Private.xcconfig │ ├── Pods-Tests-KIF-Private.xcconfig │ ├── Pods-Tests-SHTestCaseAdditions-Private.xcconfig │ ├── Pods-Tests-environment.h │ ├── Local Podspecs │ │ ├── KIF.podspec │ │ └── SHUIKitBlocks.podspec │ ├── Pods.xcconfig │ ├── Pods-Tests.xcconfig │ ├── Pods-Tests-acknowledgements.markdown │ ├── Manifest.lock │ ├── Pods-Tests-acknowledgements.plist │ ├── Pods-resources.sh │ └── Pods-Tests-resources.sh ├── Sample │ ├── en.lproj │ │ └── InfoPlist.strings │ ├── SHAppDelegate.h │ ├── main.m │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── LaunchImage.launchimage │ │ │ └── Contents.json │ ├── Sample-Prefix.pch │ ├── Sample-Info.plist │ └── SHAppDelegate.m ├── Tests │ ├── en.lproj │ │ └── InfoPlist.strings │ ├── Tests-Prefix.pch │ ├── Tests-Info.plist │ └── SHUIKitBlocksTests.m ├── TestLoader │ ├── en.lproj │ │ └── InfoPlist.strings │ ├── SHAppDelegate.h │ ├── main.m │ ├── TestLoader-Prefix.pch │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── LaunchImage.launchimage │ │ │ └── Contents.json │ ├── TestLoader-Info.plist │ └── SHAppDelegate.m ├── Gemfile ├── Sample.xcworkspace │ └── contents.xcworkspacedata ├── Sample.xcodeproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── Guardfile ├── Podfile └── Podfile.lock ├── .travis.yml ├── SHUIKitBlocks └── SHUIKitBlocks.h ├── LICENSE.md └── SHUIKitBlocks.podspec /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHSegueBlocks.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHUIKitBlocks.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHActionSheetBlocks.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHAlertViewBlocks.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHControlBlocks.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHObjectUserInfo.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTextFieldBlocks.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTextViewBlocks.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTransitionBlocks.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHWebViewBlocks.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHBarButtonItemBlocks.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTabBarControllerBlocks.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/KIF.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Classes/KIF.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHGestureRecognizerBlocks.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHNavigationControllerBlocks.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHPopoverControllerBlocks.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/KIF.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Classes/KIF.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/KIFTypist.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Classes/KIFTypist.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/KIFTypist.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Classes/KIFTypist.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/KIFTestActor.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Classes/KIFTestActor.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/KIFTestCase.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Classes/KIFTestCase.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/KIFTestActor.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Classes/KIFTestActor.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/KIFTestCase.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Classes/KIFTestCase.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/KIFUITestActor.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Classes/KIFUITestActor.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/KIFUITestActor.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Classes/KIFUITestActor.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/LoadableCategory.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/LoadableCategory.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/KIFSystemTestActor.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Classes/KIFSystemTestActor.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/KIFSystemTestActor.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Classes/KIFSystemTestActor.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/KIFTestStepValidation.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Classes/KIFTestStepValidation.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/NSBundle-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/NSBundle-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/NSError-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/NSError-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/UITouch-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/UITouch-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/UIView-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/UIView-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/UIWindow-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/UIWindow-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHUIKitBlocks/SHUIKitBlocks.h: -------------------------------------------------------------------------------- 1 | ../../../../SHUIKitBlocks/SHUIKitBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/KIFTestStepValidation.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Classes/KIFTestStepValidation.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/NSBundle-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/NSBundle-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/NSError-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/NSError-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/UITouch-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/UITouch-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/UIView-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/UIView-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/UIWindow-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/UIWindow-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHUIKitBlocks/SHUIKitBlocks.h: -------------------------------------------------------------------------------- 1 | ../../../../SHUIKitBlocks/SHUIKitBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/CGGeometry-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/CGGeometry-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/XCTestCase-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/XCTestCase-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Sample/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /TestsAndSample/Tests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/CGGeometry-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/CGGeometry-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/XCTestCase-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/XCTestCase-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/NSException-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/NSException-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/NSFileManager-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/NSFileManager-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/UIApplication-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/UIApplication-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/UIScrollView-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/UIScrollView-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHSegueBlocks/SHSegueBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHSegueBlocks/SHSegueBlocks/SHSegueBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHWebViewBlocks/SHWebViewBlocks/SHWebViewBlocks.h: -------------------------------------------------------------------------------- 1 | #import "UIWebView+SHWebViewBlocks.h" -------------------------------------------------------------------------------- /TestsAndSample/TestLoader/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/NSException-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/NSException-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/NSFileManager-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/NSFileManager-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/UIApplication-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/UIApplication-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/UIScrollView-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/UIScrollView-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHSegueBlocks/SHSegueBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHSegueBlocks/SHSegueBlocks/SHSegueBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHControlBlocks/SHControlBlocks/SHControlBlocks.h: -------------------------------------------------------------------------------- 1 | #import "UIControl+SHControlBlocks.h" 2 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHSegueBlocks/SHSegueBlocks/SHSegueBlocks.h: -------------------------------------------------------------------------------- 1 | #import "UIViewController+SHSegueBlocks.h" 2 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHControlBlocks/SHControlBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHControlBlocks/SHControlBlocks/SHControlBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHWebViewBlocks/SHWebViewBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHWebViewBlocks/SHWebViewBlocks/SHWebViewBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHAlertViewBlocks/SHAlertViewBlocks/SHAlertViewBlocks.h: -------------------------------------------------------------------------------- 1 | #import "UIAlertView+SHAlertViewBlocks.h" -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHObjectUserInfo/SHObjectUserInfo/SHObjectUserInfo.h: -------------------------------------------------------------------------------- 1 | #import "NSObject+SHObjectUserInfo.h" 2 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTextViewBlocks/SHTextViewBlocks/SHTextViewBlocks.h: -------------------------------------------------------------------------------- 1 | #import "UITextView+SHTextViewBlocks.h" 2 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHControlBlocks/SHControlBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHControlBlocks/SHControlBlocks/SHControlBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHWebViewBlocks/SHWebViewBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHWebViewBlocks/SHWebViewBlocks/SHWebViewBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHObjectUserInfo/SHObjectUserInfo.h: -------------------------------------------------------------------------------- 1 | ../../SHObjectUserInfo/SHObjectUserInfo/SHObjectUserInfo.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHTextViewBlocks/SHTextViewBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTextViewBlocks/SHTextViewBlocks/SHTextViewBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTextFieldBlocks/SHTextFieldBlocks/SHTextFieldBlocks.h: -------------------------------------------------------------------------------- 1 | #import "UITextField+SHTextFieldBlocks.h" 2 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHObjectUserInfo/SHObjectUserInfo.h: -------------------------------------------------------------------------------- 1 | ../../SHObjectUserInfo/SHObjectUserInfo/SHObjectUserInfo.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHTextViewBlocks/SHTextViewBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTextViewBlocks/SHTextViewBlocks/SHTextViewBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/KIF/UIAccessibilityElement-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/UIAccessibilityElement-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHAlertViewBlocks/SHAlertViewBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHAlertViewBlocks/SHAlertViewBlocks/SHAlertViewBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHTextFieldBlocks/SHTextFieldBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTextFieldBlocks/SHTextFieldBlocks/SHTextFieldBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHActionSheetBlocks/SHActionSheetBlocks/SHActionSheetBlocks.h: -------------------------------------------------------------------------------- 1 | #import "UIActionSheet+SHActionSheetBlocks.h" -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/KIF/UIAccessibilityElement-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | ../../KIF/Additions/UIAccessibilityElement-KIFAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHAlertViewBlocks/SHAlertViewBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHAlertViewBlocks/SHAlertViewBlocks/SHAlertViewBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHTextFieldBlocks/SHTextFieldBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTextFieldBlocks/SHTextFieldBlocks/SHTextFieldBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHTransitionBlocks/SHTransitionBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTransitionBlocks/SHTransitionBlocks/SHTransitionBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTestCaseAdditions/SHTestCaseAdditions/XCTest/SHTestCaseAdditions.h: -------------------------------------------------------------------------------- 1 | #import "XCTestCase+SHTestCaseAdditions.h" -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTransitionBlocks/SHTransitionBlocks/SHTransitionBlocks.h: -------------------------------------------------------------------------------- 1 | #import "UIViewController+SHTransitionBlocks.h" 2 | -------------------------------------------------------------------------------- /TestsAndSample/Gemfile: -------------------------------------------------------------------------------- 1 | group :development do 2 | gem 'guard' 3 | gem 'terminal-notifier-guard' 4 | gem 'guard-xctool-test' 5 | end -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHTransitionBlocks/SHTransitionBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTransitionBlocks/SHTransitionBlocks/SHTransitionBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHActionSheetBlocks/SHActionSheetBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHActionSheetBlocks/SHActionSheetBlocks/SHActionSheetBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHControlBlocks/UIControl+SHControlBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHControlBlocks/SHControlBlocks/UIControl+SHControlBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHTestCaseAdditions/__SHTestCaseInternal.h: -------------------------------------------------------------------------------- 1 | ../../SHTestCaseAdditions/SHTestCaseAdditions/__SHTestCaseInternal.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHTestCaseAdditions/__SHTestCaseShared.h: -------------------------------------------------------------------------------- 1 | ../../SHTestCaseAdditions/SHTestCaseAdditions/__SHTestCaseShared.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHWebViewBlocks/UIWebView+SHWebViewBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHWebViewBlocks/SHWebViewBlocks/UIWebView+SHWebViewBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHActionSheetBlocks/SHActionSheetBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHActionSheetBlocks/SHActionSheetBlocks/SHActionSheetBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHControlBlocks/UIControl+SHControlBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHControlBlocks/SHControlBlocks/UIControl+SHControlBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHTestCaseAdditions/__SHTestCaseInternal.h: -------------------------------------------------------------------------------- 1 | ../../SHTestCaseAdditions/SHTestCaseAdditions/__SHTestCaseInternal.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHTestCaseAdditions/__SHTestCaseShared.h: -------------------------------------------------------------------------------- 1 | ../../SHTestCaseAdditions/SHTestCaseAdditions/__SHTestCaseShared.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHWebViewBlocks/UIWebView+SHWebViewBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHWebViewBlocks/SHWebViewBlocks/UIWebView+SHWebViewBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHObjectUserInfo/NSObject+SHObjectUserInfo.h: -------------------------------------------------------------------------------- 1 | ../../SHObjectUserInfo/SHObjectUserInfo/NSObject+SHObjectUserInfo.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHSegueBlocks/UIViewController+SHSegueBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHSegueBlocks/SHSegueBlocks/UIViewController+SHSegueBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHTestCaseAdditions/SHTestCaseAdditions.h: -------------------------------------------------------------------------------- 1 | ../../SHTestCaseAdditions/SHTestCaseAdditions/XCTest/SHTestCaseAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHTextViewBlocks/UITextView+SHTextViewBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTextViewBlocks/SHTextViewBlocks/UITextView+SHTextViewBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHBarButtonItemBlocks/SHBarButtonItemBlocks/SHBarButtonItemBlocks.h: -------------------------------------------------------------------------------- 1 | #import "UIBarButtonItem+SHBarButtonItemBlocks.h" 2 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHObjectUserInfo/NSObject+SHObjectUserInfo.h: -------------------------------------------------------------------------------- 1 | ../../SHObjectUserInfo/SHObjectUserInfo/NSObject+SHObjectUserInfo.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHSegueBlocks/UIViewController+SHSegueBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHSegueBlocks/SHSegueBlocks/UIViewController+SHSegueBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHTestCaseAdditions/SHTestCaseAdditions.h: -------------------------------------------------------------------------------- 1 | ../../SHTestCaseAdditions/SHTestCaseAdditions/XCTest/SHTestCaseAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHTextViewBlocks/UITextView+SHTextViewBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTextViewBlocks/SHTextViewBlocks/UITextView+SHTextViewBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHBarButtonItemBlocks/SHBarButtonItemBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHBarButtonItemBlocks/SHBarButtonItemBlocks/SHBarButtonItemBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHControlBlocks-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHSegueBlocks-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHUIKitBlocks-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHWebViewBlocks-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHBarButtonItemBlocks/SHBarButtonItemBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHBarButtonItemBlocks/SHBarButtonItemBlocks/SHBarButtonItemBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHAlertViewBlocks/UIAlertView+SHAlertViewBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHAlertViewBlocks/SHAlertViewBlocks/UIAlertView+SHAlertViewBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHTextFieldBlocks/UITextField+SHTextFieldBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTextFieldBlocks/SHTextFieldBlocks/UITextField+SHTextFieldBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHActionSheetBlocks-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHAlertViewBlocks-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHObjectUserInfo-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTextFieldBlocks-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTextViewBlocks-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTransitionBlocks-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHAlertViewBlocks/UIAlertView+SHAlertViewBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHAlertViewBlocks/SHAlertViewBlocks/UIAlertView+SHAlertViewBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHTextFieldBlocks/UITextField+SHTextFieldBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTextFieldBlocks/SHTextFieldBlocks/UITextField+SHTextFieldBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHBarButtonItemBlocks-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHGestureRecognizerBlocks-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHPopoverControllerBlocks-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTabBarControllerBlocks-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTabBarControllerBlocks/SHTabBarControllerBlocks/SHTabBarControllerBlocks.h: -------------------------------------------------------------------------------- 1 | #import "UITabBarController+SHTabBarControllerBlocks.h" 2 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHTabBarControllerBlocks/SHTabBarControllerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTabBarControllerBlocks/SHTabBarControllerBlocks/SHTabBarControllerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHNavigationControllerBlocks-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHGestureRecognizerBlocks/SHGestureRecognizerBlocks/SHGestureRecognizerBlocks.h: -------------------------------------------------------------------------------- 1 | #import "UIGestureRecognizer+SHGestureRecognizerBlocks.h" 2 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHPopoverControllerBlocks/SHPopoverControllerBlocks/SHPopoverControllerBlocks.h: -------------------------------------------------------------------------------- 1 | #import "UIPopoverController+SHPopoverControllerBlocks.h" 2 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHTabBarControllerBlocks/SHTabBarControllerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTabBarControllerBlocks/SHTabBarControllerBlocks/SHTabBarControllerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHActionSheetBlocks/UIActionSheet+SHActionSheetBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHActionSheetBlocks/SHActionSheetBlocks/UIActionSheet+SHActionSheetBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHGestureRecognizerBlocks/SHGestureRecognizerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHGestureRecognizerBlocks/SHGestureRecognizerBlocks/SHGestureRecognizerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHPopoverControllerBlocks/SHPopoverControllerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHPopoverControllerBlocks/SHPopoverControllerBlocks/SHPopoverControllerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHTestCaseAdditions/XCTestCase+SHTestCaseAdditions.h: -------------------------------------------------------------------------------- 1 | ../../SHTestCaseAdditions/SHTestCaseAdditions/XCTest/XCTestCase+SHTestCaseAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHTransitionBlocks/UIViewController+SHTransitionBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTransitionBlocks/SHTransitionBlocks/UIViewController+SHTransitionBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-Tests-SHTestCaseAdditions-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-Tests-environment.h" 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods : NSObject 3 | @end 4 | @implementation PodsDummy_Pods 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHActionSheetBlocks/UIActionSheet+SHActionSheetBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHActionSheetBlocks/SHActionSheetBlocks/UIActionSheet+SHActionSheetBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHGestureRecognizerBlocks/SHGestureRecognizerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHGestureRecognizerBlocks/SHGestureRecognizerBlocks/SHGestureRecognizerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHPopoverControllerBlocks/SHPopoverControllerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHPopoverControllerBlocks/SHPopoverControllerBlocks/SHPopoverControllerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHTestCaseAdditions/XCTestCase+SHTestCaseAdditions.h: -------------------------------------------------------------------------------- 1 | ../../SHTestCaseAdditions/SHTestCaseAdditions/XCTest/XCTestCase+SHTestCaseAdditions.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHTransitionBlocks/UIViewController+SHTransitionBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTransitionBlocks/SHTransitionBlocks/UIViewController+SHTransitionBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHNavigationControllerBlocks/SHNavigationControllerBlocks/SHNavigationControllerBlocks.h: -------------------------------------------------------------------------------- 1 | #import "UINavigationController+SHNavigationControllerBlocks.h" -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHBarButtonItemBlocks/UIBarButtonItem+SHBarButtonItemBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHBarButtonItemBlocks/SHBarButtonItemBlocks/UIBarButtonItem+SHBarButtonItemBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHBarButtonItemBlocks/UIBarButtonItem+SHBarButtonItemBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHBarButtonItemBlocks/SHBarButtonItemBlocks/UIBarButtonItem+SHBarButtonItemBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHNavigationControllerBlocks/SHNavigationControllerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHNavigationControllerBlocks/SHNavigationControllerBlocks/SHNavigationControllerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-Tests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Tests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Tests 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHNavigationControllerBlocks/SHNavigationControllerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHNavigationControllerBlocks/SHNavigationControllerBlocks/SHNavigationControllerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-Tests-KIF-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-Tests-environment.h" 6 | #import 7 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-Tests-KIF-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Tests_KIF : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Tests_KIF 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHTabBarControllerBlocks/UITabBarController+SHTabBarControllerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTabBarControllerBlocks/SHTabBarControllerBlocks/UITabBarController+SHTabBarControllerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHTabBarControllerBlocks/UITabBarController+SHTabBarControllerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHTabBarControllerBlocks/SHTabBarControllerBlocks/UITabBarController+SHTabBarControllerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHGestureRecognizerBlocks/UIGestureRecognizer+SHGestureRecognizerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHGestureRecognizerBlocks/SHGestureRecognizerBlocks/UIGestureRecognizer+SHGestureRecognizerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHPopoverControllerBlocks/UIPopoverController+SHPopoverControllerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHPopoverControllerBlocks/SHPopoverControllerBlocks/UIPopoverController+SHPopoverControllerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHSegueBlocks-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SHSegueBlocks : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SHSegueBlocks 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHUIKitBlocks-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SHUIKitBlocks : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SHUIKitBlocks 5 | @end 6 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: objective-c 2 | before_install: 3 | - gem install xcpretty 4 | script: xcodebuild -workspace TestsAndSample/Sample.xcworkspace -scheme Tests -sdk iphonesimulator7.0 test | xcpretty -c 5 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHGestureRecognizerBlocks/UIGestureRecognizer+SHGestureRecognizerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHGestureRecognizerBlocks/SHGestureRecognizerBlocks/UIGestureRecognizer+SHGestureRecognizerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHPopoverControllerBlocks/UIPopoverController+SHPopoverControllerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHPopoverControllerBlocks/SHPopoverControllerBlocks/UIPopoverController+SHPopoverControllerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHControlBlocks-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SHControlBlocks : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SHControlBlocks 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHWebViewBlocks-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SHWebViewBlocks : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SHWebViewBlocks 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHAlertViewBlocks-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SHAlertViewBlocks : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SHAlertViewBlocks 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHObjectUserInfo-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SHObjectUserInfo : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SHObjectUserInfo 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTextFieldBlocks-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SHTextFieldBlocks : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SHTextFieldBlocks 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTextViewBlocks-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SHTextViewBlocks : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SHTextViewBlocks 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTransitionBlocks-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SHTransitionBlocks : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SHTransitionBlocks 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Headers/SHNavigationControllerBlocks/UINavigationController+SHNavigationControllerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHNavigationControllerBlocks/SHNavigationControllerBlocks/UINavigationController+SHNavigationControllerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHActionSheetBlocks-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SHActionSheetBlocks : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SHActionSheetBlocks 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Sample.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/BuildHeaders/SHNavigationControllerBlocks/UINavigationController+SHNavigationControllerBlocks.h: -------------------------------------------------------------------------------- 1 | ../../SHNavigationControllerBlocks/SHNavigationControllerBlocks/UINavigationController+SHNavigationControllerBlocks.h -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHBarButtonItemBlocks-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SHBarButtonItemBlocks : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SHBarButtonItemBlocks 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-Tests-SHTestCaseAdditions.xcconfig: -------------------------------------------------------------------------------- 1 | PODS_TESTS_SHTESTCASEADDITIONS_FRAMEWORK_SEARCH_PATHS = $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" 2 | PODS_TESTS_SHTESTCASEADDITIONS_OTHER_LDFLAGS = -framework XCTest -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHGestureRecognizerBlocks-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SHGestureRecognizerBlocks : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SHGestureRecognizerBlocks 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHPopoverControllerBlocks-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SHPopoverControllerBlocks : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SHPopoverControllerBlocks 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTabBarControllerBlocks-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SHTabBarControllerBlocks : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SHTabBarControllerBlocks 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-Tests-SHTestCaseAdditions-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Tests_SHTestCaseAdditions : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Tests_SHTestCaseAdditions 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHNavigationControllerBlocks-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SHNavigationControllerBlocks : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SHNavigationControllerBlocks 5 | @end 6 | -------------------------------------------------------------------------------- /TestsAndSample/Sample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-Tests-KIF.xcconfig: -------------------------------------------------------------------------------- 1 | PODS_TESTS_KIF_FRAMEWORK_SEARCH_PATHS = $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" 2 | PODS_TESTS_KIF_OTHER_CFLAGS = -DKIF_XCTEST 3 | PODS_TESTS_KIF_OTHER_LDFLAGS = -framework CoreGraphics -framework XCTest -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTestCaseAdditions/SHTestCaseAdditions/XCTest/XCTestCase+SHTestCaseAdditions.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #import 7 | #import "__SHTestCaseShared.h" 8 | @interface XCTestCase (SHTestCaseAdditions) 9 | 10 | @end 11 | 12 | 13 | -------------------------------------------------------------------------------- /TestsAndSample/Tests/Tests-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 | #ifdef __OBJC__ 8 | #import 9 | #import 10 | #endif 11 | -------------------------------------------------------------------------------- /TestsAndSample/Guardfile: -------------------------------------------------------------------------------- 1 | # A sample Guardfile 2 | # More info at https://github.com/guard/guard#readme 3 | 4 | 5 | guard 'xctool-test', :cli => '-workspace Example.xcworkspace -scheme Example test' do 6 | watch(%r{Example/(.+)\.(m|mm)$}) 7 | watch(%r{ExampleTests/(.+)\.(m|mm)$}) 8 | end 9 | 10 | -------------------------------------------------------------------------------- /TestsAndSample/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '7.0' 2 | 3 | link_with [:Sample, :Tests] 4 | pod 'SHUIKitBlocks', :path => '../' 5 | 6 | target :Tests, :exclusive => true do 7 | pod 'SHTestCaseAdditions' 8 | pod "KIF/XCTest", :git => "https://github.com/tonyd256/KIF", :branch => "xctest" 9 | end 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/NSBundle-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSBundle+KIFAdditions.h 3 | // KIF 4 | // 5 | // Created by Brian Nickel on 7/27/13. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface NSBundle (KIFAdditions) 12 | 13 | + (NSBundle *)KIFTestBundle; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/XCTestCase-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // XCTestCase-KIFAdditions.h 3 | // KIF 4 | // 5 | // Created by Tony DiPasquale on 12/9/13. 6 | // 7 | // 8 | 9 | #import 10 | #import "KIFTestActor.h" 11 | 12 | @interface XCTestCase (KIFAdditions) 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /TestsAndSample/Sample/SHAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHAppDelegate.h 3 | // Example 4 | // 5 | // Created by Seivan Heidari on 8/7/13. 6 | // Copyright (c) 2013 Seivan Heidari. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SHAppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /TestsAndSample/TestLoader/SHAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHAppDelegate.h 3 | // TestLoader 4 | // 5 | // Created by Seivan Heidari on 2013-12-16. 6 | // Copyright (c) 2013 Seivan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SHAppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/NSException-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSException-KIFAdditions.h 3 | // KIF 4 | // 5 | // Created by Tony DiPasquale on 12/20/13. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface NSException (KIFAdditions) 12 | 13 | + (NSException *)failureInFile:(NSString *)file atLine:(NSInteger)line withDescription:(NSString *)formatString, ...; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/CGGeometry-KIFAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // CGGeometry-KIFAdditions.m 3 | // KIF 4 | // 5 | // Created by Eric Firestone on 5/22/11. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | #import "CGGeometry-KIFAdditions.h" 11 | 12 | -------------------------------------------------------------------------------- /TestsAndSample/Sample/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Sample 4 | // 5 | // Created by Seivan Heidari on 2013-12-16. 6 | // Copyright (c) 2013 Seivan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SHAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SHAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /TestsAndSample/TestLoader/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // TestLoader 4 | // 5 | // Created by Seivan Heidari on 2013-12-16. 6 | // Copyright (c) 2013 Seivan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SHAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SHAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /TestsAndSample/TestLoader/TestLoader-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_3_0 10 | #warning "This project uses features only available in iOS SDK 3.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHObjectUserInfo/SHObjectUserInfo/NSObject+SHObjectUserInfo.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+SHSegueBlock.h 3 | // Example 4 | // 5 | // Created by Seivan Heidari on 5/16/13. 6 | // Copyright (c) 2013 Seivan Heidari. All rights reserved. 7 | // 8 | 9 | 10 | @interface NSObject (SHObjectUserInfo) 11 | #pragma mark - 12 | #pragma mark Properties 13 | 14 | @property(nonatomic,strong) NSMutableDictionary * SH_userInfo; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Classes/KIFTypist.h: -------------------------------------------------------------------------------- 1 | // 2 | // KIFTypist.h 3 | // KIF 4 | // 5 | // Created by Pete Hodgson on 8/12/12. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | 11 | @interface KIFTypist : NSObject 12 | 13 | + (BOOL)enterCharacter:(NSString *)characterString; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/UIWindow-KIFAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIWindow-KIFAdditions.m 3 | // KIF 4 | // 5 | // Created by Eric Firestone on 5/20/11. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | #import "UIWindow-KIFAdditions.h" 11 | 12 | 13 | //@implementation UIWindow (KIFAdditions) 14 | // 15 | //@end 16 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/NSError-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSError+KIFAdditions.h 3 | // KIF 4 | // 5 | // Created by Brian Nickel on 7/27/13. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface NSError (KIFAdditions) 12 | 13 | + (instancetype)KIFErrorWithUnderlyingError:(NSError *)underlyingError format:(NSString *)format, ... NS_FORMAT_FUNCTION(2,3); 14 | + (instancetype)KIFErrorWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2); 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /TestsAndSample/Sample/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 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /TestsAndSample/TestLoader/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 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/UIWindow-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIWindow-KIFAdditions.h 3 | // KIF 4 | // 5 | // Created by Eric Firestone on 5/20/11. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | #import 11 | 12 | 13 | @interface UIWindow (KIFAdditions) 14 | 15 | - (UIResponder *)firstResponder; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/UIScrollView-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIScrollView-KIFAdditions.h 3 | // KIF 4 | // 5 | // Created by Eric Firestone on 5/22/11. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | #import 11 | 12 | 13 | @interface UIScrollView (KIFAdditions) 14 | 15 | - (void)scrollViewToVisible:(UIView *)view animated:(BOOL)animated; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Classes/KIF.h: -------------------------------------------------------------------------------- 1 | // 2 | // KIF.h 3 | // KIF 4 | // 5 | // Created by Jim Puls on 12/21/12. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | #import "KIFTestActor.h" 11 | #import "KIFTestCase.h" 12 | #import "KIFSystemTestActor.h" 13 | #import "KIFUITestActor.h" 14 | 15 | #ifdef KIF_XCTEST 16 | #import "XCTestCase-KIFAdditions.h" 17 | #else 18 | #import "SenTestCase-KIFAdditions.h" 19 | #endif 20 | -------------------------------------------------------------------------------- /TestsAndSample/Sample/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 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /TestsAndSample/TestLoader/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 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/NSFileManager-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSFileManager-KIFAdditions.h 3 | // KIF 4 | // 5 | // Created by Michael Thole on 6/1/11. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | #import 11 | 12 | 13 | @interface NSFileManager (KIFAdditions) 14 | 15 | - (NSString *)createUserDirectory:(NSSearchPathDirectory)searchPath; 16 | - (BOOL)recursivelyCreateDirectory:(NSString *)path; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/NSBundle-KIFAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSBundle+KIFAdditions.m 3 | // KIF 4 | // 5 | // Created by Brian Nickel on 7/27/13. 6 | // 7 | // 8 | 9 | #import "NSBundle-KIFAdditions.h" 10 | #import "KIFTestCase.h" 11 | #import "LoadableCategory.h" 12 | 13 | MAKE_CATEGORIES_LOADABLE(NSBundle_KIFAdditions) 14 | 15 | @implementation NSBundle (KIFAdditions) 16 | 17 | + (NSBundle *)KIFTestBundle 18 | { 19 | static NSBundle *bundle; 20 | static dispatch_once_t onceToken; 21 | dispatch_once(&onceToken, ^{ 22 | bundle = [self bundleForClass:[KIFTestCase class]]; 23 | }); 24 | return bundle; 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/UITouch-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // UITouch-KIFAdditions.h 3 | // KIF 4 | // 5 | // Created by Eric Firestone on 5/20/11. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | #import 11 | 12 | 13 | @interface UITouch (KIFAdditions) 14 | 15 | - (id)initInView:(UIView *)view; 16 | - (id)initAtPoint:(CGPoint)point inView:(UIView *)view; 17 | 18 | - (void)setLocationInWindow:(CGPoint)location; 19 | - (void)setPhaseAndUpdateTimestamp:(UITouchPhase)phase; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTestCaseAdditions/SHTestCaseAdditions/__SHTestCaseShared.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | #pragma mark - 6 | #pragma mark Block Definitions 7 | typedef BOOL (^SHTestCaseConditional)(); 8 | typedef void (^SHTestCaseBlock)(BOOL *didFinish); 9 | 10 | @protocol SHTesting 11 | #pragma mark - 12 | #pragma mark Helpers 13 | -(void)SH_waitForTimeInterval:(NSTimeInterval)theTimeInterval; 14 | 15 | 16 | -(void)SH_runLoopUntilTestPassesWithBlock:(SHTestCaseConditional)theBlock 17 | withTimeOut:(NSTimeInterval)theTimeout; 18 | 19 | -(void)SH_performAsyncTestsWithinBlock:(SHTestCaseBlock)theBlock 20 | withTimeout:(NSTimeInterval)theTimeout; 21 | @end -------------------------------------------------------------------------------- /SHUIKitBlocks/SHUIKitBlocks.h: -------------------------------------------------------------------------------- 1 | #import "UIActionSheet+SHActionSheetBlocks.h" 2 | #import "UIAlertView+SHAlertViewBlocks.h" 3 | #import "UIBarButtonItem+SHBarButtonItemBlocks.h" 4 | #import "UIControl+SHControlBlocks.h" 5 | #import "UINavigationController+SHNavigationControllerBlocks.h" 6 | #import "NSObject+SHObjectUserInfo.h" 7 | #import "UIPopoverController+SHPopoverControllerBlocks.h" 8 | #import "UIViewController+SHSegueBlocks.h" 9 | #import "UIWebView+SHWebViewBlocks.h" 10 | #import "UIGestureRecognizer+SHGestureRecognizerBlocks.h" 11 | #import "UITextField+SHTextFieldBlocks.h" 12 | #import "UITextView+SHTextViewBlocks.h" 13 | #import "UITabBarController+SHTabBarControllerBlocks.h" 14 | #import "UIViewController+SHTransitionBlocks.h" -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/LICENSE: -------------------------------------------------------------------------------- 1 | KIF 2 | Copyright 2011 Square, Inc. 3 | A full list of contributors is available at https://github.com/square/KIF/contributors 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/CGGeometry-KIFAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // CGGeometry-KIFAdditions.h 3 | // KIF 4 | // 5 | // Created by Eric Firestone on 5/22/11. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | #import 11 | 12 | CG_INLINE CGPoint CGPointCenteredInRect(CGRect bounds) { 13 | return CGPointMake(bounds.origin.x + bounds.size.width * 0.5f, bounds.origin.y + bounds.size.height * 0.5f); 14 | } 15 | 16 | CG_INLINE CGPoint CGPointMidPoint(CGPoint point1, CGPoint point2) { 17 | return CGPointMake((point1.x + point2.x) / 2.0, (point1.y + point2.y) / 2.0); 18 | } 19 | -------------------------------------------------------------------------------- /TestsAndSample/Tests/Tests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.seivan.${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 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/LoadableCategory.h: -------------------------------------------------------------------------------- 1 | // 2 | // LoadableCategory.h 3 | // KIF 4 | // 5 | // Created by Karl Stenerud on 7/16/11. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | /** Make all categories in the current file loadable without using -load-all. 11 | * 12 | * Normally, compilers will skip linking files that contain only categories. 13 | * Adding a call to this macro adds a dummy class, which causes the linker 14 | * to add the file. 15 | * 16 | * @param UNIQUE_NAME A globally unique name. 17 | */ 18 | #define MAKE_CATEGORIES_LOADABLE(UNIQUE_NAME) @interface FORCELOAD_##UNIQUE_NAME : NSObject @end @implementation FORCELOAD_##UNIQUE_NAME @end 19 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTestCaseAdditions/SHTestCaseAdditions/__SHTestCaseInternal.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | @interface __SHTestCaseInternal : NSObject 4 | 5 | #pragma mark - 6 | #pragma mark Block Definitions 7 | typedef BOOL (^__SHTestCaseInternalTestCaseConditional)(); 8 | typedef void (^__SHTestCaseInternalTestCaseBlock)(BOOL *didFinish); 9 | 10 | +(NSString *)timeOutMessage; 11 | 12 | #pragma mark - 13 | #pragma mark Helpers 14 | +(BOOL)waitForTimeInterval:(NSTimeInterval)theTimeInterval; 15 | 16 | 17 | +(BOOL)runLoopUntilTestPassesWithBlock:(__SHTestCaseInternalTestCaseConditional)theBlock 18 | withTimeOut:(NSTimeInterval)theTimeout; 19 | 20 | +(BOOL)performAsyncTestsWithinBlock:(__SHTestCaseInternalTestCaseBlock)theBlock 21 | withTimeout:(NSTimeInterval)theTimeout; 22 | 23 | @end 24 | 25 | 26 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Classes/KIFTestStepValidation.m: -------------------------------------------------------------------------------- 1 | // 2 | // KIFTestStepValidation.m 3 | // KIF 4 | // 5 | // Created by Brian Nickel on 7/27/13. 6 | // 7 | // 8 | 9 | #import "KIFTestStepValidation.h" 10 | 11 | @implementation _MockKIFTestActorDelegate 12 | 13 | - (void)failWithException:(NSException *)exception stopTest:(BOOL)stop 14 | { 15 | [self failWithExceptions:@[exception] stopTest:stop]; 16 | } 17 | 18 | - (void)failWithExceptions:(NSArray *)exceptions stopTest:(BOOL)stop 19 | { 20 | self.failed = YES; 21 | self.exceptions = exceptions; 22 | self.stopped = stop; 23 | if (stop) { 24 | [[exceptions objectAtIndex:0] raise]; 25 | } 26 | } 27 | 28 | + (instancetype)mockDelegate 29 | { 30 | return [[[self alloc] init] autorelease]; 31 | } 32 | 33 | - (void)dealloc 34 | { 35 | [_exceptions release]; 36 | [super dealloc]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/NSException-KIFAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSException-KIFAdditions.m 3 | // KIF 4 | // 5 | // Created by Tony DiPasquale on 12/20/13. 6 | // 7 | // 8 | 9 | #import "NSException-KIFAdditions.h" 10 | 11 | @implementation NSException (KIFAdditions) 12 | 13 | + (NSException *)failureInFile:(NSString *)file atLine:(NSInteger)line withDescription:(NSString *)formatString, ... 14 | { 15 | va_list argumentList; 16 | va_start(argumentList, formatString); 17 | 18 | NSString *reason = [[NSString alloc] initWithFormat:formatString arguments:argumentList]; 19 | 20 | va_end(argumentList); 21 | 22 | return [NSException exceptionWithName:@"KIFFailureException" 23 | reason: reason 24 | userInfo:@{@"SenTestFilenameKey": file, 25 | @"SenTestLineNumberKey": @(line)}]; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /TestsAndSample/Sample/Sample-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 | #if !defined(NS_BLOCK_ASSERTIONS) 10 | 11 | #define SHBlockAssert(condition, desc, ...) \ 12 | do {\ 13 | if (!(condition)) { \ 14 | [[NSAssertionHandler currentHandler] handleFailureInFunction:NSStringFromSelector(_cmd) \ 15 | file:[NSString stringWithUTF8String:__FILE__] \ 16 | lineNumber:__LINE__ \ 17 | description:(desc), ##__VA_ARGS__]; \ 18 | }\ 19 | } while(0); 20 | 21 | #else // NS_BLOCK_ASSERTIONS defined 22 | 23 | #define SHBlockAssert(condition, desc, ...) 24 | 25 | #endif 26 | 27 | 28 | #ifndef __IPHONE_5_0 29 | #warning "This project uses features only available in iOS SDK 5.0 and later." 30 | #endif 31 | 32 | #ifdef __OBJC__ 33 | #import 34 | #import 35 | #endif 36 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHPopoverControllerBlocks/SHPopoverControllerBlocks/UIPopoverController+SHPopoverControllerBlocks.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma mark - 3 | #pragma mark Block Def 4 | typedef BOOL (^SHPopverControllerShouldDismissBlock)(UIPopoverController * thePopoverController); 5 | typedef void (^SHPopverControllerDidDismissBlock)(UIPopoverController * thePopoverController); 6 | 7 | @interface UIPopoverController (SHPopoverControllerBlocks) 8 | 9 | 10 | #pragma mark - 11 | #pragma mark Properties 12 | 13 | #pragma mark - 14 | #pragma mark Setters 15 | 16 | -(void)SH_setShouldDismissPopoverBlock:(SHPopverControllerShouldDismissBlock)theBlock; 17 | 18 | -(void)SH_setDidDismissPopoverBlock:(SHPopverControllerDidDismissBlock)theBlock; 19 | 20 | #pragma mark - 21 | #pragma mark Getters 22 | 23 | @property(nonatomic,readonly) SHPopverControllerShouldDismissBlock SH_blockShouldDismissPopoverBlock; 24 | @property(nonatomic,readonly) SHPopverControllerDidDismissBlock SH_blockDidDismissPopoverBlock; 25 | @end -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHSegueBlocks-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-SHSegueBlocks.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHSegueBlocks" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHUIKitBlocks-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-SHUIKitBlocks.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHUIKitBlocks" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHControlBlocks-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-SHControlBlocks.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHControlBlocks" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHObjectUserInfo-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-SHObjectUserInfo.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHObjectUserInfo" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTextViewBlocks-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-SHTextViewBlocks.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHTextViewBlocks" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHWebViewBlocks-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-SHWebViewBlocks.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHWebViewBlocks" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHAlertViewBlocks-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-SHAlertViewBlocks.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHAlertViewBlocks" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTextFieldBlocks-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-SHTextFieldBlocks.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHTextFieldBlocks" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHActionSheetBlocks-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-SHActionSheetBlocks.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHActionSheetBlocks" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTransitionBlocks-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-SHTransitionBlocks.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHTransitionBlocks" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHBarButtonItemBlocks-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-SHBarButtonItemBlocks.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHTabBarControllerBlocks-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-SHTabBarControllerBlocks.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHGestureRecognizerBlocks/SHGestureRecognizerBlocks/UIGestureRecognizer+SHGestureRecognizerBlocks.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIGestureRecognizer+SHGestureRecognizerBlocks.h 3 | // Example 4 | // 5 | // Created by Seivan Heidari on 5/16/13. 6 | // Copyright (c) 2013 Seivan Heidari. All rights reserved. 7 | // 8 | 9 | 10 | #pragma mark - Block Defs 11 | typedef void (^SHGestureRecognizerBlock)(UIGestureRecognizer * sender, UIGestureRecognizerState state, CGPoint location); 12 | 13 | @interface UIGestureRecognizer (SHGestureRecognizerBlocks) 14 | 15 | #pragma mark - Init 16 | +(instancetype)SH_gestureRecognizerWithBlock:(SHGestureRecognizerBlock)theBlock; 17 | 18 | #pragma mark - Add block 19 | -(void)SH_addBlock:(SHGestureRecognizerBlock)theBlock; 20 | 21 | #pragma mark - Remove block 22 | -(void)SH_removeBlock:(SHGestureRecognizerBlock)theBlock; 23 | -(void)SH_removeAllBlocks; 24 | 25 | #pragma mark - Properties 26 | 27 | #pragma mark - Getters 28 | @property(nonatomic,readonly) NSSet * SH_blocks; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTestCaseAdditions/SHTestCaseAdditions/XCTest/XCTestCase+SHTestCaseAdditions.m: -------------------------------------------------------------------------------- 1 | 2 | #import "XCTestCase+SHTestCaseAdditions.h" 3 | #import "__SHTestCaseInternal.h" 4 | 5 | @implementation XCTestCase (SHTestCaseAdditions) 6 | 7 | -(void)SH_waitForTimeInterval:(NSTimeInterval)theTimeInterval; { 8 | XCTAssertTrue([__SHTestCaseInternal waitForTimeInterval:theTimeInterval], @"%@", [__SHTestCaseInternal timeOutMessage]); 9 | } 10 | 11 | -(void)SH_runLoopUntilTestPassesWithBlock:(SHTestCaseConditional)theBlock withTimeOut:(NSTimeInterval)theTimeout; { 12 | XCTAssertTrue([__SHTestCaseInternal runLoopUntilTestPassesWithBlock:theBlock withTimeOut:theTimeout], @"%@",[__SHTestCaseInternal timeOutMessage]) ; 13 | } 14 | 15 | -(void)SH_performAsyncTestsWithinBlock:(SHTestCaseBlock)theBlock withTimeout:(NSTimeInterval)theTimeout; { 16 | XCTAssertTrue([__SHTestCaseInternal performAsyncTestsWithinBlock:theBlock withTimeout:theTimeout], @"%@",[__SHTestCaseInternal timeOutMessage]) ; 17 | } 18 | 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHGestureRecognizerBlocks-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-SHGestureRecognizerBlocks.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHPopoverControllerBlocks-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-SHPopoverControllerBlocks.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-SHNavigationControllerBlocks-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-SHNavigationControllerBlocks.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHControlBlocks/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHSegueBlocks/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHWebViewBlocks/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/XCTestCase-KIFAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // XCTestCase-KIFAdditions.m 3 | // KIF 4 | // 5 | // Created by Tony DiPasquale on 12/9/13. 6 | // 7 | // 8 | 9 | #import "XCTestCase-KIFAdditions.h" 10 | #import "LoadableCategory.h" 11 | 12 | MAKE_CATEGORIES_LOADABLE(TestCase_KIFAdditions) 13 | 14 | @implementation XCTestCase (KIFAdditions) 15 | 16 | - (void)failWithException:(NSException *)exception stopTest:(BOOL)stop 17 | { 18 | self.continueAfterFailure = YES; 19 | 20 | [self recordFailureWithDescription:exception.description inFile:exception.userInfo[@"SenTestFilenameKey"] atLine:[exception.userInfo[@"SenTestLineNumberKey"] unsignedIntegerValue] expected:NO]; 21 | 22 | if (stop) { 23 | [exception raise]; 24 | } 25 | } 26 | 27 | - (void)failWithExceptions:(NSArray *)exceptions stopTest:(BOOL)stop 28 | { 29 | NSException *lastException = exceptions.lastObject; 30 | for (NSException *exception in exceptions) { 31 | [self failWithException:exception stopTest:(exception == lastException ? stop : NO)]; 32 | } 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHActionSheetBlocks/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHAlertViewBlocks/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHObjectUserInfo/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTestCaseAdditions/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTextFieldBlocks/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTextViewBlocks/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTransitionBlocks/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHBarButtonItemBlocks/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHGestureRecognizerBlocks/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHPopoverControllerBlocks/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTabBarControllerBlocks/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHNavigationControllerBlocks/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Seivan Heidari. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-Tests-KIF-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-Tests-KIF.xcconfig" 2 | FRAMEWORK_SEARCH_PATHS = ${PODS_TESTS_KIF_FRAMEWORK_SEARCH_PATHS} 3 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/KIF" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 5 | OTHER_CFLAGS = ${PODS_TESTS_KIF_OTHER_CFLAGS} 6 | OTHER_LDFLAGS = -ObjC ${PODS_TESTS_KIF_OTHER_LDFLAGS} 7 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-Tests-SHTestCaseAdditions-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-Tests-SHTestCaseAdditions.xcconfig" 2 | FRAMEWORK_SEARCH_PATHS = ${PODS_TESTS_SHTESTCASEADDITIONS_FRAMEWORK_SEARCH_PATHS} 3 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SHTestCaseAdditions" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 5 | OTHER_LDFLAGS = -ObjC ${PODS_TESTS_SHTESTCASEADDITIONS_OTHER_LDFLAGS} 6 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/NSError-KIFAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSError+KIFAdditions.m 3 | // KIF 4 | // 5 | // Created by Brian Nickel on 7/27/13. 6 | // 7 | // 8 | 9 | #import "NSError-KIFAdditions.h" 10 | #import "LoadableCategory.h" 11 | #import "KIFTestActor.h" 12 | 13 | MAKE_CATEGORIES_LOADABLE(NSError_KIFAdditions) 14 | 15 | @implementation NSError (KIFAdditions) 16 | 17 | + (instancetype)KIFErrorWithFormat:(NSString *)format, ... 18 | { 19 | va_list args; 20 | va_start(args, format); 21 | NSString *description = [[[NSString alloc] initWithFormat:format arguments:args] autorelease]; 22 | va_end(args); 23 | 24 | return [self errorWithDomain:@"KIFTest" code:KIFTestStepResultFailure userInfo:@{NSLocalizedDescriptionKey: description}]; 25 | } 26 | 27 | + (instancetype)KIFErrorWithUnderlyingError:(NSError *)underlyingError format:(NSString *)format, ... 28 | { 29 | va_list args; 30 | va_start(args, format); 31 | NSString *description = [[[NSString alloc] initWithFormat:format arguments:args] autorelease]; 32 | va_end(args); 33 | 34 | return [self errorWithDomain:@"KIFTest" code:KIFTestStepResultFailure userInfo:@{NSLocalizedDescriptionKey: description, NSUnderlyingErrorKey: underlyingError}]; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/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 | // KIF/Core 10 | #define COCOAPODS_POD_AVAILABLE_KIF_Core 11 | #define COCOAPODS_VERSION_MAJOR_KIF_Core 2 12 | #define COCOAPODS_VERSION_MINOR_KIF_Core 0 13 | #define COCOAPODS_VERSION_PATCH_KIF_Core 0 14 | 15 | // KIF/XCTest 16 | #define COCOAPODS_POD_AVAILABLE_KIF_XCTest 17 | #define COCOAPODS_VERSION_MAJOR_KIF_XCTest 2 18 | #define COCOAPODS_VERSION_MINOR_KIF_XCTest 0 19 | #define COCOAPODS_VERSION_PATCH_KIF_XCTest 0 20 | 21 | // SHTestCaseAdditions 22 | #define COCOAPODS_POD_AVAILABLE_SHTestCaseAdditions 23 | #define COCOAPODS_VERSION_MAJOR_SHTestCaseAdditions 1 24 | #define COCOAPODS_VERSION_MINOR_SHTestCaseAdditions 4 25 | #define COCOAPODS_VERSION_PATCH_SHTestCaseAdditions 1 26 | 27 | // SHTestCaseAdditions/XCTest 28 | #define COCOAPODS_POD_AVAILABLE_SHTestCaseAdditions_XCTest 29 | #define COCOAPODS_VERSION_MAJOR_SHTestCaseAdditions_XCTest 1 30 | #define COCOAPODS_VERSION_MINOR_SHTestCaseAdditions_XCTest 4 31 | #define COCOAPODS_VERSION_PATCH_SHTestCaseAdditions_XCTest 1 32 | 33 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHWebViewBlocks/SHWebViewBlocks/UIWebView+SHWebViewBlocks.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #pragma mark - Block Def 4 | typedef void (^SHWebViewBlock)(UIWebView * theWebView); 5 | 6 | typedef void (^SHWebViewBlockWithError)(UIWebView * theWebView, NSError * theError); 7 | 8 | typedef BOOL (^SHWebViewBlockWithRequest)(UIWebView * theWebView, NSURLRequest * theRequest,UIWebViewNavigationType theNavigationType); 9 | 10 | @interface UIWebView (SHWebViewBlocks) 11 | 12 | 13 | #pragma mark - Helpers 14 | -(void)SH_loadRequestWithString:(NSString *)theString; 15 | 16 | 17 | #pragma mark - Properties 18 | 19 | 20 | #pragma mark - Setters 21 | 22 | 23 | -(void)SH_setShouldStartLoadWithRequestBlock:(SHWebViewBlockWithRequest)theBlock; 24 | 25 | -(void)SH_setDidStartLoadBlock:(SHWebViewBlock)theBlock; 26 | 27 | -(void)SH_setDidFinishLoadBlock:(SHWebViewBlock)theBlock; 28 | 29 | -(void)SH_setDidFailLoadWithErrorBlock:(SHWebViewBlockWithError)theBlock; 30 | 31 | 32 | 33 | 34 | 35 | #pragma mark - Getters 36 | 37 | @property(nonatomic,readonly) SHWebViewBlockWithRequest SH_blockShouldStartLoadingWithRequest; 38 | 39 | @property(nonatomic,readonly) SHWebViewBlock SH_blockDidStartLoad; 40 | 41 | @property(nonatomic,readonly) SHWebViewBlock SH_blockDidFinishLoad; 42 | 43 | @property(nonatomic,readonly) SHWebViewBlockWithError SH_blockDidFailLoadWithError; 44 | 45 | @end -------------------------------------------------------------------------------- /TestsAndSample/TestLoader/TestLoader-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | com.seivan.${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 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHControlBlocks/SHControlBlocks/UIControl+SHControlBlocks.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIControl+SHControlEventBlock.h 3 | // Example 4 | // 5 | // Created by Seivan Heidari on 5/16/13. 6 | // Copyright (c) 2013 Seivan Heidari. All rights reserved. 7 | // 8 | 9 | 10 | #pragma mark - Block Defs 11 | typedef void (^SHControlEventBlock)(UIControl * sender); 12 | 13 | @interface UIControl (SHControlBlocks) 14 | 15 | 16 | #pragma mark - Add block 17 | -(void)SH_addControlEvents:(UIControlEvents)controlEvents 18 | withBlock:(SHControlEventBlock)theBlock; 19 | 20 | -(void)SH_addControlEventTouchUpInsideWithBlock:(SHControlEventBlock)theBlock; 21 | 22 | 23 | 24 | #pragma mark - Remove block 25 | -(void)SH_removeControlEventTouchUpInside; 26 | -(void)SH_removeBlocksForControlEvents:(UIControlEvents)controlEvents; 27 | -(void)SH_removeControlEventsForBlock:(SHControlEventBlock)theBlock; 28 | -(void)SH_removeAllControlEventsBlocks; 29 | 30 | 31 | #pragma mark - Helpers 32 | -(NSSet *)SH_blocksForControlEvents:(UIControlEvents)theControlEvents; 33 | -(NSSet *)SH_controlEventsForBlock:(SHControlEventBlock)theBlock; 34 | 35 | 36 | 37 | #pragma mark - Properties 38 | 39 | 40 | #pragma mark - Getters 41 | @property(nonatomic,readonly) BOOL SH_isTouchUpInsideEnabled; 42 | @property(nonatomic,readonly) NSDictionary * SH_controlBlocks; 43 | 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHBarButtonItemBlocks/SHBarButtonItemBlocks/UIBarButtonItem+SHBarButtonItemBlocks.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIControl+SHControlEventBlock.h 3 | // Example 4 | // 5 | // Created by Seivan Heidari on 5/16/13. 6 | // Copyright (c) 2013 Seivan Heidari. All rights reserved. 7 | // 8 | 9 | #pragma mark - 10 | #pragma mark Block Defs 11 | typedef void (^SHBarButtonItemBlock)(UIBarButtonItem * sender); 12 | 13 | @interface UIBarButtonItem (SHBarButtonItemBlocks) 14 | 15 | #pragma mark - 16 | #pragma mark Init 17 | +(instancetype)SH_barButtonItemWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem 18 | withBlock:(SHBarButtonItemBlock)theBlock; 19 | 20 | +(instancetype)SH_barButtonItemWithImage:(UIImage *)image style:(UIBarButtonItemStyle)style 21 | withBlock:(SHBarButtonItemBlock)theBlock; 22 | 23 | +(instancetype)SH_barButtonItemWithTitle:(NSString *)title style:(UIBarButtonItemStyle)style 24 | withBlock:(SHBarButtonItemBlock)theBlock; 25 | 26 | #pragma mark - 27 | #pragma mark Add 28 | -(void)SH_addBlock:(SHBarButtonItemBlock)theBlock; 29 | 30 | #pragma mark - 31 | #pragma mark Remove 32 | -(void)SH_removeBlock:(SHBarButtonItemBlock)theBlock; 33 | -(void)SH_removeAllBlocks; 34 | 35 | #pragma mark - 36 | #pragma mark Properties 37 | 38 | #pragma mark - 39 | #pragma mark Getters 40 | @property(nonatomic,readonly) NSSet * SH_blocks; 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /TestsAndSample/Sample/Sample-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | com.seivan.${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 | MainStoryboard 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Local Podspecs/KIF.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "KIF" 3 | s.version = "2.0.0" 4 | s.summary = "Keep It Functional - iOS UI acceptance testing in an OCUnit harness." 5 | s.homepage = "https://github.com/kif-framework/KIF/" 6 | s.license = 'Apache 2.0' 7 | s.authors = 'Eric Firestone', 'Jim Puls', 'Brian Nickel' 8 | s.source = { :git => "https://github.com/kif-framework/KIF.git", :tag => "v2.0.0" } 9 | s.platform = :ios, '4.3' 10 | s.frameworks = 'CoreGraphics' 11 | s.prefix_header_contents = '#import ' 12 | s.default_subspec = 'XCTest' 13 | 14 | s.subspec 'OCUnit' do |sentest| 15 | sentest.framework = 'SenTestingKit' 16 | sentest.dependency 'KIF/Core' 17 | sentest.xcconfig = { 'OTHER_CFLAGS' => '-DKIF_SENTEST' } 18 | sentest.source_files = 'Additions/SenTestCase-KIFAdditions.{h,m}' 19 | end 20 | 21 | s.subspec 'XCTest' do |xctest| 22 | xctest.framework = 'XCTest' 23 | xctest.dependency 'KIF/Core' 24 | xctest.xcconfig = { 'OTHER_CFLAGS' => '-DKIF_XCTEST' } 25 | xctest.source_files = 'Additions/XCTestCase-KIFAdditions.{h,m}' 26 | end 27 | 28 | s.subspec 'Core' do |core| 29 | core.source_files = 'Classes', 'Additions' 30 | core.public_header_files = 'Classes/**/*.h', 'Additions/**/*-KIFAdditions.h' 31 | core.exclude_files = 'Additions/SenTestCase-KIFAdditions.{h,m}', 'Additions/XCTestCase-KIFAdditions.{h,m}' 32 | end 33 | end 34 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHSegueBlocks/SHSegueBlocks/UIViewController+SHSegueBlocks.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+SHSegueBlock.h 3 | // Example 4 | // 5 | // Created by Seivan Heidari on 5/16/13. 6 | // Copyright (c) 2013 Seivan Heidari. All rights reserved. 7 | // 8 | 9 | #pragma mark - 10 | #pragma mark Block Defs 11 | 12 | typedef void(^SHPrepareForSegue)(UIStoryboardSegue *theSegue); 13 | typedef void(^SHPrepareForSegueDestinationViewController)(UIViewController * theDestinationViewController); 14 | typedef void(^SHPrepareForSegueWithUserInfo)(NSMutableDictionary * theUserInfo); 15 | 16 | 17 | 18 | @interface UIViewController (SHSegueBlocks) 19 | 20 | 21 | //#pragma mark - Properties 22 | // 23 | //@property(nonatomic,strong) NSMutableDictionary * SH_userInfo; 24 | 25 | 26 | #pragma mark - Segue Performers 27 | 28 | -(void)SH_performSegueWithIdentifier:(NSString *)theIdentifier 29 | andPrepareForSegueBlock:(SHPrepareForSegue)theBlock; 30 | 31 | -(void)SH_performSegueWithIdentifier:(NSString *)theIdentifier 32 | andDestinationViewController:(SHPrepareForSegueDestinationViewController)theBlock; 33 | 34 | -(void)SH_performSegueWithIdentifier:(NSString *)theIdentifier 35 | withUserInfo:(NSDictionary *)theUserInfo; 36 | 37 | 38 | #pragma mark - Segue Observers 39 | -(void)SH_observeSegueWithIdentifier:(NSString *)theIdentifier 40 | andPrepareForSegueBlock:(SHPrepareForSegue)theBlock; 41 | 42 | #pragma mark - Helpers 43 | -(BOOL)SH_handlesBlockForSegue:(UIStoryboardSegue *)theSegue; 44 | 45 | 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Classes/KIFTestStepValidation.h: -------------------------------------------------------------------------------- 1 | // 2 | // KIFTestStepValidation.h 3 | // KIF 4 | // 5 | // Created by Brian Nickel on 7/27/13. 6 | // 7 | // 8 | 9 | #import 10 | #import "KIFTestCase.h" 11 | 12 | #ifdef KIF_XCTEST 13 | 14 | #define __KIFFail XCTFail 15 | #define __KIFAssertEqual XCTAssertEqual 16 | 17 | #else 18 | 19 | #define __KIFFail STFail 20 | #define __KIFAssertEqual STAssertEquals 21 | 22 | #endif 23 | 24 | #define KIFExpectFailure(stmt) \ 25 | {\ 26 | _MockKIFTestActorDelegate *mockDelegate = [_MockKIFTestActorDelegate mockDelegate];\ 27 | {\ 28 | _MockKIFTestActorDelegate *self = mockDelegate;\ 29 | @try { stmt; }\ 30 | @catch (NSException *exception) { }\ 31 | }\ 32 | if (!mockDelegate.failed) {\ 33 | __KIFFail(@"%s should have failed.", #stmt);\ 34 | }\ 35 | } 36 | 37 | #define KIFExpectFailureWithCount(stmt, cnt) \ 38 | {\ 39 | _MockKIFTestActorDelegate *mockDelegate = [_MockKIFTestActorDelegate mockDelegate];\ 40 | {\ 41 | _MockKIFTestActorDelegate *self = mockDelegate;\ 42 | @try { stmt; }\ 43 | @catch (NSException *exception) { }\ 44 | }\ 45 | if (!mockDelegate.failed) {\ 46 | __KIFFail(@"%s should have failed.", #stmt);\ 47 | }\ 48 | __KIFAssertEqual((NSUInteger)cnt, mockDelegate.exceptions.count, @"Expected a different number of exceptions.");\ 49 | } 50 | 51 | 52 | @interface _MockKIFTestActorDelegate : NSObject 53 | @property (nonatomic, assign) BOOL failed; 54 | @property (nonatomic, retain) NSArray *exceptions; 55 | @property (nonatomic, assign) BOOL stopped; 56 | 57 | + (instancetype)mockDelegate; 58 | 59 | @end 60 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 3 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers" -isystem "${PODS_ROOT}/Headers/KIF" -isystem "${PODS_ROOT}/Headers/SHActionSheetBlocks" -isystem "${PODS_ROOT}/Headers/SHAlertViewBlocks" -isystem "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" -isystem "${PODS_ROOT}/Headers/SHControlBlocks" -isystem "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" -isystem "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" -isystem "${PODS_ROOT}/Headers/SHObjectUserInfo" -isystem "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" -isystem "${PODS_ROOT}/Headers/SHSegueBlocks" -isystem "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" -isystem "${PODS_ROOT}/Headers/SHTestCaseAdditions" -isystem "${PODS_ROOT}/Headers/SHTextFieldBlocks" -isystem "${PODS_ROOT}/Headers/SHTextViewBlocks" -isystem "${PODS_ROOT}/Headers/SHTransitionBlocks" -isystem "${PODS_ROOT}/Headers/SHUIKitBlocks" -isystem "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_LDFLAGS = -ObjC 5 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTextViewBlocks/SHTextViewBlocks/UITextView+SHTextViewBlocks.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIControl+SHControlEventBlock.h 3 | // Example 4 | // 5 | // Created by Seivan Heidari on 5/16/13. 6 | // Copyright (c) 2013 Seivan Heidari. All rights reserved. 7 | // 8 | 9 | 10 | #pragma mark - Block Defs 11 | typedef void (^SHTextViewBlock)(UITextView * textView); 12 | typedef BOOL (^SHTextViewPredicateBlock)(UITextView * textView); 13 | 14 | typedef BOOL (^SHTextViewRangeReplacementBlock)(UITextView * textView, 15 | NSRange shouldChangeTextInRange, 16 | NSString * string); 17 | 18 | @interface UITextView (SHTextViewBlocks) 19 | 20 | 21 | #pragma mark - Helpers 22 | 23 | #pragma mark - Properties 24 | 25 | #pragma mark - Setters 26 | 27 | -(void)SH_setShouldBeginEditingBlock:(SHTextViewPredicateBlock)theBlock; 28 | 29 | -(void)SH_setShouldEndEditingBlock:(SHTextViewPredicateBlock)theBlock; 30 | 31 | -(void)SH_setDidBeginEditingBlock:(SHTextViewBlock)theBlock; 32 | 33 | -(void)SH_setDidEndEditingBlock:(SHTextViewBlock)theBlock; 34 | 35 | -(void)SH_setShouldChangeCharactersInRangeWithReplacementTextBlock:(SHTextViewRangeReplacementBlock)theBlock; 36 | 37 | -(void)SH_setDidChangeBlock:(SHTextViewBlock)theBlock; 38 | 39 | -(void)SH_setDidChangeSelection:(SHTextViewBlock)theBlock; 40 | 41 | 42 | 43 | #pragma mark - Getters 44 | 45 | -(SHTextViewPredicateBlock)SH_blockShouldBeginEditing; 46 | 47 | -(SHTextViewPredicateBlock)SH_blockShouldEndEditing; 48 | 49 | 50 | -(SHTextViewBlock)SH_blockDidBeginEditing; 51 | 52 | -(SHTextViewBlock)SH_blockDidEndEditing; 53 | 54 | -(SHTextViewRangeReplacementBlock)SH_blockShouldChangeCharactersInRangeWithReplacementText; 55 | 56 | -(SHTextViewBlock)SH_blockDidChange; 57 | 58 | -(SHTextViewBlock)SH_blockDidChangeSelection; 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTextFieldBlocks/SHTextFieldBlocks/UITextField+SHTextFieldBlocks.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIControl+SHControlEventBlock.h 3 | // Example 4 | // 5 | // Created by Seivan Heidari on 5/16/13. 6 | // Copyright (c) 2013 Seivan Heidari. All rights reserved. 7 | // 8 | 9 | 10 | #pragma mark - Block Defs 11 | typedef void (^SHTextFieldBlock)(UITextField * textField); 12 | typedef BOOL (^SHTextFieldPredicateBlock)(UITextField * textField); 13 | 14 | typedef BOOL (^SHTextFieldRangeReplacementBlock)(UITextField * textField, 15 | NSRange shouldChangeCharactersInRange, 16 | NSString * string); 17 | 18 | @interface UITextField (SHTextFieldBlocks) 19 | 20 | 21 | #pragma mark - Helpers 22 | 23 | #pragma mark - Properties 24 | 25 | #pragma mark - Setters 26 | 27 | -(void)SH_setShouldBeginEditingBlock:(SHTextFieldPredicateBlock)theBlock; 28 | 29 | -(void)SH_setDidBeginEditingBlock:(SHTextFieldBlock)theBlock; 30 | 31 | -(void)SH_setShouldEndEditingBlock:(SHTextFieldPredicateBlock)theBlock; 32 | 33 | -(void)SH_setDidEndEditingBlock:(SHTextFieldBlock)theBlock; 34 | 35 | -(void)SH_setShouldChangeCharactersInRangeWithReplacementStringBlock:(SHTextFieldRangeReplacementBlock)theBlock; 36 | 37 | -(void)SH_setShouldClearBlock:(SHTextFieldPredicateBlock)theBlock; 38 | 39 | -(void)SH_setShouldReturnBlock:(SHTextFieldPredicateBlock)theBlock; 40 | 41 | 42 | #pragma mark - Getters 43 | 44 | -(SHTextFieldPredicateBlock)SH_blockShouldBeginEditing; 45 | 46 | -(SHTextFieldBlock)SH_blockDidBeginEditing; 47 | 48 | -(SHTextFieldPredicateBlock)SH_blockShouldEndEditing; 49 | 50 | -(SHTextFieldBlock)SH_blockDidEndEditing; 51 | 52 | -(SHTextFieldRangeReplacementBlock)SH_blockShouldChangeCharactersInRangeWithReplacementString; 53 | 54 | -(SHTextFieldPredicateBlock)SH_blockShouldClear; 55 | 56 | -(SHTextFieldPredicateBlock)SH_blockShouldReturn; 57 | 58 | @end 59 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-Tests.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/KIF" "${PODS_ROOT}/Headers/SHActionSheetBlocks" "${PODS_ROOT}/Headers/SHAlertViewBlocks" "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" "${PODS_ROOT}/Headers/SHControlBlocks" "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" "${PODS_ROOT}/Headers/SHObjectUserInfo" "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" "${PODS_ROOT}/Headers/SHSegueBlocks" "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" "${PODS_ROOT}/Headers/SHTestCaseAdditions" "${PODS_ROOT}/Headers/SHTextFieldBlocks" "${PODS_ROOT}/Headers/SHTextViewBlocks" "${PODS_ROOT}/Headers/SHTransitionBlocks" "${PODS_ROOT}/Headers/SHUIKitBlocks" "${PODS_ROOT}/Headers/SHWebViewBlocks" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers" -isystem "${PODS_ROOT}/Headers/KIF" -isystem "${PODS_ROOT}/Headers/SHActionSheetBlocks" -isystem "${PODS_ROOT}/Headers/SHAlertViewBlocks" -isystem "${PODS_ROOT}/Headers/SHBarButtonItemBlocks" -isystem "${PODS_ROOT}/Headers/SHControlBlocks" -isystem "${PODS_ROOT}/Headers/SHGestureRecognizerBlocks" -isystem "${PODS_ROOT}/Headers/SHNavigationControllerBlocks" -isystem "${PODS_ROOT}/Headers/SHObjectUserInfo" -isystem "${PODS_ROOT}/Headers/SHPopoverControllerBlocks" -isystem "${PODS_ROOT}/Headers/SHSegueBlocks" -isystem "${PODS_ROOT}/Headers/SHTabBarControllerBlocks" -isystem "${PODS_ROOT}/Headers/SHTestCaseAdditions" -isystem "${PODS_ROOT}/Headers/SHTextFieldBlocks" -isystem "${PODS_ROOT}/Headers/SHTextViewBlocks" -isystem "${PODS_ROOT}/Headers/SHTransitionBlocks" -isystem "${PODS_ROOT}/Headers/SHUIKitBlocks" -isystem "${PODS_ROOT}/Headers/SHWebViewBlocks" -DKIF_XCTEST 5 | OTHER_LDFLAGS = -ObjC -framework CoreGraphics -framework XCTest 6 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-Tests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## KIF 5 | 6 | KIF 7 | Copyright 2011 Square, Inc. 8 | A full list of contributors is available at https://github.com/square/KIF/contributors 9 | 10 | Licensed under the Apache License, Version 2.0 (the "License"); 11 | you may not use this file except in compliance with the License. 12 | You may obtain a copy of the License at 13 | 14 | http://www.apache.org/licenses/LICENSE-2.0 15 | 16 | Unless required by applicable law or agreed to in writing, software 17 | distributed under the License is distributed on an "AS IS" BASIS, 18 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19 | See the License for the specific language governing permissions and 20 | limitations under the License. 21 | 22 | ## SHTestCaseAdditions 23 | 24 | Copyright (c) 2012 Seivan Heidari. 25 | 26 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 27 | 28 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 29 | 30 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 31 | Generated by CocoaPods - http://cocoapods.org 32 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/NSFileManager-KIFAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSFileManager-KIFAdditions.m 3 | // KIF 4 | // 5 | // Created by Michael Thole on 6/1/11. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | #import "NSFileManager-KIFAdditions.h" 11 | #import "LoadableCategory.h" 12 | 13 | 14 | MAKE_CATEGORIES_LOADABLE(NSFileManager_KIFAdditions) 15 | 16 | 17 | @implementation NSFileManager (KIFAdditions) 18 | 19 | #pragma mark Public Methods 20 | 21 | - (NSString *)createUserDirectory:(NSSearchPathDirectory)searchPath; 22 | { 23 | NSArray *paths = NSSearchPathForDirectoriesInDomains(searchPath, NSUserDomainMask, YES); 24 | if (!paths.count) { 25 | return nil; 26 | } 27 | 28 | NSString *rootDirectory = paths[0]; 29 | 30 | BOOL isDir; 31 | BOOL created = NO; 32 | if ([self fileExistsAtPath:rootDirectory isDirectory:&isDir] && isDir) { 33 | created = YES; 34 | } else { 35 | created = [self recursivelyCreateDirectory:rootDirectory]; 36 | } 37 | 38 | return created ? rootDirectory : nil; 39 | } 40 | 41 | - (BOOL)recursivelyCreateDirectory:(NSString *)path; 42 | { 43 | BOOL isDir = NO; 44 | BOOL isParentADir = NO; 45 | NSString *parentDir = nil; 46 | 47 | if (![self fileExistsAtPath:path isDirectory:&isDir]) { 48 | // if file doesn't exist, first create parent 49 | parentDir = [path stringByDeletingLastPathComponent]; 50 | 51 | if (!parentDir.length || [parentDir isEqualToString:@"/"]) { 52 | isParentADir = YES; 53 | } else { 54 | isParentADir = [self recursivelyCreateDirectory:parentDir]; 55 | } 56 | 57 | if (isParentADir) { 58 | isDir = [self createDirectoryAtPath:path withIntermediateDirectories:NO attributes:nil error:nil]; 59 | } else { 60 | return NO; 61 | } 62 | } 63 | 64 | return isDir; 65 | } 66 | 67 | @end 68 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/UIScrollView-KIFAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIScrollView-KIFAdditions.m 3 | // KIF 4 | // 5 | // Created by Eric Firestone on 5/22/11. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | #import "UIScrollView-KIFAdditions.h" 11 | #import "LoadableCategory.h" 12 | #import "UIApplication-KIFAdditions.h" 13 | #import "UIView-KIFAdditions.h" 14 | 15 | 16 | MAKE_CATEGORIES_LOADABLE(UIScrollView_KIFAdditions) 17 | 18 | 19 | @implementation UIScrollView (KIFAdditions) 20 | 21 | - (void)scrollViewToVisible:(UIView *)view animated:(BOOL)animated; 22 | { 23 | BOOL needsUpdate = NO; 24 | CGRect frame = [self.window convertRect:self.frame fromView:self.superview]; 25 | 26 | CGRect viewFrame = [self.window convertRect:view.frame fromView:view.superview]; 27 | CGFloat viewMaxX = viewFrame.origin.x + viewFrame.size.width; 28 | CGFloat viewMaxY = viewFrame.origin.y + viewFrame.size.height; 29 | CGFloat scrollViewMaxX = frame.origin.x + frame.size.width; 30 | CGFloat scrollViewMaxY = frame.origin.y + frame.size.height; 31 | 32 | CGPoint offsetPoint = self.contentOffset; 33 | if (viewMaxX > scrollViewMaxX) { 34 | // The view is to the right of the view port, so scroll it just into view 35 | offsetPoint.x = frame.origin.x + (viewMaxX - scrollViewMaxX); 36 | needsUpdate = YES; 37 | } else if (viewMaxX < 0.0) { 38 | offsetPoint.x = viewFrame.origin.x; 39 | needsUpdate = YES; 40 | } 41 | 42 | if (viewMaxY > scrollViewMaxY) { 43 | // The view is below the view port, so scroll it just into view 44 | offsetPoint.y = frame.origin.y + (viewMaxY - scrollViewMaxY); 45 | needsUpdate = YES; 46 | } else if (viewMaxY < 0.0) { 47 | offsetPoint.y = viewFrame.origin.y; 48 | needsUpdate = YES; 49 | } 50 | 51 | if (needsUpdate) { 52 | [self setContentOffset:offsetPoint animated:animated]; 53 | CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.2, false); 54 | } 55 | } 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /TestsAndSample/Sample/SHAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // SHAppDelegate.m 3 | // Example 4 | // 5 | // Created by Seivan Heidari on 8/7/13. 6 | // Copyright (c) 2013 Seivan Heidari. All rights reserved. 7 | // 8 | 9 | #import "SHAppDelegate.h" 10 | 11 | @implementation SHAppDelegate 12 | 13 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 14 | { 15 | self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 16 | // Override point for customization after application launch. 17 | self.window.backgroundColor = [UIColor whiteColor]; 18 | [self.window makeKeyAndVisible]; 19 | return YES; 20 | } 21 | 22 | - (void)applicationWillResignActive:(UIApplication *)application 23 | { 24 | // 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. 25 | // 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. 26 | } 27 | 28 | - (void)applicationDidEnterBackground:(UIApplication *)application 29 | { 30 | // 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. 31 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 32 | } 33 | 34 | - (void)applicationWillEnterForeground:(UIApplication *)application 35 | { 36 | // 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. 37 | } 38 | 39 | - (void)applicationDidBecomeActive:(UIApplication *)application 40 | { 41 | // 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. 42 | } 43 | 44 | - (void)applicationWillTerminate:(UIApplication *)application 45 | { 46 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 47 | } 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /TestsAndSample/TestLoader/SHAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // SHAppDelegate.m 3 | // TestLoader 4 | // 5 | // Created by Seivan Heidari on 2013-12-16. 6 | // Copyright (c) 2013 Seivan. All rights reserved. 7 | // 8 | 9 | #import "SHAppDelegate.h" 10 | 11 | @implementation SHAppDelegate 12 | 13 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 14 | { 15 | self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 16 | // Override point for customization after application launch. 17 | self.window.backgroundColor = [UIColor whiteColor]; 18 | [self.window makeKeyAndVisible]; 19 | return YES; 20 | } 21 | 22 | - (void)applicationWillResignActive:(UIApplication *)application 23 | { 24 | // 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. 25 | // 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. 26 | } 27 | 28 | - (void)applicationDidEnterBackground:(UIApplication *)application 29 | { 30 | // 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. 31 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 32 | } 33 | 34 | - (void)applicationWillEnterForeground:(UIApplication *)application 35 | { 36 | // 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. 37 | } 38 | 39 | - (void)applicationDidBecomeActive:(UIApplication *)application 40 | { 41 | // 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. 42 | } 43 | 44 | - (void)applicationWillTerminate:(UIApplication *)application 45 | { 46 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 47 | } 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTestCaseAdditions/SHTestCaseAdditions/__SHTestCaseInternal.m: -------------------------------------------------------------------------------- 1 | 2 | #import "__SHTestCaseInternal.h" 3 | 4 | @implementation __SHTestCaseInternal 5 | 6 | +(NSString *)timeOutMessage; { 7 | return @"Timed Out"; 8 | } 9 | 10 | +(BOOL)waitForTimeInterval:(NSTimeInterval)theTimeInterval; { 11 | NSParameterAssert(theTimeInterval > 0.0); 12 | return [self performAsyncTestsWithinBlock:^(BOOL *didFinish) { 13 | double delayInSeconds = theTimeInterval; 14 | dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); 15 | dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 16 | *didFinish = YES; 17 | }); 18 | } withTimeout:theTimeInterval+5]; 19 | 20 | } 21 | 22 | +(BOOL)runLoopUntilTestPassesWithBlock:(__SHTestCaseInternalTestCaseConditional)theBlock withTimeOut:(NSTimeInterval)theTimeout; { 23 | NSParameterAssert(theBlock); 24 | NSParameterAssert(theTimeout >= 0); 25 | NSDate * timeoutDate = [NSDate dateWithTimeIntervalSinceNow:theTimeout]; 26 | 27 | NSTimeInterval timeoutTime = [timeoutDate timeIntervalSinceReferenceDate]; 28 | NSTimeInterval currentTime = 0.0; 29 | 30 | 31 | for (currentTime = [NSDate timeIntervalSinceReferenceDate]; 32 | (theBlock() == NO && currentTime < timeoutTime); 33 | currentTime = [NSDate timeIntervalSinceReferenceDate]) { 34 | [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 35 | } 36 | 37 | return currentTime <= timeoutTime; 38 | } 39 | 40 | +(BOOL)performAsyncTestsWithinBlock:(__SHTestCaseInternalTestCaseBlock)theBlock withTimeout:(NSTimeInterval)theTimeout; { 41 | NSParameterAssert(theBlock); 42 | NSParameterAssert(theTimeout >= 0); 43 | 44 | NSDate * timeoutDate = [NSDate dateWithTimeIntervalSinceNow:theTimeout]; 45 | 46 | NSTimeInterval timeoutSeconds = [timeoutDate timeIntervalSinceReferenceDate]; 47 | NSTimeInterval currentTime = 0.0; 48 | 49 | __block BOOL didFinish = NO; 50 | theBlock(&didFinish); 51 | for (currentTime = [NSDate timeIntervalSinceReferenceDate]; 52 | (didFinish == NO && currentTime < timeoutSeconds); 53 | currentTime = [NSDate timeIntervalSinceReferenceDate]) { 54 | 55 | [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 56 | 57 | } 58 | 59 | return currentTime <= timeoutSeconds; 60 | } 61 | 62 | 63 | @end 64 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHNavigationControllerBlocks/SHNavigationControllerBlocks/UINavigationController+SHNavigationControllerBlocks.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #pragma mark - Block Definitions 4 | typedef void (^SHNavigationControllerBlock)(UINavigationController * navigationController, 5 | UIViewController * viewController, 6 | BOOL isAnimated); 7 | 8 | typedef UIInterfaceOrientation(^SHNavigationControllerOrientationBlock)(UINavigationController * navigationController); 9 | 10 | typedef id 11 | (^SHNavigationControllerInteractiveControllerBlock)(UINavigationController * navigationController, 12 | id animationController); 13 | 14 | typedef id 15 | (^SHNavigationControllerAnimatedControllerBlock) (UINavigationController * navigationController, 16 | UINavigationControllerOperation operation, 17 | UIViewController * fromVC, 18 | UIViewController * toVC 19 | ); 20 | 21 | 22 | @interface UINavigationController (SHNavigationControllerBlocks) 23 | 24 | 25 | 26 | #pragma mark - Properties 27 | 28 | #pragma mark - Setters 29 | 30 | -(void)SH_setWillShowViewControllerBlock:(SHNavigationControllerBlock)theBlock; 31 | 32 | -(void)SH_setDidShowViewControllerBlock:(SHNavigationControllerBlock)theBlock; 33 | 34 | -(void)SH_setPreferredInterfaceOrientationForPresentatationBlock:(SHNavigationControllerOrientationBlock)theBlock; 35 | 36 | -(void)SH_setInteractiveControllerBlock:(SHNavigationControllerInteractiveControllerBlock)theBlock; 37 | 38 | -(void)SH_setAnimatedControllerBlock:(SHNavigationControllerAnimatedControllerBlock)theBlock; 39 | 40 | #pragma mark - Getters 41 | 42 | @property(nonatomic,readonly) SHNavigationControllerBlock SH_blockWillShowViewController; 43 | @property(nonatomic,readonly) SHNavigationControllerBlock SH_blockDidShowViewController; 44 | @property(nonatomic,readonly) SHNavigationControllerOrientationBlock SH_blockInterfaceOrientationForPresentation; 45 | @property(nonatomic,readonly) SHNavigationControllerInteractiveControllerBlock SH_blockInteractiveController; 46 | @property(nonatomic,readonly) SHNavigationControllerAnimatedControllerBlock SH_blockAnimatedController; 47 | 48 | 49 | @end -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHObjectUserInfo/SHObjectUserInfo/NSObject+SHObjectUserInfo.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+SHSegueBlock.m 3 | // Example 4 | // 5 | // Created by Seivan Heidari on 5/16/13. 6 | // Copyright (c) 2013 Seivan Heidari. All rights reserved. 7 | // 8 | 9 | #import "NSObject+SHObjectUserInfo.h" 10 | 11 | @interface SHObjectUserInfoManager : NSObject 12 | 13 | 14 | @property(nonatomic,strong) NSMapTable * mapUserInfo; 15 | 16 | +(instancetype)sharedManager; 17 | 18 | -(void)SH_memoryDebugger; 19 | @end 20 | 21 | 22 | @implementation SHObjectUserInfoManager 23 | #pragma mark - 24 | #pragma mark Init & Dealloc 25 | -(instancetype)init; { 26 | self = [super init]; 27 | if (self) { 28 | self.mapUserInfo = [NSMapTable weakToStrongObjectsMapTable]; 29 | // [self SH_memoryDebugger]; 30 | } 31 | 32 | return self; 33 | } 34 | 35 | +(instancetype)sharedManager; { 36 | static SHObjectUserInfoManager *_sharedInstance; 37 | static dispatch_once_t onceToken; 38 | dispatch_once(&onceToken, ^{ 39 | _sharedInstance = [[SHObjectUserInfoManager alloc] init]; 40 | 41 | }); 42 | 43 | return _sharedInstance; 44 | 45 | } 46 | 47 | #pragma mark - 48 | #pragma mark Debugger 49 | -(void)SH_memoryDebugger; { 50 | double delayInSeconds = 5.0; 51 | dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); 52 | dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 53 | NSLog(@"USERINFO %@",self.mapUserInfo); 54 | [self SH_memoryDebugger]; 55 | }); 56 | } 57 | 58 | @end 59 | 60 | @interface NSObject () 61 | 62 | @property(nonatomic,readonly) NSMapTable * mapUserInfo; 63 | 64 | @end 65 | 66 | @implementation NSObject (SHObjectUserInfo) 67 | 68 | #pragma mark - 69 | #pragma mark Properties 70 | 71 | #pragma mark - 72 | #pragma mark Getters 73 | 74 | -(NSMutableDictionary *)SH_userInfo; { 75 | NSMutableDictionary * userInfo = [self.mapUserInfo objectForKey:self]; 76 | if(userInfo == nil){ 77 | userInfo = @{}.mutableCopy; 78 | self.SH_userInfo = userInfo; 79 | } 80 | return userInfo; 81 | } 82 | 83 | #pragma mark - 84 | #pragma mark Setters 85 | 86 | -(void)setSH_userInfo:(NSMutableDictionary *)userInfo; { 87 | if(userInfo) 88 | [self.mapUserInfo setObject:userInfo forKey:self]; 89 | else 90 | [self.mapUserInfo removeObjectForKey:self]; 91 | } 92 | 93 | 94 | #pragma mark - 95 | #pragma mark Privates 96 | 97 | #pragma mark - 98 | #pragma mark Properties 99 | 100 | #pragma mark - 101 | #pragma mark Getters 102 | -(NSMapTable *)mapUserInfo; { 103 | return SHObjectUserInfoManager.sharedManager.mapUserInfo; 104 | } 105 | 106 | 107 | 108 | @end 109 | -------------------------------------------------------------------------------- /TestsAndSample/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - KIF/Core (2.0.0) 3 | - KIF/XCTest (2.0.0): 4 | - KIF/Core 5 | - SHActionSheetBlocks (2.3.1) 6 | - SHAlertViewBlocks (1.2.1) 7 | - SHBarButtonItemBlocks (1.2.1) 8 | - SHControlBlocks (1.2.1) 9 | - SHGestureRecognizerBlocks (1.1.1) 10 | - SHNavigationControllerBlocks (2.1.1) 11 | - SHObjectUserInfo (1.2.0) 12 | - SHPopoverControllerBlocks (1.2.1) 13 | - SHSegueBlocks (1.2.3): 14 | - SHObjectUserInfo (~> 1.2.0) 15 | - SHTabBarControllerBlocks (2.0.1) 16 | - SHTestCaseAdditions (1.4.1): 17 | - SHTestCaseAdditions/XCTest 18 | - SHTestCaseAdditions/XCTest (1.4.1) 19 | - SHTextFieldBlocks (1.1.1) 20 | - SHTextViewBlocks (1.1.1) 21 | - SHTransitionBlocks (1.0.1) 22 | - SHUIKitBlocks (2.3.1): 23 | - SHActionSheetBlocks (~> 2.3.1) 24 | - SHAlertViewBlocks (~> 1.2.1) 25 | - SHBarButtonItemBlocks (~> 1.2.1) 26 | - SHControlBlocks (~> 1.2.1) 27 | - SHGestureRecognizerBlocks (~> 1.1.1) 28 | - SHNavigationControllerBlocks (~> 2.1.1) 29 | - SHPopoverControllerBlocks (~> 1.2.1) 30 | - SHSegueBlocks (~> 1.2.3) 31 | - SHTabBarControllerBlocks (~> 2.0.1) 32 | - SHTextFieldBlocks (~> 1.1.1) 33 | - SHTextViewBlocks (~> 1.1.1) 34 | - SHTransitionBlocks (~> 1.0.1) 35 | - SHWebViewBlocks (~> 1.3.1) 36 | - SHWebViewBlocks (1.3.1) 37 | 38 | DEPENDENCIES: 39 | - KIF/XCTest (from `https://github.com/tonyd256/KIF`, branch `xctest`) 40 | - SHTestCaseAdditions 41 | - SHUIKitBlocks (from `../`) 42 | 43 | EXTERNAL SOURCES: 44 | KIF: 45 | :branch: xctest 46 | :git: https://github.com/tonyd256/KIF 47 | SHUIKitBlocks: 48 | :path: ../ 49 | 50 | SPEC CHECKSUMS: 51 | KIF: 4e0fcfe8f21fc555e74d9c3d64bb9a70c0406a82 52 | SHActionSheetBlocks: 1bcb3fa02de51ddd25fc32b7375eef094ba691af 53 | SHAlertViewBlocks: c442c863d629c11905f0ed0a206a1b930add22a8 54 | SHBarButtonItemBlocks: cd7303056cf88cc3ca366de52f39098a7055df64 55 | SHControlBlocks: a7229183a483868ca87fdedce66a586226bb921d 56 | SHGestureRecognizerBlocks: e022652976eb49a6e7400a331a54d44b9129dd2f 57 | SHNavigationControllerBlocks: 9594c2d2d836dfe4d4a833fd025026b149cda619 58 | SHObjectUserInfo: d1c1cd61202b06ef5975f07384c12948f6ba9311 59 | SHPopoverControllerBlocks: f5ed9c565f9bfe41216fede078b5a95e319b17de 60 | SHSegueBlocks: 5edbb9242c12d24d3044c5cb2bed89afcc88e613 61 | SHTabBarControllerBlocks: e6b62dea994a48eb79972ff803a7c831ca95d983 62 | SHTestCaseAdditions: c01c53ebb97807abcfd7a9fcad477fafc50f56c0 63 | SHTextFieldBlocks: 91d702bedf1ff8098e42fd107e7bd43e73fb7838 64 | SHTextViewBlocks: f2490afb8b34ed2b92186699cce67c905053c69a 65 | SHTransitionBlocks: 9c8e8406b82bde58fb7dac80a41f7b8c8f76ea12 66 | SHUIKitBlocks: 1f44a42aedccec121a20af16f771eca5b9cbb97f 67 | SHWebViewBlocks: 3f3af0947ed02b6da564241e726e45a6e18cc9c5 68 | 69 | COCOAPODS: 0.33.1 70 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - KIF/Core (2.0.0) 3 | - KIF/XCTest (2.0.0): 4 | - KIF/Core 5 | - SHActionSheetBlocks (2.3.1) 6 | - SHAlertViewBlocks (1.2.1) 7 | - SHBarButtonItemBlocks (1.2.1) 8 | - SHControlBlocks (1.2.1) 9 | - SHGestureRecognizerBlocks (1.1.1) 10 | - SHNavigationControllerBlocks (2.1.1) 11 | - SHObjectUserInfo (1.2.0) 12 | - SHPopoverControllerBlocks (1.2.1) 13 | - SHSegueBlocks (1.2.3): 14 | - SHObjectUserInfo (~> 1.2.0) 15 | - SHTabBarControllerBlocks (2.0.1) 16 | - SHTestCaseAdditions (1.4.1): 17 | - SHTestCaseAdditions/XCTest 18 | - SHTestCaseAdditions/XCTest (1.4.1) 19 | - SHTextFieldBlocks (1.1.1) 20 | - SHTextViewBlocks (1.1.1) 21 | - SHTransitionBlocks (1.0.1) 22 | - SHUIKitBlocks (2.3.1): 23 | - SHActionSheetBlocks (~> 2.3.1) 24 | - SHAlertViewBlocks (~> 1.2.1) 25 | - SHBarButtonItemBlocks (~> 1.2.1) 26 | - SHControlBlocks (~> 1.2.1) 27 | - SHGestureRecognizerBlocks (~> 1.1.1) 28 | - SHNavigationControllerBlocks (~> 2.1.1) 29 | - SHPopoverControllerBlocks (~> 1.2.1) 30 | - SHSegueBlocks (~> 1.2.3) 31 | - SHTabBarControllerBlocks (~> 2.0.1) 32 | - SHTextFieldBlocks (~> 1.1.1) 33 | - SHTextViewBlocks (~> 1.1.1) 34 | - SHTransitionBlocks (~> 1.0.1) 35 | - SHWebViewBlocks (~> 1.3.1) 36 | - SHWebViewBlocks (1.3.1) 37 | 38 | DEPENDENCIES: 39 | - KIF/XCTest (from `https://github.com/tonyd256/KIF`, branch `xctest`) 40 | - SHTestCaseAdditions 41 | - SHUIKitBlocks (from `../`) 42 | 43 | EXTERNAL SOURCES: 44 | KIF: 45 | :branch: xctest 46 | :git: https://github.com/tonyd256/KIF 47 | SHUIKitBlocks: 48 | :path: ../ 49 | 50 | SPEC CHECKSUMS: 51 | KIF: 4e0fcfe8f21fc555e74d9c3d64bb9a70c0406a82 52 | SHActionSheetBlocks: 1bcb3fa02de51ddd25fc32b7375eef094ba691af 53 | SHAlertViewBlocks: c442c863d629c11905f0ed0a206a1b930add22a8 54 | SHBarButtonItemBlocks: cd7303056cf88cc3ca366de52f39098a7055df64 55 | SHControlBlocks: a7229183a483868ca87fdedce66a586226bb921d 56 | SHGestureRecognizerBlocks: e022652976eb49a6e7400a331a54d44b9129dd2f 57 | SHNavigationControllerBlocks: 9594c2d2d836dfe4d4a833fd025026b149cda619 58 | SHObjectUserInfo: d1c1cd61202b06ef5975f07384c12948f6ba9311 59 | SHPopoverControllerBlocks: f5ed9c565f9bfe41216fede078b5a95e319b17de 60 | SHSegueBlocks: 5edbb9242c12d24d3044c5cb2bed89afcc88e613 61 | SHTabBarControllerBlocks: e6b62dea994a48eb79972ff803a7c831ca95d983 62 | SHTestCaseAdditions: c01c53ebb97807abcfd7a9fcad477fafc50f56c0 63 | SHTextFieldBlocks: 91d702bedf1ff8098e42fd107e7bd43e73fb7838 64 | SHTextViewBlocks: f2490afb8b34ed2b92186699cce67c905053c69a 65 | SHTransitionBlocks: 9c8e8406b82bde58fb7dac80a41f7b8c8f76ea12 66 | SHUIKitBlocks: 1f44a42aedccec121a20af16f771eca5b9cbb97f 67 | SHWebViewBlocks: 3f3af0947ed02b6da564241e726e45a6e18cc9c5 68 | 69 | COCOAPODS: 0.33.1 70 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHAlertViewBlocks/SHAlertViewBlocks/UIAlertView+SHAlertViewBlocks.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIAlertView+SHAlertViewBlocks.h 3 | // Example 4 | // 5 | // Created by Seivan Heidari on 5/16/13. 6 | // Copyright (c) 2013 Seivan Heidari. All rights reserved. 7 | // 8 | 9 | #pragma mark - 10 | #pragma mark Block Defs 11 | typedef void (^SHAlertViewBlock)(NSInteger theButtonIndex); 12 | typedef void (^SHAlertViewShowBlock)(UIAlertView * theAlertView); 13 | typedef void (^SHAlertViewDismissBlock)(UIAlertView * theAlertView, NSInteger theButtonIndex); 14 | 15 | typedef BOOL (^SHAlertViewFirstButtonEnabledBlock)(UIAlertView * theAlertView); 16 | 17 | @interface UIAlertView (SHAlertViewBlocks) 18 | 19 | 20 | #pragma mark - Init 21 | +(instancetype)SH_alertViewWithTitle:(NSString *)theTitle withMessage:(NSString *)theMessage; 22 | 23 | +(instancetype)SH_alertViewWithTitle:(NSString *)theTitle 24 | andMessage:(NSString *)theMessage 25 | buttonTitles:(NSArray *)theButtonTitles 26 | cancelTitle:(NSString *)theCancelTitle 27 | withBlock:(SHAlertViewBlock)theBlock; 28 | 29 | 30 | 31 | #pragma mark - Adding 32 | -(NSInteger)SH_addButtonWithTitle:(NSString *)theTitle 33 | withBlock:(SHAlertViewBlock)theBlock; 34 | 35 | 36 | ///Will add a new cancel button and make previous cancel buttons to a normal button 37 | -(NSInteger)SH_addButtonCancelWithTitle:(NSString *)theTitle 38 | withBlock:(SHAlertViewBlock)theBlock; 39 | 40 | 41 | #pragma mark - Properties 42 | 43 | 44 | #pragma mark - Setters 45 | -(void)SH_setButtonBlockForIndex:(NSInteger)theButtonIndex 46 | withBlock:(SHAlertViewBlock)theBlock; 47 | 48 | -(void)SH_setButtonCancelBlock:(SHAlertViewBlock)theBlock; 49 | 50 | -(void)SH_setWillShowBlock:(SHAlertViewShowBlock)theBlock; 51 | -(void)SH_setDidShowBlock:(SHAlertViewShowBlock)theBlock; 52 | 53 | -(void)SH_setWillDismissBlock:(SHAlertViewDismissBlock)theBlock; 54 | -(void)SH_setDidDismissBlock:(SHAlertViewDismissBlock)theBlock; 55 | 56 | -(void)SH_setFirstButtonEnabledBlock:(SHAlertViewFirstButtonEnabledBlock)theBlock; 57 | 58 | 59 | #pragma mark - Getters 60 | -(SHAlertViewBlock)SH_blockForButtonIndex:(NSInteger)theButtonIndex; 61 | 62 | 63 | @property(nonatomic,readonly) SHAlertViewBlock SH_blockForCancelButton; 64 | 65 | 66 | @property(nonatomic,readonly) SHAlertViewShowBlock SH_blockWillShow; 67 | @property(nonatomic,readonly) SHAlertViewShowBlock SH_blockDidShow; 68 | 69 | @property(nonatomic,readonly) SHAlertViewDismissBlock SH_blockWillDismiss; 70 | @property(nonatomic,readonly) SHAlertViewDismissBlock SH_blockDidDismiss; 71 | 72 | @property(nonatomic,readonly) SHAlertViewFirstButtonEnabledBlock SH_blockForFirstButtonEnabled; 73 | 74 | @end 75 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Classes/KIFTestCase.h: -------------------------------------------------------------------------------- 1 | // 2 | // KIFTestCase.h 3 | // KIF 4 | // 5 | // Created by Brian Nickel on 12/14/12. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | /*! 11 | * @abstract @c KIFTestCase subclasses @c SenTestCase or XCTestCase to add setup and teardown steps that can be used to execute KIF test steps. 12 | * @discussion This class provides four new methods: @c beforeAll and @c afterAll which run once before and after all tests and @c beforeEach and @c afterEach which run before and after every test. @c beforeEach and @c afterEach are guaranteed to run in the same instance as each test, but @c beforeAll and @c afterAll are not. As such, @c beforeEach can be used to set up instance variables while @c beforeAll can only be used to set up static variables. 13 | */ 14 | #ifdef KIF_XCTEST 15 | 16 | #import 17 | #import "XCTestCase-KIFAdditions.h" 18 | @interface KIFTestCase : XCTestCase 19 | 20 | #else 21 | 22 | #import 23 | #import "SenTestCase-KIFAdditions.h" 24 | @interface KIFTestCase : SenTestCase 25 | 26 | #endif 27 | 28 | /*! 29 | * @abstract This method runs once before executing the first test in the class. 30 | * @discussion This should be used for navigating to the starting point in the app where all tests will start from. Because this method is not guaranteed to run in the same instance as tests, it should not be used for setting up instance variables but can be used for setting up static variables. 31 | */ 32 | - (void)beforeAll; 33 | 34 | /*! 35 | * @abstract This method runs before each test. 36 | * @discussion This should be used for any common tasks required before each test. Because this method is guaranteed to run in the same instance as tests, it can be used for setting up instance variables. 37 | */ 38 | - (void)beforeEach; 39 | 40 | /*! 41 | * @abstract This method runs after each test. 42 | * @discussion This should be used for restoring the app to the state it was in before the test. This could include conditional logic to recover from failed tests. 43 | */ 44 | - (void)afterEach; 45 | 46 | /*! 47 | * @abstract This method runs once after executing the last test in the class. 48 | * @discussion This should be used for navigating back to the initial state of the app, where it was before @c beforeAll. This should also be used for tearing down any static methods created by @c beforeAll. 49 | */ 50 | - (void)afterAll; 51 | 52 | /*! 53 | * @discussion When @c YES, rather than failing the test and advancing on the first failure, KIF will stop executing tests and begin spinning the run loop. This provides an opportunity for inspecting the state of the app when the failure occurred. 54 | */ 55 | @property (nonatomic, assign) BOOL stopTestsOnFirstBigFailure; 56 | 57 | @end 58 | 59 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHObjectUserInfo/README.md: -------------------------------------------------------------------------------- 1 | SHObjectUserInfo 2 | ========== 3 | [![Build Status](https://travis-ci.org/seivan/SHObjectUserInfo.png?branch=master)](https://travis-ci.org/seivan/SHObjectUserInfo) 4 | [![Version](https://cocoapod-badges.herokuapp.com/v/SHObjectUserInfo/badge.png)](http://cocoadocs.org/docsets/SHObjectUserInfo) 5 | [![Platform](https://cocoapod-badges.herokuapp.com/p/SHObjectUserInfo/badge.png)](http://cocoadocs.org/docsets/SHObjectUserInfo) 6 | 7 | > This pod is used by [`SHFoundationAdditions`](https://github.com/seivan/SHFoundationAdditions) as part of many components covering to plug the holes missing from Foundation, UIKit, CoreLocation, GameKit, MapKit and other aspects of an iOS application's architecture. 8 | 9 | Overview 10 | -------- 11 | 12 | SHObjectUserInfo is a category on top of NSObject to allow userInfo dictionary without swizzling. It's built on top of NSMapTable that works with weakToStrong references between an object and its userInfo. 13 | 14 | 15 | Swizzle & Junk free 16 | ------------------- 17 | 18 | No developer psyches were harmed or killed for this. I've noticed other similar libraries all swizzle like there is no tomorrow. If the API can remains the same without Swizzle, **then don't Swizzle.** 19 | 20 | All in all; 50 loc for userInfo 21 | 22 | 23 | Installation 24 | ------------ 25 | 26 | ```ruby 27 | pod 'SHObjectUserInfo' 28 | ``` 29 | 30 | *** 31 | 32 | Setup 33 | ----- 34 | 35 | Put this either in specific classes or your project prefix file 36 | 37 | ```objective-c 38 | #import "NSObject+SHObjectUserInfo.h" 39 | ``` 40 | 41 | or 42 | 43 | ```objective-c 44 | #import "SHObjectUserInfo.h" 45 | ``` 46 | 47 | Usage 48 | ----- 49 | 50 | ```objective-c 51 | myObjectThatInheritedFromNSObject.sh_userInfo = [@{@"myKey" : mYValue} mutableCopy]; 52 | ``` 53 | 54 | If you're using [SHSegueBlocks](http://www.github.com/seivan/SHSegueBlocks) 55 | 56 | ```objective-c 57 | [self SH_performSegueWithIdentifier:@"unwinder" withUserInfo:@{@"date" : [NSDate date]}]; 58 | ``` 59 | 60 | In the destinationViewController 61 | 62 | ```objective-c 63 | self.myDate = self.SH_userInfo[@"date"]; 64 | ``` 65 | 66 | or 67 | 68 | ```objective-c 69 | [self SH_performSegueWithIdentifier:@"push" 70 | andDestionationViewController:^(UIViewController * theDestinationViewController) { 71 | 72 | theDestinationViewController.SH_userInfo = myDictionary 73 | 74 | }]; 75 | 76 | ``` 77 | 78 | Contact 79 | ------- 80 | 81 | If you end up using SHObjectUserInfo in a project, I'd love to hear about it. 82 | 83 | email: [seivan.heidari@icloud.com](mailto:seivan.heidari@icloud.com) 84 | twitter: [@seivanheidari](https://twitter.com/seivanheidari) 85 | 86 | ## License 87 | 88 | SHObjectUserInfo is © 2013 [Seivan](http://www.github.com/seivan) and may be freely 89 | distributed under the [MIT license](http://opensource.org/licenses/MIT). 90 | See the [`LICENSE.md`](https://github.com/seivan/SHObjectUserInfo/blob/master/LICENSE.md) file. -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHActionSheetBlocks/SHActionSheetBlocks/UIActionSheet+SHActionSheetBlocks.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIActionSheet+SHActionSheetBlocks.h 3 | // Example 4 | // 5 | // Created by Seivan Heidari on 5/16/13. 6 | // Copyright (c) 2013 Seivan Heidari. All rights reserved. 7 | // 8 | 9 | #pragma mark - 10 | #pragma mark Block Defs 11 | typedef void (^SHActionSheetBlock)(NSInteger theButtonIndex); 12 | typedef void (^SHActionSheetShowBlock)(UIActionSheet * theActionSheet); 13 | typedef void (^SHActionSheetDismissBlock)(UIActionSheet * theActionSheet, NSInteger theButtonIndex); 14 | 15 | @interface UIActionSheet (SHActionSheetBlocks) 16 | 17 | #pragma mark - 18 | #pragma mark Init 19 | +(instancetype)SH_actionSheetWithTitle:(NSString *)theTitle; 20 | 21 | +(instancetype)SH_actionSheetWithTitle:(NSString *)theTitle 22 | buttonTitles:(NSArray *)theButtonTitles 23 | cancelTitle:(NSString *)theCancelTitle 24 | destructiveTitle:(NSString *)theDestructiveTitle 25 | withBlock:(SHActionSheetBlock)theBlock; 26 | #pragma mark - 27 | #pragma mark Adding 28 | -(NSInteger)SH_addButtonWithTitle:(NSString *)theTitle 29 | withBlock:(SHActionSheetBlock)theBlock; 30 | 31 | ///Will add a new destructive button and make previous Destructive buttons to normal 32 | -(NSInteger)SH_addButtonDestructiveWithTitle:(NSString *)theTitle 33 | withBlock:(SHActionSheetBlock)theBlock; 34 | 35 | ///Will add a new destructive button and make previous Destructive buttons to normal 36 | -(NSInteger)SH_addButtonCancelWithTitle:(NSString *)theTitle 37 | withBlock:(SHActionSheetBlock)theBlock; 38 | 39 | #pragma mark - 40 | #pragma mark Properties 41 | 42 | #pragma mark - 43 | #pragma mark Setters 44 | -(void)SH_setButtonBlockForIndex:(NSInteger)theButtonIndex 45 | withBlock:(SHActionSheetBlock)theBlock; 46 | 47 | 48 | -(void)SH_setButtonDestructiveBlock:(SHActionSheetBlock)theBlock; 49 | -(void)SH_setButtonCancelBlock:(SHActionSheetBlock)theBlock; 50 | 51 | -(void)SH_setWillShowBlock:(SHActionSheetShowBlock)theBlock; 52 | -(void)SH_setDidShowBlock:(SHActionSheetShowBlock)theBlock; 53 | 54 | -(void)SH_setWillDismissBlock:(SHActionSheetDismissBlock)theBlock; 55 | -(void)SH_setDidDismissBlock:(SHActionSheetDismissBlock)theBlock; 56 | 57 | #pragma mark - 58 | #pragma mark Getters 59 | -(SHActionSheetBlock)SH_blockForButtonIndex:(NSInteger)theButtonIndex; 60 | 61 | @property(nonatomic,readonly) SHActionSheetBlock SH_blockForDestructiveButton; 62 | @property(nonatomic,readonly) SHActionSheetBlock SH_blockForCancelButton; 63 | 64 | 65 | @property(nonatomic,readonly) SHActionSheetShowBlock SH_blockWillShow; 66 | @property(nonatomic,readonly) SHActionSheetShowBlock SH_blockDidShow; 67 | 68 | @property(nonatomic,readonly) SHActionSheetDismissBlock SH_blockWillDismiss; 69 | @property(nonatomic,readonly) SHActionSheetDismissBlock SH_blockDidDismiss; 70 | 71 | @end 72 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTabBarControllerBlocks/SHTabBarControllerBlocks/UITabBarController+SHTabBarControllerBlocks.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma mark - Block Defintions 3 | typedef BOOL (^SHTabBarControllerPredicateBlock)(UITabBarController * theTabBarController, 4 | UIViewController * theViewController); 5 | 6 | typedef void (^SHTabBarControllerBlock)(UITabBarController * theTabBarController, 7 | UIViewController * theViewController); 8 | 9 | typedef void (^SHTabBarControllerCustomizingBlock)(UITabBarController * theTabBarController, 10 | NSArray * theViewControllers); 11 | 12 | typedef void (^SHTabBarControllerCustomizingWithChangeBlock)(UITabBarController * theTabBarController, 13 | NSArray * theViewControllers, 14 | BOOL isChanged); 15 | 16 | typedef id 17 | (^SHTabBarControllerInteractiveControllerBlock)(UITabBarController * tabBarController, 18 | id animationController 19 | ); 20 | 21 | typedef id 22 | (^SHTabBarControllerAnimatedControllerBlock) (UITabBarController * tabBarController, 23 | UIViewController * fromVC, 24 | UIViewController * toVC 25 | ); 26 | 27 | 28 | 29 | @interface UITabBarController (SHTabBarControllerBlocks) 30 | 31 | 32 | 33 | #pragma mark - Properties 34 | 35 | #pragma mark - Setters 36 | -(void)SH_setShouldSelectViewControllerBlock:(SHTabBarControllerPredicateBlock)theBlock; 37 | -(void)SH_setDidSelectViewControllerBlock:(SHTabBarControllerBlock)theBlock; 38 | -(void)SH_setWillBeginCustomizingViewControllersBlock:(SHTabBarControllerCustomizingBlock)theBlock; 39 | -(void)SH_setWillEndCustomizingViewControllersBlock:(SHTabBarControllerCustomizingWithChangeBlock)theBlock; 40 | -(void)SH_setDidEndCustomizingViewControllersBlock:(SHTabBarControllerCustomizingWithChangeBlock)theBlock; 41 | -(void)SH_setInteractiveControllerBlock:(SHTabBarControllerInteractiveControllerBlock)theBlock; 42 | -(void)SH_setAnimatedControllerBlock:(SHTabBarControllerAnimatedControllerBlock)theBlock; 43 | 44 | 45 | 46 | #pragma mark - Getters 47 | @property(nonatomic,readonly) SHTabBarControllerPredicateBlock SH_blockShouldSelectViewController; 48 | @property(nonatomic,readonly) SHTabBarControllerBlock SH_blockDidSelectViewController; 49 | @property(nonatomic,readonly) SHTabBarControllerCustomizingBlock SH_blockWillBeginCustomizingViewControllers; 50 | @property(nonatomic,readonly) SHTabBarControllerCustomizingWithChangeBlock SH_blockWillEndCustomizingViewControllers; 51 | @property(nonatomic,readonly) SHTabBarControllerCustomizingWithChangeBlock SH_blockDidEndCustomizingViewControllers; 52 | @property(nonatomic,readonly) SHTabBarControllerInteractiveControllerBlock SH_blockInteractiveController; 53 | @property(nonatomic,readonly) SHTabBarControllerAnimatedControllerBlock SH_blockAnimatedController; 54 | 55 | @end -------------------------------------------------------------------------------- /TestsAndSample/Tests/SHUIKitBlocksTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleTests.m 3 | // ExampleTests 4 | // 5 | // Created by Seivan Heidari on 8/7/13. 6 | // Copyright (c) 2013 Seivan Heidari. All rights reserved. 7 | // 8 | 9 | #import "SHUIKitBlocks.h" 10 | 11 | #import 12 | 13 | @interface SHUIKitBlocksTests : XCTestCase 14 | 15 | @end 16 | 17 | 18 | @implementation SHUIKitBlocksTests 19 | 20 | -(void)testSHActionSheetBlocks ;{ 21 | XCTAssertTrue([UIActionSheet.new 22 | respondsToSelector:@selector(SH_addButtonWithTitle:withBlock:)]); 23 | } 24 | 25 | -(void)testSHAlertViewBlocks ;{ 26 | XCTAssertTrue([UIAlertView.new 27 | respondsToSelector:@selector(SH_addButtonWithTitle:withBlock:)]); 28 | 29 | } 30 | 31 | -(void)testSHBarButtonItemBlocks ;{ 32 | XCTAssertTrue([UIBarButtonItem.new 33 | respondsToSelector:@selector(SH_addBlock:)]); 34 | 35 | } 36 | 37 | -(void)testSHControlBlocks ;{ 38 | XCTAssertTrue([UIControl.new 39 | respondsToSelector:@selector(SH_addControlEvents:withBlock:)]); 40 | 41 | } 42 | 43 | 44 | -(void)testSHNavigationControllerBlocks ;{ 45 | XCTAssertTrue([UINavigationController.new 46 | respondsToSelector:@selector(SH_setWillShowViewControllerBlock:)]); 47 | 48 | } 49 | 50 | -(void)testSHObjectUserInfo ;{ 51 | XCTAssertTrue([NSObject.new 52 | respondsToSelector:@selector(SH_userInfo)]); 53 | 54 | } 55 | 56 | -(void)testSHPopoverControllerBlocks ;{ 57 | if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 58 | XCTAssertTrue([UIPopoverController.new 59 | respondsToSelector:@selector(SH_setShouldDismissPopoverBlock:)]); 60 | 61 | } 62 | 63 | } 64 | 65 | -(void)testSHSegueBlocks ;{ 66 | XCTAssertTrue([UIViewController.new 67 | respondsToSelector:@selector(SH_handlesBlockForSegue:)]); 68 | 69 | } 70 | 71 | -(void)testSHWebViewBlocks ;{ 72 | XCTAssertTrue([UIWebView.new 73 | respondsToSelector:@selector(SH_setShouldStartLoadWithRequestBlock:)]); 74 | 75 | } 76 | 77 | -(void)testSHGestureRecognizerBlocks ;{ 78 | XCTAssertTrue([UITapGestureRecognizer.new 79 | respondsToSelector:@selector(SH_addBlock:)]); 80 | 81 | } 82 | 83 | -(void)testSHTextFieldBlocks ;{ 84 | XCTAssertTrue([UITextField.new 85 | respondsToSelector:@selector(SH_setShouldBeginEditingBlock:)]); 86 | 87 | } 88 | 89 | -(void)testSHTextViewBlocks; { 90 | XCTAssertTrue([UITextView.new 91 | respondsToSelector:@selector(SH_blockDidChangeSelection)]); 92 | 93 | } 94 | 95 | -(void)testSHTabBarControllerBlocks; { 96 | XCTAssertTrue([UITabBarController.new 97 | respondsToSelector:@selector(SH_setShouldSelectViewControllerBlock:)]); 98 | 99 | } 100 | 101 | -(void)testSHTransitionBlocks; { 102 | XCTAssertTrue([UIViewController.new 103 | respondsToSelector:@selector(SH_animatedTransition)]); 104 | 105 | } 106 | 107 | @end 108 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Additions/UITouch-KIFAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // UITouch-KIFAdditions.m 3 | // KIF 4 | // 5 | // Created by Eric Firestone on 5/20/11. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | #import "UITouch-KIFAdditions.h" 11 | #import "LoadableCategory.h" 12 | #import 13 | 14 | MAKE_CATEGORIES_LOADABLE(UITouch_KIFAdditions) 15 | 16 | typedef struct { 17 | unsigned int _firstTouchForView:1; 18 | unsigned int _isTap:1; 19 | unsigned int _isDelayed:1; 20 | unsigned int _sentTouchesEnded:1; 21 | unsigned int _abandonForwardingRecord:1; 22 | } UITouchFlags; 23 | 24 | @interface UITouch () 25 | 26 | @property(assign) BOOL isTap; 27 | @property(assign) NSUInteger tapCount; 28 | @property(assign) UITouchPhase phase; 29 | @property(retain) UIView *view; 30 | @property(retain) UIWindow *window; 31 | @property(assign) NSTimeInterval timestamp; 32 | 33 | - (void)setGestureView:(UIView *)view; 34 | - (void)_setLocationInWindow:(CGPoint)location resetPrevious:(BOOL)resetPrevious; 35 | - (void)_setIsFirstTouchForView:(BOOL)firstTouchForView; 36 | 37 | @end 38 | 39 | @implementation UITouch (KIFAdditions) 40 | 41 | - (id)initInView:(UIView *)view; 42 | { 43 | CGRect frame = view.frame; 44 | CGPoint centerPoint = CGPointMake(frame.size.width * 0.5f, frame.size.height * 0.5f); 45 | return [self initAtPoint:centerPoint inView:view]; 46 | } 47 | 48 | - (id)initAtPoint:(CGPoint)point inWindow:(UIWindow *)window; 49 | { 50 | self = [super init]; 51 | if (self == nil) { 52 | return nil; 53 | } 54 | 55 | // Create a fake tap touch 56 | [self setWindow:window]; // Wipes out some values. Needs to be first. 57 | 58 | [self setTapCount:1]; 59 | [self _setLocationInWindow:point resetPrevious:YES]; 60 | 61 | UIView *hitTestView = [window hitTest:point withEvent:nil]; 62 | 63 | [self setView:hitTestView]; 64 | [self setPhase:UITouchPhaseBegan]; 65 | [self _setIsFirstTouchForView:YES]; 66 | [self setIsTap:YES]; 67 | [self setTimestamp:[[NSProcessInfo processInfo] systemUptime]]; 68 | 69 | if ([self respondsToSelector:@selector(setGestureView:)]) { 70 | [self setGestureView:hitTestView]; 71 | } 72 | 73 | return self; 74 | } 75 | 76 | - (id)initAtPoint:(CGPoint)point inView:(UIView *)view; 77 | { 78 | return [self initAtPoint:[view.window convertPoint:point fromView:view] inWindow:view.window]; 79 | } 80 | 81 | // 82 | // setLocationInWindow: 83 | // 84 | // Setter to allow access to the _locationInWindow member. 85 | // 86 | - (void)setLocationInWindow:(CGPoint)location 87 | { 88 | [self setTimestamp:[[NSProcessInfo processInfo] systemUptime]]; 89 | [self _setLocationInWindow:location resetPrevious:NO]; 90 | } 91 | 92 | - (void)setPhaseAndUpdateTimestamp:(UITouchPhase)phase 93 | { 94 | [self setTimestamp:[[NSProcessInfo processInfo] systemUptime]]; 95 | [self setPhase:phase]; 96 | } 97 | 98 | @end 99 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTransitionBlocks/SHTransitionBlocks/UIViewController+SHTransitionBlocks.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | @protocol SHViewControllerAnimatedTransitioning 6 | @property(nonatomic,assign,getter = isReversed) BOOL reversed; 7 | @property(nonatomic,strong) NSMutableDictionary * userInfo; 8 | @property(nonatomic,readonly) id transitionContext; 9 | @end 10 | 11 | typedef void(^SHTransitionAnimationCompletionBlock)(); 12 | 13 | typedef void(^SHTransitionPreparedAnimationBlock)(UIView * containerView, 14 | UIViewController * fromVC, 15 | UIViewController * toVC, 16 | NSTimeInterval duration, 17 | id transitionObject, 18 | SHTransitionAnimationCompletionBlock transitionDidComplete 19 | ); 20 | 21 | typedef void(^SHTransitionAnimationBlock)(id transitionObject); 22 | 23 | typedef NSTimeInterval(^SHTransitionDurationBlock)(id transitionObject); 24 | 25 | typedef UIGestureRecognizer *(^SHTransitionGestureRecognizerCreationBlock)(UIScreenEdgePanGestureRecognizer * edgeRecognizer); 26 | 27 | typedef void(^SHTransitionCallbackGestureRecognizerBlock)(UIViewController * controller, 28 | UIGestureRecognizer * recognizer, 29 | UIGestureRecognizerState state, 30 | CGPoint location 31 | ); 32 | 33 | 34 | @interface UIViewController (SHTransitionBlocks) 35 | 36 | @property(nonatomic,strong, setter = SH_setInteractiveTransition:) 37 | UIPercentDrivenInteractiveTransition * SH_interactiveTransition; 38 | 39 | -(void)SH_setInteractiveTransitionWithGestureBlock:(SHTransitionGestureRecognizerCreationBlock)theGestureCreateBlock 40 | onGestureCallbackBlock:(SHTransitionCallbackGestureRecognizerBlock)theGestureCallbackBlock; 41 | 42 | -(id)SH_animatedTransition; 43 | 44 | -(void)SH_setAnimationDuration:(NSTimeInterval)theDuration 45 | withPreparedTransitionBlock:(SHTransitionPreparedAnimationBlock)theBlock; 46 | 47 | -(void)SH_setAnimatedTransitionBlock:(SHTransitionAnimationBlock)theBlock; 48 | -(void)SH_setDurationTransitionBlock:(SHTransitionDurationBlock)theBlock; 49 | 50 | @property(nonatomic,readonly) SHTransitionPreparedAnimationBlock SH_blockAnimationDurationWithPreparedTransition; 51 | @property(nonatomic,readonly) SHTransitionAnimationBlock SH_blockAnimatedTransition; 52 | @property(nonatomic,readonly) SHTransitionDurationBlock SH_blockDurationTransition; 53 | 54 | 55 | @end -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-Tests-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | KIF 18 | Copyright 2011 Square, Inc. 19 | A full list of contributors is available at https://github.com/square/KIF/contributors 20 | 21 | Licensed under the Apache License, Version 2.0 (the "License"); 22 | you may not use this file except in compliance with the License. 23 | You may obtain a copy of the License at 24 | 25 | http://www.apache.org/licenses/LICENSE-2.0 26 | 27 | Unless required by applicable law or agreed to in writing, software 28 | distributed under the License is distributed on an "AS IS" BASIS, 29 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 30 | See the License for the specific language governing permissions and 31 | limitations under the License. 32 | Title 33 | KIF 34 | Type 35 | PSGroupSpecifier 36 | 37 | 38 | FooterText 39 | Copyright (c) 2012 Seivan Heidari. 40 | 41 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 42 | 43 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 44 | 45 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 46 | Title 47 | SHTestCaseAdditions 48 | Type 49 | PSGroupSpecifier 50 | 51 | 52 | FooterText 53 | Generated by CocoaPods - http://cocoapods.org 54 | Title 55 | 56 | Type 57 | PSGroupSpecifier 58 | 59 | 60 | StringsTable 61 | Acknowledgements 62 | Title 63 | Acknowledgements 64 | 65 | 66 | -------------------------------------------------------------------------------- /SHUIKitBlocks.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | name = "SHUIKitBlocks" 3 | url = "https://github.com/seivan/#{name}" 4 | git_url = "#{url}.git" 5 | version = "2.3.2" 6 | source_files = "#{name}/**/*.{h,m}" 7 | 8 | s.name = name 9 | s.version = version 10 | s.summary = "Prefixed Blocks for UIKit on categories *without* libffi and swizzling." 11 | s.description = <<-DESC 12 | 13 | Prefixed Blocks for UIKit on categories *without* libffi and swizzling. 14 | Blocks are hold with a weak reference so you don't have to cleanup when your object is gone. Comes with tests. 15 | 16 | Contains: 17 | * SHAlertViewBlocks => UIAlertView 18 | * SHControlBlocks => UIControl 19 | * SHSegueBlocks => UIViewController 20 | * SHNavigationControllerBlocks => UINavigationController 21 | * SHWebViewBlocks => UIWebView 22 | * SHPopoverControllerBlocks => UIPopoverController 23 | * SHBarButtonItemBlocks => UIBarButtonItem 24 | * SHActionSheetBlocks => UIActionSheet 25 | * SHGestureRecognizerBlocks => UIGestureRecognizer 26 | * SHTextFieldBlocks => UITextField 27 | * SHTextViewBlocks => UITextView 28 | * SHTabBarControllerBlocks => UITabBarController 29 | * SHTransitionBlocks => UIViewController 30 | 31 | Summary: 32 | * Swizzle and junk free 33 | * No need to clean up after - The blocks are self maintained. 34 | * Blocks are referenced in a map with weak properties 35 | * Prefixed selectors. 36 | * Minimum clutter on top of the public interface. 37 | * No external dependencies 38 | * Lightweight 39 | * *NO* libffi 40 | 41 | DESC 42 | 43 | s.homepage = url 44 | s.license = 'MIT' 45 | s.author = { "Seivan Heidari" => "seivan.heidari@icloud.com" } 46 | 47 | s.source = { :git => git_url, :tag => version} 48 | 49 | 50 | s.dependency "SHActionSheetBlocks", '~> 2.3.1' 51 | s.dependency "SHAlertViewBlocks", '~> 1.2.1' 52 | s.dependency "SHBarButtonItemBlocks", '~> 1.2.1' 53 | s.dependency "SHControlBlocks", '~> 1.2.1' 54 | s.dependency "SHGestureRecognizerBlocks", '~> 1.1.1' 55 | s.dependency "SHNavigationControllerBlocks", '~> 2.1.1' 56 | s.dependency "SHPopoverControllerBlocks", '~> 1.2.1' 57 | s.dependency "SHSegueBlocks", '~> 1.2.3' 58 | s.dependency "SHTabBarControllerBlocks", '~> 2.0.1' 59 | s.dependency "SHTextFieldBlocks", '~> 1.1.1' 60 | s.dependency "SHTextViewBlocks", '~> 1.1.1' 61 | s.dependency "SHWebViewBlocks", '~> 1.3.1' 62 | s.dependency "SHTransitionBlocks", '~> 1.0.1' 63 | 64 | s.platform = :ios, "7.0" 65 | s.source_files = source_files 66 | s.requires_arc = true 67 | end 68 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Local Podspecs/SHUIKitBlocks.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | name = "SHUIKitBlocks" 3 | url = "https://github.com/seivan/#{name}" 4 | git_url = "#{url}.git" 5 | version = "2.3.1" 6 | source_files = "#{name}/**/*.{h,m}" 7 | 8 | s.name = name 9 | s.version = version 10 | s.summary = "Prefixed Blocks for UIKit on categories *without* libffi and swizzling." 11 | s.description = <<-DESC 12 | 13 | Prefixed Blocks for UIKit on categories *without* libffi and swizzling. 14 | Blocks are hold with a weak reference so you don't have to cleanup when your object is gone. Comes with tests. 15 | 16 | Contains: 17 | * SHAlertViewBlocks => UIAlertView 18 | * SHControlBlocks => UIControl 19 | * SHSegueBlocks => UIViewController 20 | * SHNavigationControllerBlocks => UINavigationController 21 | * SHWebViewBlocks => UIWebView 22 | * SHPopoverControllerBlocks => UIPopoverController 23 | * SHBarButtonItemBlocks => UIBarButtonItem 24 | * SHActionSheetBlocks => UIActionSheet 25 | * SHGestureRecognizerBlocks => UIGestureRecognizer 26 | * SHTextFieldBlocks => UITextField 27 | * SHTextViewBlocks => UITextView 28 | * SHTabBarControllerBlocks => UITabBarController 29 | * SHTransitionBlocks => UIViewController 30 | 31 | Summary: 32 | * Swizzle and junk free 33 | * No need to clean up after - The blocks are self maintained. 34 | * Blocks are referenced in a map with weak properties 35 | * Prefixed selectors. 36 | * Minimum clutter on top of the public interface. 37 | * No external dependencies 38 | * Lightweight 39 | * *NO* libffi 40 | 41 | DESC 42 | 43 | s.homepage = url 44 | s.license = 'MIT' 45 | s.author = { "Seivan Heidari" => "seivan.heidari@icloud.com" } 46 | 47 | s.source = { :git => git_url, :tag => version} 48 | 49 | 50 | s.dependency "SHActionSheetBlocks", '~> 2.3.1' 51 | s.dependency "SHAlertViewBlocks", '~> 1.2.1' 52 | s.dependency "SHBarButtonItemBlocks", '~> 1.2.1' 53 | s.dependency "SHControlBlocks", '~> 1.2.1' 54 | s.dependency "SHGestureRecognizerBlocks", '~> 1.1.1' 55 | s.dependency "SHNavigationControllerBlocks", '~> 2.1.1' 56 | s.dependency "SHPopoverControllerBlocks", '~> 1.2.1' 57 | s.dependency "SHSegueBlocks", '~> 1.2.3' 58 | s.dependency "SHTabBarControllerBlocks", '~> 2.0.1' 59 | s.dependency "SHTextFieldBlocks", '~> 1.1.1' 60 | s.dependency "SHTextViewBlocks", '~> 1.1.1' 61 | s.dependency "SHWebViewBlocks", '~> 1.3.1' 62 | s.dependency "SHTransitionBlocks", '~> 1.0.1' 63 | 64 | s.platform = :ios, "7.0" 65 | s.source_files = source_files 66 | s.requires_arc = true 67 | end 68 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTextFieldBlocks/README.md: -------------------------------------------------------------------------------- 1 | #SHTextFieldBlocks 2 | 3 | [![CI Status](https://img.shields.io/travis/seivan/SHTextFieldBlocks.svg?style=flat)](https://travis-ci.org/seivan/SHTextFieldBlocks) 4 | [![Version](https://img.shields.io/cocoapods/v/SHTextFieldBlocks.svg?style=flat)](http://cocoadocs.org/docsets/SHTextFieldBlocks) 5 | [![Platform](https://img.shields.io/cocoapods/p/SHTextFieldBlocks.svg?style=flat)](http://cocoadocs.org/docsets/SHTextFieldBlocks) 6 | [![License](https://img.shields.io/cocoapods/l/SHTextFieldBlocks.svg?style=flat)](http://cocoadocs.org/docsets/SHTextFieldBlocks) 7 | 8 | > This pod is used by [`SHUIKitBlocks`](https://github.com/seivan/SHUIKitBlocks) as part of many components covering to plug the holes missing from Foundation, UIKit, CoreLocation, GameKit, MapKit and other aspects of an iOS application's architecture. 9 | 10 | ##Overview 11 | 12 | Using blocks instead of delegate callbacks for UITextField. The blocks are gone once the textfield is gone - Swizzle Free(™) 13 | 14 | ##Installation 15 | 16 | ```ruby 17 | pod 'SHTextFieldBlocks' 18 | ``` 19 | 20 | 21 | ##Setup 22 | 23 | Put this either in specific files or your project prefix file 24 | ```objective-c 25 | #import "UITextField+SHTextFieldBlocks.h" 26 | ``` 27 | or 28 | ```objective-c 29 | #import "SHTextFieldBlocks.h" 30 | ``` 31 | 32 | ##API 33 | 34 | ```objective-c 35 | #pragma mark - Block Defs 36 | typedef void (^SHTextFieldBlock)(UITextField * textField); 37 | typedef BOOL (^SHTextFieldPredicateBlock)(UITextField * textField); 38 | 39 | typedef BOOL (^SHTextFieldRangeReplacementBlock)(UITextField * textField, 40 | NSRange shouldChangeCharactersInRange, 41 | NSString * string); 42 | 43 | #pragma mark - Properties 44 | 45 | #pragma mark - Setters 46 | 47 | -(void)SH_setShouldBeginEditingBlock:(SHTextFieldPredicateBlock)theBlock; 48 | 49 | -(void)SH_setDidBeginEditingBlock:(SHTextFieldBlock)theBlock; 50 | 51 | -(void)SH_setShouldEndEditingBlock:(SHTextFieldPredicateBlock)theBlock; 52 | 53 | -(void)SH_setDidEndEditingBlock:(SHTextFieldBlock)theBlock; 54 | 55 | -(void)SH_setShouldChangeCharactersInRangeWithReplacementStringBlock:(SHTextFieldRangeReplacementBlock)theBlock; 56 | 57 | -(void)SH_setShouldClearBlock:(SHTextFieldPredicateBlock)theBlock; 58 | 59 | -(void)SH_setShouldReturnBlock:(SHTextFieldPredicateBlock)theBlock; 60 | 61 | 62 | #pragma mark - Getters 63 | 64 | -(SHTextFieldPredicateBlock)SH_blockShouldBeginEditing; 65 | 66 | -(SHTextFieldBlock)SH_blockDidBeginEditing; 67 | 68 | -(SHTextFieldPredicateBlock)SH_blockShouldEndEditing; 69 | 70 | -(SHTextFieldBlock)SH_blockDidEndEditing; 71 | 72 | -(SHTextFieldRangeReplacementBlock)SH_blockShouldChangeCharactersInRangeWithReplacementString; 73 | 74 | -(SHTextFieldPredicateBlock)SH_blockShouldClear; 75 | 76 | -(SHTextFieldPredicateBlock)SH_blockShouldReturn; 77 | 78 | 79 | ``` 80 | 81 | 82 | Contact 83 | ------- 84 | 85 | If you end up using SHTextFieldBlocks in a project, I'd love to hear about it. 86 | 87 | email: [seivan.heidari@icloud.com](mailto:seivan.heidari@icloud.com) 88 | twitter: [@seivanheidari](https://twitter.com/seivanheidari) 89 | 90 | ## License 91 | 92 | SHTextFieldBlocks is © 2013 [Seivan](http://www.github.com/seivan) and may be freely 93 | distributed under the [MIT license](http://opensource.org/licenses/MIT). 94 | See the [`LICENSE.md`](https://github.com/seivan/SHTextFieldBlocks/blob/master/LICENSE.md) file. 95 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Classes/KIFSystemTestActor.h: -------------------------------------------------------------------------------- 1 | // 2 | // KIFTester+Generic.h 3 | // KIF 4 | // 5 | // Created by Brian Nickel on 12/14/12. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | #import "KIFTestActor.h" 11 | #import 12 | 13 | #define system KIFActorWithClass(KIFSystemTestActor) 14 | 15 | @interface KIFSystemTestActor : KIFTestActor 16 | 17 | /*! 18 | @abstract Waits for a specific NSNotification. 19 | @discussion Useful when a test requires an asynchronous task to complete, especially when that task does not trigger a visible change in the view hierarchy. 20 | @param name The name of the NSNotification. 21 | @param object The object to which the step should listen. Nil value will listen to all objects. 22 | @return The detected NSNotification. 23 | */ 24 | - (NSNotification *)waitForNotificationName:(NSString*)name object:(id)object; 25 | 26 | /*! 27 | @abstract Waits for a specific NSNotification, emitted during or after execution of a block. 28 | @discussion Useful when step execution causes a notification to be emitted, but executes too quickly for waitForNotificationName: to observe it. 29 | An observer will be registered for the notification before the block is executed. 30 | @param name The name of the NSNotification. 31 | @param object The object to which the step should listen. Nil value will listen to all objects. 32 | @param block The block of code to be executed. 33 | @return The detected NSNotification. 34 | */ 35 | - (NSNotification *)waitForNotificationName:(NSString *)name object:(id)object whileExecutingBlock:(void(^)())block; 36 | 37 | /*! 38 | @abstract Simulates a memory warning. 39 | */ 40 | - (void)simulateMemoryWarning; 41 | 42 | /*! 43 | @abstract Simulates a device rotation to a specific orentation from its last set orientation. 44 | @discussion The first time this method is called, it will be from the device's natural orientation to the orientation described. 45 | @param orientation The desired orientation. 46 | */ 47 | - (void)simulateDeviceRotationToOrientation:(UIDeviceOrientation)orientation; 48 | 49 | /*! 50 | @abstract Waits for the application to request a specific URL while executing a block. 51 | @param URLString The absolute string representation of the URL to detect. 52 | @param block The block of code to be executed. 53 | @param returnValue The value to return from @c +[UIApplication openURL:]. 54 | */ 55 | - (void)waitForApplicationToOpenURL:(NSString *)URLString whileExecutingBlock:(void(^)())block returning:(BOOL)returnValue; 56 | 57 | /*! 58 | @abstract Waits for the application to request any URL while executing a block. 59 | @param block The block of code to be executed. 60 | @param returnValue The value to return from @c +[UIApplication openURL:]. 61 | */ 62 | - (void)waitForApplicationToOpenAnyURLWhileExecutingBlock:(void(^)())block returning:(BOOL)returnValue; 63 | 64 | /*! 65 | @abstract Captured a screenshot of the current screen and writes it to disk with an optional description. 66 | @discussion This step will fail if the @c KIF_SCREENSHOTS environment variable is not set or if the screenshot cannot be written to disk. 67 | @param description A description to use when writing the file to disk. 68 | */ 69 | - (void)captureScreenshotWithDescription:(NSString *)description; 70 | 71 | @end 72 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHTextViewBlocks/README.md: -------------------------------------------------------------------------------- 1 | #SHTextViewBlocks 2 | 3 | [![CI Status](https://img.shields.io/travis/seivan/SHTextViewBlocks.svg?style=flat)](https://travis-ci.org/seivan/SHTextViewBlocks) 4 | [![Version](https://img.shields.io/cocoapods/v/SHTextViewBlocks.svg?style=flat)](http://cocoadocs.org/docsets/SHTextViewBlocks) 5 | [![Platform](https://img.shields.io/cocoapods/p/SHTextViewBlocks.svg?style=flat)](http://cocoadocs.org/docsets/SHTextViewBlocks) 6 | [![License](https://img.shields.io/cocoapods/l/SHTextViewBlocks.svg?style=flat)](http://cocoadocs.org/docsets/SHTextViewBlocks) 7 | 8 | > This pod is used by [`SHUIKitBlocks`](https://github.com/seivan/SHUIKitBlocks) as part of many components covering to plug the holes missing from Foundation, UIKit, CoreLocation, GameKit, MapKit and other aspects of an iOS application's architecture. 9 | 10 | ##Overview 11 | 12 | Using blocks instead of delegate callbacks for SHTextViewBlocks. The blocks are gone once the textfield is gone - Swizzle Free(™) 13 | 14 | ##Installation 15 | 16 | ```ruby 17 | pod 'SHTextViewBlocks' 18 | ``` 19 | 20 | ##Setup 21 | 22 | Put this either in specific files or your project prefix file 23 | ```objective-c 24 | #import "UITextView+SHTextViewBlocks.h" 25 | ``` 26 | or 27 | ```objective-c 28 | #import "SHTextViewBlocks.h" 29 | ``` 30 | 31 | ##API 32 | 33 | ```objective-c 34 | #pragma mark - Block Defs 35 | typedef void (^SHTextViewBlock)(UITextView * textView); 36 | typedef BOOL (^SHTextViewPredicateBlock)(UITextView * textView); 37 | 38 | typedef BOOL (^SHTextViewRangeReplacementBlock)(UITextView * textView, 39 | NSRange shouldChangeTextInRange, 40 | NSString * string); 41 | 42 | 43 | 44 | 45 | #pragma mark - Helpers 46 | 47 | #pragma mark - Properties 48 | 49 | #pragma mark - Setters 50 | 51 | -(void)SH_setShouldBeginEditingBlock:(SHTextViewPredicateBlock)theBlock; 52 | 53 | -(void)SH_setShouldEndEditingBlock:(SHTextViewPredicateBlock)theBlock; 54 | 55 | -(void)SH_setDidBeginEditingBlock:(SHTextViewBlock)theBlock; 56 | 57 | -(void)SH_setDidEndEditingBlock:(SHTextViewBlock)theBlock; 58 | 59 | -(void)SH_setShouldChangeCharactersInRangeWithReplacementTextBlock:(SHTextViewRangeReplacementBlock)theBlock; 60 | 61 | -(void)SH_setDidChangeBlock:(SHTextViewBlock)theBlock; 62 | 63 | -(void)SH_setDidChangeSelection:(SHTextViewBlock)theBlock; 64 | 65 | 66 | 67 | #pragma mark - Getters 68 | 69 | -(SHTextViewPredicateBlock)SH_blockShouldBeginEditing; 70 | 71 | -(SHTextViewPredicateBlock)SH_blockShouldEndEditing; 72 | 73 | 74 | -(SHTextViewBlock)SH_blockDidBeginEditing; 75 | 76 | -(SHTextViewBlock)SH_blockDidEndEditing; 77 | 78 | -(SHTextViewRangeReplacementBlock)SH_blockShouldChangeCharactersInRangeWithReplacementText; 79 | 80 | -(SHTextViewBlock)SH_blockDidChangeBlock; 81 | 82 | -(SHTextViewBlock)SH_blockDidChangeSelection; 83 | 84 | 85 | ``` 86 | 87 | 88 | ##Contact 89 | 90 | 91 | If you end up using SHTextViewBlocks in a project, I'd love to hear about it. 92 | 93 | email: [seivan.heidari@icloud.com](mailto:seivan.heidari@icloud.com) 94 | twitter: [@seivanheidari](https://twitter.com/seivanheidari) 95 | 96 | ## License 97 | 98 | SHTextViewBlocks is © 2013 [Seivan](http://www.github.com/seivan) and may be freely 99 | distributed under the [MIT license](http://opensource.org/licenses/MIT). 100 | See the [`LICENSE.md`](https://github.com/seivan/SHTextViewBlocks/blob/master/LICENSE.md) file. 101 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/SHWebViewBlocks/README.md: -------------------------------------------------------------------------------- 1 | SHWebViewBlocks 2 | ========== 3 | [![CI Status](https://img.shields.io/travis/seivan/SHWebViewBlocks.svg?style=flat)](https://travis-ci.org/seivan/SHWebViewBlocks) 4 | [![Version](https://img.shields.io/cocoapods/v/SHWebViewBlocks.svg?style=flat)](http://cocoadocs.org/docsets/SHWebViewBlocks) 5 | [![Platform](https://img.shields.io/cocoapods/p/SHWebViewBlocks.svg?style=flat)](http://cocoadocs.org/docsets/SHWebViewBlocks) 6 | [![License](https://img.shields.io/cocoapods/l/SHWebViewBlocks.svg?style=flat)](http://cocoadocs.org/docsets/SHWebViewBlocks) 7 | 8 | > This pod is used by [`SHUIKitBlocks`](https://github.com/seivan/SHUIKitBlocks) as part of many components covering to plug the holes missing from Foundation, UIKit, CoreLocation, GameKit, MapKit and other aspects of an iOS application's architecture. 9 | 10 | Overview 11 | -------- 12 | Request blocks for UIWebView. 13 | The blocks are automatically removed once they UIWebView is gone, so it isn't necessary to clean up - Swizzle Free(™) 14 | 15 | ### API 16 | 17 | #### [Helpers](https://github.com/seivan/SHWebViewBlocks#helpers-1) 18 | 19 | #### [Properties](https://github.com/seivan/SHWebViewBlocks#properties-1) 20 | 21 | 22 | Installation 23 | ------------ 24 | 25 | ```ruby 26 | pod 'SHWebViewBlocks' 27 | ``` 28 | 29 | *** 30 | 31 | Setup 32 | ----- 33 | 34 | Put this either in specific files or your project prefix file 35 | 36 | ```objective-c 37 | #import "UIWebView+SHWebViewBlocks.h" 38 | ``` 39 | or 40 | ```objective-c 41 | #import "SHWebViewBlocks.h" 42 | ``` 43 | 44 | 45 | API 46 | ----- 47 | 48 | ### Helpers 49 | 50 | ```objective-c 51 | 52 | #pragma mark - 53 | #pragma mark Helpers 54 | -(void)SH_loadRequestWithString:(NSString *)theString; 55 | 56 | 57 | ``` 58 | 59 | ### Properties 60 | 61 | ```objective-c 62 | 63 | #pragma mark - 64 | #pragma mark Block Def 65 | typedef void (^SHWebViewBlock)(UIWebView * theWebView); 66 | 67 | typedef void (^SHWebViewBlockWithError)(UIWebView * theWebView, NSError * theError); 68 | 69 | typedef BOOL (^SHWebViewBlockWithRequest)(UIWebView * theWebView, NSURLRequest * theRequest,UIWebViewNavigationType theNavigationType); 70 | 71 | 72 | #pragma mark - 73 | #pragma mark Properties 74 | 75 | #pragma mark - 76 | #pragma mark Setters 77 | 78 | 79 | -(void)SH_setShouldStartLoadWithRequestBlock:(SHWebViewBlockWithRequest)theBlock; 80 | 81 | -(void)SH_setDidStartLoadBlock:(SHWebViewBlock)theBlock; 82 | 83 | -(void)SH_setDidFinishLoadBlock:(SHWebViewBlock)theBlock; 84 | 85 | -(void)SH_setDidFailLoadWithErrorBlock:(SHWebViewBlockWithError)theBlock; 86 | 87 | 88 | 89 | 90 | #pragma mark - 91 | #pragma mark Getters 92 | 93 | @property(nonatomic,readonly) SHWebViewBlockWithRequest SH_blockShouldStartLoadingWithRequest; 94 | 95 | @property(nonatomic,readonly) SHWebViewBlock SH_blockDidStartLoad; 96 | 97 | @property(nonatomic,readonly) SHWebViewBlock SH_blockDidFinishLoad; 98 | 99 | @property(nonatomic,readonly) SHWebViewBlockWithError SH_blockDidFailLoadWithError; 100 | 101 | ``` 102 | 103 | 104 | Contact 105 | ------- 106 | 107 | If you end up using SHWebViewBlocks in a project, I'd love to hear about it. 108 | 109 | email: [seivan.heidari@icloud.com](mailto:seivan.heidari@icloud.com) 110 | twitter: [@seivanheidari](https://twitter.com/seivanheidari) 111 | 112 | ## License 113 | 114 | SHWebViewBlocks is © 2013 [Seivan](http://www.github.com/seivan) and may be freely 115 | distributed under the [MIT license](http://opensource.org/licenses/MIT). 116 | See the [`LICENSE.md`](https://github.com/seivan/SHWebViewBlocks/blob/master/LICENSE.md) file. 117 | 118 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/KIF/Classes/KIFSystemTestActor.m: -------------------------------------------------------------------------------- 1 | // 2 | // KIFTester+Generic.m 3 | // KIF 4 | // 5 | // Created by Brian Nickel on 12/14/12. 6 | // Licensed to Square, Inc. under one or more contributor license agreements. 7 | // See the LICENSE file distributed with this work for the terms under 8 | // which Square, Inc. licenses this file to you. 9 | 10 | #import "KIFSystemTestActor.h" 11 | #import 12 | #import "UIApplication-KIFAdditions.h" 13 | #import "NSError-KIFAdditions.h" 14 | 15 | @implementation KIFSystemTestActor 16 | 17 | - (NSNotification *)waitForNotificationName:(NSString*)name object:(id)object 18 | { 19 | return [self waitForNotificationName:name object:object whileExecutingBlock:nil]; 20 | } 21 | 22 | - (NSNotification *)waitForNotificationName:(NSString *)name object:(id)object whileExecutingBlock:(void(^)())block 23 | { 24 | return [self waitForNotificationName:name object:object whileExecutingBlock:block complete:nil]; 25 | } 26 | 27 | - (NSNotification *)waitForNotificationName:(NSString *)name object:(id)object whileExecutingBlock:(void(^)())block complete:(void(^)())complete 28 | { 29 | __block NSNotification *detectedNotification = nil; 30 | id observer = [[NSNotificationCenter defaultCenter] addObserverForName:name object:object queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { 31 | [detectedNotification release]; 32 | detectedNotification = [note retain]; 33 | }]; 34 | 35 | if (block) { 36 | block(); 37 | } 38 | 39 | [self runBlock:^KIFTestStepResult(NSError **error) { 40 | KIFTestWaitCondition(detectedNotification, error, @"Waiting for notification \"%@\"", name); 41 | return KIFTestStepResultSuccess; 42 | } complete:^(KIFTestStepResult result, NSError *error) { 43 | [[NSNotificationCenter defaultCenter] removeObserver:observer]; 44 | 45 | if (complete) { 46 | complete(); 47 | } 48 | }]; 49 | 50 | return [detectedNotification autorelease]; 51 | } 52 | 53 | - (void)simulateMemoryWarning 54 | { 55 | [[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationDidReceiveMemoryWarningNotification object:[UIApplication sharedApplication]]; 56 | } 57 | 58 | - (void)simulateDeviceRotationToOrientation:(UIDeviceOrientation)orientation 59 | { 60 | [[UIApplication sharedApplication] rotateIfNeeded:orientation]; 61 | } 62 | 63 | - (void)waitForApplicationToOpenAnyURLWhileExecutingBlock:(void (^)())block returning:(BOOL)returnValue 64 | { 65 | [self waitForApplicationToOpenURL:nil whileExecutingBlock:block returning:returnValue]; 66 | } 67 | 68 | - (void)waitForApplicationToOpenURL:(NSString *)URLString whileExecutingBlock:(void (^)())block returning:(BOOL)returnValue 69 | { 70 | [UIApplication startMockingOpenURLWithReturnValue:returnValue]; 71 | NSNotification *notification = [self waitForNotificationName:UIApplicationDidMockOpenURLNotification object:[UIApplication sharedApplication] whileExecutingBlock:block complete:^{ 72 | [UIApplication stopMockingOpenURL]; 73 | }]; 74 | 75 | NSString *actualURLString = [[notification.userInfo objectForKey:UIApplicationOpenedURLKey] absoluteString]; 76 | if (URLString && ![URLString isEqualToString:actualURLString]) { 77 | [self failWithError:[NSError KIFErrorWithFormat:@"Expected %@, got %@", URLString, actualURLString] stopTest:YES]; 78 | } 79 | } 80 | 81 | - (void)captureScreenshotWithDescription:(NSString *)description 82 | { 83 | NSError *error; 84 | if (![[UIApplication sharedApplication] writeScreenshotForLine:(NSUInteger)self.line inFile:self.file description:description error:&error]) { 85 | [self failWithError:error stopTest:NO]; 86 | } 87 | } 88 | 89 | @end 90 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 5 | > "$RESOURCES_TO_COPY" 6 | 7 | install_resource() 8 | { 9 | case $1 in 10 | *.storyboard) 11 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" 12 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" 13 | ;; 14 | *.xib) 15 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" 16 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" 17 | ;; 18 | *.framework) 19 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 21 | echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 22 | rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 23 | ;; 24 | *.xcdatamodel) 25 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" 26 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" 27 | ;; 28 | *.xcdatamodeld) 29 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" 30 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" 31 | ;; 32 | *.xcassets) 33 | ;; 34 | /*) 35 | echo "$1" 36 | echo "$1" >> "$RESOURCES_TO_COPY" 37 | ;; 38 | *) 39 | echo "${PODS_ROOT}/$1" 40 | echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" 41 | ;; 42 | esac 43 | } 44 | 45 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 46 | if [[ "${ACTION}" == "install" ]]; then 47 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 48 | fi 49 | rm -f "$RESOURCES_TO_COPY" 50 | 51 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ `xcrun --find actool` ] && [ `find . -name '*.xcassets' | wc -l` -ne 0 ] 52 | then 53 | case "${TARGETED_DEVICE_FAMILY}" in 54 | 1,2) 55 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 56 | ;; 57 | 1) 58 | TARGET_DEVICE_ARGS="--target-device iphone" 59 | ;; 60 | 2) 61 | TARGET_DEVICE_ARGS="--target-device ipad" 62 | ;; 63 | *) 64 | TARGET_DEVICE_ARGS="--target-device mac" 65 | ;; 66 | esac 67 | find "${PWD}" -name "*.xcassets" -print0 | xargs -0 actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 68 | fi 69 | -------------------------------------------------------------------------------- /TestsAndSample/Pods/Pods-Tests-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 5 | > "$RESOURCES_TO_COPY" 6 | 7 | install_resource() 8 | { 9 | case $1 in 10 | *.storyboard) 11 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" 12 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" 13 | ;; 14 | *.xib) 15 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" 16 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" 17 | ;; 18 | *.framework) 19 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 21 | echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 22 | rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 23 | ;; 24 | *.xcdatamodel) 25 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" 26 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" 27 | ;; 28 | *.xcdatamodeld) 29 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" 30 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" 31 | ;; 32 | *.xcassets) 33 | ;; 34 | /*) 35 | echo "$1" 36 | echo "$1" >> "$RESOURCES_TO_COPY" 37 | ;; 38 | *) 39 | echo "${PODS_ROOT}/$1" 40 | echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" 41 | ;; 42 | esac 43 | } 44 | 45 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 46 | if [[ "${ACTION}" == "install" ]]; then 47 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 48 | fi 49 | rm -f "$RESOURCES_TO_COPY" 50 | 51 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ `xcrun --find actool` ] && [ `find . -name '*.xcassets' | wc -l` -ne 0 ] 52 | then 53 | case "${TARGETED_DEVICE_FAMILY}" in 54 | 1,2) 55 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 56 | ;; 57 | 1) 58 | TARGET_DEVICE_ARGS="--target-device iphone" 59 | ;; 60 | 2) 61 | TARGET_DEVICE_ARGS="--target-device ipad" 62 | ;; 63 | *) 64 | TARGET_DEVICE_ARGS="--target-device mac" 65 | ;; 66 | esac 67 | find "${PWD}" -name "*.xcassets" -print0 | xargs -0 actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 68 | fi 69 | --------------------------------------------------------------------------------