summaryrefslogtreecommitdiff
path: root/test/ios/LocationMocker/LocationMocker.m
diff options
context:
space:
mode:
Diffstat (limited to 'test/ios/LocationMocker/LocationMocker.m')
-rw-r--r--test/ios/LocationMocker/LocationMocker.m35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/ios/LocationMocker/LocationMocker.m b/test/ios/LocationMocker/LocationMocker.m
new file mode 100644
index 0000000000..a32270413c
--- /dev/null
+++ b/test/ios/LocationMocker/LocationMocker.m
@@ -0,0 +1,35 @@
+//
+// Based on gist by Eric Allam
+// https://gist.github.com/ericallam/5689235
+//
+
+#import "LocationMocker.h"
+#import "CSSwizzler.h"
+#import "CLLocationManager+MockLocation.h"
+
+@implementation LocationMocker
+
++ (void)load
+{
+ [CSSwizzler swizzleClass:[CLLocationManager class]
+ replaceMethod:@selector(startUpdatingLocation)
+ withMethod:@selector(custom_startUpdatingLocation)];
+
+ [CSSwizzler swizzleClass:[CLLocationManager class]
+ replaceMethod:@selector(location)
+ withMethod:@selector(custom_location)];
+
+ [CSSwizzler swizzleClass:[CLLocationManager class]
+ replaceMethod:@selector(startUpdatingHeading)
+ withMethod:@selector(custom_startUpdatingHeading)];
+
+ [CSSwizzler swizzleClass:[CLLocationManager class]
+ replaceMethod:@selector(heading)
+ withMethod:@selector(custom_heading)];
+
+ [CSSwizzler swizzleClass:[CLLocationManager class]
+ replaceClassMethod:@selector(headingAvailable)
+ withMethod:@selector(custom_headingAvailable)];
+}
+
+@end