diff options
Diffstat (limited to 'platform/darwin/test')
-rw-r--r-- | platform/darwin/test/MGLBackgroundStyleLayerTests.mm | 32 | ||||
-rw-r--r-- | platform/darwin/test/MGLCircleStyleLayerTests.mm | 68 | ||||
-rw-r--r-- | platform/darwin/test/MGLFillStyleLayerTests.mm | 41 | ||||
-rw-r--r-- | platform/darwin/test/MGLLineStyleLayerTests.mm | 68 | ||||
-rw-r--r-- | platform/darwin/test/MGLRasterStyleLayerTests.mm | 41 | ||||
-rw-r--r-- | platform/darwin/test/MGLStyleLayerTests.mm.ejs | 16 | ||||
-rw-r--r-- | platform/darwin/test/MGLSymbolStyleLayerTests.mm | 95 |
7 files changed, 361 insertions, 0 deletions
diff --git a/platform/darwin/test/MGLBackgroundStyleLayerTests.mm b/platform/darwin/test/MGLBackgroundStyleLayerTests.mm index 92c0ac7cbc..c96a4fe7fa 100644 --- a/platform/darwin/test/MGLBackgroundStyleLayerTests.mm +++ b/platform/darwin/test/MGLBackgroundStyleLayerTests.mm @@ -2,10 +2,12 @@ // Edit platform/darwin/scripts/generate-style-code.js, then run `make darwin-style-code`. #import "MGLStyleLayerTests.h" +#import "../../darwin/src/NSDate+MGLAdditions.h" #import "MGLStyleLayer_Private.h" #include <mbgl/style/layers/background_layer.hpp> +#include <mbgl/style/transition_options.hpp> @interface MGLBackgroundLayerTests : MGLStyleLayerTests @end @@ -22,6 +24,9 @@ XCTAssertTrue(layer.rawLayer->is<mbgl::style::BackgroundLayer>()); auto rawLayer = layer.rawLayer->as<mbgl::style::BackgroundLayer>(); + MGLTransition transitionTest = MGLTransitionMake(5, 4); + + // background-color { XCTAssertTrue(rawLayer->getBackgroundColor().isUndefined(), @@ -59,6 +64,15 @@ XCTAssertThrowsSpecificNamed(layer.backgroundColor = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); functionStyleValue = [MGLStyleValue<MGLColor *> valueWithInterpolationMode:MGLInterpolationModeInterval compositeStops:@{@18: constantStyleValue} attributeName:@"" options:nil]; XCTAssertThrowsSpecificNamed(layer.backgroundColor = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); + // Transition property test + layer.backgroundColorTransition = transitionTest; + auto toptions = rawLayer->getBackgroundColorTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition backgroundColorTransition = layer.backgroundColorTransition; + XCTAssertEqual(backgroundColorTransition.delay, transitionTest.delay); + XCTAssertEqual(backgroundColorTransition.duration, transitionTest.duration); } // background-opacity @@ -98,6 +112,15 @@ XCTAssertThrowsSpecificNamed(layer.backgroundOpacity = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); functionStyleValue = [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeInterval compositeStops:@{@18: constantStyleValue} attributeName:@"" options:nil]; XCTAssertThrowsSpecificNamed(layer.backgroundOpacity = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); + // Transition property test + layer.backgroundOpacityTransition = transitionTest; + auto toptions = rawLayer->getBackgroundOpacityTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition backgroundOpacityTransition = layer.backgroundOpacityTransition; + XCTAssertEqual(backgroundOpacityTransition.delay, transitionTest.delay); + XCTAssertEqual(backgroundOpacityTransition.duration, transitionTest.duration); } // background-pattern @@ -137,6 +160,15 @@ XCTAssertThrowsSpecificNamed(layer.backgroundPattern = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); functionStyleValue = [MGLStyleValue<NSString *> valueWithInterpolationMode:MGLInterpolationModeInterval compositeStops:@{@18: constantStyleValue} attributeName:@"" options:nil]; XCTAssertThrowsSpecificNamed(layer.backgroundPattern = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); + // Transition property test + layer.backgroundPatternTransition = transitionTest; + auto toptions = rawLayer->getBackgroundPatternTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition backgroundPatternTransition = layer.backgroundPatternTransition; + XCTAssertEqual(backgroundPatternTransition.delay, transitionTest.delay); + XCTAssertEqual(backgroundPatternTransition.duration, transitionTest.duration); } } diff --git a/platform/darwin/test/MGLCircleStyleLayerTests.mm b/platform/darwin/test/MGLCircleStyleLayerTests.mm index d7515e8e4e..2a2e9f2d4a 100644 --- a/platform/darwin/test/MGLCircleStyleLayerTests.mm +++ b/platform/darwin/test/MGLCircleStyleLayerTests.mm @@ -2,10 +2,12 @@ // Edit platform/darwin/scripts/generate-style-code.js, then run `make darwin-style-code`. #import "MGLStyleLayerTests.h" +#import "../../darwin/src/NSDate+MGLAdditions.h" #import "MGLStyleLayer_Private.h" #include <mbgl/style/layers/circle_layer.hpp> +#include <mbgl/style/transition_options.hpp> @interface MGLCircleLayerTests : MGLStyleLayerTests @end @@ -43,6 +45,9 @@ XCTAssertTrue(layer.rawLayer->is<mbgl::style::CircleLayer>()); auto rawLayer = layer.rawLayer->as<mbgl::style::CircleLayer>(); + MGLTransition transitionTest = MGLTransitionMake(5, 4); + + // circle-blur { XCTAssertTrue(rawLayer->getCircleBlur().isUndefined(), @@ -98,6 +103,15 @@ @"Unsetting circleBlur should return circle-blur to the default value."); XCTAssertEqualObjects(layer.circleBlur, defaultStyleValue, @"circleBlur should return the default value after being unset."); + // Transition property test + layer.circleBlurTransition = transitionTest; + auto toptions = rawLayer->getCircleBlurTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition circleBlurTransition = layer.circleBlurTransition; + XCTAssertEqual(circleBlurTransition.delay, transitionTest.delay); + XCTAssertEqual(circleBlurTransition.duration, transitionTest.duration); } // circle-color @@ -155,6 +169,15 @@ @"Unsetting circleColor should return circle-color to the default value."); XCTAssertEqualObjects(layer.circleColor, defaultStyleValue, @"circleColor should return the default value after being unset."); + // Transition property test + layer.circleColorTransition = transitionTest; + auto toptions = rawLayer->getCircleColorTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition circleColorTransition = layer.circleColorTransition; + XCTAssertEqual(circleColorTransition.delay, transitionTest.delay); + XCTAssertEqual(circleColorTransition.duration, transitionTest.duration); } // circle-opacity @@ -212,6 +235,15 @@ @"Unsetting circleOpacity should return circle-opacity to the default value."); XCTAssertEqualObjects(layer.circleOpacity, defaultStyleValue, @"circleOpacity should return the default value after being unset."); + // Transition property test + layer.circleOpacityTransition = transitionTest; + auto toptions = rawLayer->getCircleOpacityTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition circleOpacityTransition = layer.circleOpacityTransition; + XCTAssertEqual(circleOpacityTransition.delay, transitionTest.delay); + XCTAssertEqual(circleOpacityTransition.duration, transitionTest.duration); } // circle-radius @@ -269,6 +301,15 @@ @"Unsetting circleRadius should return circle-radius to the default value."); XCTAssertEqualObjects(layer.circleRadius, defaultStyleValue, @"circleRadius should return the default value after being unset."); + // Transition property test + layer.circleRadiusTransition = transitionTest; + auto toptions = rawLayer->getCircleRadiusTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition circleRadiusTransition = layer.circleRadiusTransition; + XCTAssertEqual(circleRadiusTransition.delay, transitionTest.delay); + XCTAssertEqual(circleRadiusTransition.duration, transitionTest.duration); } // circle-pitch-scale @@ -365,6 +406,15 @@ @"Unsetting circleStrokeColor should return circle-stroke-color to the default value."); XCTAssertEqualObjects(layer.circleStrokeColor, defaultStyleValue, @"circleStrokeColor should return the default value after being unset."); + // Transition property test + layer.circleStrokeColorTransition = transitionTest; + auto toptions = rawLayer->getCircleStrokeColorTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition circleStrokeColorTransition = layer.circleStrokeColorTransition; + XCTAssertEqual(circleStrokeColorTransition.delay, transitionTest.delay); + XCTAssertEqual(circleStrokeColorTransition.duration, transitionTest.duration); } // circle-stroke-opacity @@ -422,6 +472,15 @@ @"Unsetting circleStrokeOpacity should return circle-stroke-opacity to the default value."); XCTAssertEqualObjects(layer.circleStrokeOpacity, defaultStyleValue, @"circleStrokeOpacity should return the default value after being unset."); + // Transition property test + layer.circleStrokeOpacityTransition = transitionTest; + auto toptions = rawLayer->getCircleStrokeOpacityTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition circleStrokeOpacityTransition = layer.circleStrokeOpacityTransition; + XCTAssertEqual(circleStrokeOpacityTransition.delay, transitionTest.delay); + XCTAssertEqual(circleStrokeOpacityTransition.duration, transitionTest.duration); } // circle-stroke-width @@ -479,6 +538,15 @@ @"Unsetting circleStrokeWidth should return circle-stroke-width to the default value."); XCTAssertEqualObjects(layer.circleStrokeWidth, defaultStyleValue, @"circleStrokeWidth should return the default value after being unset."); + // Transition property test + layer.circleStrokeWidthTransition = transitionTest; + auto toptions = rawLayer->getCircleStrokeWidthTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition circleStrokeWidthTransition = layer.circleStrokeWidthTransition; + XCTAssertEqual(circleStrokeWidthTransition.delay, transitionTest.delay); + XCTAssertEqual(circleStrokeWidthTransition.duration, transitionTest.duration); } // circle-translate diff --git a/platform/darwin/test/MGLFillStyleLayerTests.mm b/platform/darwin/test/MGLFillStyleLayerTests.mm index c03b22c399..85f0b24fa7 100644 --- a/platform/darwin/test/MGLFillStyleLayerTests.mm +++ b/platform/darwin/test/MGLFillStyleLayerTests.mm @@ -2,10 +2,12 @@ // Edit platform/darwin/scripts/generate-style-code.js, then run `make darwin-style-code`. #import "MGLStyleLayerTests.h" +#import "../../darwin/src/NSDate+MGLAdditions.h" #import "MGLStyleLayer_Private.h" #include <mbgl/style/layers/fill_layer.hpp> +#include <mbgl/style/transition_options.hpp> @interface MGLFillLayerTests : MGLStyleLayerTests @end @@ -43,6 +45,9 @@ XCTAssertTrue(layer.rawLayer->is<mbgl::style::FillLayer>()); auto rawLayer = layer.rawLayer->as<mbgl::style::FillLayer>(); + MGLTransition transitionTest = MGLTransitionMake(5, 4); + + // fill-antialias { XCTAssertTrue(rawLayer->getFillAntialias().isUndefined(), @@ -137,6 +142,15 @@ @"Unsetting fillColor should return fill-color to the default value."); XCTAssertEqualObjects(layer.fillColor, defaultStyleValue, @"fillColor should return the default value after being unset."); + // Transition property test + layer.fillColorTransition = transitionTest; + auto toptions = rawLayer->getFillColorTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition fillColorTransition = layer.fillColorTransition; + XCTAssertEqual(fillColorTransition.delay, transitionTest.delay); + XCTAssertEqual(fillColorTransition.duration, transitionTest.duration); } // fill-opacity @@ -194,6 +208,15 @@ @"Unsetting fillOpacity should return fill-opacity to the default value."); XCTAssertEqualObjects(layer.fillOpacity, defaultStyleValue, @"fillOpacity should return the default value after being unset."); + // Transition property test + layer.fillOpacityTransition = transitionTest; + auto toptions = rawLayer->getFillOpacityTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition fillOpacityTransition = layer.fillOpacityTransition; + XCTAssertEqual(fillOpacityTransition.delay, transitionTest.delay); + XCTAssertEqual(fillOpacityTransition.duration, transitionTest.duration); } // fill-outline-color @@ -251,6 +274,15 @@ @"Unsetting fillOutlineColor should return fill-outline-color to the default value."); XCTAssertEqualObjects(layer.fillOutlineColor, defaultStyleValue, @"fillOutlineColor should return the default value after being unset."); + // Transition property test + layer.fillOutlineColorTransition = transitionTest; + auto toptions = rawLayer->getFillOutlineColorTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition fillOutlineColorTransition = layer.fillOutlineColorTransition; + XCTAssertEqual(fillOutlineColorTransition.delay, transitionTest.delay); + XCTAssertEqual(fillOutlineColorTransition.duration, transitionTest.duration); } // fill-pattern @@ -290,6 +322,15 @@ XCTAssertThrowsSpecificNamed(layer.fillPattern = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); functionStyleValue = [MGLStyleValue<NSString *> valueWithInterpolationMode:MGLInterpolationModeInterval compositeStops:@{@18: constantStyleValue} attributeName:@"" options:nil]; XCTAssertThrowsSpecificNamed(layer.fillPattern = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); + // Transition property test + layer.fillPatternTransition = transitionTest; + auto toptions = rawLayer->getFillPatternTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition fillPatternTransition = layer.fillPatternTransition; + XCTAssertEqual(fillPatternTransition.delay, transitionTest.delay); + XCTAssertEqual(fillPatternTransition.duration, transitionTest.duration); } // fill-translate diff --git a/platform/darwin/test/MGLLineStyleLayerTests.mm b/platform/darwin/test/MGLLineStyleLayerTests.mm index 95c3e434c0..1e92959520 100644 --- a/platform/darwin/test/MGLLineStyleLayerTests.mm +++ b/platform/darwin/test/MGLLineStyleLayerTests.mm @@ -2,10 +2,12 @@ // Edit platform/darwin/scripts/generate-style-code.js, then run `make darwin-style-code`. #import "MGLStyleLayerTests.h" +#import "../../darwin/src/NSDate+MGLAdditions.h" #import "MGLStyleLayer_Private.h" #include <mbgl/style/layers/line_layer.hpp> +#include <mbgl/style/transition_options.hpp> @interface MGLLineLayerTests : MGLStyleLayerTests @end @@ -43,6 +45,9 @@ XCTAssertTrue(layer.rawLayer->is<mbgl::style::LineLayer>()); auto rawLayer = layer.rawLayer->as<mbgl::style::LineLayer>(); + MGLTransition transitionTest = MGLTransitionMake(5, 4); + + // line-cap { XCTAssertTrue(rawLayer->getLineCap().isUndefined(), @@ -254,6 +259,15 @@ @"Unsetting lineBlur should return line-blur to the default value."); XCTAssertEqualObjects(layer.lineBlur, defaultStyleValue, @"lineBlur should return the default value after being unset."); + // Transition property test + layer.lineBlurTransition = transitionTest; + auto toptions = rawLayer->getLineBlurTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition lineBlurTransition = layer.lineBlurTransition; + XCTAssertEqual(lineBlurTransition.delay, transitionTest.delay); + XCTAssertEqual(lineBlurTransition.duration, transitionTest.duration); } // line-color @@ -311,6 +325,15 @@ @"Unsetting lineColor should return line-color to the default value."); XCTAssertEqualObjects(layer.lineColor, defaultStyleValue, @"lineColor should return the default value after being unset."); + // Transition property test + layer.lineColorTransition = transitionTest; + auto toptions = rawLayer->getLineColorTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition lineColorTransition = layer.lineColorTransition; + XCTAssertEqual(lineColorTransition.delay, transitionTest.delay); + XCTAssertEqual(lineColorTransition.duration, transitionTest.duration); } // line-dasharray @@ -407,6 +430,15 @@ @"Unsetting lineGapWidth should return line-gap-width to the default value."); XCTAssertEqualObjects(layer.lineGapWidth, defaultStyleValue, @"lineGapWidth should return the default value after being unset."); + // Transition property test + layer.lineGapWidthTransition = transitionTest; + auto toptions = rawLayer->getLineGapWidthTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition lineGapWidthTransition = layer.lineGapWidthTransition; + XCTAssertEqual(lineGapWidthTransition.delay, transitionTest.delay); + XCTAssertEqual(lineGapWidthTransition.duration, transitionTest.duration); } // line-offset @@ -464,6 +496,15 @@ @"Unsetting lineOffset should return line-offset to the default value."); XCTAssertEqualObjects(layer.lineOffset, defaultStyleValue, @"lineOffset should return the default value after being unset."); + // Transition property test + layer.lineOffsetTransition = transitionTest; + auto toptions = rawLayer->getLineOffsetTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition lineOffsetTransition = layer.lineOffsetTransition; + XCTAssertEqual(lineOffsetTransition.delay, transitionTest.delay); + XCTAssertEqual(lineOffsetTransition.duration, transitionTest.duration); } // line-opacity @@ -521,6 +562,15 @@ @"Unsetting lineOpacity should return line-opacity to the default value."); XCTAssertEqualObjects(layer.lineOpacity, defaultStyleValue, @"lineOpacity should return the default value after being unset."); + // Transition property test + layer.lineOpacityTransition = transitionTest; + auto toptions = rawLayer->getLineOpacityTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition lineOpacityTransition = layer.lineOpacityTransition; + XCTAssertEqual(lineOpacityTransition.delay, transitionTest.delay); + XCTAssertEqual(lineOpacityTransition.duration, transitionTest.duration); } // line-pattern @@ -560,6 +610,15 @@ XCTAssertThrowsSpecificNamed(layer.linePattern = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); functionStyleValue = [MGLStyleValue<NSString *> valueWithInterpolationMode:MGLInterpolationModeInterval compositeStops:@{@18: constantStyleValue} attributeName:@"" options:nil]; XCTAssertThrowsSpecificNamed(layer.linePattern = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); + // Transition property test + layer.linePatternTransition = transitionTest; + auto toptions = rawLayer->getLinePatternTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition linePatternTransition = layer.linePatternTransition; + XCTAssertEqual(linePatternTransition.delay, transitionTest.delay); + XCTAssertEqual(linePatternTransition.duration, transitionTest.duration); } // line-translate @@ -683,6 +742,15 @@ XCTAssertThrowsSpecificNamed(layer.lineWidth = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); functionStyleValue = [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeInterval compositeStops:@{@18: constantStyleValue} attributeName:@"" options:nil]; XCTAssertThrowsSpecificNamed(layer.lineWidth = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); + // Transition property test + layer.lineWidthTransition = transitionTest; + auto toptions = rawLayer->getLineWidthTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition lineWidthTransition = layer.lineWidthTransition; + XCTAssertEqual(lineWidthTransition.delay, transitionTest.delay); + XCTAssertEqual(lineWidthTransition.duration, transitionTest.duration); } } diff --git a/platform/darwin/test/MGLRasterStyleLayerTests.mm b/platform/darwin/test/MGLRasterStyleLayerTests.mm index b7a764e6c2..7b0757eeb6 100644 --- a/platform/darwin/test/MGLRasterStyleLayerTests.mm +++ b/platform/darwin/test/MGLRasterStyleLayerTests.mm @@ -2,10 +2,12 @@ // Edit platform/darwin/scripts/generate-style-code.js, then run `make darwin-style-code`. #import "MGLStyleLayerTests.h" +#import "../../darwin/src/NSDate+MGLAdditions.h" #import "MGLStyleLayer_Private.h" #include <mbgl/style/layers/raster_layer.hpp> +#include <mbgl/style/transition_options.hpp> @interface MGLRasterLayerTests : MGLStyleLayerTests @end @@ -25,6 +27,9 @@ XCTAssertTrue(layer.rawLayer->is<mbgl::style::RasterLayer>()); auto rawLayer = layer.rawLayer->as<mbgl::style::RasterLayer>(); + MGLTransition transitionTest = MGLTransitionMake(5, 4); + + // raster-brightness-max { XCTAssertTrue(rawLayer->getRasterBrightnessMax().isUndefined(), @@ -140,6 +145,15 @@ XCTAssertThrowsSpecificNamed(layer.rasterContrast = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); functionStyleValue = [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeInterval compositeStops:@{@18: constantStyleValue} attributeName:@"" options:nil]; XCTAssertThrowsSpecificNamed(layer.rasterContrast = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); + // Transition property test + layer.rasterContrastTransition = transitionTest; + auto toptions = rawLayer->getRasterContrastTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition rasterContrastTransition = layer.rasterContrastTransition; + XCTAssertEqual(rasterContrastTransition.delay, transitionTest.delay); + XCTAssertEqual(rasterContrastTransition.duration, transitionTest.duration); } // raster-fade-duration @@ -179,6 +193,15 @@ XCTAssertThrowsSpecificNamed(layer.rasterFadeDuration = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); functionStyleValue = [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeInterval compositeStops:@{@18: constantStyleValue} attributeName:@"" options:nil]; XCTAssertThrowsSpecificNamed(layer.rasterFadeDuration = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); + // Transition property test + layer.rasterFadeDurationTransition = transitionTest; + auto toptions = rawLayer->getRasterFadeDurationTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition rasterFadeDurationTransition = layer.rasterFadeDurationTransition; + XCTAssertEqual(rasterFadeDurationTransition.delay, transitionTest.delay); + XCTAssertEqual(rasterFadeDurationTransition.duration, transitionTest.duration); } // raster-hue-rotate @@ -257,6 +280,15 @@ XCTAssertThrowsSpecificNamed(layer.rasterOpacity = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); functionStyleValue = [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeInterval compositeStops:@{@18: constantStyleValue} attributeName:@"" options:nil]; XCTAssertThrowsSpecificNamed(layer.rasterOpacity = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); + // Transition property test + layer.rasterOpacityTransition = transitionTest; + auto toptions = rawLayer->getRasterOpacityTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition rasterOpacityTransition = layer.rasterOpacityTransition; + XCTAssertEqual(rasterOpacityTransition.delay, transitionTest.delay); + XCTAssertEqual(rasterOpacityTransition.duration, transitionTest.duration); } // raster-saturation @@ -296,6 +328,15 @@ XCTAssertThrowsSpecificNamed(layer.rasterSaturation = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); functionStyleValue = [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeInterval compositeStops:@{@18: constantStyleValue} attributeName:@"" options:nil]; XCTAssertThrowsSpecificNamed(layer.rasterSaturation = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); + // Transition property test + layer.rasterSaturationTransition = transitionTest; + auto toptions = rawLayer->getRasterSaturationTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition rasterSaturationTransition = layer.rasterSaturationTransition; + XCTAssertEqual(rasterSaturationTransition.delay, transitionTest.delay); + XCTAssertEqual(rasterSaturationTransition.duration, transitionTest.duration); } } diff --git a/platform/darwin/test/MGLStyleLayerTests.mm.ejs b/platform/darwin/test/MGLStyleLayerTests.mm.ejs index 810d7fbd3b..a405ae58c4 100644 --- a/platform/darwin/test/MGLStyleLayerTests.mm.ejs +++ b/platform/darwin/test/MGLStyleLayerTests.mm.ejs @@ -7,10 +7,12 @@ // Edit platform/darwin/scripts/generate-style-code.js, then run `make darwin-style-code`. #import "MGLStyleLayerTests.h" +#import "../../darwin/src/NSDate+MGLAdditions.h" #import "MGLStyleLayer_Private.h" #include <mbgl/style/layers/<%- type %>_layer.hpp> +#include <mbgl/style/transition_options.hpp> @interface MGL<%- camelize(type) %>LayerTests : MGLStyleLayerTests @end @@ -53,6 +55,9 @@ XCTAssertNotEqual(layer.rawLayer, nullptr); XCTAssertTrue(layer.rawLayer->is<mbgl::style::<%- camelize(type) %>Layer>()); auto rawLayer = layer.rawLayer->as<mbgl::style::<%- camelize(type) %>Layer>(); + + MGLTransition transitionTest = MGLTransitionMake(5, 4); + <% for (const property of properties) { -%> // <%- originalPropertyName(property) %> @@ -124,6 +129,17 @@ functionStyleValue = [MGLStyleValue<<%- propertyType(property) %>> valueWithInterpolationMode:MGLInterpolationModeInterval compositeStops:@{@18: constantStyleValue} attributeName:@"" options:nil]; XCTAssertThrowsSpecificNamed(layer.<%- objCName(property) %> = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); <% } -%> +<% if (property["transition"] && !property.original) { -%> + // Transition property test + layer.<%- camelizeWithLeadingLowercase(originalPropertyName(property)) %>Transition = transitionTest; + auto toptions = rawLayer->get<%- camelize(originalPropertyName(property)) %>Transition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition <%- camelizeWithLeadingLowercase(originalPropertyName(property)) %>Transition = layer.<%- camelizeWithLeadingLowercase(originalPropertyName(property)) %>Transition; + XCTAssertEqual(<%- camelizeWithLeadingLowercase(originalPropertyName(property)) %>Transition.delay, transitionTest.delay); + XCTAssertEqual(<%- camelizeWithLeadingLowercase(originalPropertyName(property)) %>Transition.duration, transitionTest.duration); +<% } -%> } <% } -%> } diff --git a/platform/darwin/test/MGLSymbolStyleLayerTests.mm b/platform/darwin/test/MGLSymbolStyleLayerTests.mm index 1d599f5aca..e3e473ef78 100644 --- a/platform/darwin/test/MGLSymbolStyleLayerTests.mm +++ b/platform/darwin/test/MGLSymbolStyleLayerTests.mm @@ -2,10 +2,12 @@ // Edit platform/darwin/scripts/generate-style-code.js, then run `make darwin-style-code`. #import "MGLStyleLayerTests.h" +#import "../../darwin/src/NSDate+MGLAdditions.h" #import "MGLStyleLayer_Private.h" #include <mbgl/style/layers/symbol_layer.hpp> +#include <mbgl/style/transition_options.hpp> @interface MGLSymbolLayerTests : MGLStyleLayerTests @end @@ -43,6 +45,9 @@ XCTAssertTrue(layer.rawLayer->is<mbgl::style::SymbolLayer>()); auto rawLayer = layer.rawLayer->as<mbgl::style::SymbolLayer>(); + MGLTransition transitionTest = MGLTransitionMake(5, 4); + + // icon-allow-overlap { XCTAssertTrue(rawLayer->getIconAllowOverlap().isUndefined(), @@ -1468,6 +1473,15 @@ @"Unsetting iconColor should return icon-color to the default value."); XCTAssertEqualObjects(layer.iconColor, defaultStyleValue, @"iconColor should return the default value after being unset."); + // Transition property test + layer.iconColorTransition = transitionTest; + auto toptions = rawLayer->getIconColorTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition iconColorTransition = layer.iconColorTransition; + XCTAssertEqual(iconColorTransition.delay, transitionTest.delay); + XCTAssertEqual(iconColorTransition.duration, transitionTest.duration); } // icon-halo-blur @@ -1525,6 +1539,15 @@ @"Unsetting iconHaloBlur should return icon-halo-blur to the default value."); XCTAssertEqualObjects(layer.iconHaloBlur, defaultStyleValue, @"iconHaloBlur should return the default value after being unset."); + // Transition property test + layer.iconHaloBlurTransition = transitionTest; + auto toptions = rawLayer->getIconHaloBlurTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition iconHaloBlurTransition = layer.iconHaloBlurTransition; + XCTAssertEqual(iconHaloBlurTransition.delay, transitionTest.delay); + XCTAssertEqual(iconHaloBlurTransition.duration, transitionTest.duration); } // icon-halo-color @@ -1582,6 +1605,15 @@ @"Unsetting iconHaloColor should return icon-halo-color to the default value."); XCTAssertEqualObjects(layer.iconHaloColor, defaultStyleValue, @"iconHaloColor should return the default value after being unset."); + // Transition property test + layer.iconHaloColorTransition = transitionTest; + auto toptions = rawLayer->getIconHaloColorTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition iconHaloColorTransition = layer.iconHaloColorTransition; + XCTAssertEqual(iconHaloColorTransition.delay, transitionTest.delay); + XCTAssertEqual(iconHaloColorTransition.duration, transitionTest.duration); } // icon-halo-width @@ -1639,6 +1671,15 @@ @"Unsetting iconHaloWidth should return icon-halo-width to the default value."); XCTAssertEqualObjects(layer.iconHaloWidth, defaultStyleValue, @"iconHaloWidth should return the default value after being unset."); + // Transition property test + layer.iconHaloWidthTransition = transitionTest; + auto toptions = rawLayer->getIconHaloWidthTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition iconHaloWidthTransition = layer.iconHaloWidthTransition; + XCTAssertEqual(iconHaloWidthTransition.delay, transitionTest.delay); + XCTAssertEqual(iconHaloWidthTransition.duration, transitionTest.duration); } // icon-opacity @@ -1696,6 +1737,15 @@ @"Unsetting iconOpacity should return icon-opacity to the default value."); XCTAssertEqualObjects(layer.iconOpacity, defaultStyleValue, @"iconOpacity should return the default value after being unset."); + // Transition property test + layer.iconOpacityTransition = transitionTest; + auto toptions = rawLayer->getIconOpacityTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition iconOpacityTransition = layer.iconOpacityTransition; + XCTAssertEqual(iconOpacityTransition.delay, transitionTest.delay); + XCTAssertEqual(iconOpacityTransition.duration, transitionTest.duration); } // icon-translate @@ -1837,6 +1887,15 @@ @"Unsetting textColor should return text-color to the default value."); XCTAssertEqualObjects(layer.textColor, defaultStyleValue, @"textColor should return the default value after being unset."); + // Transition property test + layer.textColorTransition = transitionTest; + auto toptions = rawLayer->getTextColorTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition textColorTransition = layer.textColorTransition; + XCTAssertEqual(textColorTransition.delay, transitionTest.delay); + XCTAssertEqual(textColorTransition.duration, transitionTest.duration); } // text-halo-blur @@ -1894,6 +1953,15 @@ @"Unsetting textHaloBlur should return text-halo-blur to the default value."); XCTAssertEqualObjects(layer.textHaloBlur, defaultStyleValue, @"textHaloBlur should return the default value after being unset."); + // Transition property test + layer.textHaloBlurTransition = transitionTest; + auto toptions = rawLayer->getTextHaloBlurTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition textHaloBlurTransition = layer.textHaloBlurTransition; + XCTAssertEqual(textHaloBlurTransition.delay, transitionTest.delay); + XCTAssertEqual(textHaloBlurTransition.duration, transitionTest.duration); } // text-halo-color @@ -1951,6 +2019,15 @@ @"Unsetting textHaloColor should return text-halo-color to the default value."); XCTAssertEqualObjects(layer.textHaloColor, defaultStyleValue, @"textHaloColor should return the default value after being unset."); + // Transition property test + layer.textHaloColorTransition = transitionTest; + auto toptions = rawLayer->getTextHaloColorTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition textHaloColorTransition = layer.textHaloColorTransition; + XCTAssertEqual(textHaloColorTransition.delay, transitionTest.delay); + XCTAssertEqual(textHaloColorTransition.duration, transitionTest.duration); } // text-halo-width @@ -2008,6 +2085,15 @@ @"Unsetting textHaloWidth should return text-halo-width to the default value."); XCTAssertEqualObjects(layer.textHaloWidth, defaultStyleValue, @"textHaloWidth should return the default value after being unset."); + // Transition property test + layer.textHaloWidthTransition = transitionTest; + auto toptions = rawLayer->getTextHaloWidthTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition textHaloWidthTransition = layer.textHaloWidthTransition; + XCTAssertEqual(textHaloWidthTransition.delay, transitionTest.delay); + XCTAssertEqual(textHaloWidthTransition.duration, transitionTest.duration); } // text-opacity @@ -2065,6 +2151,15 @@ @"Unsetting textOpacity should return text-opacity to the default value."); XCTAssertEqualObjects(layer.textOpacity, defaultStyleValue, @"textOpacity should return the default value after being unset."); + // Transition property test + layer.textOpacityTransition = transitionTest; + auto toptions = rawLayer->getTextOpacityTransition(); + XCTAssert(toptions.delay && MGLTimeIntervalFromDuration(*toptions.delay) == transitionTest.delay); + XCTAssert(toptions.duration && MGLTimeIntervalFromDuration(*toptions.duration) == transitionTest.duration); + + MGLTransition textOpacityTransition = layer.textOpacityTransition; + XCTAssertEqual(textOpacityTransition.delay, transitionTest.delay); + XCTAssertEqual(textOpacityTransition.duration, transitionTest.duration); } // text-translate |