summaryrefslogtreecommitdiff
path: root/platform/darwin/test/MGLStyleValueTests.m
diff options
context:
space:
mode:
authorMinh Nguyễn <mxn@1ec5.org>2017-02-07 18:26:49 -0800
committerMinh Nguyễn <mxn@1ec5.org>2017-02-08 16:54:09 -0800
commit360e5bf631229e2aec71780a515a42e32d4c28e6 (patch)
treeea53e5f0f96b79418c4edfa1261057f08d8da573 /platform/darwin/test/MGLStyleValueTests.m
parentbd2f3a28a5d401ad41a5353c662c2f739cb34fc9 (diff)
downloadqtlocation-mapboxgl-360e5bf631229e2aec71780a515a42e32d4c28e6.tar.gz
[ios, macos] Fixed runtime styling deprecation warnings
Diffstat (limited to 'platform/darwin/test/MGLStyleValueTests.m')
-rw-r--r--platform/darwin/test/MGLStyleValueTests.m102
1 files changed, 101 insertions, 1 deletions
diff --git a/platform/darwin/test/MGLStyleValueTests.m b/platform/darwin/test/MGLStyleValueTests.m
index fe6096584d..cd6eec8324 100644
--- a/platform/darwin/test/MGLStyleValueTests.m
+++ b/platform/darwin/test/MGLStyleValueTests.m
@@ -7,7 +7,107 @@
@implementation MGLStyleValueTests
- (void)testStoplessFunction {
- XCTAssertThrowsSpecificNamed([MGLStyleValue<NSNumber *> valueWithStops:@{}], NSException, NSInvalidArgumentException, @"Stopless function should raise an exception");
+ XCTAssertThrowsSpecificNamed([MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeExponential cameraStops:@{} options:nil], NSException, NSInvalidArgumentException, @"Stopless function should raise an exception");
+}
+
+- (void)testDeprecatedFunctions {
+ MGLShapeSource *shapeSource = [[MGLShapeSource alloc] initWithIdentifier:@"test"
+ shape:nil
+ options:nil];
+ MGLSymbolStyleLayer *symbolStyleLayer = [[MGLSymbolStyleLayer alloc] initWithIdentifier:@"symbolLayer"
+ source:shapeSource];
+ MGLCircleStyleLayer *circleStyleLayer = [[MGLCircleStyleLayer alloc] initWithIdentifier:@"circleLayer"
+ source:shapeSource];
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ // deprecated function, stops with float values
+ NSDictionary<NSNumber *, MGLStyleValue<NSNumber *> *> *stops = @{
+ @1: [MGLStyleValue<NSNumber *> valueWithRawValue:@0],
+ @2: [MGLStyleValue<NSNumber *> valueWithRawValue:@1],
+ @3: [MGLStyleValue<NSNumber *> valueWithRawValue:@2],
+ @4: [MGLStyleValue<NSNumber *> valueWithRawValue:@0],
+ };
+ MGLStyleValue<NSNumber *> *iconHaloBlurStyleValue =
+ [MGLStyleValue<NSNumber *> valueWithInterpolationBase:1.0 stops:stops];
+ symbolStyleLayer.iconHaloBlur = iconHaloBlurStyleValue;
+ XCTAssertEqualObjects(symbolStyleLayer.iconHaloBlur, iconHaloBlurStyleValue);
+
+ // deprecated function, stops with boolean values
+ stops = @{
+ @1: [MGLStyleValue<NSNumber *> valueWithRawValue:@YES],
+ @2: [MGLStyleValue<NSNumber *> valueWithRawValue:@NO],
+ @3: [MGLStyleValue<NSNumber *> valueWithRawValue:@YES],
+ @4: [MGLStyleValue<NSNumber *> valueWithRawValue:@NO],
+ };
+ MGLStyleValue<NSNumber *> *iconAllowsOverlapStyleValue =
+ [MGLStyleValue<NSNumber *> valueWithInterpolationBase:1.0 stops:stops];
+ symbolStyleLayer.iconAllowsOverlap = iconAllowsOverlapStyleValue;
+ // iconAllowsOverlap is boolean so mgl and mbgl conversions will coerce the developers stops into interval stops
+ MGLStyleValue<NSNumber *> *expectedIconAllowsOverlapStyleValue =
+ [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeInterval
+ cameraStops:stops
+ options:nil];
+ XCTAssertEqualObjects(symbolStyleLayer.iconAllowsOverlap, expectedIconAllowsOverlapStyleValue);
+
+ ///
+ // creating and using MGLStyleFunctions directly
+ ///
+
+ NSDictionary<NSNumber *, MGLStyleValue<NSNumber *> *> *circleRadiusStops = @{
+ @0: [MGLStyleValue<NSNumber *> valueWithRawValue:@10],
+ @20: [MGLStyleValue<NSNumber *> valueWithRawValue:@5],
+ };
+ MGLStyleFunction<NSNumber *> *circleRadiusFunction =
+ [MGLStyleFunction<NSNumber *> functionWithInterpolationBase:1.0
+ stops:circleRadiusStops];
+ circleStyleLayer.circleRadius = circleRadiusFunction;
+ MGLStyleValue<NSNumber *> *expectedCircleRadiusFunction =
+ [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeExponential
+ cameraStops:circleRadiusStops
+ options:nil];
+ // setting a data driven property to an MGLStyleFunction should return an exponential camera function
+ XCTAssertEqualObjects(circleStyleLayer.circleRadius, expectedCircleRadiusFunction);
+
+ CGVector circleTranslationOne = CGVectorMake(100, 0);
+ CGVector circleTranslationTwo = CGVectorMake(0, 0);
+#if TARGET_OS_IPHONE
+ NSValue *circleTranslationValueOne = [NSValue valueWithCGVector:circleTranslationOne];
+ NSValue *circleTranslationValueTwo = [NSValue valueWithCGVector:circleTranslationTwo];
+#else
+ NSValue *circleTranslationValueOne = [NSValue value:&circleTranslationOne withObjCType:@encode(CGVector)];
+ NSValue *circleTranslationValueTwo = [NSValue value:&circleTranslationTwo withObjCType:@encode(CGVector)];
+#endif
+
+ NSDictionary<NSNumber *, MGLStyleValue<NSValue *> *> *circleTranslationStops = @{
+ @0: [MGLStyleValue<NSValue *> valueWithRawValue:circleTranslationValueOne],
+ @10: [MGLStyleValue<NSValue *> valueWithRawValue:circleTranslationValueTwo],
+ };
+ MGLStyleFunction<NSValue *> *circleTranslationFunction =
+ [MGLStyleFunction<NSValue *> functionWithInterpolationBase:1.0
+ stops:circleTranslationStops];
+ circleStyleLayer.circleTranslation = circleTranslationFunction;
+ MGLStyleValue<NSValue *> *expectedCircleTranslationFunction =
+ [MGLStyleValue<NSValue *> valueWithInterpolationMode:MGLInterpolationModeExponential
+ cameraStops:circleTranslationStops
+ options:nil];
+ // setting a non-data driven, interpolatable property to an MGLStyleFunction should return an exponential camera function
+ XCTAssertEqualObjects(circleStyleLayer.circleTranslation, expectedCircleTranslationFunction);
+
+ NSDictionary<NSNumber *, MGLStyleValue<NSNumber *> *> *iconOptionalStops = @{
+ @0: [MGLStyleValue<NSNumber *> valueWithRawValue:@NO],
+ @20: [MGLStyleValue<NSNumber *> valueWithRawValue:@YES],
+ };
+ MGLStyleFunction<NSNumber *> *iconOptionalFunction =
+ [MGLStyleFunction<NSNumber *> valueWithInterpolationBase:1.0
+ stops:iconOptionalStops];
+ symbolStyleLayer.iconOptional = iconOptionalFunction;
+ MGLStyleValue<NSNumber *> *expectedIconOptionalFunction =
+ [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeInterval
+ cameraStops:iconOptionalStops
+ options:nil];
+ XCTAssertEqualObjects(symbolStyleLayer.iconOptional, expectedIconOptionalFunction);
+#pragma clang diagnostic pop
}
@end