diff options
Diffstat (limited to 'platform/ios/test')
-rw-r--r-- | platform/ios/test/MGLAnnotationViewTests.m | 38 |
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"); |