[android] MapboxMap.animate() and Mapbox.easeCamera() should throw IllegalArgument (#10321)

if non-positive duration is passed in
This commit is contained in:
Osana Babayan
2017-10-30 16:48:56 -07:00
committed by GitHub
parent 375f9f94b6
commit 8c716fde96
2 changed files with 54 additions and 0 deletions

View File

@@ -834,6 +834,10 @@ public final class MapboxMap {
*/
public final void easeCamera(final CameraUpdate update, final int durationMs, final boolean easingInterpolator,
final MapboxMap.CancelableCallback callback, final boolean isDismissable) {
if (durationMs <= 0) {
throw new IllegalArgumentException("Null duration passed into easeCamera");
}
new Handler().post(new Runnable() {
@Override
public void run() {
@@ -906,6 +910,9 @@ public final class MapboxMap {
*/
public final void animateCamera(final CameraUpdate update, final int durationMs,
final MapboxMap.CancelableCallback callback) {
if (durationMs <= 0) {
throw new IllegalArgumentException("Null duration passed into animageCamera");
}
new Handler().post(new Runnable() {
@Override
public void run() {

View File

@@ -0,0 +1,47 @@
package com.mapbox.mapboxsdk.maps;
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.maps.widgets.MyLocationViewSettings;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.mockito.Mockito.mock;
public class MapboxMapTest {
private MapboxMap mapboxMap;
@Before
public void beforeTest() {
mapboxMap = new MapboxMap(mock(NativeMapView.class),
mock(Transform.class),
mock(UiSettings.class),
mock(TrackingSettings.class),
mock(MyLocationViewSettings.class),
mock(Projection.class),
mock(MapboxMap.OnRegisterTouchListener.class),
mock(AnnotationManager.class),
mock(CameraChangeDispatcher.class));
}
@Test(expected = IllegalArgumentException.class)
public void testAnimateCameraChecksDurationPositive() {
mapboxMap.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(30.0, 30.0)),
0, null);
}
@Test(expected = IllegalArgumentException.class)
public void testEaseCameraChecksDurationPositive() {
mapboxMap.easeCamera(CameraUpdateFactory.newLatLng(new LatLng(30.0, 30.0)),
0, null);
}
@After
public void afterTest() {
mapboxMap = null;
}
}