summaryrefslogtreecommitdiff
path: root/platform/ios/test
diff options
context:
space:
mode:
Diffstat (limited to 'platform/ios/test')
-rw-r--r--platform/ios/test/MGLAnnotationViewTests.m38
1 files changed, 34 insertions, 4 deletions
diff --git a/platform/ios/test/MGLAnnotationViewTests.m b/platform/ios/test/MGLAnnotationViewTests.m
index 541c43b5a1..6cc5698393 100644
--- a/platform/ios/test/MGLAnnotationViewTests.m
+++ b/platform/ios/test/MGLAnnotationViewTests.m
@@ -3,6 +3,17 @@
static NSString * const MGLTestAnnotationReuseIdentifer = @"MGLTestAnnotationReuseIdentifer";
+@interface MGLAnnotationView (Test)
+@property (nonatomic) MGLMapView *mapView;
+@property (nonatomic, readwrite) MGLAnnotationViewDragState dragState;
+
+- (void)setDragState:(MGLAnnotationViewDragState)dragState;
+@end
+
+@interface MGLMapView (Test)
+@property (nonatomic) UIView<MGLCalloutView> *calloutViewForSelectedAnnotation;
+@end
+
@interface MGLTestAnnotation : NSObject <MGLAnnotation>
@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
@end
@@ -10,6 +21,19 @@ static NSString * const MGLTestAnnotationReuseIdentifer = @"MGLTestAnnotationReu
@implementation MGLTestAnnotation
@end
+@interface MGLTestCalloutView: UIView<MGLCalloutView>
+@property (nonatomic) BOOL didCallDismissCalloutAnimated;
+@end
+
+@implementation MGLTestCalloutView
+
+- (void)dismissCalloutAnimated:(BOOL)animated
+{
+ _didCallDismissCalloutAnimated = YES;
+}
+
+@end
+
@interface MGLAnnotationViewTests : XCTestCase <MGLMapViewDelegate>
@property (nonatomic) XCTestExpectation *expectation;
@property (nonatomic) MGLMapView *mapView;
@@ -28,15 +52,21 @@ static NSString * const MGLTestAnnotationReuseIdentifer = @"MGLTestAnnotationReu
- (void)testAnnotationView
{
_expectation = [self expectationWithDescription:@"annotation property"];
-
+
MGLTestAnnotation *annotation = [[MGLTestAnnotation alloc] init];
[_mapView addAnnotation:annotation];
-
+
[self waitForExpectationsWithTimeout:1 handler:nil];
-
+
XCTAssert(_mapView.annotations.count == 1, @"number of annotations should be 1");
XCTAssertNotNil(_annotationView.annotation, @"annotation property should not be nil");
-
+ XCTAssertNotNil(_annotationView.mapView, @"mapView property should not be nil");
+
+ MGLTestCalloutView *testCalloutView = [[MGLTestCalloutView alloc] init];
+ _mapView.calloutViewForSelectedAnnotation = testCalloutView;
+ _annotationView.dragState = MGLAnnotationViewDragStateStarting;
+ XCTAssertTrue(testCalloutView.didCallDismissCalloutAnimated, @"callout view was not dismissed");
+
[_mapView removeAnnotation:_annotationView.annotation];
XCTAssert(_mapView.annotations.count == 0, @"number of annotations should be 0");