[android] - remove base idlingResource setup

This commit is contained in:
tobrun
2019-03-07 15:21:23 +01:00
committed by Tobrun
parent 7939ff213a
commit ce1a46d645
22 changed files with 489 additions and 729 deletions

View File

@@ -82,7 +82,7 @@ class LocationComponentTest : EspressoTest() {
val locationEngine = component.locationEngine
assertThat(locationEngine, notNullValue())
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
}
}
@@ -118,7 +118,7 @@ class LocationComponentTest : EspressoTest() {
assertThat(locationEngine, notNullValue())
assertThat(componentOptions, notNullValue())
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(componentOptions?.accuracyAlpha(), `is`(.5f))
assertThat(componentOptions?.accuracyColor(), `is`(Color.BLUE))
}
@@ -157,7 +157,7 @@ class LocationComponentTest : EspressoTest() {
assertThat(locationEngine, nullValue())
assertThat(componentOptions, notNullValue())
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(componentOptions?.accuracyAlpha(), `is`(.5f))
assertThat(componentOptions?.accuracyColor(), `is`(Color.BLUE))
}
@@ -205,7 +205,7 @@ class LocationComponentTest : EspressoTest() {
// Force the first location update
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
// Check if the puck is visible
assertThat(mapboxMap.queryRenderedFeatures(location, FOREGROUND_LAYER).isEmpty(), `is`(false))
@@ -240,7 +240,7 @@ class LocationComponentTest : EspressoTest() {
component.isLocationComponentEnabled = true
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
uiController.loopMainThreadForAtLeast(300) // waiting for stale state
mapboxMap.querySourceFeatures(LOCATION_SOURCE).also { feature ->
@@ -287,7 +287,7 @@ class LocationComponentTest : EspressoTest() {
}
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
val feature = mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0]
assertThat(mapboxMap.queryRenderedFeatures(location, FOREGROUND_LAYER).isEmpty(), `is`(false))
@@ -329,7 +329,7 @@ class LocationComponentTest : EspressoTest() {
mapboxMap.addImageFromDrawable("custom-foreground-bitmap", it)
mapboxMap.addImageFromDrawable("custom-gps-bitmap", it)
}
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
val foregroundId = mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].getStringProperty(PROPERTY_FOREGROUND_ICON)
assertThat(foregroundId, `is`(equalTo("custom-gps-bitmap")))
@@ -360,13 +360,13 @@ class LocationComponentTest : EspressoTest() {
component.renderMode = RenderMode.GPS
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
val foregroundId = mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].getStringProperty(PROPERTY_FOREGROUND_ICON)
assertThat(foregroundId, `is`(equalTo("custom-gps-bitmap")))
component.applyStyle(LocationComponentOptions.builder(context).build())
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertEquals(FOREGROUND_ICON, mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].getStringProperty(PROPERTY_FOREGROUND_ICON))
}
@@ -395,13 +395,13 @@ class LocationComponentTest : EspressoTest() {
component.renderMode = RenderMode.GPS
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
val foregroundId = mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].getStringProperty(PROPERTY_FOREGROUND_ICON)
assertThat(foregroundId, `is`(equalTo("custom-gps-bitmap")))
component.renderMode = RenderMode.NORMAL
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertEquals(FOREGROUND_ICON, mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].getStringProperty(PROPERTY_FOREGROUND_ICON))
}
@@ -430,14 +430,14 @@ class LocationComponentTest : EspressoTest() {
component.isLocationComponentEnabled = true
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
uiController.loopMainThreadForAtLeast(250) // engaging stale state
assertThat(mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].getBooleanProperty(PROPERTY_LOCATION_STALE), `is`(true))
component.onStop()
component.onStart()
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].getBooleanProperty(PROPERTY_LOCATION_STALE), `is`(true))
assertThat(mapboxMap.isLayerVisible(ACCURACY_LAYER), `is`(false))
@@ -461,13 +461,13 @@ class LocationComponentTest : EspressoTest() {
component.isLocationComponentEnabled = true
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].getBooleanProperty(PROPERTY_LOCATION_STALE), `is`(false))
component.onStop()
component.onStart()
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].getBooleanProperty(PROPERTY_LOCATION_STALE), `is`(false))
assertThat(mapboxMap.isLayerVisible(ACCURACY_LAYER), `is`(true))
@@ -499,7 +499,7 @@ class LocationComponentTest : EspressoTest() {
component.isLocationComponentEnabled = true
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
mapboxMap.querySourceFeatures(LOCATION_SOURCE).also { feature ->
feature.forEach {
@@ -526,7 +526,7 @@ class LocationComponentTest : EspressoTest() {
component.isLocationComponentEnabled = true
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
val point: Point = mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].geometry() as Point
assertThat(component.locationEngine, nullValue())
@@ -550,14 +550,14 @@ class LocationComponentTest : EspressoTest() {
.build())
component.isLocationComponentEnabled = true
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
val point: Point = mapboxMap.queryRenderedFeatures(location, FOREGROUND_LAYER)[0].geometry() as Point
assertEquals(point.latitude(), location.latitude, 0.1)
assertEquals(point.longitude(), location.longitude, 0.1)
component.isLocationComponentEnabled = false
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(mapboxMap.queryRenderedFeatures(location, FOREGROUND_LAYER).isEmpty(), `is`(true))
}
}
@@ -580,7 +580,7 @@ class LocationComponentTest : EspressoTest() {
component.isLocationComponentEnabled = false
mapboxMap.setStyle(Style.Builder().fromUrl(Style.LIGHT))
component.isLocationComponentEnabled = true
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(mapboxMap.isLayerVisible(FOREGROUND_LAYER), `is`(true))
}
@@ -675,7 +675,7 @@ class LocationComponentTest : EspressoTest() {
component.onStart()
mapboxMap.setStyle(Style.Builder().fromUrl(Style.DARK))
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
}
}
executeComponentTest(componentAction)
@@ -695,7 +695,7 @@ class LocationComponentTest : EspressoTest() {
mapboxMap.setStyle(Style.Builder().fromUrl(Style.DARK))
component.onStop()
component.onStart()
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
}
}
executeComponentTest(componentAction)
@@ -714,7 +714,7 @@ class LocationComponentTest : EspressoTest() {
component.isLocationComponentEnabled = true
component.onStop()
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(mapboxMap.querySourceFeatures(LOCATION_SOURCE).isEmpty(), `is`(true))
}
@@ -736,7 +736,7 @@ class LocationComponentTest : EspressoTest() {
component.onStop()
component.forceLocationUpdate(location)
component.onStart()
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
val point: Point = mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].geometry() as Point
assertEquals(point.latitude(), location.latitude, 0.1)
@@ -760,9 +760,9 @@ class LocationComponentTest : EspressoTest() {
component.forceLocationUpdate(location)
mapboxMap.setStyle(Style.Builder().fromUrl(Style.LIGHT))
component.onStop()
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
component.onStart()
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
val point: Point = mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].geometry() as Point
assertEquals(point.latitude(), location.latitude, 0.1)
@@ -797,7 +797,7 @@ class LocationComponentTest : EspressoTest() {
component.applyStyle(options)
}
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
}
}
executeComponentTest(componentAction)
@@ -823,7 +823,7 @@ class LocationComponentTest : EspressoTest() {
component.forceLocationUpdate(location)
}
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
}
}
executeComponentTest(componentAction)
@@ -839,7 +839,7 @@ class LocationComponentTest : EspressoTest() {
override fun onLocationComponentAction(component: LocationComponent, mapboxMap: MapboxMap,
style: Style, uiController: UiController, context: Context) {
styleChangeIdlingResource.waitForStyle(mapboxMap, MAPBOX_HEAVY_STYLE)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
locationComponentActivationOptions = LocationComponentActivationOptions
.builder(context, mapboxMap.style!!)
@@ -878,13 +878,13 @@ class LocationComponentTest : EspressoTest() {
component.renderMode = RenderMode.GPS
location.bearing = 77f
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
uiController.loopMainThreadForAtLeast(MAX_ANIMATION_DURATION_MS)
assertEquals(77f, mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].getNumberProperty(PROPERTY_GPS_BEARING).toFloat(), 0.1f)
location.bearing = 92f
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
uiController.loopMainThreadForAtLeast(MAX_ANIMATION_DURATION_MS) // Waiting for the animation to finish
assertEquals(92.0f, mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].getNumberProperty(PROPERTY_GPS_BEARING).toFloat(), 0.1f)
}
@@ -906,7 +906,7 @@ class LocationComponentTest : EspressoTest() {
component.cameraMode = CameraMode.TRACKING_GPS
location.bearing = 77f
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
uiController.loopMainThreadForAtLeast(MAX_ANIMATION_DURATION_MS)
assertEquals(77.0, mapboxMap.cameraPosition.bearing, 0.1)
@@ -917,7 +917,7 @@ class LocationComponentTest : EspressoTest() {
location.latitude = 30.0
location.longitude = 35.0
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
uiController.loopMainThreadForAtLeast(MAX_ANIMATION_DURATION_MS) // Waiting for the animation to finish
assertEquals(92.0, mapboxMap.cameraPosition.bearing, 0.1)
@@ -945,7 +945,7 @@ class LocationComponentTest : EspressoTest() {
location.bearing = 77f
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
uiController.loopMainThreadForAtLeast(MAX_ANIMATION_DURATION_MS)
assertEquals(77.0, mapboxMap.cameraPosition.bearing, 0.1)
@@ -956,7 +956,7 @@ class LocationComponentTest : EspressoTest() {
location.latitude = 30.0
location.longitude = 35.0
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
uiController.loopMainThreadForAtLeast(MAX_ANIMATION_DURATION_MS)
assertEquals(92.0, mapboxMap.cameraPosition.bearing, 0.1)
@@ -985,7 +985,7 @@ class LocationComponentTest : EspressoTest() {
location.bearing = 77f
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
uiController.loopMainThreadForAtLeast(MAX_ANIMATION_DURATION_MS)
assertEquals(bearing, mapboxMap.cameraPosition.bearing, 0.1)
@@ -996,7 +996,7 @@ class LocationComponentTest : EspressoTest() {
location.latitude = 30.0
location.longitude = 35.0
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
uiController.loopMainThreadForAtLeast(MAX_ANIMATION_DURATION_MS)
assertEquals(bearing, mapboxMap.cameraPosition.bearing, 0.1)
@@ -1021,7 +1021,7 @@ class LocationComponentTest : EspressoTest() {
component.cameraMode = CameraMode.TRACKING
component.cameraMode = CameraMode.NONE
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(mapboxMap.uiSettings.focalPoint, nullValue())
}
@@ -1044,7 +1044,7 @@ class LocationComponentTest : EspressoTest() {
val zoom = mapboxMap.cameraPosition.zoom
component.zoomWhileTracking(10.0)
uiController.loopMainThreadForAtLeast(DEFAULT_TRACKING_ZOOM_ANIM_DURATION)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertEquals(zoom, mapboxMap.cameraPosition.zoom, 0.1)
}
@@ -1066,7 +1066,7 @@ class LocationComponentTest : EspressoTest() {
component.cameraMode = CameraMode.TRACKING
component.zoomWhileTracking(10.0)
uiController.loopMainThreadForAtLeast(DEFAULT_TRACKING_ZOOM_ANIM_DURATION)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertEquals(10.0, mapboxMap.cameraPosition.zoom, 0.1)
}
@@ -1091,7 +1091,7 @@ class LocationComponentTest : EspressoTest() {
uiController.loopMainThreadForAtLeast(DEFAULT_TRACKING_ZOOM_ANIM_DURATION / 2)
component.cameraMode = CameraMode.NONE
uiController.loopMainThreadForAtLeast(DEFAULT_TRACKING_ZOOM_ANIM_DURATION / 2)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertEquals(15.0 / 2.0, mapboxMap.cameraPosition.zoom, 3.0)
}
@@ -1117,7 +1117,7 @@ class LocationComponentTest : EspressoTest() {
component.onStop()
component.zoomWhileTracking(10.0)
uiController.loopMainThreadForAtLeast(DEFAULT_TRACKING_ZOOM_ANIM_DURATION)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertEquals(zoom, mapboxMap.cameraPosition.zoom, 0.1)
}
@@ -1142,7 +1142,7 @@ class LocationComponentTest : EspressoTest() {
uiController.loopMainThreadForAtLeast(DEFAULT_TRACKING_ZOOM_ANIM_DURATION / 2)
component.cancelZoomWhileTrackingAnimation()
uiController.loopMainThreadForAtLeast(DEFAULT_TRACKING_ZOOM_ANIM_DURATION / 2)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertEquals(15.0 / 2.0, mapboxMap.cameraPosition.zoom, 3.0)
}
@@ -1165,7 +1165,7 @@ class LocationComponentTest : EspressoTest() {
val tilt = mapboxMap.cameraPosition.tilt
component.tiltWhileTracking(30.0)
uiController.loopMainThreadForAtLeast(DEFAULT_TRACKING_TILT_ANIM_DURATION)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertEquals(tilt, mapboxMap.cameraPosition.tilt, 0.1)
}
@@ -1187,7 +1187,7 @@ class LocationComponentTest : EspressoTest() {
component.cameraMode = CameraMode.TRACKING
component.tiltWhileTracking(30.0)
uiController.loopMainThreadForAtLeast(DEFAULT_TRACKING_TILT_ANIM_DURATION)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertEquals(30.0, mapboxMap.cameraPosition.tilt, 0.1)
}
@@ -1212,7 +1212,7 @@ class LocationComponentTest : EspressoTest() {
uiController.loopMainThreadForAtLeast(DEFAULT_TRACKING_TILT_ANIM_DURATION / 2)
component.cameraMode = CameraMode.NONE
uiController.loopMainThreadForAtLeast(DEFAULT_TRACKING_TILT_ANIM_DURATION / 2)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertEquals(30.0 / 2.0, mapboxMap.cameraPosition.tilt, 3.0)
}
@@ -1237,7 +1237,7 @@ class LocationComponentTest : EspressoTest() {
component.onStop()
component.tiltWhileTracking(30.0)
uiController.loopMainThreadForAtLeast(DEFAULT_TRACKING_TILT_ANIM_DURATION)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertEquals(tilt, mapboxMap.cameraPosition.tilt, 0.1)
}
@@ -1286,7 +1286,7 @@ class LocationComponentTest : EspressoTest() {
mapboxMap.moveCamera(CameraUpdateFactory.newLatLng(LatLng(51.0, 17.0)))
mapboxMap.moveCamera(CameraUpdateFactory.bearingTo(90.0))
component.isLocationComponentEnabled = true
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
uiController.loopMainThreadForAtLeast(MAX_ANIMATION_DURATION_MS)
assertEquals(location.bearing.toDouble(), mapboxMap.cameraPosition.bearing, 0.1)

View File

@@ -75,7 +75,7 @@ class LocationLayerControllerTest : EspressoTest() {
.build())
component.isLocationComponentEnabled = true
component.renderMode = RenderMode.NORMAL
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(style.getSource(LOCATION_SOURCE), notNullValue())
}
@@ -99,7 +99,7 @@ class LocationLayerControllerTest : EspressoTest() {
component.isLocationComponentEnabled = true
component.renderMode = RenderMode.NORMAL
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(mapboxMap.isLayerVisible(FOREGROUND_LAYER), `is`(true))
assertThat(mapboxMap.isLayerVisible(BACKGROUND_LAYER), `is`(true))
@@ -123,7 +123,7 @@ class LocationLayerControllerTest : EspressoTest() {
component.isLocationComponentEnabled = true
component.renderMode = RenderMode.COMPASS
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(mapboxMap.isLayerVisible(FOREGROUND_LAYER), `is`(true))
assertThat(mapboxMap.isLayerVisible(BACKGROUND_LAYER), `is`(true))
@@ -147,7 +147,7 @@ class LocationLayerControllerTest : EspressoTest() {
component.isLocationComponentEnabled = true
component.renderMode = RenderMode.GPS
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(mapboxMap.isLayerVisible(FOREGROUND_LAYER), `is`(true))
assertThat(mapboxMap.isLayerVisible(BACKGROUND_LAYER), `is`(true))
@@ -171,7 +171,7 @@ class LocationLayerControllerTest : EspressoTest() {
component.isLocationComponentEnabled = true
component.forceLocationUpdate(location)
component.isLocationComponentEnabled = false
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
component.renderMode = RenderMode.GPS
assertThat(mapboxMap.isLayerVisible(FOREGROUND_LAYER), `is`(false))
@@ -197,7 +197,7 @@ class LocationLayerControllerTest : EspressoTest() {
component.renderMode = RenderMode.NORMAL
component.forceLocationUpdate(location)
component.isLocationComponentEnabled = false
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
// Check that all layers visibilities are set to none
assertThat(mapboxMap.isLayerVisible(FOREGROUND_LAYER), `is`(false))
@@ -223,7 +223,7 @@ class LocationLayerControllerTest : EspressoTest() {
component.renderMode = RenderMode.NORMAL
component.forceLocationUpdate(location)
styleChangeIdlingResource.waitForStyle(mapboxMap, Style.LIGHT)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(component.renderMode, `is`(equalTo(RenderMode.NORMAL)))
@@ -254,13 +254,13 @@ class LocationLayerControllerTest : EspressoTest() {
component.isLocationComponentEnabled = true
component.applyStyle(LocationComponentOptions.builder(context).staleStateTimeout(100).build())
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
uiController.loopMainThreadForAtLeast(150)
assertThat(mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].getBooleanProperty(PROPERTY_LOCATION_STALE), `is`(true))
mapboxMap.setStyle(Style.Builder().fromUrl(Style.LIGHT))
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(mapboxMap.querySourceFeatures(LOCATION_SOURCE)[0].getBooleanProperty(PROPERTY_LOCATION_STALE), `is`(true))
}
@@ -279,9 +279,9 @@ class LocationLayerControllerTest : EspressoTest() {
.build())
component.isLocationComponentEnabled = true
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
component.isLocationComponentEnabled = false
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(mapboxMap.queryRenderedFeatures(location, FOREGROUND_LAYER).isEmpty(), `is`(true))
val options =
@@ -291,7 +291,7 @@ class LocationLayerControllerTest : EspressoTest() {
.build()
component.applyStyle(options)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(mapboxMap.queryRenderedFeatures(location, FOREGROUND_LAYER).isEmpty(), `is`(true))
}
}
@@ -338,7 +338,7 @@ class LocationLayerControllerTest : EspressoTest() {
show = !show
}
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
}
}
executeComponentTest(componentAction)
@@ -359,7 +359,7 @@ class LocationLayerControllerTest : EspressoTest() {
component.isLocationComponentEnabled = true
mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng(location), 16.0))
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
uiController.loopMainThreadForAtLeast(ACCURACY_RADIUS_ANIMATION_DURATION)
assertEquals(Utils.calculateZoomLevelRadius(mapboxMap, location) /*meters projected to radius on zoom 16*/,
@@ -386,7 +386,7 @@ class LocationLayerControllerTest : EspressoTest() {
val zoom = 16.0
mapboxMap.easeCamera(CameraUpdateFactory.newLatLngZoom(target, zoom), 300)
uiController.loopMainThreadForAtLeast(300)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(Math.abs(zoom - mapboxMap.cameraPosition.zoom) < 0.1
@@ -418,7 +418,7 @@ class LocationLayerControllerTest : EspressoTest() {
val target = LatLng(location)
val zoom = 16.0
mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(target, zoom))
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
assertThat(Math.abs(zoom - mapboxMap.cameraPosition.zoom) < 0.1
&& Math.abs(target.latitude - mapboxMap.cameraPosition.target.latitude) < 0.1
@@ -445,7 +445,7 @@ class LocationLayerControllerTest : EspressoTest() {
.build())
component.isLocationComponentEnabled = true
component.forceLocationUpdate(location)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
component.applyStyle(LocationComponentOptions.builder(context).layerBelow("road-label").build())

View File

@@ -1,36 +1,36 @@
package com.mapbox.mapboxsdk.maps;
import com.mapbox.mapboxsdk.testapp.action.OrientationAction;
import com.mapbox.mapboxsdk.testapp.action.WaitAction;
import com.mapbox.mapboxsdk.testapp.activity.BaseTest;
import com.mapbox.mapboxsdk.testapp.activity.camera.CameraAnimationTypeActivity;
import org.junit.Test;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.matcher.ViewMatchers.isRoot;
import static com.mapbox.mapboxsdk.testapp.action.OrientationChangeAction.orientationLandscape;
import static com.mapbox.mapboxsdk.testapp.action.OrientationChangeAction.orientationLandscapeReverse;
import static com.mapbox.mapboxsdk.testapp.action.OrientationChangeAction.orientationPortrait;
import static com.mapbox.mapboxsdk.testapp.action.OrientationChangeAction.orientationPortraitReverse;
import static com.mapbox.mapboxsdk.testapp.action.OrientationAction.orientationLandscape;
import static com.mapbox.mapboxsdk.testapp.action.OrientationAction.orientationLandscapeReverse;
import static com.mapbox.mapboxsdk.testapp.action.OrientationAction.orientationPortrait;
import static com.mapbox.mapboxsdk.testapp.action.OrientationAction.orientationPortraitReverse;
public class OrientationTest extends BaseTest {
@Test
public void testChangeDeviceOrientation() {
onView(isRoot()).perform(orientationLandscape());
waitAction(2200);
onView(isRoot()).perform(orientationPortrait());
waitAction(2500);
onView(isRoot()).perform(orientationLandscapeReverse());
waitAction(500);
onView(isRoot()).perform(orientationPortraitReverse());
waitAction(1250);
onView(isRoot()).perform(orientationLandscape());
waitAction(750);
onView(isRoot()).perform(orientationPortrait());
waitAction(950);
onView(isRoot()).perform(orientationLandscapeReverse());
onView(isRoot()).perform(orientationPortraitReverse());
onView(isRoot()).perform(orientationLandscape());
onView(isRoot()).perform(orientationPortrait());
OrientationAction.invoke(orientationLandscape());
WaitAction.invoke(2200);
OrientationAction.invoke(orientationPortrait());
WaitAction.invoke(2500);
OrientationAction.invoke(orientationLandscapeReverse());
WaitAction.invoke(500);
OrientationAction.invoke(orientationPortraitReverse());
WaitAction.invoke(1250);
OrientationAction.invoke(orientationLandscape());
WaitAction.invoke(750);
OrientationAction.invoke(orientationPortrait());
WaitAction.invoke(950);
OrientationAction.invoke(orientationLandscapeReverse());
OrientationAction.invoke(orientationPortraitReverse());
OrientationAction.invoke(orientationLandscape());
OrientationAction.invoke(orientationPortrait());
}
@Override

View File

@@ -1,27 +1,17 @@
package com.mapbox.mapboxsdk.testapp.maps
package com.mapbox.mapboxsdk.maps
import android.graphics.PointF
import android.support.test.espresso.UiController
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory
import com.mapbox.mapboxsdk.geometry.LatLng
import com.mapbox.mapboxsdk.maps.MapView
import com.mapbox.mapboxsdk.maps.MapboxMap
import com.mapbox.mapboxsdk.testapp.action.MapboxMapAction.invoke
import com.mapbox.mapboxsdk.testapp.activity.EspressoTest
import com.mapbox.mapboxsdk.testapp.activity.espresso.EspressoTestActivity
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Test
class VisibleRegionTest : EspressoTest() {
private lateinit var mapView: MapView
override fun beforeTest() {
super.beforeTest()
mapView = (rule.activity as EspressoTestActivity).mapView
}
@Test
fun visibleRegionTest() {
validateTestSetup()

View File

@@ -1,6 +1,5 @@
package com.mapbox.mapboxsdk.testapp.action;
import android.app.Activity;
import android.content.Context;
import android.content.ContextWrapper;
@@ -11,30 +10,31 @@ import android.view.View;
import android.view.ViewGroup;
import org.hamcrest.Matcher;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.matcher.ViewMatchers.isRoot;
public class OrientationChangeAction implements ViewAction {
public class OrientationAction implements ViewAction {
private final int orientation;
private OrientationChangeAction(int orientation) {
private OrientationAction(int orientation) {
this.orientation = orientation;
}
public static ViewAction orientationLandscape() {
return new OrientationChangeAction(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
return new OrientationAction(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
public static ViewAction orientationPortrait() {
return new OrientationChangeAction(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
return new OrientationAction(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
public static ViewAction orientationLandscapeReverse() {
return new OrientationChangeAction(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
return new OrientationAction(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
}
public static ViewAction orientationPortraitReverse() {
return new OrientationChangeAction(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
return new OrientationAction(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
}
@Override
@@ -61,6 +61,10 @@ public class OrientationChangeAction implements ViewAction {
activity.setRequestedOrientation(orientation);
}
public static void invoke(ViewAction action) {
onView(isRoot()).perform(action);
}
private Activity getActivity(Context context) {
while (context instanceof ContextWrapper) {
if (context instanceof Activity) {

View File

@@ -3,10 +3,11 @@ package com.mapbox.mapboxsdk.testapp.action;
import android.support.test.espresso.UiController;
import android.support.test.espresso.ViewAction;
import android.view.View;
import org.hamcrest.Matcher;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
import static android.support.test.espresso.matcher.ViewMatchers.isRoot;
public final class WaitAction implements ViewAction {
@@ -30,5 +31,9 @@ public final class WaitAction implements ViewAction {
public void perform(UiController uiController, View view) {
uiController.loopMainThreadForAtLeast(loopTime);
}
public static void invoke(long loopTime) {
onView(isRoot()).perform(new WaitAction(loopTime));
}
}

View File

@@ -1,116 +1,96 @@
package com.mapbox.mapboxsdk.testapp.activity;
import android.app.Activity;
import android.support.test.espresso.Espresso;
import android.support.test.espresso.IdlingRegistry;
import android.support.test.espresso.IdlingResource;
import android.support.test.espresso.IdlingResourceTimeoutException;
import android.support.test.espresso.ViewInteraction;
import android.support.annotation.CallSuper;
import android.support.annotation.UiThread;
import android.support.test.rule.ActivityTestRule;
import com.mapbox.mapboxsdk.Mapbox;
import com.mapbox.mapboxsdk.maps.MapView;
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.testapp.R;
import com.mapbox.mapboxsdk.testapp.action.MapboxMapAction;
import com.mapbox.mapboxsdk.testapp.action.WaitAction;
import com.mapbox.mapboxsdk.testapp.utils.FinishLoadingStyleIdlingResource;
import com.mapbox.mapboxsdk.testapp.utils.MapboxIdlingResource;
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.rules.TestName;
import timber.log.Timber;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import static junit.framework.TestCase.assertNotNull;
import static junit.framework.TestCase.assertTrue;
/**
* Base class for all Activity test hooking into an existing Activity that will load style.
*/
public abstract class BaseTest {
@Rule
public ActivityTestRule<Activity> rule = new ActivityTestRule<>(getActivityClass());
private static final int WAIT_TIMEOUT = 30; //seconds
@Rule
public TestName testNameRule = new TestName();
public ActivityTestRule rule = new ActivityTestRule<>(getActivityClass());
@Rule
public TestName testName = new TestName();
protected MapboxMap mapboxMap;
protected MapboxIdlingResource idlingResource;
protected MapView mapView;
private final CountDownLatch latch = new CountDownLatch(1);
@Before
@CallSuper
public void beforeTest() {
try {
Timber.e(String.format(
"%s - %s - %s",
getClass().getSimpleName(),
testNameRule.getMethodName(),
"@Before test: register idle resource"
));
idlingResource = (MapboxIdlingResource) generateIdlingResource();
IdlingRegistry.getInstance().register(idlingResource);
Espresso.onIdle();
mapboxMap = idlingResource.getMapboxMap();
} catch (IdlingResourceTimeoutException idlingResourceTimeoutException) {
throw new RuntimeException(
String.format(
"Could not start %s test for %s.",
testNameRule.getMethodName(),
getActivityClass().getSimpleName()
)
);
}
initialiseMap();
holdTestRunnerForStyleLoad();
}
protected IdlingResource generateIdlingResource() {
return new FinishLoadingStyleIdlingResource(rule.getActivity());
@After
@CallSuper
public void afterTest() {
// override to add logic
}
@UiThread
@CallSuper
protected void initMap(MapboxMap mapboxMap) {
this.mapboxMap = mapboxMap;
mapboxMap.getStyle(style -> latch.countDown());
}
protected void validateTestSetup() {
if (!Mapbox.isConnected()) {
Timber.e("Not connected to the internet while running test");
}
checkViewIsDisplayed(R.id.mapView);
Assert.assertNotNull(mapboxMap);
}
protected MapboxMap getMapboxMap() {
return mapboxMap;
assertNotNull("MapView isn't initialised", mapView);
assertNotNull("MapboxMap isn't initialised", mapboxMap);
assertNotNull("Style isn't initialised", mapboxMap.getStyle());
assertTrue("Style isn't fully loaded", mapboxMap.getStyle().isFullyLoaded());
}
protected abstract Class getActivityClass();
protected void checkViewIsDisplayed(int id) {
onView(withId(id)).check(matches(isDisplayed()));
private void initialiseMap() {
try {
rule.runOnUiThread(() -> {
mapView = rule.getActivity().findViewById(R.id.mapView);
mapView.getMapAsync(this::initMap);
});
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
protected void waitAction() {
waitAction(500);
private void holdTestRunnerForStyleLoad() {
boolean interrupted;
try {
interrupted = latch.await(WAIT_TIMEOUT, TimeUnit.SECONDS);
} catch (InterruptedException ignore) {
interrupted = true;
}
if (!interrupted) {
Timber.e("Timeout occurred for %s", testName.getMethodName());
validateTestSetup();
}
}
protected void waitAction(long waitTime) {
onView(withId(R.id.mapView)).perform(new WaitAction(waitTime));
}
protected ViewInteraction onMapView() {
return onView(withId(R.id.mapView));
}
protected MapboxMapAction getMapboxMapAction(MapboxMapAction.OnInvokeActionListener onInvokeActionListener) {
return new MapboxMapAction(onInvokeActionListener, mapboxMap);
}
@After
public void afterTest() {
Timber.e(String.format("%s - %s", testNameRule.getMethodName(), "@After test: unregister idle resource"));
IdlingRegistry.getInstance().unregister(idlingResource);
}
}
}

View File

@@ -1,24 +1,28 @@
package com.mapbox.mapboxsdk.testapp.activity;
import android.support.test.espresso.IdlingResource;
import android.support.annotation.UiThread;
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.maps.Style;
import com.mapbox.mapboxsdk.testapp.activity.espresso.EspressoTestActivity;
import com.mapbox.mapboxsdk.testapp.utils.LoadStyleIdlingResource;
/**
* Base class for all tests using EspressoTestActivity as wrapper.
* <p>
* Uses {@link LoadStyleIdlingResource} to load "assets/streets.json" as style.
* Loads "assets/streets.json" as style.
* </p>
*/
public class EspressoTest extends BaseTest {
@Override
protected IdlingResource generateIdlingResource() {
return new LoadStyleIdlingResource(rule.getActivity());
}
@Override
protected final Class getActivityClass() {
return EspressoTestActivity.class;
}
@UiThread
@Override
protected void initMap(MapboxMap mapboxMap) {
mapboxMap.setStyle(new Style.Builder().fromUrl("asset://streets.json"));
super.initMap(mapboxMap);
}
}

View File

@@ -1,6 +1,7 @@
package com.mapbox.mapboxsdk.testapp.annotations;
import android.app.Activity;
import android.support.test.annotation.UiThreadTest;
import android.support.v4.content.res.ResourcesCompat;
import com.mapbox.mapboxsdk.annotations.Icon;
import com.mapbox.mapboxsdk.annotations.IconFactory;
@@ -31,117 +32,107 @@ public class IconTest extends EspressoTest {
@Before
public void beforeTest() {
super.beforeTest();
iconMap = new IconManagerResolver(getMapboxMap()).getIconMap();
}
@Test
public void testEmpty() {
assertTrue(iconMap.isEmpty());
iconMap = new IconManagerResolver(mapboxMap).getIconMap();
}
@Test
@UiThreadTest
public void testAddSameIconMarker() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
Icon defaultMarker = IconFactory.getInstance(rule.getActivity()).defaultMarker();
mapboxMap.addMarker(new MarkerOptions().position(new LatLng()));
mapboxMap.addMarker(new MarkerOptions().position(new LatLng(1, 1)));
assertEquals(1, iconMap.size());
assertEquals(2, iconMap.get(defaultMarker), 0);
}));
Icon defaultMarker = IconFactory.getInstance(rule.getActivity()).defaultMarker();
mapboxMap.addMarker(new MarkerOptions().position(new LatLng()));
mapboxMap.addMarker(new MarkerOptions().position(new LatLng(1, 1)));
assertEquals(1, iconMap.size());
assertEquals(2, iconMap.get(defaultMarker), 0);
}
@Test
@UiThreadTest
public void testAddDifferentIconMarker() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
Icon icon = IconFactory.getInstance(rule.getActivity()).fromResource(R.drawable.mapbox_logo_icon);
getMapboxMap().addMarker(new MarkerOptions().icon(icon).position(new LatLng()));
getMapboxMap().addMarker(new MarkerOptions().position(new LatLng(1, 1)));
assertEquals(iconMap.size(), 2);
assertTrue(iconMap.containsKey(icon));
assertTrue(iconMap.get(icon) == 1);
}));
Icon icon = IconFactory.getInstance(rule.getActivity()).fromResource(R.drawable.mapbox_logo_icon);
mapboxMap.addMarker(new MarkerOptions().icon(icon).position(new LatLng()));
mapboxMap.addMarker(new MarkerOptions().position(new LatLng(1, 1)));
assertEquals(iconMap.size(), 2);
assertTrue(iconMap.containsKey(icon));
assertTrue(iconMap.get(icon) == 1);
}
@Test
@UiThreadTest
public void testAddRemoveIconMarker() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
Icon icon = IconFactory.getInstance(rule.getActivity()).fromResource(R.drawable.mapbox_logo_icon);
Marker marker = mapboxMap.addMarker(new MarkerOptions().icon(icon).position(new LatLng()));
mapboxMap.addMarker(new MarkerOptions().position(new LatLng(1, 1)));
assertEquals(iconMap.size(), 2);
assertTrue(iconMap.containsKey(icon));
assertTrue(iconMap.get(icon) == 1);
Icon icon = IconFactory.getInstance(rule.getActivity()).fromResource(R.drawable.mapbox_logo_icon);
Marker marker = mapboxMap.addMarker(new MarkerOptions().icon(icon).position(new LatLng()));
mapboxMap.addMarker(new MarkerOptions().position(new LatLng(1, 1)));
assertEquals(iconMap.size(), 2);
assertTrue(iconMap.containsKey(icon));
assertTrue(iconMap.get(icon) == 1);
mapboxMap.removeMarker(marker);
assertEquals(iconMap.size(), 1);
assertFalse(iconMap.containsKey(icon));
}));
mapboxMap.removeMarker(marker);
assertEquals(iconMap.size(), 1);
assertFalse(iconMap.containsKey(icon));
}
@Test
@UiThreadTest
public void testAddRemoveDefaultMarker() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
Marker marker = mapboxMap.addMarker(new MarkerOptions().position(new LatLng(1, 1)));
assertEquals(iconMap.size(), 1);
Marker marker = mapboxMap.addMarker(new MarkerOptions().position(new LatLng(1, 1)));
assertEquals(iconMap.size(), 1);
mapboxMap.removeMarker(marker);
assertEquals(iconMap.size(), 0);
mapboxMap.removeMarker(marker);
assertEquals(iconMap.size(), 0);
mapboxMap.addMarker(new MarkerOptions().position(new LatLng()));
assertEquals(iconMap.size(), 1);
}));
mapboxMap.addMarker(new MarkerOptions().position(new LatLng()));
assertEquals(iconMap.size(), 1);
}
@Test
@UiThreadTest
public void testAddRemoveMany() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
Activity activity = rule.getActivity();
IconFactory iconFactory = IconFactory.getInstance(activity);
Activity activity = rule.getActivity();
IconFactory iconFactory = IconFactory.getInstance(activity);
// add 2 default icon markers
Marker defaultMarkerOne = mapboxMap.addMarker(new MarkerOptions().position(new LatLng(1, 1)));
Marker defaultMarkerTwo = mapboxMap.addMarker(new MarkerOptions().position(new LatLng(2, 1)));
// add 2 default icon markers
Marker defaultMarkerOne = mapboxMap.addMarker(new MarkerOptions().position(new LatLng(1, 1)));
Marker defaultMarkerTwo = mapboxMap.addMarker(new MarkerOptions().position(new LatLng(2, 1)));
// add 4 unique icon markers
mapboxMap.addMarker(new MarkerOptions()
.icon(iconFactory.fromResource(R.drawable.mapbox_logo_icon))
.position(new LatLng(3, 1))
);
mapboxMap.addMarker(new MarkerOptions()
.icon(iconFactory.fromResource(R.drawable.mapbox_compass_icon))
.position(new LatLng(4, 1))
);
mapboxMap.addMarker(new MarkerOptions()
.icon(IconUtils.drawableToIcon(activity, R.drawable.ic_stars,
ResourcesCompat.getColor(activity.getResources(),
R.color.blueAccent, activity.getTheme())))
.position(new LatLng(5, 1))
);
mapboxMap.addMarker(new MarkerOptions()
.icon(iconFactory.fromResource(R.drawable.ic_android))
.position(new LatLng(6, 1))
);
// add 4 unique icon markers
mapboxMap.addMarker(new MarkerOptions()
.icon(iconFactory.fromResource(R.drawable.mapbox_logo_icon))
.position(new LatLng(3, 1))
);
mapboxMap.addMarker(new MarkerOptions()
.icon(iconFactory.fromResource(R.drawable.mapbox_compass_icon))
.position(new LatLng(4, 1))
);
mapboxMap.addMarker(new MarkerOptions()
.icon(IconUtils.drawableToIcon(activity, R.drawable.ic_stars,
ResourcesCompat.getColor(activity.getResources(),
R.color.blueAccent, activity.getTheme())))
.position(new LatLng(5, 1))
);
mapboxMap.addMarker(new MarkerOptions()
.icon(iconFactory.fromResource(R.drawable.ic_android))
.position(new LatLng(6, 1))
);
assertEquals("Amount of icons should match 5", 5, iconMap.size());
assertEquals("Refcounter of default marker should match 2", 2, iconMap.get(iconFactory.defaultMarker()), 0);
assertEquals("Amount of icons should match 5", 5, iconMap.size());
assertEquals("Refcounter of default marker should match 2", 2, iconMap.get(iconFactory.defaultMarker()), 0);
mapboxMap.removeMarker(defaultMarkerOne);
mapboxMap.removeMarker(defaultMarkerOne);
assertEquals("Amount of icons should match 5", 5, iconMap.size());
assertEquals("Refcounter of default marker should match 1", 1, iconMap.get(iconFactory.defaultMarker()), 0);
assertEquals("Amount of icons should match 5", 5, iconMap.size());
assertEquals("Refcounter of default marker should match 1", 1, iconMap.get(iconFactory.defaultMarker()), 0);
mapboxMap.removeMarker(defaultMarkerTwo);
mapboxMap.removeMarker(defaultMarkerTwo);
assertEquals("Amount of icons should match 4", 4, iconMap.size());
assertNull("DefaultMarker shouldn't exist anymore", iconMap.get(iconFactory.defaultMarker()));
assertEquals("Amount of icons should match 4", 4, iconMap.size());
assertNull("DefaultMarker shouldn't exist anymore", iconMap.get(iconFactory.defaultMarker()));
mapboxMap.clear();
assertEquals("Amount of icons should match 0", 0, iconMap.size());
}));
mapboxMap.clear();
assertEquals("Amount of icons should match 0", 0, iconMap.size());
}
}

View File

@@ -1,6 +1,7 @@
package com.mapbox.mapboxsdk.testapp.camera;
import android.support.annotation.NonNull;
import android.support.test.annotation.UiThreadTest;
import com.mapbox.geojson.Point;
import com.mapbox.geojson.Polygon;
import com.mapbox.mapboxsdk.camera.CameraPosition;
@@ -18,123 +19,117 @@ import static org.junit.Assert.assertEquals;
public class CameraForTest extends BaseTest {
@Test
@UiThreadTest
public void testGetCameraForLatLngBounds() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
CameraPosition actualPosition = mapboxMap.getCameraForLatLngBounds(
LatLngBounds.from(10, 10, -10, -10));
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng()).zoom(4.16).tilt(0).bearing(0).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Bearing should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match", expectedPosition.tilt, actualPosition.tilt, 0.01f);
}));
CameraPosition actualPosition = mapboxMap.getCameraForLatLngBounds(
LatLngBounds.from(10, 10, -10, -10));
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng()).zoom(4.16).tilt(0).bearing(0).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Bearing should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match", expectedPosition.tilt, actualPosition.tilt, 0.01f);
}
@Test
@UiThreadTest
public void testGetCameraForLatLngBoundsPadding() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
CameraPosition actualPosition = mapboxMap.getCameraForLatLngBounds(
LatLngBounds.from(10, 10, -10, -10), new int[] {5, 5, 5, 5});
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng()).zoom(4.13).tilt(0).bearing(0).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}));
CameraPosition actualPosition = mapboxMap.getCameraForLatLngBounds(
LatLngBounds.from(10, 10, -10, -10), new int[] {5, 5, 5, 5});
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng()).zoom(4.13).tilt(0).bearing(0).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}
@Test
@UiThreadTest
public void testGetCameraForLatLngBoundsBearing() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
CameraPosition actualPosition = mapboxMap.getCameraForLatLngBounds(
LatLngBounds.from(10, 10, -10, -10), 45, 0);
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng()).zoom(3.66).tilt(0).bearing(45).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}));
CameraPosition actualPosition = mapboxMap.getCameraForLatLngBounds(
LatLngBounds.from(10, 10, -10, -10), 45, 0);
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng()).zoom(3.66).tilt(0).bearing(45).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}
@Test
@UiThreadTest
public void testGetCameraForLatLngBoundsTilt() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
CameraPosition actualPosition = mapboxMap.getCameraForLatLngBounds(
LatLngBounds.from(10, 10, -10, -10), 0, 45);
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng(-0.264576975267, 0)).zoom(4.13).tilt(45).bearing(0).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}));
CameraPosition actualPosition = mapboxMap.getCameraForLatLngBounds(
LatLngBounds.from(10, 10, -10, -10), 0, 45);
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng(-0.264576975267, 0)).zoom(4.13).tilt(45).bearing(0).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}
@Test
@UiThreadTest
public void testGetCameraForLatLngBoundsAll() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
CameraPosition actualPosition = mapboxMap.getCameraForLatLngBounds(
LatLngBounds.from(10, 10, -10, -10), new int[] {5, 5, 5, 5}, 45, 45);
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng(-0.3732134634, -0.3713191053)).zoom(3.63).tilt(45).bearing(45).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}));
CameraPosition actualPosition = mapboxMap.getCameraForLatLngBounds(
LatLngBounds.from(10, 10, -10, -10), new int[] {5, 5, 5, 5}, 45, 45);
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng(-0.3732134634, -0.3713191053)).zoom(3.63).tilt(45).bearing(45).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}
@Test
@UiThreadTest
public void testGetCameraForGeometry() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
List<List<Point>> polygonDefinition = getPolygonDefinition();
CameraPosition actualPosition = mapboxMap.getCameraForGeometry(Polygon.fromLngLats(polygonDefinition));
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng()).zoom(4.16).tilt(0).bearing(0).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Bearing should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match", expectedPosition.tilt, actualPosition.tilt, 0.01f);
}));
List<List<Point>> polygonDefinition = getPolygonDefinition();
CameraPosition actualPosition = mapboxMap.getCameraForGeometry(Polygon.fromLngLats(polygonDefinition));
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng()).zoom(4.16).tilt(0).bearing(0).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Bearing should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match", expectedPosition.tilt, actualPosition.tilt, 0.01f);
}
@NonNull
@@ -154,113 +149,108 @@ public class CameraForTest extends BaseTest {
}
@Test
@UiThreadTest
public void testGetCameraForGeometryPadding() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
List<List<Point>> polygonDefinition = getPolygonDefinition();
CameraPosition actualPosition = mapboxMap.getCameraForGeometry(Polygon.fromLngLats(polygonDefinition),
new int[] {5, 5, 5, 5});
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng()).zoom(4.13).tilt(0).bearing(0).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}));
List<List<Point>> polygonDefinition = getPolygonDefinition();
CameraPosition actualPosition = mapboxMap.getCameraForGeometry(Polygon.fromLngLats(polygonDefinition),
new int[] {5, 5, 5, 5});
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng()).zoom(4.13).tilt(0).bearing(0).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}
@Test
@UiThreadTest
public void testGetCameraForGeometryBearing() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
List<List<Point>> polygonDefinition = getPolygonDefinition();
CameraPosition actualPosition = mapboxMap.getCameraForGeometry(Polygon.fromLngLats(polygonDefinition), 45, 0);
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng()).zoom(3.66).tilt(0).bearing(45).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}));
List<List<Point>> polygonDefinition = getPolygonDefinition();
CameraPosition actualPosition = mapboxMap.getCameraForGeometry(Polygon.fromLngLats(polygonDefinition), 45, 0);
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng()).zoom(3.66).tilt(0).bearing(45).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}
@Test
@UiThreadTest
public void testGetCameraForGeometryTilt() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
List<List<Point>> polygonDefinition = getPolygonDefinition();
CameraPosition actualPosition = mapboxMap.getCameraForGeometry(Polygon.fromLngLats(polygonDefinition), 0, 45);
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng(-0.2645769752, 0)).zoom(4.13).tilt(45).bearing(0).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}));
List<List<Point>> polygonDefinition = getPolygonDefinition();
CameraPosition actualPosition = mapboxMap.getCameraForGeometry(Polygon.fromLngLats(polygonDefinition), 0, 45);
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng(-0.2645769752, 0)).zoom(4.13).tilt(45).bearing(0).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}
@Test
@UiThreadTest
public void testGetCameraForGeometryAll() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
List<List<Point>> polygonDefinition = getPolygonDefinition();
CameraPosition actualPosition = mapboxMap.getCameraForGeometry(Polygon.fromLngLats(polygonDefinition),
new int[] {5, 5, 5, 5}, 45, 45);
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng(-0.373213463, -0.37131910534)).zoom(3.63).tilt(45).bearing(45).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}));
List<List<Point>> polygonDefinition = getPolygonDefinition();
CameraPosition actualPosition = mapboxMap.getCameraForGeometry(Polygon.fromLngLats(polygonDefinition),
new int[] {5, 5, 5, 5}, 45, 45);
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng(-0.373213463, -0.37131910534)).zoom(3.63).tilt(45).bearing(45).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}
@Test
@UiThreadTest
public void testGetCameraForGeometryDeprecatedApi() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
List<List<Point>> polygonDefinition = getPolygonDefinition();
CameraPosition actualPosition = mapboxMap.getCameraForGeometry(
Polygon.fromLngLats(polygonDefinition),
new int[] {5, 5, 5, 5},
45, 0);
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng()).zoom(3.63).tilt(0).bearing(45).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}));
List<List<Point>> polygonDefinition = getPolygonDefinition();
CameraPosition actualPosition = mapboxMap.getCameraForGeometry(
Polygon.fromLngLats(polygonDefinition),
new int[] {5, 5, 5, 5},
45, 0);
CameraPosition expectedPosition = new CameraPosition.Builder()
.target(new LatLng()).zoom(3.63).tilt(0).bearing(45).build();
assertEquals("Latitude should match",
expectedPosition.target.getLatitude(), actualPosition.target.getLatitude(), 0.00001f);
assertEquals("Longitude should match",
expectedPosition.target.getLongitude(), actualPosition.target.getLongitude(), 0.00001f);
assertEquals("Zoom should match",
expectedPosition.zoom, actualPosition.zoom, 0.01f);
assertEquals("Tilt should match",
expectedPosition.tilt, actualPosition.tilt, 0.01f);
assertEquals("Bearing should match",
expectedPosition.bearing, actualPosition.bearing, 0.01f);
}
@Override

View File

@@ -1,5 +1,6 @@
package com.mapbox.mapboxsdk.testapp.geometry;
import android.support.test.annotation.UiThreadTest;
import com.google.gson.JsonArray;
import com.mapbox.geojson.Feature;
import com.mapbox.geojson.FeatureCollection;
@@ -13,11 +14,13 @@ 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.action.MapboxMapAction;
import com.mapbox.mapboxsdk.testapp.activity.EspressoTest;
import com.mapbox.mapboxsdk.testapp.utils.TestingAsyncUtils;
import org.junit.Test;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.matcher.ViewMatchers.isRoot;
import static com.mapbox.geojson.Feature.fromGeometry;
import static com.mapbox.geojson.FeatureCollection.fromFeatures;
import static com.mapbox.geojson.GeometryCollection.fromGeometries;
@@ -35,101 +38,94 @@ public class GeoJsonConversionTest extends EspressoTest {
// Regression test for #12343
@Test
@UiThreadTest
public void testEmptyFeatureCollection() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
mapboxMap.getStyle().addSource(
new CustomGeometrySource("test-id",
new CustomProvider(fromFeatures(singletonList(fromGeometry(fromGeometries(emptyList())))))
)
);
mapboxMap.getStyle().addLayer(new SymbolLayer("test-id", "test-id"));
}));
mapboxMap.getStyle().addSource(
new CustomGeometrySource("test-id",
new CustomProvider(fromFeatures(singletonList(fromGeometry(fromGeometries(emptyList())))))
)
);
mapboxMap.getStyle().addLayer(new SymbolLayer("test-id", "test-id"));
}
@Test
@UiThreadTest
public void testPointFeatureCollection() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
mapboxMap.getStyle().addSource(
new CustomGeometrySource("test-id",
new CustomProvider(fromFeatures(singletonList(fromGeometry(Point.fromLngLat(0.0, 0.0)))))
)
);
mapboxMap.getStyle().addLayer(new SymbolLayer("test-id", "test-id"));
}));
mapboxMap.getStyle().addSource(
new CustomGeometrySource("test-id",
new CustomProvider(fromFeatures(singletonList(fromGeometry(Point.fromLngLat(0.0, 0.0)))))
)
);
mapboxMap.getStyle().addLayer(new SymbolLayer("test-id", "test-id"));
}
@Test
@UiThreadTest
public void testMultiPointFeatureCollection() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
mapboxMap.getStyle().addSource(
new CustomGeometrySource("test-id",
new CustomProvider(fromFeatures(singletonList(fromGeometry(fromLngLats(emptyList())))))
)
);
mapboxMap.getStyle().addLayer(new SymbolLayer("test-id", "test-id"));
}));
mapboxMap.getStyle().addSource(
new CustomGeometrySource("test-id",
new CustomProvider(fromFeatures(singletonList(fromGeometry(fromLngLats(emptyList())))))
)
);
mapboxMap.getStyle().addLayer(new SymbolLayer("test-id", "test-id"));
}
@Test
@UiThreadTest
public void testPolygonFeatureCollection() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
mapboxMap.getStyle().addSource(
new CustomGeometrySource("test-id",
new CustomProvider(fromFeatures(singletonList(fromGeometry(Polygon.fromLngLats(emptyList())))))
)
);
mapboxMap.getStyle().addLayer(new SymbolLayer("test-id", "test-id"));
}));
mapboxMap.getStyle().addSource(
new CustomGeometrySource("test-id",
new CustomProvider(fromFeatures(singletonList(fromGeometry(Polygon.fromLngLats(emptyList())))))
)
);
mapboxMap.getStyle().addLayer(new SymbolLayer("test-id", "test-id"));
}
@Test
@UiThreadTest
public void testMultiPolygonFeatureCollection() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
mapboxMap.getStyle().addSource(
new CustomGeometrySource("test-id",
new CustomProvider(fromFeatures(singletonList(fromGeometry(fromPolygon(Polygon.fromLngLats(emptyList()))))))
)
);
mapboxMap.getStyle().addLayer(new SymbolLayer("test-id", "test-id"));
}));
mapboxMap.getStyle().addSource(
new CustomGeometrySource("test-id",
new CustomProvider(fromFeatures(singletonList(fromGeometry(fromPolygon(Polygon.fromLngLats(emptyList()))))))
)
);
mapboxMap.getStyle().addLayer(new SymbolLayer("test-id", "test-id"));
}
@Test
@UiThreadTest
public void testLineStringFeatureCollection() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
mapboxMap.getStyle().addSource(
new CustomGeometrySource("test-id",
new CustomProvider(fromFeatures(singletonList(fromGeometry(fromLngLats(emptyList())))))
)
);
mapboxMap.getStyle().addLayer(new SymbolLayer("test-id", "test-id"));
}));
mapboxMap.getStyle().addSource(
new CustomGeometrySource("test-id",
new CustomProvider(fromFeatures(singletonList(fromGeometry(fromLngLats(emptyList())))))
)
);
mapboxMap.getStyle().addLayer(new SymbolLayer("test-id", "test-id"));
}
@Test
@UiThreadTest
public void testMultiLineStringFeatureCollection() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
mapboxMap.getStyle().addSource(
new CustomGeometrySource("test-id",
new CustomProvider(fromFeatures(singletonList(fromGeometry(fromLineString(fromLngLats(emptyList()))))))
)
);
mapboxMap.getStyle().addLayer(new SymbolLayer("test-id", "test-id"));
}));
mapboxMap.getStyle().addSource(
new CustomGeometrySource("test-id",
new CustomProvider(fromFeatures(singletonList(fromGeometry(fromLineString(fromLngLats(emptyList()))))))
)
);
mapboxMap.getStyle().addLayer(new SymbolLayer("test-id", "test-id"));
}
@Test
public void testNegativeNumberPropertyConversion() {
validateTestSetup();
onMapView().perform(getMapboxMapAction((uiController, mapboxMap) -> {
onView(isRoot()).perform(new MapboxMapAction((uiController, mapboxMap) -> {
LatLng latLng = new LatLng();
Feature feature = Feature.fromGeometry(Point.fromLngLat(latLng.getLongitude(), latLng.getLatitude()));
@@ -148,10 +144,10 @@ public class GeoJsonConversionTest extends EspressoTest {
);
mapboxMap.getStyle().addLayer(layer);
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, mapView);
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng)).isEmpty());
}));
}, mapboxMap));
}
class CustomProvider implements GeometryTileProvider {

View File

@@ -18,14 +18,6 @@ import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
class StyleLoadTest : EspressoTest() {
private lateinit var mapView: MapView
@Before
override fun beforeTest() {
super.beforeTest()
mapView = (rule.activity as EspressoTestActivity).mapView
}
@Test
fun updateSourceAfterStyleLoad() {
validateTestSetup()

View File

@@ -4,6 +4,7 @@ import com.mapbox.mapboxsdk.camera.CameraPosition;
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.testapp.R;
import com.mapbox.mapboxsdk.testapp.action.WaitAction;
import com.mapbox.mapboxsdk.testapp.activity.EspressoTest;
import com.mapbox.mapboxsdk.testapp.utils.TestConstants;
import org.junit.Ignore;
@@ -55,7 +56,7 @@ public class CompassViewTest extends EspressoTest {
.build()
)));
onView(withId(R.id.compassView)).perform(click());
waitAction();
WaitAction.invoke(500);
onView(withId(R.id.compassView)).check(matches(not(isDisplayed())));
invoke(mapboxMap, (uiController, mapboxMap) -> {
CameraPosition cameraPosition = mapboxMap.getCameraPosition();

View File

@@ -6,8 +6,9 @@ import com.mapbox.mapboxsdk.style.sources.CustomGeometrySource
import com.mapbox.mapboxsdk.style.sources.CustomGeometrySource.THREAD_POOL_LIMIT
import com.mapbox.mapboxsdk.style.sources.CustomGeometrySource.THREAD_PREFIX
import com.mapbox.mapboxsdk.testapp.action.MapboxMapAction.invoke
import com.mapbox.mapboxsdk.testapp.action.OrientationChangeAction.orientationLandscape
import com.mapbox.mapboxsdk.testapp.action.OrientationChangeAction.orientationPortrait
import com.mapbox.mapboxsdk.testapp.action.OrientationAction.orientationLandscape
import com.mapbox.mapboxsdk.testapp.action.OrientationAction.orientationPortrait
import com.mapbox.mapboxsdk.testapp.action.WaitAction
import com.mapbox.mapboxsdk.testapp.activity.BaseTest
import com.mapbox.mapboxsdk.testapp.activity.style.GridSourceActivity
import com.mapbox.mapboxsdk.testapp.activity.style.GridSourceActivity.ID_GRID_LAYER
@@ -25,11 +26,11 @@ class CustomGeometrySourceTest : BaseTest() {
@Ignore
fun sourceNotLeakingThreadsTest() {
validateTestSetup()
waitAction(4000)
WaitAction.invoke(4000)
onView(isRoot()).perform(orientationLandscape())
waitAction(2000)
WaitAction.invoke(2000)
onView(isRoot()).perform(orientationPortrait())
waitAction(2000)
WaitAction.invoke(2000)
Assert.assertFalse("Threads should be shutdown when the source is destroyed.",
Thread.getAllStackTraces().keys.filter {
it.name.startsWith(THREAD_PREFIX)
@@ -42,9 +43,9 @@ class CustomGeometrySourceTest : BaseTest() {
validateTestSetup()
invoke(mapboxMap) { uiController, mapboxMap ->
mapboxMap.style!!.removeLayer(ID_GRID_LAYER)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
mapboxMap.style!!.removeSource(ID_GRID_SOURCE)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
Assert.assertTrue("There should be no threads running when the source is removed.",
Thread.getAllStackTraces().keys.filter {
it.name.startsWith(CustomGeometrySource.THREAD_PREFIX)
@@ -58,12 +59,12 @@ class CustomGeometrySourceTest : BaseTest() {
validateTestSetup()
invoke(mapboxMap) { uiController, mapboxMap ->
mapboxMap.style!!.removeLayer((rule.activity as GridSourceActivity).layer)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
mapboxMap.style!!.removeSource(ID_GRID_SOURCE)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
mapboxMap.style!!.addSource((rule.activity as GridSourceActivity).source)
mapboxMap.style!!.addLayer((rule.activity as GridSourceActivity).layer)
TestingAsyncUtils.waitForLayer(uiController, idlingResource.mapView)
TestingAsyncUtils.waitForLayer(uiController, mapView)
Assert.assertTrue("Threads should be restarted when the source is re-added to the map.",
Thread.getAllStackTraces().keys.filter {
it.name.startsWith(CustomGeometrySource.THREAD_PREFIX)

View File

@@ -252,7 +252,7 @@ public class ExpressionTest extends EspressoTest {
)
));
mapboxMap.getStyle().addLayer(layer);
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, mapView);
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer")
.isEmpty());
@@ -262,7 +262,7 @@ public class ExpressionTest extends EspressoTest {
literal(ColorUtils.colorToRgbaString(Color.RED))
)
));
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, mapView);
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer")
.isEmpty());
@@ -272,7 +272,7 @@ public class ExpressionTest extends EspressoTest {
literal(ColorUtils.colorToRgbaString(Color.RED))
)
));
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, mapView);
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer")
.isEmpty());
});
@@ -292,7 +292,7 @@ public class ExpressionTest extends EspressoTest {
formatEntry("test")
);
layer.setProperties(textField(expression));
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, mapView);
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer")
.isEmpty());
@@ -315,7 +315,7 @@ public class ExpressionTest extends EspressoTest {
formatEntry("test", formatFontScale(1.75))
);
layer.setProperties(textField(expression));
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, mapView);
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer")
.isEmpty());
@@ -341,7 +341,7 @@ public class ExpressionTest extends EspressoTest {
)
);
layer.setProperties(textField(expression));
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, mapView);
assertFalse(
mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer").isEmpty()
@@ -371,7 +371,7 @@ public class ExpressionTest extends EspressoTest {
)
);
layer.setProperties(textField(expression));
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, mapView);
assertFalse(
mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer").isEmpty()
@@ -402,7 +402,7 @@ public class ExpressionTest extends EspressoTest {
)
);
layer.setProperties(textField(expression));
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, mapView);
assertFalse(
mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer").isEmpty()
@@ -436,7 +436,7 @@ public class ExpressionTest extends EspressoTest {
formatEntry("\ntest2", formatFontScale(2), formatTextColor(Color.BLUE))
);
layer.setProperties(textField(expression));
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, mapView);
assertFalse(
mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer").isEmpty()
@@ -472,7 +472,7 @@ public class ExpressionTest extends EspressoTest {
)
);
layer.setProperties(textField(expression));
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, mapView);
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer")
.isEmpty());
@@ -504,7 +504,7 @@ public class ExpressionTest extends EspressoTest {
formatEntry("\ntest2", formatFontScale(2))
);
layer.setProperties(textField(expression), textColor("rgba(128, 0, 0, 1)"));
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, mapView);
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer")
.isEmpty());
@@ -524,7 +524,7 @@ public class ExpressionTest extends EspressoTest {
mapboxMap.getStyle().addLayer(layer);
layer.setProperties(textField("test"));
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, mapView);
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer")
.isEmpty());
@@ -550,7 +550,7 @@ public class ExpressionTest extends EspressoTest {
new FormattedSection("test", null, null, "rgba(0, 255, 0, 1)")
);
layer.setProperties(textField(formatted), textColor("rgba(128, 0, 0, 1)"));
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, mapView);
assertFalse(mapboxMap.queryRenderedFeatures(mapboxMap.getProjection().toScreenLocation(latLng), "layer")
.isEmpty());

View File

@@ -94,7 +94,7 @@ public class GeoJsonSourceTests extends EspressoTest {
}
source.setGeoJson(Point.fromLngLat(20, 55));
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, idlingResource.getMapView());
TestingAsyncUtils.INSTANCE.waitForLayer(uiController, mapView);
assertEquals(1, mapboxMap.queryRenderedFeatures(
mapboxMap.getProjection().toScreenLocation(
new LatLng(55, 20)), "layer").size());

View File

@@ -4,10 +4,8 @@ import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.support.test.runner.AndroidJUnit4;
import com.mapbox.mapboxsdk.testapp.R;
import com.mapbox.mapboxsdk.testapp.action.MapboxMapAction;
import com.mapbox.mapboxsdk.testapp.activity.EspressoTest;
import org.junit.Test;
import org.junit.runner.RunWith;

View File

@@ -2,12 +2,10 @@ package com.mapbox.mapboxsdk.testapp.style;
import android.graphics.Color;
import android.graphics.PointF;
import android.support.test.espresso.Espresso;
import android.support.test.espresso.UiController;
import android.support.test.espresso.ViewAction;
import android.support.test.runner.AndroidJUnit4;
import android.view.View;
import com.mapbox.mapboxsdk.style.layers.CannotAddLayerException;
import com.mapbox.mapboxsdk.style.layers.CircleLayer;
import com.mapbox.mapboxsdk.style.layers.FillLayer;
@@ -22,20 +20,16 @@ import com.mapbox.mapboxsdk.style.sources.Source;
import com.mapbox.mapboxsdk.style.sources.VectorSource;
import com.mapbox.mapboxsdk.testapp.R;
import com.mapbox.mapboxsdk.testapp.activity.EspressoTest;
import junit.framework.Assert;
import org.hamcrest.Matcher;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
import timber.log.Timber;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import timber.log.Timber;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
@@ -366,11 +360,6 @@ public class RuntimeStyleTests extends EspressoTest {
}
}
@After
public void unregisterIntentServiceIdlingResource() {
Espresso.unregisterIdlingResources(idlingResource);
}
public abstract class BaseViewAction implements ViewAction {
@Override

View File

@@ -1,35 +0,0 @@
package com.mapbox.mapboxsdk.testapp.utils;
import android.app.Activity;
import android.os.Handler;
import android.os.Looper;
import android.support.annotation.WorkerThread;
import com.mapbox.mapboxsdk.maps.MapboxMap;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
public class FinishLoadingStyleIdlingResource extends MapboxIdlingResource {
@WorkerThread
public FinishLoadingStyleIdlingResource(final Activity activity) {
new Handler(Looper.getMainLooper()).post(() -> inflateMap(activity));
}
@Override
public void initMap(MapboxMap mapboxMap) {
super.initMap(mapboxMap);
mapboxMap.getStyle(style -> {
assertNotNull(style);
assertTrue(style.isFullyLoaded());
if (resourceCallback != null) {
resourceCallback.onTransitionToIdle();
}
});
}
@Override
public boolean isIdleNow() {
return getMapboxMap() != null && getMapboxMap().getStyle() != null;
}
}

View File

@@ -1,40 +0,0 @@
package com.mapbox.mapboxsdk.testapp.utils;
import android.app.Activity;
import android.os.Handler;
import android.os.Looper;
import android.support.annotation.UiThread;
import android.support.annotation.WorkerThread;
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.maps.Style;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
public class LoadStyleIdlingResource extends MapboxIdlingResource {
private Style style;
@WorkerThread
public LoadStyleIdlingResource(final Activity activity) {
new Handler(Looper.getMainLooper()).post(() -> inflateMap(activity));
}
@UiThread
public void initMap(MapboxMap mapboxMap) {
super.initMap(mapboxMap);
mapboxMap.setStyle("asset://streets.json", style -> {
assertNotNull(style);
assertTrue(style.isFullyLoaded());
this.style = style;
if (resourceCallback != null) {
resourceCallback.onTransitionToIdle();
}
});
}
@Override
public boolean isIdleNow() {
return style != null;
}
}

View File

@@ -1,46 +0,0 @@
package com.mapbox.mapboxsdk.testapp.utils;
import android.app.Activity;
import android.support.annotation.UiThread;
import android.support.test.espresso.IdlingResource;
import com.mapbox.mapboxsdk.maps.MapView;
import com.mapbox.mapboxsdk.maps.MapboxMap;
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 = activity.findViewById(R.id.mapView);
if (mapView != null) {
mapView.getMapAsync(this::initMap);
}
}
@UiThread
protected void initMap(MapboxMap mapboxMap) {
this.mapboxMap = mapboxMap;
}
@Override
public String getName() {
return getClass().getSimpleName();
}
@Override
public void registerIdleTransitionCallback(ResourceCallback resourceCallback) {
this.resourceCallback = resourceCallback;
}
public MapboxMap getMapboxMap() {
return mapboxMap;
}
public MapView getMapView() {
return mapView;
}
}

View File

@@ -1,60 +0,0 @@
package com.mapbox.mapboxsdk.testapp.utils;
import android.app.Activity;
import android.os.Handler;
import android.os.Looper;
import android.support.annotation.WorkerThread;
import android.support.test.espresso.IdlingResource;
import com.mapbox.mapboxsdk.maps.MapView;
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.maps.Style;
import com.mapbox.mapboxsdk.testapp.R;
public class OnMapReadyIdlingResource implements IdlingResource {
private boolean styleLoaded;
private MapboxMap mapboxMap;
private IdlingResource.ResourceCallback resourceCallback;
@WorkerThread
public OnMapReadyIdlingResource(final Activity activity) {
Handler handler = new Handler(Looper.getMainLooper());
handler.post(() -> {
MapView mapView = activity.findViewById(R.id.mapView);
if (mapView != null) {
mapView.addOnDidFinishLoadingStyleListener(() -> {
styleLoaded = true;
if (resourceCallback != null) {
resourceCallback.onTransitionToIdle();
}
});
mapView.getMapAsync(this::initMap);
}
});
}
private void initMap(MapboxMap mapboxMap) {
this.mapboxMap = mapboxMap;
mapboxMap.setStyle(new Style.Builder().fromUrl("asset://streets.json"));
}
@Override
public String getName() {
return getClass().getSimpleName();
}
@Override
public boolean isIdleNow() {
return styleLoaded;
}
@Override
public void registerIdleTransitionCallback(ResourceCallback resourceCallback) {
this.resourceCallback = resourceCallback;
}
public MapboxMap getMapboxMap() {
return mapboxMap;
}
}