summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp
diff options
context:
space:
mode:
authorŁukasz Paczos <lukas.paczos@gmail.com>2019-02-12 16:00:20 +0100
committerŁukasz Paczos <lukasz.paczos@mapbox.com>2019-02-12 16:38:55 +0100
commitca7d9422b6703a4da54ab2fd9da489496b5c4037 (patch)
tree0027bb2c904c165a46c02294b5cafa0d130a8353 /platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp
parentfbbc83aa0e369cd8adfeec1a4dc1591d5dba2a08 (diff)
downloadqtlocation-mapboxgl-ca7d9422b6703a4da54ab2fd9da489496b5c4037.tar.gz
[android] use #onDidBecomeIdle event instead of layer querying during instrumentation tests
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp')
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/geometry/GeoJsonConversionTest.java4
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/ExpressionTest.java38
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/MapboxIdlingResource.java7
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/TestingAsyncUtils.kt18
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/Utils.java23
5 files changed, 45 insertions, 45 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 05e1ce8a99..c34e76a6e5 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
@@ -14,7 +14,7 @@ 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 com.mapbox.mapboxsdk.testapp.utils.TestingAsyncUtils;
import org.junit.Test;
@@ -148,7 +148,7 @@ public class GeoJsonConversionTest extends EspressoTest {
);
mapboxMap.getStyle().addLayer(layer);
- Utils.waitForLayer(uiController, mapboxMap, latLng, "layer");
+ TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng)).isEmpty());
}));
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/ExpressionTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/ExpressionTest.java
index cf6e9357f3..d08eaf3732 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/ExpressionTest.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/ExpressionTest.java
@@ -17,6 +17,7 @@ import com.mapbox.mapboxsdk.style.types.Formatted;
import com.mapbox.mapboxsdk.style.types.FormattedSection;
import com.mapbox.mapboxsdk.testapp.R;
import com.mapbox.mapboxsdk.testapp.activity.EspressoTest;
+import com.mapbox.mapboxsdk.testapp.utils.TestingAsyncUtils;
import com.mapbox.mapboxsdk.testapp.utils.ResourceUtils;
import com.mapbox.mapboxsdk.utils.ColorUtils;
@@ -53,7 +54,6 @@ import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillColor;
import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillOutlineColor;
import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textField;
import static com.mapbox.mapboxsdk.testapp.action.MapboxMapAction.invoke;
-import static com.mapbox.mapboxsdk.testapp.utils.Utils.waitForLayer;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
@@ -290,10 +290,10 @@ public class ExpressionTest extends EspressoTest {
formatEntry("test")
);
layer.setProperties(textField(expression));
- waitForLayer(uiController, mapboxMap, latLng, "layer");
+ TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
+
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer")
.isEmpty());
-
assertNull(layer.getTextField().getExpression());
assertEquals(new Formatted(new FormattedSection("test")), layer.getTextField().getValue());
});
@@ -313,10 +313,10 @@ public class ExpressionTest extends EspressoTest {
formatEntry("test", formatFontScale(1.75))
);
layer.setProperties(textField(expression));
- waitForLayer(uiController, mapboxMap, latLng, "layer");
+ TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
+
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer")
.isEmpty());
-
assertNull(layer.getTextField().getExpression());
assertEquals(new Formatted(new FormattedSection("test", 1.75)), layer.getTextField().getValue());
});
@@ -339,11 +339,11 @@ public class ExpressionTest extends EspressoTest {
)
);
layer.setProperties(textField(expression));
- waitForLayer(uiController, mapboxMap, latLng, "layer");
+ TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
+
assertFalse(
mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer").isEmpty()
);
-
assertNull(layer.getTextField().getExpression());
assertEquals(new Formatted(
new FormattedSection("test",
@@ -370,11 +370,11 @@ public class ExpressionTest extends EspressoTest {
)
);
layer.setProperties(textField(expression));
- waitForLayer(uiController, mapboxMap, latLng, "layer");
+ TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
+
assertFalse(
mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer").isEmpty()
);
-
assertNull(layer.getTextField().getExpression());
assertEquals(new Formatted(
new FormattedSection("test",
@@ -403,11 +403,11 @@ public class ExpressionTest extends EspressoTest {
formatEntry("\ntest2", formatFontScale(2))
);
layer.setProperties(textField(expression));
- waitForLayer(uiController, mapboxMap, latLng, "layer");
+ TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
+
assertFalse(
mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer").isEmpty()
);
-
assertNull(layer.getTextField().getExpression());
assertEquals(new Formatted(
new FormattedSection("test", 1.5,
@@ -437,10 +437,10 @@ public class ExpressionTest extends EspressoTest {
)
);
layer.setProperties(textField(expression));
- waitForLayer(uiController, mapboxMap, latLng, "layer");
+ TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
+
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer")
.isEmpty());
-
assertEquals(expression, layer.getTextField().getExpression());
assertNull(layer.getTextField().getValue());
});
@@ -467,10 +467,10 @@ public class ExpressionTest extends EspressoTest {
formatEntry("\ntest2", formatFontScale(2))
);
layer.setProperties(textField(expression));
- waitForLayer(uiController, mapboxMap, latLng, "layer");
+ TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
+
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer")
.isEmpty());
-
assertEquals(expression, layer.getTextField().getExpression());
assertNull(layer.getTextField().getValue());
});
@@ -487,10 +487,10 @@ public class ExpressionTest extends EspressoTest {
mapboxMap.getStyle().addLayer(layer);
layer.setProperties(textField("test"));
- waitForLayer(uiController, mapboxMap, latLng, "layer");
+ TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
+
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer")
.isEmpty());
-
assertNull(layer.getTextField().getExpression());
assertEquals(new Formatted(
new FormattedSection("test")), layer.getTextField().getValue());
@@ -512,10 +512,10 @@ public class ExpressionTest extends EspressoTest {
new FormattedSection("\ntest", 0.5, new String[] {"Arial Unicode MS Regular", "DIN Offc Pro Regular"})
);
layer.setProperties(textField(formatted));
- waitForLayer(uiController, mapboxMap, latLng, "layer");
+ TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
+
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer")
.isEmpty());
-
assertNull(layer.getTextField().getExpression());
assertEquals(formatted, layer.getTextField().getValue());
});
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/MapboxIdlingResource.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/MapboxIdlingResource.java
index 2a4cfee01a..a05221d618 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/MapboxIdlingResource.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/MapboxIdlingResource.java
@@ -9,12 +9,13 @@ import com.mapbox.mapboxsdk.testapp.R;
public abstract class MapboxIdlingResource implements IdlingResource {
+ private MapView mapView;
private MapboxMap mapboxMap;
IdlingResource.ResourceCallback resourceCallback;
@UiThread
void inflateMap(Activity activity) {
- MapView mapView = activity.findViewById(R.id.mapView);
+ mapView = activity.findViewById(R.id.mapView);
if (mapView != null) {
mapView.getMapAsync(this::initMap);
}
@@ -38,4 +39,8 @@ public abstract class MapboxIdlingResource implements IdlingResource {
public MapboxMap getMapboxMap() {
return mapboxMap;
}
+
+ public MapView getMapView() {
+ return mapView;
+ }
} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/TestingAsyncUtils.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/TestingAsyncUtils.kt
new file mode 100644
index 0000000000..7c23d8d63c
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/TestingAsyncUtils.kt
@@ -0,0 +1,18 @@
+package com.mapbox.mapboxsdk.testapp.utils
+
+import android.support.test.espresso.UiController
+import com.mapbox.mapboxsdk.maps.MapView
+
+object TestingAsyncUtils {
+ private const val DEFAULT_TIMEOUT = 15_000L
+
+ fun waitForLayer(uiController: UiController, mapView: MapView) {
+ val start = System.nanoTime() / 1E6
+ var isIdle = false
+ mapView.addOnDidBecomeIdleListener { isIdle = true }
+
+ while (!isIdle && System.nanoTime() / 1E6 - start < DEFAULT_TIMEOUT) {
+ uiController.loopMainThreadForAtLeast(100)
+ }
+ }
+} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/Utils.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/Utils.java
deleted file mode 100644
index c1aedc5823..0000000000
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/Utils.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.mapbox.mapboxsdk.testapp.utils;
-
-import android.support.test.espresso.UiController;
-
-import com.mapbox.mapboxsdk.geometry.LatLng;
-import com.mapbox.mapboxsdk.maps.MapboxMap;
-
-import static org.junit.Assert.assertFalse;
-
-public class Utils {
-
- private static final long WAIT_TIMEOUT = 5000;
- private static final long WAIT_DELAY = 150;
-
- public static void waitForLayer(UiController uiController, MapboxMap mapboxMap, LatLng latLng, String... layerIds) {
- int i = 0;
- while (mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), layerIds).isEmpty()) {
- i++;
- assertFalse("Waiting for layer timed out", i * WAIT_DELAY > WAIT_TIMEOUT);
- uiController.loopMainThreadForAtLeast(WAIT_DELAY);
- }
- }
-} \ No newline at end of file