summaryrefslogtreecommitdiff
path: root/platform/ios/Integration Tests/MGLShapeSourceTests.m
diff options
context:
space:
mode:
Diffstat (limited to 'platform/ios/Integration Tests/MGLShapeSourceTests.m')
-rw-r--r--platform/ios/Integration Tests/MGLShapeSourceTests.m163
1 files changed, 0 insertions, 163 deletions
diff --git a/platform/ios/Integration Tests/MGLShapeSourceTests.m b/platform/ios/Integration Tests/MGLShapeSourceTests.m
deleted file mode 100644
index 836118450e..0000000000
--- a/platform/ios/Integration Tests/MGLShapeSourceTests.m
+++ /dev/null
@@ -1,163 +0,0 @@
-//
-// MBShapeSourceTests.m
-// integration
-//
-// Created by Julian Rex on 4/5/18.
-// Copyright © 2018 Mapbox. All rights reserved.
-//
-
-#import "MGLMapViewIntegrationTest.h"
-
-@interface MGLShapeSourceTests : MGLMapViewIntegrationTest
-@end
-
-@implementation MGLShapeSourceTests
-
-- (void)testSettingShapeSourceToNilInRegionDidChange {
-
- NSMutableArray *features = [[NSMutableArray alloc] init];
-
- for (NSUInteger i = 0; i <= 180; i+=5) {
- CLLocationCoordinate2D coord[4] = {
- CLLocationCoordinate2DMake(round(0), round(i)),
- CLLocationCoordinate2DMake(round(20), round(i)),
- CLLocationCoordinate2DMake(round(0), round(i / 2 )),
- CLLocationCoordinate2DMake(round(20), round(i / 2))};
-
- MGLPolygonFeature *feature = [MGLPolygonFeature polygonWithCoordinates:coord count:4];
- [features addObject:feature];
- }
-
- MGLShapeSource *shapeSource = [[MGLShapeSource alloc] initWithIdentifier:@"source" features:features options:nil];
- [self.style addSource:shapeSource];
-
- MGLFillStyleLayer *layer = [[MGLFillStyleLayer alloc] initWithIdentifier:@"layer" source:shapeSource];
- layer.fillOpacity = [NSExpression expressionForConstantValue:@0.5];
- [self.style addLayer:layer];
-
- XCTestExpectation *expectation = [self expectationWithDescription:@"regionDidChange expectation"];
- expectation.expectedFulfillmentCount = 1;
- expectation.assertForOverFulfill = YES;
-
- __weak typeof(self) weakself = self;
- __block NSInteger delegateCallCount = 0;
-
- self.regionDidChange = ^(MGLMapView *mapView, MGLCameraChangeReason reason, BOOL animated) {
-
- MGLShapeSourceTests *strongSelf = weakself;
-
- if (!strongSelf)
- return;
-
- delegateCallCount++;
-
- // Setting the shapeSource.shape = nil, was causing an infinite loop, so here
- // we check for a runaway call. 10 here is arbitrary. We could argue that this
- // should check that the call count is only 1, however in this case we particularly
- // want to check for the infinite loop.
- // See https://github.com/mapbox/mapbox-gl-native/issues/11180
-
- if (delegateCallCount > 10) {
- MGLTestFail(strongSelf);
- }
- else {
- shapeSource.shape = nil;
- }
-
- [expectation fulfill];
- };
-
- // setCenterCoordinate is NOT animated here.
- [self.mapView setCenterCoordinate:CLLocationCoordinate2DMake(10.0, 10.0)];
- [self waitForExpectations:@[expectation] timeout:5.0];
-}
-
-- (void)testSettingShapeSourceToNilInRegionIsChanging {
-
- NSMutableArray *features = [[NSMutableArray alloc] init];
-
- for (NSUInteger i = 0; i <= 180; i+=5) {
- CLLocationCoordinate2D coord[4] = {
- CLLocationCoordinate2DMake(round(0), round(i)),
- CLLocationCoordinate2DMake(round(20), round(i)),
- CLLocationCoordinate2DMake(round(0), round(i / 2 )),
- CLLocationCoordinate2DMake(round(20), round(i / 2))};
-
- MGLPolygonFeature *feature = [MGLPolygonFeature polygonWithCoordinates:coord count:4];
- [features addObject:feature];
- }
-
- MGLShapeSource *shapeSource = [[MGLShapeSource alloc] initWithIdentifier:@"source" features:features options:nil];
- [self.style addSource:shapeSource];
-
- MGLFillStyleLayer *layer = [[MGLFillStyleLayer alloc] initWithIdentifier:@"layer" source:shapeSource];
- layer.fillOpacity = [NSExpression expressionForConstantValue:@0.5];
- [self.style addLayer:layer];
-
- XCTestExpectation *expectation = [self expectationWithDescription:@"regionDidChange expectation"];
- expectation.expectedFulfillmentCount = 1;
- expectation.assertForOverFulfill = YES;
-
- __block NSInteger delegateCallCount = 0;
- __weak typeof(self) weakself = self;
-
- self.regionIsChanging = ^(MGLMapView *mapView) {
- // See https://github.com/mapbox/mapbox-gl-native/issues/11180
- shapeSource.shape = nil;
- };
-
- self.regionDidChange = ^(MGLMapView *mapView, MGLCameraChangeReason reason, BOOL animated) {
-
- delegateCallCount++;
-
- if (delegateCallCount > 1) {
- MGLTestFail(weakself);
- }
-
- [expectation fulfill];
- };
-
- // Should take MGLAnimationDuration seconds (0.3)
- [self.mapView setCenterCoordinate:CLLocationCoordinate2DMake(10.0, 10.0) animated:YES];
- [self waitForExpectations:@[expectation] timeout:1.0];
-}
-
-- (void)testShapeSourceWithLineDistanceMetrics {
- CLLocationCoordinate2D coordinates[] = {
- CLLocationCoordinate2DMake(9.6315313, 52.4133574),
- CLLocationCoordinate2DMake(24.9410248, 60.1733244)};
-
- MGLPolylineFeature *polylineFeature = [MGLPolylineFeature polylineWithCoordinates:coordinates count:sizeof(coordinates)/sizeof(coordinates[0])];
- NSDictionary *options = @{MGLShapeSourceOptionLineDistanceMetrics: @YES};
- MGLShapeSource *source = [[MGLShapeSource alloc] initWithIdentifier:@"route" shape:polylineFeature options:options];
- MGLLineStyleLayer *lineLayer = [[MGLLineStyleLayer alloc] initWithIdentifier:@"lineLayer" source:source];
-
- [self.style addSource:source];
- [self.style addLayer:lineLayer];
- [self.mapView setCenterCoordinate:CLLocationCoordinate2DMake(9.6315313, 52.4133574) animated:YES];
-
- XCTestExpectation *expectation = [self expectationWithDescription:@"regionDidChange expectation"];
- expectation.expectedFulfillmentCount = 1;
- expectation.assertForOverFulfill = YES;
-
- __weak id weakself = self;
- self.regionDidChange = ^(MGLMapView *mapView, MGLCameraChangeReason reason, BOOL animated) {
-
- id strongSelf = weakself;
- if (!strongSelf)
- return;
-
- NSArray *features = [source featuresMatchingPredicate:nil];
- MGLTestAssert(strongSelf, features.count == 1UL, @"Should contain one Feature");
-
- MGLPolylineFeature *feature = [features objectAtIndex:0];
- MGLTestAssertNotNil(strongSelf, [feature.attributes objectForKey:@"mapbox_clip_start"], @"Attributes should contain mapbox_clip_start property");
- MGLTestAssertNotNil(strongSelf, [feature.attributes objectForKey:@"mapbox_clip_end"], @"Attributes should contain mapbox_clip_end property");
-
- [expectation fulfill];
- };
-
- [self waitForExpectations:@[expectation] timeout:1.0];
-}
-
-@end