@josuelmm/cordova-background-geolocation 4.2.2 → 4.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.npmignore +11 -0
- package/CHANGELOG.md +213 -0
- package/HISTORY.md +73 -0
- package/README.md +45 -74
- package/android/CDVBackgroundGeolocation/src/main/java/com/marianhello/bgloc/cordova/ConfigMapper.java +24 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/tenforwardconsulting/bgloc/cordova/BackgroundGeolocationPlugin.java +61 -1
- package/android/common/src/main/AndroidManifest.xml +1 -1
- package/android/common/src/main/java/com/marianhello/bgloc/BootCompletedReceiver.java +6 -3
- package/android/common/src/main/java/com/marianhello/bgloc/Config.java +65 -1
- package/android/common/src/main/java/com/marianhello/bgloc/PostLocationTask.java +1 -1
- package/android/common/src/main/java/com/marianhello/bgloc/data/BackgroundLocation.java +94 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/ConfigJsonMapper.java +205 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/LocationTemplateFactory.java +6 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationContract.java +5 -1
- package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationDAO.java +32 -1
- package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationContract.java +12 -2
- package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationDAO.java +33 -2
- package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteOpenHelper.java +15 -1
- package/android/common/src/main/java/com/marianhello/bgloc/provider/DistanceFilterLocationProvider.java +23 -8
- package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceImpl.java +246 -21
- package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceProxy.java +5 -2
- package/android/common/src/main/java/com/marianhello/bgloc/sync/BatchManager.java +46 -13
- package/ios/CDVBackgroundGeolocation/CDVBackgroundGeolocation.m +23 -1
- package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.m +111 -5
- package/ios/common/BackgroundGeolocation/MAURBackgroundSync.m +20 -0
- package/ios/common/BackgroundGeolocation/MAURConfig.h +2 -0
- package/ios/common/BackgroundGeolocation/MAURConfig.m +16 -2
- package/ios/common/BackgroundGeolocation/MAURConfigurationContract.h +3 -0
- package/ios/common/BackgroundGeolocation/MAURConfigurationContract.m +3 -1
- package/ios/common/BackgroundGeolocation/MAURGeolocationOpenHelper.m +15 -1
- package/ios/common/BackgroundGeolocation/MAURLocation.h +12 -0
- package/ios/common/BackgroundGeolocation/MAURLocation.m +33 -4
- package/ios/common/BackgroundGeolocation/MAURLocationContract.h +4 -0
- package/ios/common/BackgroundGeolocation/MAURLocationContract.m +5 -1
- package/ios/common/BackgroundGeolocation/MAURPostLocationTask.h +9 -0
- package/ios/common/BackgroundGeolocation/MAURPostLocationTask.m +59 -1
- package/ios/common/BackgroundGeolocation/MAURSQLiteConfigurationDAO.m +54 -4
- package/ios/common/BackgroundGeolocation/MAURSQLiteLocationDAO.h +12 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteLocationDAO.m +125 -5
- package/package.json +36 -1
- package/plugin.xml +3 -2
- package/www/BackgroundGeolocation.d.ts +114 -3
- package/www/BackgroundGeolocation.js +11 -4
- package/CLAUDE.md +0 -56
- package/android/CDVBackgroundGeolocation/src/test/java/com/marianhello/ConfigMapperTest.java +0 -220
- package/android/common/src/androidTest/java/com/marianhello/bgloc/BackgroundGeolocationFacadeTest.java +0 -45
- package/android/common/src/androidTest/java/com/marianhello/bgloc/BatchManagerTest.java +0 -570
- package/android/common/src/androidTest/java/com/marianhello/bgloc/ConfigTest.java +0 -76
- package/android/common/src/androidTest/java/com/marianhello/bgloc/ContentProviderLocationDAOTest.java +0 -437
- package/android/common/src/androidTest/java/com/marianhello/bgloc/DBLogReaderTest.java +0 -95
- package/android/common/src/androidTest/java/com/marianhello/bgloc/LocationContentProviderTest.java +0 -159
- package/android/common/src/androidTest/java/com/marianhello/bgloc/LocationServiceProxyTest.java +0 -161
- package/android/common/src/androidTest/java/com/marianhello/bgloc/LocationServiceTest.java +0 -247
- package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteConfigurationDAOTest.java +0 -200
- package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteLocationDAOTest.java +0 -457
- package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteLocationDAOThreadTest.java +0 -96
- package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteOpenHelperTest.java +0 -225
- package/android/common/src/androidTest/java/com/marianhello/bgloc/TestPluginDelegate.java +0 -46
- package/android/common/src/androidTest/java/com/marianhello/bgloc/TestResourceResolver.java +0 -14
- package/android/common/src/androidTest/java/com/marianhello/bgloc/provider/MockLocationProvider.java +0 -50
- package/android/common/src/androidTest/java/com/marianhello/bgloc/provider/TestLocationProviderFactory.java +0 -17
- package/android/common/src/androidTest/java/com/marianhello/bgloc/sqlite/SQLiteOpenHelper10.java +0 -92
- package/android/common/src/androidTest/java/com/marianhello/bgloc/test/LocationProviderTestCase.java +0 -107
- package/android/common/src/androidTest/java/com/marianhello/bgloc/test/TestConstants.java +0 -5
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/ArrayListLocationTemplateTest.java +0 -82
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/BackgroundLocationTest.java +0 -128
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/ConfigTest.java +0 -191
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/DBLogReaderTest.java +0 -37
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/HashMapLocationTemplateTest.java +0 -216
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/HttpPostServiceTest.java +0 -223
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/LocationTemplateFactoryTest.java +0 -50
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/PostLocationTaskTest.java +0 -180
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/TestHelper.java +0 -16
- package/ios/common/BackgroundGeolocationTests/Info.plist +0 -24
- package/ios/common/BackgroundGeolocationTests/MAURBackgroundLocationTest.m +0 -185
- package/ios/common/BackgroundGeolocationTests/MAURConfigTest.m +0 -161
- package/ios/common/BackgroundGeolocationTests/MAURGeolocationOpenHelperTest.m +0 -102
- package/ios/common/BackgroundGeolocationTests/MAURLocationTest.m +0 -216
- package/ios/common/BackgroundGeolocationTests/MAURLocationUploaderTest.m +0 -55
- package/ios/common/BackgroundGeolocationTests/MAURLogReaderTest.m +0 -43
- package/ios/common/BackgroundGeolocationTests/MAURSQLiteConfigurationDAOTest.m +0 -102
- package/ios/common/BackgroundGeolocationTests/MAURSQLiteHelperTest.m +0 -41
- package/ios/common/BackgroundGeolocationTests/MAURSQLiteLocationDAOTests.m +0 -240
- package/ios/common/BackgroundGeolocationTests/MAURSQLiteLocationDAOThreadTest.m +0 -84
- package/ios/common/BackgroundGeolocationTests/MAURSQLiteOpenHelperTest.m +0 -144
- package/ios/common/scripts/xcode-refactor.js +0 -184
|
@@ -3,10 +3,6 @@
|
|
|
3
3
|
|
|
4
4
|
This is fork of christocracy cordova-plugin-background-geolocation plugin
|
|
5
5
|
https://github.com/christocracy/cordova-plugin-background-geolocation
|
|
6
|
-
|
|
7
|
-
Differences to original version:
|
|
8
|
-
|
|
9
|
-
1. new method isLocationEnabled
|
|
10
6
|
*/
|
|
11
7
|
|
|
12
8
|
var exec = require('cordova/exec');
|
|
@@ -250,6 +246,17 @@ var BackgroundGeolocation = {
|
|
|
250
246
|
return execWithPromise(success, failure, 'triggerSOS', [payload || {}]);
|
|
251
247
|
},
|
|
252
248
|
|
|
249
|
+
// v4.5 — runtime permission helpers (Android). Resolve with { granted: bool, denied?: string[] }.
|
|
250
|
+
requestBackgroundLocationPermission: function (success, failure) {
|
|
251
|
+
return execWithPromise(success, failure, 'requestBackgroundLocationPermission');
|
|
252
|
+
},
|
|
253
|
+
requestActivityRecognitionPermission: function (success, failure) {
|
|
254
|
+
return execWithPromise(success, failure, 'requestActivityRecognitionPermission');
|
|
255
|
+
},
|
|
256
|
+
requestNotificationPermission: function (success, failure) {
|
|
257
|
+
return execWithPromise(success, failure, 'requestNotificationPermission');
|
|
258
|
+
},
|
|
259
|
+
|
|
253
260
|
startTask: function (success, failure) {
|
|
254
261
|
return execWithPromise(success,
|
|
255
262
|
failure,
|
package/CLAUDE.md
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# Global Instructions
|
|
2
|
-
|
|
3
|
-
## Ejecución
|
|
4
|
-
Pensar antes de actuar.
|
|
5
|
-
Ejecutar herramienta primero.
|
|
6
|
-
Leer archivos existentes antes de escribir código.
|
|
7
|
-
Abrir solo archivos relevantes.
|
|
8
|
-
Usar rg antes de abrir muchos archivos.
|
|
9
|
-
No releer archivos ya leídos, salvo cambio posible.
|
|
10
|
-
Leer por rangos, no completo.
|
|
11
|
-
Omitir archivos mayores de 100 KB, salvo necesidad explícita.
|
|
12
|
-
Ignorar vendor, node_modules, dist, build, storage/logs y binarios.
|
|
13
|
-
Preferir editar antes que reescribir completo.
|
|
14
|
-
Hacer diffs mínimos.
|
|
15
|
-
No tocar código no relacionado.
|
|
16
|
-
No refactorizar sin pedirlo.
|
|
17
|
-
No cambiar arquitectura sin permiso.
|
|
18
|
-
Preguntar antes de instalar paquetes.
|
|
19
|
-
Preguntar antes de borrar archivos.
|
|
20
|
-
Preguntar antes de migraciones destructivas.
|
|
21
|
-
|
|
22
|
-
## Validación
|
|
23
|
-
Probar código antes de darlo por terminado.
|
|
24
|
-
Validar con comando específico.
|
|
25
|
-
No ejecutar tests pesados sin pedirlo.
|
|
26
|
-
Reportar solo errores reales.
|
|
27
|
-
Ejecutar /cost en sesiones largas.
|
|
28
|
-
Iniciar nueva sesión si tarea cambia.
|
|
29
|
-
|
|
30
|
-
## Respuesta
|
|
31
|
-
Mostrar resultado y parar.
|
|
32
|
-
Salida concisa.
|
|
33
|
-
Razonamiento exhaustivo interno.
|
|
34
|
-
Cero relleno.
|
|
35
|
-
Sin introducciones aduladoras.
|
|
36
|
-
Sin cierres superfluos.
|
|
37
|
-
Frases de 3 a 6 palabras.
|
|
38
|
-
Sin artículos innecesarios.
|
|
39
|
-
Solo bugs y cambios.
|
|
40
|
-
Sin explicación extra.
|
|
41
|
-
No repetir input.
|
|
42
|
-
Respetar formato definido.
|
|
43
|
-
No asumir datos.
|
|
44
|
-
Preguntar solo si hay bloqueo real.
|
|
45
|
-
Reportar solo archivos modificados.
|
|
46
|
-
|
|
47
|
-
## Formato por defecto
|
|
48
|
-
Cambios:
|
|
49
|
-
- archivo: resumen corto
|
|
50
|
-
|
|
51
|
-
Validación:
|
|
52
|
-
- comando ejecutado
|
|
53
|
-
- resultado
|
|
54
|
-
|
|
55
|
-
Pendiente:
|
|
56
|
-
- solo si falta dato
|
package/android/CDVBackgroundGeolocation/src/test/java/com/marianhello/ConfigMapperTest.java
DELETED
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
package com.marianhello;
|
|
2
|
-
|
|
3
|
-
import com.marianhello.bgloc.Config;
|
|
4
|
-
import com.marianhello.bgloc.cordova.ConfigMapper;
|
|
5
|
-
import com.marianhello.bgloc.data.ArrayListLocationTemplate;
|
|
6
|
-
import com.marianhello.bgloc.data.HashMapLocationTemplate;
|
|
7
|
-
import com.marianhello.bgloc.data.LocationTemplate;
|
|
8
|
-
import com.marianhello.bgloc.data.LocationTemplateFactory;
|
|
9
|
-
|
|
10
|
-
import junit.framework.Assert;
|
|
11
|
-
|
|
12
|
-
import org.json.JSONException;
|
|
13
|
-
import org.json.JSONObject;
|
|
14
|
-
import org.junit.Test;
|
|
15
|
-
import org.junit.runner.RunWith;
|
|
16
|
-
import org.robolectric.RobolectricTestRunner;
|
|
17
|
-
|
|
18
|
-
import java.util.ArrayList;
|
|
19
|
-
import java.util.HashMap;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Created by finch on 15.12.2017.
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
@RunWith(RobolectricTestRunner.class)
|
|
26
|
-
public class ConfigMapperTest {
|
|
27
|
-
@Test
|
|
28
|
-
public void testDefaultToJSONObject() throws JSONException {
|
|
29
|
-
Config config = Config.getDefault();
|
|
30
|
-
JSONObject jConfig = ConfigMapper.toJSONObject(config);
|
|
31
|
-
Assert.assertEquals(config.getStationaryRadius(), jConfig.getDouble("stationaryRadius"), 0f);
|
|
32
|
-
Assert.assertEquals(config.getDistanceFilter().intValue(), jConfig.getInt("distanceFilter"));
|
|
33
|
-
Assert.assertEquals(config.getDesiredAccuracy().intValue(), jConfig.getInt("desiredAccuracy"));
|
|
34
|
-
Assert.assertEquals(config.isDebugging().booleanValue(), jConfig.getBoolean("debug"));
|
|
35
|
-
Assert.assertEquals(config.getNotificationTitle(), jConfig.getString("notificationTitle"));
|
|
36
|
-
Assert.assertEquals(config.getNotificationText(), jConfig.getString("notificationText"));
|
|
37
|
-
Assert.assertEquals(config.getNotificationSyncTitle(), jConfig.getString("notificationSyncTitle"));
|
|
38
|
-
Assert.assertEquals(config.getNotificationSyncText(), jConfig.getString("notificationSyncText"));
|
|
39
|
-
Assert.assertEquals(config.getNotificationSyncCompletedText(), jConfig.getString("notificationSyncCompletedText"));
|
|
40
|
-
Assert.assertEquals(config.getNotificationSyncFailedText(), jConfig.getString("notificationSyncFailedText"));
|
|
41
|
-
Assert.assertEquals(config.getStopOnTerminate().booleanValue(), jConfig.getBoolean("stopOnTerminate"));
|
|
42
|
-
Assert.assertEquals(config.getStartOnBoot().booleanValue(), jConfig.getBoolean("startOnBoot"));
|
|
43
|
-
Assert.assertEquals(config.getLocationProvider().intValue(), jConfig.getInt("locationProvider"));
|
|
44
|
-
Assert.assertEquals(config.getInterval().intValue(), jConfig.getInt("interval"));
|
|
45
|
-
Assert.assertEquals(config.getFastestInterval().intValue(), jConfig.getInt("fastestInterval"));
|
|
46
|
-
Assert.assertEquals(config.getActivitiesInterval().intValue(), jConfig.getInt("activitiesInterval"));
|
|
47
|
-
Assert.assertEquals(config.getNotificationIconColor(), jConfig.getString("notificationIconColor"));
|
|
48
|
-
Assert.assertEquals(config.getLargeNotificationIcon(), jConfig.getString("notificationIconLarge"));
|
|
49
|
-
Assert.assertEquals(config.getSmallNotificationIcon(), jConfig.getString("notificationIconSmall"));
|
|
50
|
-
Assert.assertEquals(config.getStartForeground().booleanValue(), jConfig.getBoolean("startForeground"));
|
|
51
|
-
Assert.assertEquals(config.getStopOnStillActivity().booleanValue(), jConfig.getBoolean("stopOnStillActivity"));
|
|
52
|
-
Assert.assertEquals(config.getUrl(), jConfig.getString("url"));
|
|
53
|
-
Assert.assertEquals(config.getSyncUrl(), jConfig.getString("syncUrl"));
|
|
54
|
-
Assert.assertEquals(config.getSyncThreshold().intValue(), jConfig.getInt("syncThreshold"));
|
|
55
|
-
Assert.assertEquals(Boolean.TRUE.equals(config.getSyncEnabled()), jConfig.getBoolean("sync"));
|
|
56
|
-
Assert.assertEquals(new JSONObject(config.getHttpHeaders()).toString(), jConfig.getJSONObject("httpHeaders").toString());
|
|
57
|
-
Assert.assertEquals(config.getMaxLocations().intValue(), jConfig.getInt("maxLocations"));
|
|
58
|
-
Assert.assertEquals(LocationTemplateFactory.getDefault().toString(), jConfig.get("postTemplate").toString());
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
@Test
|
|
62
|
-
public void testNullableProps() throws JSONException {
|
|
63
|
-
JSONObject json = new JSONObject();
|
|
64
|
-
json.put("url", JSONObject.NULL);
|
|
65
|
-
json.put("syncUrl", JSONObject.NULL);
|
|
66
|
-
json.put("notificationIconColor", JSONObject.NULL);
|
|
67
|
-
json.put("notificationTitle", JSONObject.NULL);
|
|
68
|
-
json.put("notificationText", JSONObject.NULL);
|
|
69
|
-
json.put("notificationIconLarge", JSONObject.NULL);
|
|
70
|
-
json.put("notificationIconSmall", JSONObject.NULL);
|
|
71
|
-
|
|
72
|
-
Config config = ConfigMapper.fromJSONObject(json);
|
|
73
|
-
|
|
74
|
-
Assert.assertEquals(Config.NullString, config.getUrl());
|
|
75
|
-
Assert.assertTrue(config.hasUrl());
|
|
76
|
-
Assert.assertFalse(config.hasValidUrl());
|
|
77
|
-
|
|
78
|
-
Assert.assertEquals(Config.NullString, config.getSyncUrl());
|
|
79
|
-
Assert.assertTrue(config.hasSyncUrl());
|
|
80
|
-
Assert.assertFalse(config.hasValidSyncUrl());
|
|
81
|
-
|
|
82
|
-
Assert.assertEquals(Config.NullString, config.getNotificationIconColor());
|
|
83
|
-
Assert.assertFalse(config.hasNotificationIconColor());
|
|
84
|
-
|
|
85
|
-
Assert.assertEquals(Config.NullString, config.getNotificationTitle());
|
|
86
|
-
Assert.assertTrue(config.hasNotificationTitle());
|
|
87
|
-
|
|
88
|
-
Assert.assertEquals(Config.NullString, config.getNotificationText());
|
|
89
|
-
Assert.assertTrue(config.hasNotificationText());
|
|
90
|
-
|
|
91
|
-
Assert.assertEquals(Config.NullString, config.getLargeNotificationIcon());
|
|
92
|
-
Assert.assertFalse(config.hasLargeNotificationIcon());
|
|
93
|
-
|
|
94
|
-
Assert.assertEquals(Config.NullString, config.getSmallNotificationIcon());
|
|
95
|
-
Assert.assertFalse(config.hasSmallNotificationIcon());
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/** When "sync" is not in JSON, getSyncEnabled() must return true (default). */
|
|
99
|
-
@Test
|
|
100
|
-
public void testSyncDefaultWhenNotInJson() throws JSONException {
|
|
101
|
-
Config config = ConfigMapper.fromJSONObject(new JSONObject());
|
|
102
|
-
Assert.assertTrue("sync not in JSON should default to true", config.getSyncEnabled());
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
@Test
|
|
106
|
-
public void testNullablePropsToJSONObject() throws JSONException {
|
|
107
|
-
Config config = new Config();
|
|
108
|
-
config.setUrl(Config.NullString);
|
|
109
|
-
config.setSyncUrl(Config.NullString);
|
|
110
|
-
config.setNotificationIconColor(Config.NullString);
|
|
111
|
-
config.setNotificationTitle(Config.NullString);
|
|
112
|
-
config.setNotificationText(Config.NullString);
|
|
113
|
-
config.setLargeNotificationIcon(Config.NullString);
|
|
114
|
-
config.setSmallNotificationIcon(Config.NullString);
|
|
115
|
-
|
|
116
|
-
JSONObject json = ConfigMapper.toJSONObject(config);
|
|
117
|
-
|
|
118
|
-
Assert.assertEquals(JSONObject.NULL, json.get("url"));
|
|
119
|
-
Assert.assertEquals(JSONObject.NULL, json.get("syncUrl"));
|
|
120
|
-
Assert.assertEquals(JSONObject.NULL, json.get("notificationIconColor"));
|
|
121
|
-
Assert.assertEquals(JSONObject.NULL, json.get("notificationTitle"));
|
|
122
|
-
Assert.assertEquals(JSONObject.NULL, json.get("notificationText"));
|
|
123
|
-
Assert.assertEquals(JSONObject.NULL, json.get("notificationIconLarge"));
|
|
124
|
-
Assert.assertEquals(JSONObject.NULL, json.get("notificationIconSmall"));
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
@Test
|
|
128
|
-
public void testNullHashMapTemplateToJSONObject() {
|
|
129
|
-
Config config = new Config();
|
|
130
|
-
LocationTemplate tpl = new HashMapLocationTemplate((HashMapLocationTemplate)null);
|
|
131
|
-
config.setTemplate(tpl);
|
|
132
|
-
|
|
133
|
-
try {
|
|
134
|
-
JSONObject jConfig = ConfigMapper.toJSONObject(config);
|
|
135
|
-
Assert.assertEquals(JSONObject.NULL, jConfig.get("postTemplate"));
|
|
136
|
-
} catch (JSONException e) {
|
|
137
|
-
Assert.fail(e.getMessage());
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
@Test
|
|
142
|
-
public void testEmptyHashMapTemplateToJSONObject() {
|
|
143
|
-
Config config = new Config();
|
|
144
|
-
HashMap map = new HashMap();
|
|
145
|
-
LocationTemplate tpl = new HashMapLocationTemplate(map);
|
|
146
|
-
config.setTemplate(tpl);
|
|
147
|
-
|
|
148
|
-
try {
|
|
149
|
-
JSONObject jConfig = ConfigMapper.toJSONObject(config);
|
|
150
|
-
Assert.assertEquals("{}", jConfig.get("postTemplate").toString());
|
|
151
|
-
} catch (JSONException e) {
|
|
152
|
-
Assert.fail(e.getMessage());
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
@Test
|
|
157
|
-
public void testHashMapTemplateToJSONObject() {
|
|
158
|
-
Config config = new Config();
|
|
159
|
-
HashMap map = new HashMap();
|
|
160
|
-
map.put("foo", "bar");
|
|
161
|
-
map.put("pretzels", 123);
|
|
162
|
-
LocationTemplate tpl = new HashMapLocationTemplate(map);
|
|
163
|
-
config.setTemplate(tpl);
|
|
164
|
-
|
|
165
|
-
try {
|
|
166
|
-
JSONObject jConfig = ConfigMapper.toJSONObject(config);
|
|
167
|
-
Assert.assertEquals("{\"foo\":\"bar\",\"pretzels\":123}", jConfig.get("postTemplate").toString());
|
|
168
|
-
} catch (JSONException e) {
|
|
169
|
-
Assert.fail(e.getMessage());
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
@Test
|
|
174
|
-
public void testNullArrayListLocationTemplateToJSONObject() {
|
|
175
|
-
Config config = new Config();
|
|
176
|
-
LocationTemplate tpl = new ArrayListLocationTemplate((ArrayListLocationTemplate)null);
|
|
177
|
-
config.setTemplate(tpl);
|
|
178
|
-
|
|
179
|
-
try {
|
|
180
|
-
JSONObject jConfig = ConfigMapper.toJSONObject(config);
|
|
181
|
-
Assert.assertEquals(JSONObject.NULL, jConfig.get("postTemplate"));
|
|
182
|
-
} catch (JSONException e) {
|
|
183
|
-
Assert.fail(e.getMessage());
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
@Test
|
|
188
|
-
public void testEmptyArrayListLocationTemplateToJSONObject() {
|
|
189
|
-
Config config = new Config();
|
|
190
|
-
ArrayList list = new ArrayList();
|
|
191
|
-
LocationTemplate tpl = new ArrayListLocationTemplate(list);
|
|
192
|
-
config.setTemplate(tpl);
|
|
193
|
-
|
|
194
|
-
try {
|
|
195
|
-
JSONObject jConfig = ConfigMapper.toJSONObject(config);
|
|
196
|
-
Assert.assertEquals("[]", jConfig.get("postTemplate").toString());
|
|
197
|
-
} catch (JSONException e) {
|
|
198
|
-
Assert.fail(e.getMessage());
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
@Test
|
|
203
|
-
public void testArrayListLocationTemplateToJSONObject() {
|
|
204
|
-
Config config = new Config();
|
|
205
|
-
ArrayList list = new ArrayList();
|
|
206
|
-
list.add("foo");
|
|
207
|
-
list.add(123);
|
|
208
|
-
list.add("foo");
|
|
209
|
-
|
|
210
|
-
LocationTemplate tpl = new ArrayListLocationTemplate(list);
|
|
211
|
-
config.setTemplate(tpl);
|
|
212
|
-
|
|
213
|
-
try {
|
|
214
|
-
JSONObject jConfig = ConfigMapper.toJSONObject(config);
|
|
215
|
-
Assert.assertEquals("[\"foo\",123,\"foo\"]", jConfig.get("postTemplate").toString());
|
|
216
|
-
} catch (JSONException e) {
|
|
217
|
-
Assert.fail(e.getMessage());
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
package com.marianhello.bgloc;
|
|
2
|
-
|
|
3
|
-
import androidx.test.platform.app.InstrumentationRegistry;
|
|
4
|
-
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
|
5
|
-
|
|
6
|
-
import com.marianhello.bgloc.data.BackgroundLocation;
|
|
7
|
-
import com.marianhello.bgloc.provider.TestLocationProviderFactory;
|
|
8
|
-
import com.marianhello.bgloc.service.LocationServiceImpl;
|
|
9
|
-
|
|
10
|
-
import org.junit.After;
|
|
11
|
-
import org.junit.Ignore;
|
|
12
|
-
import org.junit.Test;
|
|
13
|
-
import org.junit.runner.RunWith;
|
|
14
|
-
|
|
15
|
-
import java.util.concurrent.CountDownLatch;
|
|
16
|
-
|
|
17
|
-
@RunWith(AndroidJUnit4.class)
|
|
18
|
-
public class BackgroundGeolocationFacadeTest {
|
|
19
|
-
@After
|
|
20
|
-
public void tearDown() {
|
|
21
|
-
LocationServiceImpl.setLocationProviderFactory(null);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
@Ignore("Ignore test waiting for issue to be closed")
|
|
25
|
-
@Test(timeout = 5000)
|
|
26
|
-
public void testOnLocationChanged() throws InterruptedException {
|
|
27
|
-
final CountDownLatch latch = new CountDownLatch(1);
|
|
28
|
-
LocationServiceImpl.setLocationProviderFactory(new TestLocationProviderFactory());
|
|
29
|
-
|
|
30
|
-
class FacadeDelegate extends TestPluginDelegate {
|
|
31
|
-
@Override
|
|
32
|
-
public void onLocationChanged(BackgroundLocation location) {
|
|
33
|
-
latch.countDown();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
TestPluginDelegate delegate = new FacadeDelegate();
|
|
38
|
-
|
|
39
|
-
final BackgroundGeolocationFacade facade = new BackgroundGeolocationFacade(
|
|
40
|
-
InstrumentationRegistry.getContext(), delegate);
|
|
41
|
-
|
|
42
|
-
facade.start();
|
|
43
|
-
latch.await();
|
|
44
|
-
}
|
|
45
|
-
}
|