diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/geometry')
-rw-r--r-- | platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/geometry/GeoJsonConversionTest.java | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/geometry/GeoJsonConversionTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/geometry/GeoJsonConversionTest.java index 90b82d56f3..05e1ce8a99 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/geometry/GeoJsonConversionTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/geometry/GeoJsonConversionTest.java @@ -1,13 +1,21 @@ package com.mapbox.mapboxsdk.testapp.geometry; +import com.google.gson.JsonArray; +import com.mapbox.geojson.Feature; import com.mapbox.geojson.FeatureCollection; import com.mapbox.geojson.Point; import com.mapbox.geojson.Polygon; +import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.geometry.LatLngBounds; +import com.mapbox.mapboxsdk.style.expressions.Expression; +import com.mapbox.mapboxsdk.style.layers.PropertyFactory; import com.mapbox.mapboxsdk.style.layers.SymbolLayer; import com.mapbox.mapboxsdk.style.sources.CustomGeometrySource; +import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; import com.mapbox.mapboxsdk.style.sources.GeometryTileProvider; import com.mapbox.mapboxsdk.testapp.activity.EspressoTest; +import com.mapbox.mapboxsdk.testapp.utils.Utils; + import org.junit.Test; import static com.mapbox.geojson.Feature.fromGeometry; @@ -18,6 +26,7 @@ import static com.mapbox.geojson.MultiLineString.fromLineString; import static com.mapbox.geojson.MultiPolygon.fromPolygon; import static java.util.Collections.emptyList; import static java.util.Collections.singletonList; +import static org.junit.Assert.assertFalse; /** * Instrumentation test to validate java geojson conversion to c++ @@ -44,7 +53,7 @@ public class GeoJsonConversionTest extends EspressoTest { onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> { mapboxMap.getStyle().addSource( new CustomGeometrySource("test-id", - new CustomProvider(fromFeatures(singletonList(fromGeometry(Point.fromLngLat(0.0,0.0))))) + new CustomProvider(fromFeatures(singletonList(fromGeometry(Point.fromLngLat(0.0, 0.0))))) ) ); mapboxMap.getStyle().addLayer(new SymbolLayer("test-id", "test-id")); @@ -117,6 +126,34 @@ public class GeoJsonConversionTest extends EspressoTest { })); } + @Test + public void testNegativeNumberPropertyConversion() { + validateTestSetup(); + onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> { + LatLng latLng = new LatLng(); + Feature feature = Feature.fromGeometry(Point.fromLngLat(latLng.getLongitude(), latLng.getLatitude())); + + JsonArray foregroundJsonArray = new JsonArray(); + foregroundJsonArray.add(0f); + foregroundJsonArray.add(-3f); + feature.addProperty("property", foregroundJsonArray); + + GeoJsonSource source = new GeoJsonSource("source", feature); + mapboxMap.getStyle().addSource(source); + + SymbolLayer layer = new SymbolLayer("layer", "source") + .withProperties( + PropertyFactory.iconOffset(Expression.get("property")), + PropertyFactory.iconImage("zoo-15") + ); + mapboxMap.getStyle().addLayer(layer); + + Utils.waitForLayer(uiController, mapboxMap, latLng, "layer"); + + assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng)).isEmpty()); + })); + } + class CustomProvider implements GeometryTileProvider { private FeatureCollection featureCollection; @@ -130,4 +167,4 @@ public class GeoJsonConversionTest extends EspressoTest { return featureCollection; } } -} +}
\ No newline at end of file |