summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortobrun <tobrun.van.nuland@gmail.com>2019-07-04 12:55:29 +0200
committertobrun <tobrun.van.nuland@gmail.com>2019-07-05 14:05:16 +0200
commitef917eb16632388e4c07562a08b996af74ef7d7f (patch)
tree060b8255b60c5971e9f71fe9f25cc2d79e2a6ec1
parentdd16eadc382fe853f4b877fbcfd909d103a339f5 (diff)
downloadqtlocation-mapboxgl-upstream/tvn-snapshot-test.tar.gz
[android] - add snapshotter and offline testupstream/tvn-snapshot-test
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/offline/OfflineDownloadTest.kt88
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotterTest.kt26
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/activity/BaseTest.java5
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java9
4 files changed, 128 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/offline/OfflineDownloadTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/offline/OfflineDownloadTest.kt
new file mode 100644
index 0000000000..5c574f9332
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/offline/OfflineDownloadTest.kt
@@ -0,0 +1,88 @@
+package com.mapbox.mapboxsdk.offline
+
+import android.support.test.rule.ActivityTestRule
+import android.support.test.runner.AndroidJUnit4
+import com.mapbox.geojson.Point
+import com.mapbox.mapboxsdk.log.Logger
+import com.mapbox.mapboxsdk.maps.Style
+import com.mapbox.mapboxsdk.testapp.activity.FeatureOverviewActivity
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import java.util.concurrent.CountDownLatch
+import java.util.concurrent.TimeUnit
+import java.util.concurrent.TimeoutException
+
+/**
+ * Integration test that validates downloading an offline region from a point geometry at zoomlevel 17
+ */
+@RunWith(AndroidJUnit4::class)
+class OfflineDownloadTest : OfflineRegion.OfflineRegionObserver {
+
+ @Rule
+ @JvmField
+ var rule = ActivityTestRule(FeatureOverviewActivity::class.java)
+
+ private val countDownLatch = CountDownLatch(1)
+ private lateinit var offlineRegion: OfflineRegion
+
+ @Test(timeout = 30000)
+ fun offlineDownload() {
+ rule.runOnUiThreadActivity {
+ OfflineManager.getInstance(rule.activity).createOfflineRegion(
+ createTestRegionDefinition(),
+ ByteArray(0),
+ object : OfflineManager.CreateOfflineRegionCallback {
+ override fun onCreate(region: OfflineRegion?) {
+ region?.let {
+ offlineRegion = it
+ offlineRegion.setDownloadState(OfflineRegion.STATE_ACTIVE)
+ offlineRegion.setObserver(this@OfflineDownloadTest)
+ }
+ }
+
+ override fun onError(error: String?) {
+ Logger.e(TAG, "Error while creating offline region: $error")
+ }
+ })
+ }
+
+ if (!countDownLatch.await(30, TimeUnit.SECONDS)) {
+ throw TimeoutException()
+ }
+ }
+
+ override fun onStatusChanged(status: OfflineRegionStatus?) {
+ status?.let {
+ if (it.isComplete) {
+ offlineRegion.setDownloadState(OfflineRegion.STATE_INACTIVE)
+ countDownLatch.countDown()
+ }
+ }
+ }
+
+ override fun onError(error: OfflineRegionError?) {
+ Logger.e(TAG, "Error while downloading offline region: $error")
+ }
+
+ override fun mapboxTileCountLimitExceeded(limit: Long) {
+ Logger.e(TAG, "Tile count limited exceeded: $limit")
+ }
+
+ fun createTestRegionDefinition(): OfflineRegionDefinition {
+ return OfflineGeometryRegionDefinition(
+ Style.MAPBOX_STREETS,
+ Point.fromLngLat(50.847857, 4.360137),
+ 17.0,
+ 17.0,
+ 1.0f,
+ false
+ )
+ }
+
+ companion object {
+ const val TAG = "OfflineDownloadTest"
+ }
+}
+
+fun ActivityTestRule<*>.runOnUiThreadActivity(runnable: () -> Unit) = activity.runOnUiThread(runnable) \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotterTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotterTest.kt
new file mode 100644
index 0000000000..e295b5b10b
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotterTest.kt
@@ -0,0 +1,26 @@
+package com.mapbox.mapboxsdk.snapshotter
+
+import android.support.test.rule.ActivityTestRule
+import android.support.test.runner.AndroidJUnit4
+import com.mapbox.mapboxsdk.testapp.activity.snapshot.MapSnapshotterMarkerActivity
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+/**
+ * Integration test that validates if a snapshot is created with MapSnapshotterMarkerActivity
+ */
+@RunWith(AndroidJUnit4::class)
+class MapSnapshotterTest {
+
+ @Rule
+ @JvmField
+ var rule = ActivityTestRule(MapSnapshotterMarkerActivity::class.java)
+
+ @Test(timeout = 10000)
+ fun mapSnapshotter() {
+ while (rule.activity.mapSnapshot == null) {
+ Thread.sleep(250)
+ }
+ }
+} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/activity/BaseTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/activity/BaseTest.java
index 054069f92c..45dac23611 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/activity/BaseTest.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/activity/BaseTest.java
@@ -1,5 +1,6 @@
package com.mapbox.mapboxsdk.testapp.activity;
+import android.content.Context;
import android.support.annotation.CallSuper;
import android.support.annotation.UiThread;
import android.support.test.rule.ActivityTestRule;
@@ -95,4 +96,8 @@ public abstract class BaseTest extends AppCenter {
}
}
+ protected Context getContext() {
+ return rule.getActivity();
+ }
+
} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java
index d7ceda699e..dea10198b6 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java
@@ -6,6 +6,8 @@ import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.PointF;
import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.annotation.VisibleForTesting;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.View;
@@ -64,6 +66,7 @@ public class MapSnapshotterMarkerActivity extends AppCompatActivity implements M
@SuppressLint("ClickableViewAccessibility")
@Override
public void onSnapshotReady(MapSnapshot snapshot) {
+ this.mapSnapshot = snapshot;
Timber.i("Snapshot ready");
ImageView imageView = (ImageView) findViewById(R.id.snapshot_image);
Bitmap image = addMarker(snapshot);
@@ -93,4 +96,10 @@ public class MapSnapshotterMarkerActivity extends AppCompatActivity implements M
return snapshot.getBitmap();
}
+ @VisibleForTesting
+ @Nullable
+ public MapSnapshot getMapSnapshot() {
+ return mapSnapshot;
+ }
+
}