Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(489)

Unified Diff: device/geolocation/android/junit/src/org/chromium/device/geolocation/LocationProviderTest.java

Issue 2832983003: Revert of GeoLocation: add support for GmsCore location provider (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « device/geolocation/android/javatests/src/org/chromium/device/geolocation/MockLocationProvider.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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());
- }
-}
« no previous file with comments | « device/geolocation/android/javatests/src/org/chromium/device/geolocation/MockLocationProvider.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698