diff options
author | tobrun <tobrun.van.nuland@gmail.com> | 2019-09-16 15:17:38 +0200 |
---|---|---|
committer | tobrun <tobrun.van.nuland@gmail.com> | 2019-09-16 15:17:38 +0200 |
commit | 27823ecebcc33ae351af622f94de18bdabd66d8e (patch) | |
tree | d9d5f42b6c1a905bfbdc6ce7d1e86611f77944f3 | |
parent | 2eed5486ffd4986331b8cd78d6181eb6478fb552 (diff) | |
download | qtlocation-mapboxgl-27823ecebcc33ae351af622f94de18bdabd66d8e.tar.gz |
[android] add reproducible invalid reference test
-rw-r--r-- | platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/style/StyleDetachTest.kt | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/style/StyleDetachTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/style/StyleDetachTest.kt new file mode 100644 index 0000000000..cbfca53163 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/style/StyleDetachTest.kt @@ -0,0 +1,71 @@ +package com.mapbox.mapboxsdk.style + +import android.os.Handler +import android.os.Looper +import android.support.test.rule.ActivityTestRule +import android.support.test.runner.AndroidJUnit4 +import com.mapbox.mapboxsdk.log.Logger +import com.mapbox.mapboxsdk.maps.MapboxMap +import com.mapbox.mapboxsdk.maps.Style +import com.mapbox.mapboxsdk.style.sources.GeoJsonSource +import com.mapbox.mapboxsdk.testapp.activity.espresso.EspressoTestActivity +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import java.util.* +import java.util.concurrent.CountDownLatch +import java.util.concurrent.TimeUnit +import java.util.concurrent.TimeoutException +import kotlin.concurrent.schedule + +/** + * Test to validate weak reference setup + */ +@RunWith(AndroidJUnit4::class) +class StyleDetachTest { + + @Rule + @JvmField + var rule = ActivityTestRule(EspressoTestActivity::class.java) + + private val countDownLatch = CountDownLatch(1) + private val handler = Handler(Looper.getMainLooper()) + + @Test + fun styleDetachTest() { + rule.activity.apply { + runOnUiThread { + mapView.getMapAsync { + setupStyle(it) + } + } + } + + if (!countDownLatch.await(15, TimeUnit.SECONDS)) { + throw TimeoutException() + } + } + + fun setupStyle(map: MapboxMap) { + val source = GeoJsonSource("id") + Timer().schedule(200, 500) { + Logger.e(TAG, "Update geojson") + handler.post { source.setGeoJson("") } + } + + map.setStyle(Style.Builder().fromUri(Style.MAPBOX_STREETS).withSource(source)) { + handler.postDelayed({ + Logger.e(TAG, "Set new style") + map.setStyle(Style.SATELLITE) + Handler().postDelayed({ + Logger.e(TAG, "End test") + countDownLatch.countDown() + }, 2000) + }, 1000) + } + } + + companion object { + const val TAG = "StyleDetachTest" + } +}
\ No newline at end of file |