summaryrefslogtreecommitdiff
path: root/platform/darwin
diff options
context:
space:
mode:
authorNadia Barbosa <nadiabarbosa@me.com>2018-08-28 08:52:27 -0700
committerNadia Barbosa <captainbarbosa@users.noreply.github.com>2018-09-04 18:57:18 -0700
commit7017ac512e96415d6a6c18512e320197a10ca83f (patch)
treee400a53a1bc5f33edb1c0a641a61c133e51ac787 /platform/darwin
parentc9803e30408cf866c1743baefcd3135f5538f9d2 (diff)
downloadqtlocation-mapboxgl-7017ac512e96415d6a6c18512e320197a10ca83f.tar.gz
[ios, macos] Allow -convertCoordinateBounds to span antimeridian
Diffstat (limited to 'platform/darwin')
-rw-r--r--platform/darwin/test/MGLMapViewTests.m42
1 files changed, 42 insertions, 0 deletions
diff --git a/platform/darwin/test/MGLMapViewTests.m b/platform/darwin/test/MGLMapViewTests.m
new file mode 100644
index 0000000000..6ac8e1fe81
--- /dev/null
+++ b/platform/darwin/test/MGLMapViewTests.m
@@ -0,0 +1,42 @@
+#import <Mapbox/Mapbox.h>
+#import <XCTest/XCTest.h>
+
+static MGLMapView *mapView;
+
+@interface MGLMapViewTests : XCTestCase
+
+@end
+
+@implementation MGLMapViewTests
+
++ (void)setUp {
+ [super setUp];
+
+ [MGLAccountManager setAccessToken:@"pk.feedcafedeadbeefbadebede"];
+ mapView = [[MGLMapView alloc] initWithFrame:CGRectMake(0, 0, 64, 64) styleURL:MGLStyle.streetsStyleURL];
+ [mapView setCenterCoordinate:CLLocationCoordinate2DMake(33, 179)];
+}
+
+- (void)testCoordinateBoundsConversion {
+ MGLCoordinateBounds leftAntimeridianBounds = MGLCoordinateBoundsMake(CLLocationCoordinate2DMake(-75, 175), CLLocationCoordinate2DMake(75, 180));
+ CGRect leftAntimeridianBoundsRect = [mapView convertCoordinateBounds:leftAntimeridianBounds toRectToView:mapView];
+
+ MGLCoordinateBounds rightAntimeridianBounds = MGLCoordinateBoundsMake(CLLocationCoordinate2DMake(-75, -180), CLLocationCoordinate2DMake(75, -175));
+ CGRect rightAntimeridianBoundsRect = [mapView convertCoordinateBounds:rightAntimeridianBounds toRectToView:mapView];
+
+ MGLCoordinateBounds spanningBounds = MGLCoordinateBoundsMake(CLLocationCoordinate2DMake(24, 140), CLLocationCoordinate2DMake(44, 240));
+ CGRect spanningBoundsRect = [mapView convertCoordinateBounds:spanningBounds toRectToView:mapView];
+
+ // If the resulting CGRect from -convertCoordinateBounds:toRectToView:
+ // intersects the set of bounds to the left and right of the
+ // antimeridian, then we know that the CGRect spans across the antimeridian
+ XCTAssertTrue(CGRectIntersectsRect(spanningBoundsRect, leftAntimeridianBoundsRect), @"Resulting ");
+ XCTAssertTrue(CGRectIntersectsRect(spanningBoundsRect, rightAntimeridianBoundsRect), @"Something");
+}
+
++ (void)tearDown {
+ mapView = nil;
+ [super tearDown];
+}
+
+@end