Index: device/geolocation/android/junit/src/org/chromium/device/geolocation/LocationProviderTest.java |
diff --git a/device/geolocation/android/junit/src/org/chromium/device/geolocation/LocationProviderTest.java b/device/geolocation/android/junit/src/org/chromium/device/geolocation/LocationProviderTest.java |
deleted file mode 100644 |
index 5b0945996b437cf9255dcc440f4a10ea0fdaabaf..0000000000000000000000000000000000000000 |
--- a/device/geolocation/android/junit/src/org/chromium/device/geolocation/LocationProviderTest.java |
+++ /dev/null |
@@ -1,194 +0,0 @@ |
-// Copyright 2017 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.device.geolocation; |
- |
-import static org.junit.Assert.assertFalse; |
-import static org.junit.Assert.assertNotNull; |
-import static org.junit.Assert.assertTrue; |
-import static org.mockito.Mockito.doAnswer; |
- |
-import android.content.Context; |
-import android.location.LocationManager; |
- |
-import com.google.android.gms.common.api.GoogleApiClient; |
-import com.google.android.gms.location.FusedLocationProviderApi; |
- |
-import org.junit.Before; |
-import org.junit.Test; |
-import org.junit.runner.RunWith; |
-import org.mockito.Mock; |
-import org.mockito.Mockito; |
-import org.mockito.MockitoAnnotations; |
-import org.mockito.invocation.InvocationOnMock; |
-import org.mockito.stubbing.Answer; |
-import org.robolectric.ParameterizedRobolectricTestRunner; |
-import org.robolectric.ParameterizedRobolectricTestRunner.Parameters; |
-import org.robolectric.Shadows; |
-import org.robolectric.annotation.Config; |
-import org.robolectric.internal.Shadow; |
-import org.robolectric.shadows.ShadowLocationManager; |
-import org.robolectric.shadows.ShadowLog; // remove me ? |
- |
-import org.chromium.base.ThreadUtils; |
-import org.chromium.base.test.util.Feature; |
- |
-import java.util.Arrays; |
-import java.util.Collection; |
- |
-/** |
- * Test suite for Java Geolocation. |
- */ |
-@RunWith(ParameterizedRobolectricTestRunner.class) |
-@Config(sdk = 21, manifest = Config.NONE) |
-public class LocationProviderTest { |
- public static enum LocationProviderType { MOCK, ANDROID, GMS_CORE } |
- |
- @Parameters |
- public static Collection<Object[]> data() { |
- return Arrays.asList(new Object[][] {{LocationProviderType.MOCK}, |
- {LocationProviderType.ANDROID}, {LocationProviderType.GMS_CORE}}); |
- } |
- |
- @Mock |
- private Context mContext; |
- |
- // Member variables for LocationProviderType.GMS_CORE case. |
- @Mock |
- private GoogleApiClient mGoogleApiClient; |
- private boolean mGoogleApiClientIsConnected; |
- |
- // Member variables for LocationProviderType.ANDROID case. |
- private LocationManager mLocationManager; |
- private ShadowLocationManager mShadowLocationManager; |
- |
- private LocationProviderAdapter mLocationProviderAdapter; |
- |
- private final LocationProviderType mApi; |
- |
- public LocationProviderTest(LocationProviderType api) { |
- mApi = api; |
- } |
- |
- @Before |
- public void setUp() { |
- ShadowLog.stream = System.out; |
- MockitoAnnotations.initMocks(this); |
- |
- mContext = Mockito.mock(Context.class); |
- } |
- |
- /** |
- * Verify a normal start/stop call pair with the given LocationProvider. |
- */ |
- @Test |
- @Feature({"Location"}) |
- public void testStartStop() { |
- assertTrue("Should be on UI thread", ThreadUtils.runningOnUiThread()); |
- |
- setLocationProvider(); |
- |
- createLocationProviderAdapter(); |
- startLocationProviderAdapter(false); |
- stopLocationProviderAdapter(); |
- } |
- |
- /** |
- * Verify a start/upgrade/stop call sequencewith the given LocationProvider. |
- */ |
- @Test |
- @Feature({"Location"}) |
- public void testStartUpgradeStop() { |
- assertTrue("Should be on UI thread", ThreadUtils.runningOnUiThread()); |
- |
- setLocationProvider(); |
- |
- createLocationProviderAdapter(); |
- startLocationProviderAdapter(false); |
- startLocationProviderAdapter(true); |
- stopLocationProviderAdapter(); |
- } |
- |
- private void createLocationProviderAdapter() { |
- mLocationProviderAdapter = LocationProviderAdapter.create(mContext); |
- assertNotNull("LocationProvider", mLocationProviderAdapter); |
- } |
- |
- private void setLocationProvider() { |
- if (mApi == LocationProviderType.MOCK) { |
- setLocationProviderMock(); |
- } else if (mApi == LocationProviderType.ANDROID) { |
- setLocationProviderAndroid(); |
- } else if (mApi == LocationProviderType.GMS_CORE) { |
- setLocationProviderGmsCore(); |
- } else { |
- assert false; |
- } |
- } |
- |
- private void setLocationProviderMock() { |
- LocationProviderFactory.setLocationProviderImpl(new MockLocationProvider()); |
- } |
- |
- private void setLocationProviderAndroid() { |
- LocationProviderAndroid locationProviderAndroid = new LocationProviderAndroid(mContext); |
- |
- // Robolectric has a ShadowLocationManager class that mocks the behaviour of the real |
- // class very closely. Use it here. |
- mLocationManager = Shadow.newInstanceOf(LocationManager.class); |
- mShadowLocationManager = Shadows.shadowOf(mLocationManager); |
- locationProviderAndroid.setLocationManagerForTesting(mLocationManager); |
- LocationProviderFactory.setLocationProviderImpl(locationProviderAndroid); |
- } |
- |
- private void setLocationProviderGmsCore() { |
- // Robolectric has a ShadowGoogleApiClientBuilder class that mocks the behaviour of the real |
- // class very closely, but it's not available in our build |
- mGoogleApiClient = Mockito.mock(GoogleApiClient.class); |
- mGoogleApiClientIsConnected = false; |
- doAnswer(new Answer<Boolean>() { |
- public Boolean answer(InvocationOnMock invocation) { |
- return mGoogleApiClientIsConnected; |
- } |
- }) |
- .when(mGoogleApiClient) |
- .isConnected(); |
- |
- doAnswer(new Answer<Void>() { |
- public Void answer(InvocationOnMock invocation) { |
- mGoogleApiClientIsConnected = true; |
- return null; |
- } |
- }) |
- .when(mGoogleApiClient) |
- .connect(); |
- |
- doAnswer(new Answer<Void>() { |
- public Void answer(InvocationOnMock invocation) { |
- mGoogleApiClientIsConnected = false; |
- return null; |
- } |
- }) |
- .when(mGoogleApiClient) |
- .disconnect(); |
- |
- FusedLocationProviderApi fusedLocationProviderApi = |
- Mockito.mock(FusedLocationProviderApi.class); |
- |
- LocationProviderGmsCore locationProviderGmsCore = |
- new LocationProviderGmsCore(mGoogleApiClient, fusedLocationProviderApi); |
- |
- LocationProviderFactory.setLocationProviderImpl(locationProviderGmsCore); |
- } |
- |
- private void startLocationProviderAdapter(boolean highResolution) { |
- mLocationProviderAdapter.start(highResolution); |
- assertTrue("Should be running", mLocationProviderAdapter.isRunning()); |
- } |
- |
- private void stopLocationProviderAdapter() { |
- mLocationProviderAdapter.stop(); |
- assertFalse("Should have stopped", mLocationProviderAdapter.isRunning()); |
- } |
-} |