diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com')
19 files changed, 388 insertions, 43 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/AppCenter.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/AppCenter.kt new file mode 100644 index 0000000000..fb946a9c31 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/AppCenter.kt @@ -0,0 +1,16 @@ +package com.mapbox.mapboxsdk + +import com.microsoft.appcenter.espresso.Factory +import org.junit.After +import org.junit.Rule + +abstract class AppCenter { + @get:Rule + var reportHelper = Factory.getReportHelper()!! + + + @After + open fun afterTest() { + reportHelper.label(javaClass.simpleName) + } +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactoryTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactoryTest.kt new file mode 100644 index 0000000000..446b731a61 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactoryTest.kt @@ -0,0 +1,144 @@ +package com.mapbox.mapboxsdk.camera + +import android.support.test.runner.AndroidJUnit4 +import com.mapbox.mapboxsdk.geometry.LatLng +import com.mapbox.mapboxsdk.geometry.LatLngBounds +import com.mapbox.mapboxsdk.testapp.activity.BaseTest +import com.mapbox.mapboxsdk.testapp.activity.espresso.DeviceIndependentTestActivity +import org.junit.Assert.assertEquals +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class CameraUpdateFactoryTest : BaseTest() { + + override fun getActivityClass(): Class<*> { + return DeviceIndependentTestActivity::class.java + } + + @Test + fun testLatLngBoundsUntiltedUnrotated() { + rule.runOnUiThread { + mapboxMap.cameraPosition = CameraPosition.Builder() + .target(LatLng(60.0, 24.0)) + .bearing(0.0) + .tilt(0.0) + .build() + + val bounds: LatLngBounds = LatLngBounds.Builder() + .include(LatLng(62.0, 26.0)) + .include(LatLng(58.0, 22.0)) + .build() + + mapboxMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 0)) + + val cameraPosition = mapboxMap.cameraPosition + assertEquals("latitude should match:", 60.0, cameraPosition.target.latitude, 0.1) + assertEquals("longitude should match:", 24.0, cameraPosition.target.longitude, 0.1) + assertEquals("bearing should match:", 0.0, cameraPosition.bearing, 0.1) + assertEquals("zoom should match", 5.5, cameraPosition.zoom, 0.1) + assertEquals("tilt should match:", 0.0, cameraPosition.tilt, 0.1) + } + } + + @Test + fun testLatLngBoundsTilted() { + rule.runOnUiThread { + mapboxMap.cameraPosition = CameraPosition.Builder() + .target(LatLng(60.0, 24.0)) + .bearing(0.0) + .tilt(45.0) + .build() + + val bounds: LatLngBounds = LatLngBounds.Builder() + .include(LatLng(62.0, 26.0)) + .include(LatLng(58.0, 22.0)) + .build() + + mapboxMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 0)) + + val cameraPosition = mapboxMap.cameraPosition + assertEquals("latitude should match:", 60.0, cameraPosition.target.latitude, 0.1) + assertEquals("longitude should match:", 24.0, cameraPosition.target.longitude, 0.1) + assertEquals("bearing should match:", 0.0, cameraPosition.bearing, 0.1) + assertEquals("zoom should match", 6.0, cameraPosition.zoom, 0.1) + assertEquals("tilt should match:", 45.0, cameraPosition.tilt, 0.1) + } + } + + @Test + fun testLatLngBoundsRotated() { + rule.runOnUiThread { + mapboxMap.cameraPosition = CameraPosition.Builder() + .target(LatLng(60.0, 24.0)) + .bearing(30.0) + .tilt(0.0) + .build() + + val bounds: LatLngBounds = LatLngBounds.Builder() + .include(LatLng(62.0, 26.0)) + .include(LatLng(58.0, 22.0)) + .build() + + mapboxMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 0)) + + val cameraPosition = mapboxMap.cameraPosition + assertEquals("latitude should match:", 60.0, cameraPosition.target.latitude, 0.1) + assertEquals("longitude should match:", 24.0, cameraPosition.target.longitude, 0.1) + assertEquals("bearing should match:", 30.0, cameraPosition.bearing, 0.1) + assertEquals("zoom should match", 5.3, cameraPosition.zoom, 0.1) + assertEquals("tilt should match:", 0.0, cameraPosition.tilt, 0.1) + } + } + + @Test + fun testLatLngBoundsTiltedRotated() { + rule.runOnUiThread { + mapboxMap.cameraPosition = CameraPosition.Builder() + .target(LatLng(60.0, 24.0)) + .bearing(30.0) + .tilt(45.0) + .build() + + val bounds: LatLngBounds = LatLngBounds.Builder() + .include(LatLng(62.0, 26.0)) + .include(LatLng(58.0, 22.0)) + .build() + + mapboxMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 0)) + + val cameraPosition = mapboxMap.cameraPosition + assertEquals("latitude should match:", 60.0, cameraPosition.target.latitude, 0.1) + assertEquals("longitude should match:", 24.0, cameraPosition.target.longitude, 0.1) + assertEquals("bearing should match:", 30.0, cameraPosition.bearing, 0.1) + assertEquals("zoom should match", 5.6, cameraPosition.zoom, 0.1) + assertEquals("tilt should match:", 45.0, cameraPosition.tilt, 0.1) + } + } + + @Test + fun testLatLngBoundsWithProvidedTiltAndRotation() { + rule.runOnUiThread { + mapboxMap.cameraPosition = CameraPosition.Builder() + .target(LatLng(60.0, 24.0)) + .bearing(0.0) + .tilt(0.0) + .build() + + val bounds: LatLngBounds = LatLngBounds.Builder() + .include(LatLng(62.0, 26.0)) + .include(LatLng(58.0, 22.0)) + .build() + + mapboxMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 30.0, 40.0, 0)) + + val cameraPosition = mapboxMap.cameraPosition + assertEquals("latitude should match:", 60.0, cameraPosition.target.latitude, 0.1) + assertEquals("longitude should match:", 24.0, cameraPosition.target.longitude, 0.1) + assertEquals("bearing should match:", 30.0, cameraPosition.bearing, 0.1) + assertEquals("zoom should match", 5.6, cameraPosition.zoom, 0.1) + assertEquals("tilt should match:", 40.0, cameraPosition.tilt, 0.1) + } + } + +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/integration/BaseIntegrationTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/integration/BaseIntegrationTest.kt index aeb8863790..554ab644b6 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/integration/BaseIntegrationTest.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/integration/BaseIntegrationTest.kt @@ -5,11 +5,12 @@ import android.content.Intent import android.content.Intent.FLAG_ACTIVITY_NEW_TASK import android.support.test.InstrumentationRegistry import android.support.test.uiautomator.* +import com.mapbox.mapboxsdk.AppCenter import org.junit.Before const val TIMEOUT_UI_SEARCH_WAIT = 5000L -abstract class BaseIntegrationTest { +abstract class BaseIntegrationTest : AppCenter(){ protected lateinit var device: UiDevice diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/BaseLayerTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/BaseLayerTest.kt index 9a6f9c3c26..7019129e6e 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/BaseLayerTest.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/BaseLayerTest.kt @@ -2,11 +2,12 @@ package com.mapbox.mapboxsdk.maps import android.support.test.InstrumentationRegistry import android.support.test.runner.AndroidJUnit4 +import com.mapbox.mapboxsdk.AppCenter import com.mapbox.mapboxsdk.style.layers.Layer import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) -abstract class BaseLayerTest { +abstract class BaseLayerTest : AppCenter(){ private lateinit var nativeMapView: NativeMap companion object { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/MapboxMapInstrumentationTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/MapboxMapInstrumentationTest.kt new file mode 100644 index 0000000000..e93f54161e --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/MapboxMapInstrumentationTest.kt @@ -0,0 +1,41 @@ +package com.mapbox.mapboxsdk.maps + +import android.graphics.PointF +import android.support.test.runner.AndroidJUnit4 +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory +import com.mapbox.mapboxsdk.geometry.LatLng +import com.mapbox.mapboxsdk.testapp.activity.BaseTest +import com.mapbox.mapboxsdk.testapp.activity.espresso.DeviceIndependentTestActivity +import org.junit.Assert.assertArrayEquals +import org.junit.Assert.assertEquals +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class MapboxMapInstrumentationTest : BaseTest() { + + override fun getActivityClass(): Class<*> { + return DeviceIndependentTestActivity::class.java + } + + @Test + fun setPadding_cameraInvalidated() { + rule.runOnUiThread { + mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng(0.0, 0.0), 10.0)) + val initialCameraPosition = mapboxMap.cameraPosition + val initialPoint = mapboxMap.projection.toScreenLocation(initialCameraPosition.target) + + val bottomPadding = mapView.height / 4 + val leftPadding = mapView.width / 4 + mapboxMap.setPadding(leftPadding, 0, 0, bottomPadding) + + val resultingCameraPosition = mapboxMap.cameraPosition + assertArrayEquals(intArrayOf(leftPadding, 0, 0, bottomPadding), mapboxMap.padding) + assertEquals(initialCameraPosition, resultingCameraPosition) + assertEquals( + PointF(initialPoint.x + leftPadding / 2, initialPoint.y - bottomPadding / 2), + mapboxMap.projection.toScreenLocation(resultingCameraPosition.target) + ) + } + } +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/MapboxTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/MapboxTest.java index c8737e2802..50c10766af 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/MapboxTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/MapboxTest.java @@ -2,6 +2,8 @@ package com.mapbox.mapboxsdk.maps; import android.support.test.annotation.UiThreadTest; import android.support.test.runner.AndroidJUnit4; + +import com.mapbox.mapboxsdk.AppCenter; import com.mapbox.mapboxsdk.Mapbox; import org.junit.Test; import org.junit.runner.RunWith; @@ -11,7 +13,7 @@ import static junit.framework.Assert.assertSame; import static junit.framework.Assert.assertTrue; @RunWith(AndroidJUnit4.class) -public class MapboxTest { +public class MapboxTest extends AppCenter { private static final String ACCESS_TOKEN = "pk.0000000001"; private static final String ACCESS_TOKEN_2 = "pk.0000000002"; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/NativeMapViewTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/NativeMapViewTest.kt index a1fe6af659..409d956a13 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/NativeMapViewTest.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/NativeMapViewTest.kt @@ -5,6 +5,7 @@ import android.graphics.PointF import android.support.test.InstrumentationRegistry import android.support.test.annotation.UiThreadTest import android.support.test.runner.AndroidJUnit4 +import com.mapbox.mapboxsdk.AppCenter import com.mapbox.mapboxsdk.camera.CameraPosition import com.mapbox.mapboxsdk.geometry.LatLng import com.mapbox.mapboxsdk.geometry.LatLngBounds @@ -19,7 +20,7 @@ import org.junit.Test import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) -class NativeMapViewTest { +class NativeMapViewTest : AppCenter() { private lateinit var nativeMapView: NativeMap diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/VisibleRegionTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/VisibleRegionTest.kt index 139695461d..24c7bc0226 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/VisibleRegionTest.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/VisibleRegionTest.kt @@ -8,8 +8,7 @@ import com.mapbox.mapboxsdk.testapp.action.MapboxMapAction.invoke import com.mapbox.mapboxsdk.testapp.activity.BaseTest import com.mapbox.mapboxsdk.testapp.activity.espresso.PixelTestActivity -import org.junit.Assert.assertFalse -import org.junit.Assert.assertTrue +import org.junit.Assert.* import org.junit.Test class VisibleRegionTest : BaseTest() { @@ -70,7 +69,7 @@ class VisibleRegionTest : BaseTest() { val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertTrue(filtered.size == 1) + assertEquals(1, filtered.size) assertTrue(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f))) } } @@ -89,14 +88,18 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), + mapboxMap.getLatLngFromScreenCoords(mapView.width / 4f, mapView.height / 2f), + mapboxMap.getLatLngFromScreenCoords(mapView.width * 3f / 4f, 0f) ) mapboxMap.setPadding(mapView.width / 4, 0, 0, 0) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) - val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertTrue(filtered.size == 6) + val filtered = latLngs.filter { + visibleRegion.latLngBounds.contains(it) + } + assertEquals(5, filtered.size) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f))) } } @@ -115,14 +118,16 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), + mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 4f), + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height * 3f / 4f) ) mapboxMap.setPadding(0, mapView.height / 4, 0, 0) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertTrue(filtered.size == 6) + assertEquals(5, filtered.size) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, 0f))) } } @@ -141,14 +146,16 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), + mapboxMap.getLatLngFromScreenCoords(mapView.width / 4f, mapView.height / 2f), + mapboxMap.getLatLngFromScreenCoords(mapView.width * 3f / 4f, 0f) ) mapboxMap.setPadding(0, 0, mapView.width / 4, 0) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertTrue(filtered.size == 6) + assertEquals(5, filtered.size) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width.toFloat(), mapView.height / 2f))) } } @@ -167,14 +174,16 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 4f), + mapboxMap.getLatLngFromScreenCoords(0f, mapView.height * 3f / 4f) ) mapboxMap.setPadding(0, 0, 0, mapView.height / 4) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertTrue(filtered.size == 6) + assertEquals(5, filtered.size) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()))) } } @@ -228,7 +237,7 @@ class VisibleRegionTest : BaseTest() { val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertTrue(filtered.size == 1) + assertEquals(1, filtered.size) assertTrue(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f))) } } @@ -250,14 +259,17 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), + mapboxMap.getLatLngFromScreenCoords(mapView.width / 4f, 0f), + mapboxMap.getLatLngFromScreenCoords(mapView.width * 3f / 4f, mapView.height / 2f) + .also { it.longitude += 360 } ) mapboxMap.setPadding(mapView.width / 4, 0, 0, 0) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertTrue(filtered.size == 6) + assertEquals(5, filtered.size) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f))) } } @@ -267,7 +279,6 @@ class VisibleRegionTest : BaseTest() { validateTestSetup() invoke(mapboxMap) { ui: UiController, mapboxMap: MapboxMap -> mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng(0.0, 180.0), 8.0)) - ui.loopMainThreadForAtLeast(5000) val latLngs = listOf( mapboxMap.getLatLngFromScreenCoords(0f, 0f), mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, 0f), @@ -280,14 +291,17 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), + mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 4f), + mapboxMap.getLatLngFromScreenCoords(mapView.width.toFloat(), mapView.height * 3f / 4f) + .also { it.longitude += 360 } ) mapboxMap.setPadding(0, mapView.height / 4, 0, 0) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertTrue(filtered.size == 6) + assertEquals(5, filtered.size) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, 0f))) } } @@ -309,14 +323,17 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), + mapboxMap.getLatLngFromScreenCoords(mapView.width / 4f, 0f), + mapboxMap.getLatLngFromScreenCoords(mapView.width * 3f / 4f, mapView.height / 2f) + .also { it.longitude += 360 } ) mapboxMap.setPadding(0, 0, mapView.width / 4, 0) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertTrue(filtered.size == 6) + assertEquals(5, filtered.size) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width.toFloat(), mapView.height / 2f))) } } @@ -338,14 +355,17 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), + mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 4f), + mapboxMap.getLatLngFromScreenCoords(mapView.width.toFloat(), mapView.height * 3f / 4f) + .also { it.longitude += 360 } ) mapboxMap.setPadding(0, 0, 0, mapView.height / 4) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertTrue(filtered.size == 6) + assertEquals(5, filtered.size) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()))) } } @@ -355,7 +375,7 @@ class VisibleRegionTest : BaseTest() { validateTestSetup() invoke(mapboxMap) { _: UiController, mapboxMap: MapboxMap -> mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng(0.0, 0.0), 8.0)) - val d = Math.min(mapboxMap.width, mapboxMap.height) / 4; + val d = Math.min(mapboxMap.width, mapboxMap.height) / 4 val latLngs = listOf( mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f - d / 2f, mapView.height / 2f), 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 c91afe9b60..054069f92c 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 @@ -3,6 +3,8 @@ package com.mapbox.mapboxsdk.testapp.activity; import android.support.annotation.CallSuper; import android.support.annotation.UiThread; import android.support.test.rule.ActivityTestRule; + +import com.mapbox.mapboxsdk.AppCenter; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; @@ -22,7 +24,7 @@ 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 { +public abstract class BaseTest extends AppCenter { private static final int WAIT_TIMEOUT = 30; //seconds @@ -46,7 +48,7 @@ public abstract class BaseTest { @After @CallSuper public void afterTest() { - // override to add logic + super.afterTest(); } @UiThread diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/fragment/MapDialogFragmentTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/fragment/MapDialogFragmentTest.kt index 2731b20db7..2abee8095c 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/fragment/MapDialogFragmentTest.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/fragment/MapDialogFragmentTest.kt @@ -7,6 +7,7 @@ import android.support.test.espresso.matcher.ViewMatchers.withId import android.support.test.filters.LargeTest import android.support.test.rule.ActivityTestRule import android.support.test.runner.AndroidJUnit4 +import com.mapbox.mapboxsdk.AppCenter import com.mapbox.mapboxsdk.testapp.R import com.mapbox.mapboxsdk.testapp.action.WaitAction import com.mapbox.mapboxsdk.testapp.activity.maplayout.MapInDialogActivity @@ -20,7 +21,7 @@ import org.junit.runner.RunWith */ @RunWith(AndroidJUnit4::class) @LargeTest -class MapDialogFragmentTest { +class MapDialogFragmentTest : AppCenter() { @get:Rule var activityRule: ActivityTestRule<MapInDialogActivity> = ActivityTestRule(MapInDialogActivity::class.java) diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/maps/ImageMissingTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/maps/ImageMissingTest.kt index 4de4b1d55b..539cc85035 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/maps/ImageMissingTest.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/maps/ImageMissingTest.kt @@ -2,6 +2,7 @@ package com.mapbox.mapboxsdk.testapp.maps import android.support.test.rule.ActivityTestRule import android.support.test.runner.AndroidJUnit4 +import com.mapbox.mapboxsdk.AppCenter import com.mapbox.mapboxsdk.maps.MapView import com.mapbox.mapboxsdk.maps.Style import com.mapbox.mapboxsdk.testapp.R @@ -16,7 +17,7 @@ import java.util.concurrent.TimeUnit import java.util.concurrent.TimeoutException @RunWith(AndroidJUnit4::class) -class ImageMissingTest { +class ImageMissingTest : AppCenter(){ @Rule @JvmField diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/maps/RemoveUnusedImagesTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/maps/RemoveUnusedImagesTest.kt index d42494b3e9..492a75b7cf 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/maps/RemoveUnusedImagesTest.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/maps/RemoveUnusedImagesTest.kt @@ -3,6 +3,7 @@ package com.mapbox.mapboxsdk.testapp.maps import android.graphics.Bitmap import android.support.test.rule.ActivityTestRule import android.support.test.runner.AndroidJUnit4 +import com.mapbox.mapboxsdk.AppCenter import com.mapbox.mapboxsdk.camera.CameraUpdateFactory import com.mapbox.mapboxsdk.geometry.LatLng import com.mapbox.mapboxsdk.maps.MapView @@ -20,7 +21,7 @@ import java.util.concurrent.TimeUnit import java.util.concurrent.TimeoutException @RunWith(AndroidJUnit4::class) -class RemoveUnusedImagesTest { +class RemoveUnusedImagesTest : AppCenter() { @Rule @JvmField diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/offline/CacheTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/offline/CacheTest.kt new file mode 100644 index 0000000000..299e193c96 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/offline/CacheTest.kt @@ -0,0 +1,89 @@ +package com.mapbox.mapboxsdk.testapp.offline + +import android.content.Context +import android.support.test.rule.ActivityTestRule +import android.support.test.runner.AndroidJUnit4 +import com.mapbox.mapboxsdk.offline.OfflineManager +import com.mapbox.mapboxsdk.testapp.activity.FeatureOverviewActivity +import org.junit.Assert +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import java.util.concurrent.CountDownLatch + +@RunWith(AndroidJUnit4::class) +class CacheTest { + + @Rule + @JvmField + var rule = ActivityTestRule(FeatureOverviewActivity::class.java) + + private val context: Context by lazy { rule.activity } + + private val countDownLatch = CountDownLatch(1) + + @Test + fun testSetMaximumAmbientCacheSize() { + rule.activity.runOnUiThread { + OfflineManager.getInstance(context).setMaximumAmbientCacheSize(10000000, object : OfflineManager.FileSourceCallback { + override fun onSuccess() { + countDownLatch.countDown() + } + + override fun onError(message: String) { + Assert.assertNull("onError should not be called", message) + } + }) + } + countDownLatch.await() + } + + @Test + fun testSetClearAmbientCache() { + rule.activity.runOnUiThread { + OfflineManager.getInstance(context).clearAmbientCache(object : OfflineManager.FileSourceCallback { + override fun onSuccess() { + countDownLatch.countDown() + } + + override fun onError(message: String) { + Assert.assertNull("onError should not be called", message) + } + }) + } + countDownLatch.await() + } + + @Test + fun testSetInvalidateAmbientCache() { + rule.activity.runOnUiThread { + OfflineManager.getInstance(context).invalidateAmbientCache(object : OfflineManager.FileSourceCallback { + override fun onSuccess() { + countDownLatch.countDown() + } + + override fun onError(message: String) { + Assert.assertNull("onError should not be called", message) + } + }) + } + countDownLatch.await() + } + + @Test + fun testSetResetDatabase() { + rule.activity.runOnUiThread { + OfflineManager.getInstance(context).resetDatabase(object : OfflineManager.FileSourceCallback { + override fun onSuccess() { + countDownLatch.countDown() + } + + override fun onError(message: String) { + Assert.assertNull("onError should not be called", message) + } + }) + } + countDownLatch.await() + } + +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/offline/OfflineManagerTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/offline/OfflineManagerTest.kt index 8e5f3f7c5f..6b73623ae7 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/offline/OfflineManagerTest.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/offline/OfflineManagerTest.kt @@ -3,6 +3,7 @@ package com.mapbox.mapboxsdk.testapp.offline import android.content.Context import android.support.test.rule.ActivityTestRule import android.support.test.runner.AndroidJUnit4 +import com.mapbox.mapboxsdk.AppCenter import com.mapbox.mapboxsdk.offline.OfflineManager import com.mapbox.mapboxsdk.offline.OfflineRegion import com.mapbox.mapboxsdk.storage.FileSource @@ -18,7 +19,7 @@ import java.util.concurrent.CountDownLatch @FixMethodOrder(MethodSorters.NAME_ASCENDING) @RunWith(AndroidJUnit4::class) -class OfflineManagerTest { +class OfflineManagerTest : AppCenter() { companion object { private const val TEST_DB_FILE_NAME = "offline_test.db" @@ -34,7 +35,7 @@ class OfflineManagerTest { @Test(timeout = 30_000) fun a_copyFileFromAssets() { val latch = CountDownLatch(1) - rule.runOnUiThread { + rule.activity.runOnUiThread { FileUtils.CopyFileFromAssetsTask(rule.activity, object : FileUtils.OnFileCopiedFromAssetsListener { override fun onFileCopiedFromAssets() { latch.countDown() @@ -51,7 +52,7 @@ class OfflineManagerTest { @Test(timeout = 30_000) fun b_mergeRegion() { val latch = CountDownLatch(1) - rule.runOnUiThread { + rule.activity.runOnUiThread { OfflineManager.getInstance(context).mergeOfflineRegions( FileSource.getResourcesCachePath(rule.activity) + "/" + TEST_DB_FILE_NAME, object : OfflineManager.MergeOfflineRegionsCallback { @@ -71,7 +72,7 @@ class OfflineManagerTest { @Test(timeout = 30_000) fun c_listRegion() { val latch = CountDownLatch(1) - rule.runOnUiThread { + rule.activity.runOnUiThread { OfflineManager.getInstance(context).listOfflineRegions(object : OfflineManager.ListOfflineRegionsCallback { override fun onList(offlineRegions: Array<out OfflineRegion>?) { assert(offlineRegions?.size == 1) @@ -88,9 +89,26 @@ class OfflineManagerTest { } @Test(timeout = 30_000) - fun d_deleteRegion() { + fun d_invalidateRegion() { val latch = CountDownLatch(1) - rule.runOnUiThread { + rule.activity.runOnUiThread { + mergedRegion.invalidate(object : OfflineRegion.OfflineRegionInvalidateCallback { + override fun onInvalidate() { + latch.countDown() + } + + override fun onError(error: String?) { + throw RuntimeException("Unable to delete region") + } + }) + } + latch.await() + } + + @Test(timeout = 30_000) + fun e_deleteRegion() { + val latch = CountDownLatch(1) + rule.activity.runOnUiThread { mergedRegion.delete(object : OfflineRegion.OfflineRegionDeleteCallback { override fun onDelete() { latch.countDown() diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/offline/OfflineUtilsTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/offline/OfflineUtilsTest.java index 40fba08c25..48eb8e832d 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/offline/OfflineUtilsTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/offline/OfflineUtilsTest.java @@ -1,6 +1,8 @@ package com.mapbox.mapboxsdk.testapp.offline; import android.support.test.runner.AndroidJUnit4; + +import com.mapbox.mapboxsdk.AppCenter; import com.mapbox.mapboxsdk.testapp.utils.OfflineUtils; import org.junit.Test; import org.junit.runner.RunWith; @@ -13,7 +15,7 @@ import static junit.framework.Assert.assertEquals; import static junit.framework.TestCase.assertTrue; @RunWith(AndroidJUnit4.class) -public class OfflineUtilsTest { +public class OfflineUtilsTest extends AppCenter { private static final String REGION_NAME = "hello world"; private static final String CONVERTED_REGION_NAME = "{\"FIELD_REGION_NAME\":\"hello world\"}"; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/render/RenderTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/render/RenderTest.java index 14b138e917..c74e110b6c 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/render/RenderTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/render/RenderTest.java @@ -7,6 +7,8 @@ import android.support.test.espresso.IdlingResourceTimeoutException; import android.support.test.rule.ActivityTestRule; import android.support.test.rule.GrantPermissionRule; import android.support.test.runner.AndroidJUnit4; + +import com.mapbox.mapboxsdk.AppCenter; import com.mapbox.mapboxsdk.testapp.activity.render.RenderTestActivity; import com.mapbox.mapboxsdk.testapp.utils.SnapshotterIdlingResource; import org.junit.After; @@ -28,7 +30,7 @@ import static android.support.test.espresso.matcher.ViewMatchers.withId; * Instrumentation render tests */ @RunWith(AndroidJUnit4.class) -public class RenderTest { +public class RenderTest extends AppCenter { private static final int RENDER_TEST_TIMEOUT = 30; private SnapshotterIdlingResource idlingResource; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/storage/FileSourceMapTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/storage/FileSourceMapTest.kt index 5e3489d755..7a5801a814 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/storage/FileSourceMapTest.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/storage/FileSourceMapTest.kt @@ -3,6 +3,7 @@ package com.mapbox.mapboxsdk.testapp.storage import android.support.test.annotation.UiThreadTest import android.support.test.rule.ActivityTestRule import android.support.test.runner.AndroidJUnit4 +import com.mapbox.mapboxsdk.AppCenter import com.mapbox.mapboxsdk.storage.FileSource import com.mapbox.mapboxsdk.testapp.activity.espresso.EspressoTestActivity import junit.framework.Assert @@ -15,7 +16,7 @@ import org.junit.runner.RunWith import java.util.concurrent.CountDownLatch @RunWith(AndroidJUnit4::class) -open class FileSourceMapTest { +open class FileSourceMapTest : AppCenter() { private lateinit var fileSourceTestUtils: FileSourceTestUtils diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/storage/FileSourceStandaloneTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/storage/FileSourceStandaloneTest.kt index 08a15b0c54..428d0ed757 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/storage/FileSourceStandaloneTest.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/storage/FileSourceStandaloneTest.kt @@ -3,6 +3,7 @@ package com.mapbox.mapboxsdk.testapp.storage import android.support.test.annotation.UiThreadTest import android.support.test.rule.ActivityTestRule import android.support.test.runner.AndroidJUnit4 +import com.mapbox.mapboxsdk.AppCenter import com.mapbox.mapboxsdk.storage.FileSource import com.mapbox.mapboxsdk.testapp.activity.FeatureOverviewActivity import org.junit.* @@ -12,7 +13,7 @@ import java.util.concurrent.CountDownLatch import java.util.concurrent.TimeUnit @RunWith(AndroidJUnit4::class) -class FileSourceStandaloneTest { +class FileSourceStandaloneTest : AppCenter() { private lateinit var fileSourceTestUtils: FileSourceTestUtils private lateinit var fileSource: FileSource diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/storage/FileSourceTestUtils.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/storage/FileSourceTestUtils.kt index c79d3b2752..0010880414 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/storage/FileSourceTestUtils.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/storage/FileSourceTestUtils.kt @@ -2,12 +2,13 @@ package com.mapbox.mapboxsdk.testapp.storage import android.app.Activity import android.support.annotation.WorkerThread +import com.mapbox.mapboxsdk.AppCenter import com.mapbox.mapboxsdk.storage.FileSource import junit.framework.Assert import java.io.File import java.util.concurrent.CountDownLatch -class FileSourceTestUtils(private val activity: Activity) { +class FileSourceTestUtils(private val activity: Activity) : AppCenter() { val originalPath = FileSource.getResourcesCachePath(activity) val testPath = "$originalPath/test" val testPath2 = "$originalPath/test2" |