diff options
Diffstat (limited to 'platform/darwin/test/MGLTileSetTests.mm')
-rw-r--r-- | platform/darwin/test/MGLTileSetTests.mm | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/platform/darwin/test/MGLTileSetTests.mm b/platform/darwin/test/MGLTileSetTests.mm deleted file mode 100644 index 65e096ae7f..0000000000 --- a/platform/darwin/test/MGLTileSetTests.mm +++ /dev/null @@ -1,149 +0,0 @@ -#import <XCTest/XCTest.h> - -#import <Mapbox/Mapbox.h> -#import "MGLTileSource_Private.h" -#import "MGLGeometry_Private.h" - -#include <mbgl/util/tileset.hpp> - -@interface MGLTileSetTests : XCTestCase - -@end - -@implementation MGLTileSetTests - -- (void)testTileSetFromTileURLTemplates { - // a tile set that provides an mbgl tile set - NSArray *tileURLTemplates = @[@"tile.1", @"tile.2", @"tile.3"]; - mbgl::Tileset tileSet = MGLTileSetFromTileURLTemplates(tileURLTemplates, nil); - - // has the correct URL templates - XCTAssertEqual(tileSet.tiles.size(), 3UL); - XCTAssertEqual(tileSet.tiles[0], "tile.1"); - XCTAssertEqual(tileSet.tiles[1], "tile.2"); - XCTAssertEqual(tileSet.tiles[2], "tile.3"); - - // has the default scheme - XCTAssertEqual(tileSet.scheme, mbgl::Tileset::Scheme::XYZ); - - // when the tile set has no min or max zoom level set - // the mbgl object has default values for min and max zoom level - XCTAssertEqual(tileSet.zoomRange.min, 0); - XCTAssertEqual(tileSet.zoomRange.max, 22); - - // when the tile set has min and/or max zoom level set - tileSet = MGLTileSetFromTileURLTemplates(@[@"tile.1"], @{ - MGLTileSourceOptionMinimumZoomLevel: @1, - MGLTileSourceOptionMaximumZoomLevel: @2, - }); - - // the mbgl object reflects the set values for min and max zoom level - XCTAssertEqual(tileSet.zoomRange.min, 1); - XCTAssertEqual(tileSet.zoomRange.max, 2); - - // when the tile set has a bounds set - MGLCoordinateBounds bounds = MGLCoordinateBoundsMake(CLLocationCoordinate2DMake(12, 34), CLLocationCoordinate2DMake(56, 78)); - tileSet = MGLTileSetFromTileURLTemplates(@[@"tile.1"], @{ - MGLTileSourceOptionCoordinateBounds: @(bounds), - }); - - // the mbgl object reflects the set values for the bounds - XCTAssert(!!tileSet.bounds, @"The bounds are set after setting the bounds"); - if (tileSet.bounds) { - MGLCoordinateBounds actual = MGLCoordinateBoundsFromLatLngBounds(*tileSet.bounds); - XCTAssert(MGLCoordinateBoundsEqualToCoordinateBounds(bounds, actual), @"The bounds round-trip"); - } - - // when the tile set has an attribution - NSString *attribution = @"my tileset © ©️🎈"; - tileSet = MGLTileSetFromTileURLTemplates(tileURLTemplates, @{ - MGLTileSourceOptionAttributionHTMLString: attribution, - }); - - // the attribution is reflected by the mbgl tileset - XCTAssertEqual(tileSet.attribution, attribution.UTF8String); - - // when the tile set has attribution infos - MGLAttributionInfo *mapboxInfo = [[MGLAttributionInfo alloc] initWithTitle:[[NSAttributedString alloc] initWithString:@"Mapbox"] - URL:[NSURL URLWithString:@"https://www.mapbox.com/"]]; -#if TARGET_OS_IPHONE - UIColor *redColor = [UIColor redColor]; -#else - // CSS uses the sRGB color space. In macOS 10.12 Sierra and below, - // -[NSColor redColor] is in the calibrated RGB space and has a slightly - // different sRGB value than on iOS and macOS 10.13 High Sierra. - NSColor *redColor = [NSColor colorWithSRGBRed:1 green:0 blue:0 alpha:1]; -#endif - NSAttributedString *gl = [[NSAttributedString alloc] initWithString:@"GL" attributes:@{ - NSBackgroundColorAttributeName: redColor, - }]; - MGLAttributionInfo *glInfo = [[MGLAttributionInfo alloc] initWithTitle:gl URL:nil]; - tileSet = MGLTileSetFromTileURLTemplates(tileURLTemplates, @{ - MGLTileSourceOptionAttributionInfos: @[mapboxInfo, glInfo], - }); - - // the attribution is reflected by the mbgl tileset -#if TARGET_OS_IPHONE - NSString *html; - if (@available(iOS 13.0, *)) { - // TODO: investigate visual impact - // iOS 13 evidently changes font size from points to pixels - html = (@"<font style=\"font-family: 'Helvetica'; font-weight: normal; font-style: normal; font-size: 12.00px\">" - @"<a href=\"https://www.mapbox.com/\">Mapbox</a> </font>" - @"<font style=\"font-family: 'Helvetica'; font-weight: normal; font-style: normal; font-size: 12.00px; background-color: #ff0000\">GL</font>\n"); - } else { - html = (@"<font style=\"font-family: 'Helvetica'; font-weight: normal; font-style: normal; font-size: 12.00pt\">" - @"<a href=\"https://www.mapbox.com/\">Mapbox</a> </font>" - @"<font style=\"font-family: 'Helvetica'; font-weight: normal; font-style: normal; font-size: 12.00pt; background-color: #ff0000\">GL</font>\n"); - } -#else - NSString *html = (@"<font face=\"Helvetica\" size=\"3\" style=\"font: 12.0px Helvetica\">" - @"<a href=\"https://www.mapbox.com/\">Mapbox</a> </font>" - @"<font face=\"Helvetica\" size=\"3\" style=\"font: 12.0px Helvetica; background-color: #ff0000\">GL</font>\n"); -#endif - XCTAssertEqualObjects(@(tileSet.attribution.c_str()), html); - - // when the tile coordinate system is changed using an NSNumber - tileSet = MGLTileSetFromTileURLTemplates(tileURLTemplates, @{ - MGLTileSourceOptionTileCoordinateSystem: @(MGLTileCoordinateSystemTMS), - }); - - // the scheme is reflected by the mbgl tileset - XCTAssertEqual(tileSet.scheme, mbgl::Tileset::Scheme::TMS); - - // when the tile coordinate system is changed using an NSValue - MGLTileCoordinateSystem tms = MGLTileCoordinateSystemTMS; - tileSet = MGLTileSetFromTileURLTemplates(tileURLTemplates, @{ - MGLTileSourceOptionTileCoordinateSystem: [NSValue value:&tms withObjCType:@encode(MGLTileCoordinateSystem)], - }); - - // the scheme is reflected by the mbgl tileset - XCTAssertEqual(tileSet.scheme, mbgl::Tileset::Scheme::TMS); - - // when the dem encoding is changed using an NSNumber - tileSet = MGLTileSetFromTileURLTemplates(tileURLTemplates, @{ - MGLTileSourceOptionDEMEncoding: @(MGLDEMEncodingTerrarium), - }); - - // the encoding is reflected by the mbgl tileset - XCTAssertEqual(tileSet.encoding, mbgl::Tileset::DEMEncoding::Terrarium); - - // when the dem encoding is changed using an NSValue - MGLDEMEncoding terrarium = MGLDEMEncodingTerrarium; - tileSet = MGLTileSetFromTileURLTemplates(tileURLTemplates, @{ - MGLTileSourceOptionDEMEncoding: [NSValue value:&terrarium withObjCType:@encode(MGLDEMEncoding)], - }); - - // the encoding is reflected by the mbgl tileset - XCTAssertEqual(tileSet.encoding, mbgl::Tileset::DEMEncoding::Terrarium); -} - -- (void)testInvalidTileSet { - // a tile set that provides an mbgl tile set and invalid (crossed) minimum and maximum zoom levels throws an exception - XCTAssertThrowsSpecificNamed(MGLTileSetFromTileURLTemplates(@[@"tile.1"], @{ - MGLTileSourceOptionMinimumZoomLevel: @10, - MGLTileSourceOptionMaximumZoomLevel: @9, - }), NSException, NSInvalidArgumentException); -} - -@end |