Skip to content

Commit 80c79c5

Browse files
committed
Migrated off of ShadowApplication.getInstance()
* This API was dropped in Roboelectric 4.4 so migrated to shadowOf()
1 parent 20b70ec commit 80c79c5

File tree

3 files changed

+22
-21
lines changed

3 files changed

+22
-21
lines changed

OneSignalSDK/unittest/src/test/java/com/test/onesignal/LocationIntegrationTests.java

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,10 @@
4848
import org.junit.runner.RunWith;
4949
import org.robolectric.Robolectric;
5050
import org.robolectric.RobolectricTestRunner;
51+
import org.robolectric.RuntimeEnvironment;
5152
import org.robolectric.android.controller.ActivityController;
5253
import org.robolectric.annotation.Config;
53-
import org.robolectric.shadows.ShadowApplication;
54+
import org.robolectric.annotation.LooperMode;
5455
import org.robolectric.shadows.ShadowLog;
5556

5657
import java.lang.reflect.Method;
@@ -146,7 +147,7 @@ public static void afterEverything() throws Exception {
146147
@Test
147148
@Config(shadows = {ShadowGoogleApiClientBuilder.class, ShadowGoogleApiClientCompatProxy.class, ShadowFusedLocationApiWrapper.class})
148149
public void shouldUpdateAllLocationFieldsWhenTimeStampChanges() throws Exception {
149-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
150+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
150151
OneSignalInit();
151152
threadAndTaskWait();
152153
assertEquals(1.0, ShadowOneSignalRestClient.lastPost.getDouble("lat"));
@@ -195,7 +196,7 @@ public void testLocationTimeout() throws Exception {
195196
ShadowFusedLocationApiWrapper.class },
196197
sdk = 19)
197198
public void testLocationSchedule() throws Exception {
198-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_FINE_LOCATION");
199+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_FINE_LOCATION");
199200
ShadowFusedLocationApiWrapper.lat = 1.0d;
200201
ShadowFusedLocationApiWrapper.log = 2.0d;
201202
ShadowFusedLocationApiWrapper.accuracy = 3.0f;
@@ -256,7 +257,7 @@ public void testLocationSchedule() throws Exception {
256257
ShadowFusedLocationApiWrapper.class },
257258
sdk = 19)
258259
public void testLocationFromSyncAlarm() throws Exception {
259-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
260+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
260261

261262
ShadowFusedLocationApiWrapper.lat = 1.1d;
262263
ShadowFusedLocationApiWrapper.log = 2.1d;
@@ -301,7 +302,7 @@ public void testLocationFromSyncAlarm() throws Exception {
301302
@Test
302303
@Config(shadows = {ShadowGoogleApiClientBuilder.class, ShadowGoogleApiClientCompatProxy.class, ShadowFusedLocationApiWrapper.class})
303304
public void shouldSendLocationToEmailRecord() throws Exception {
304-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
305+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
305306

306307
OneSignalInit();
307308
OneSignal.setEmail("josh@onesignal.com");
@@ -318,7 +319,7 @@ public void shouldSendLocationToEmailRecord() throws Exception {
318319
@Test
319320
@Config(shadows = {ShadowGoogleApiClientBuilder.class, ShadowGoogleApiClientCompatProxy.class, ShadowFusedLocationApiWrapper.class})
320321
public void shouldSendLocationToSMSRecord() throws Exception {
321-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
322+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
322323

323324
OneSignalInit();
324325
OneSignal.setSMSNumber("123456789");
@@ -335,7 +336,7 @@ public void shouldSendLocationToSMSRecord() throws Exception {
335336
@Test
336337
@Config(shadows = {ShadowGoogleApiClientBuilder.class, ShadowGoogleApiClientCompatProxy.class, ShadowFusedLocationApiWrapper.class})
337338
public void shouldRegisterWhenPromptingAfterInit() throws Exception {
338-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
339+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
339340
ShadowGoogleApiClientCompatProxy.skipOnConnected = true;
340341

341342
// Test promptLocation right after init race condition
@@ -354,7 +355,7 @@ public void shouldRegisterWhenPromptingAfterInit() throws Exception {
354355
@Test
355356
@Config(shadows = {ShadowGoogleApiClientBuilder.class, ShadowGoogleApiClientCompatProxy.class, ShadowFusedLocationApiWrapper.class})
356357
public void shouldCallOnSessionEvenIfSyncJobStarted() throws Exception {
357-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
358+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
358359

359360
OneSignalInit();
360361
threadAndTaskWait();
@@ -381,7 +382,7 @@ public void shouldCallOnSessionEvenIfSyncJobStarted() throws Exception {
381382
@Config(shadows = {ShadowHMSFusedLocationProviderClient.class})
382383
public void shouldUpdateAllLocationFieldsWhenTimeStampChanges_Huawei() throws Exception {
383384
ShadowOSUtils.supportsHMS(true);
384-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
385+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
385386
OneSignalInit();
386387
threadAndTaskWait();
387388
assertEquals(1.0, ShadowOneSignalRestClient.lastPost.getDouble("lat"));
@@ -411,7 +412,7 @@ public void shouldUpdateAllLocationFieldsWhenTimeStampChanges_Huawei() throws Ex
411412
}, sdk = 19)
412413
public void testLocationSchedule_Huawei() throws Exception {
413414
ShadowOSUtils.supportsHMS(true);
414-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_FINE_LOCATION");
415+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_FINE_LOCATION");
415416
ShadowHMSFusedLocationProviderClient.lat = 1.0d;
416417
ShadowHMSFusedLocationProviderClient.log = 2.0d;
417418
ShadowHMSFusedLocationProviderClient.accuracy = 3.0f;
@@ -475,7 +476,7 @@ public void testLocationSchedule_Huawei() throws Exception {
475476
}, sdk = 19)
476477
public void testLocationFromSyncAlarm_Huawei() throws Exception {
477478
ShadowOSUtils.supportsHMS(true);
478-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
479+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
479480

480481
ShadowHMSFusedLocationProviderClient.lat = 1.1d;
481482
ShadowHMSFusedLocationProviderClient.log = 2.1d;
@@ -520,7 +521,7 @@ public void testLocationFromSyncAlarm_Huawei() throws Exception {
520521
@Config(shadows = {ShadowHMSFusedLocationProviderClient.class})
521522
public void shouldSendLocationToEmailRecord_Huawei() throws Exception {
522523
ShadowOSUtils.supportsHMS(true);
523-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
524+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
524525

525526
OneSignalInit();
526527
OneSignal.setEmail("josh@onesignal.com");
@@ -538,7 +539,7 @@ public void shouldSendLocationToEmailRecord_Huawei() throws Exception {
538539
@Config(shadows = {ShadowHMSFusedLocationProviderClient.class})
539540
public void shouldSendLocationToSMSRecord_Huawei() throws Exception {
540541
ShadowOSUtils.supportsHMS(true);
541-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
542+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
542543

543544
OneSignalInit();
544545
OneSignal.setSMSNumber("123456789");
@@ -557,7 +558,7 @@ public void shouldSendLocationToSMSRecord_Huawei() throws Exception {
557558
public void shouldRegisterWhenPromptingAfterInit_Huawei() throws Exception {
558559
ShadowOSUtils.supportsHMS(true);
559560
ShadowHMSFusedLocationProviderClient.skipOnGetLocation = true;
560-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
561+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
561562

562563
// Test promptLocation right after init race condition
563564
OneSignalInit();
@@ -578,7 +579,7 @@ public void shouldCallOnSessionEvenIfSyncJobStarted_Huawei() throws Exception {
578579
ShadowOSUtils.supportsHMS(true);
579580
ShadowHMSFusedLocationProviderClient.shadowTask = true;
580581
ShadowHuaweiTask.result = ShadowHMSFusedLocationProviderClient.getLocation();
581-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
582+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_COARSE_LOCATION");
582583

583584
OneSignalInit();
584585
threadAndTaskWait();

OneSignalSDK/unittest/src/test/java/com/test/onesignal/MainOneSignalClassRunner.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,10 @@
106106
import org.junit.runner.RunWith;
107107
import org.robolectric.Robolectric;
108108
import org.robolectric.RobolectricTestRunner;
109+
import org.robolectric.RuntimeEnvironment;
109110
import org.robolectric.android.controller.ActivityController;
110111
import org.robolectric.annotation.Config;
111112
import org.robolectric.shadows.ShadowAlarmManager;
112-
import org.robolectric.shadows.ShadowApplication;
113113
import org.robolectric.shadows.ShadowConnectivityManager;
114114
import org.robolectric.shadows.ShadowLog;
115115

@@ -2040,7 +2040,7 @@ public void run() {
20402040
@Test
20412041
@Config(shadows = {ShadowGoogleApiClientBuilder.class, ShadowGoogleApiClientCompatProxy.class, ShadowFusedLocationApiWrapper.class})
20422042
public void testOneSignalMethodsBeforeInit() throws Exception {
2043-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_FINE_LOCATION");
2043+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_FINE_LOCATION");
20442044
ShadowFusedLocationApiWrapper.lat = 1.0d;
20452045
ShadowFusedLocationApiWrapper.log = 2.0d;
20462046
ShadowFusedLocationApiWrapper.accuracy = 3.0f;
@@ -2134,7 +2134,7 @@ public void tagsAvailable(JSONObject tags) {
21342134
@Test
21352135
@Config(shadows = {ShadowGoogleApiClientBuilder.class, ShadowGoogleApiClientCompatProxy.class, ShadowFusedLocationApiWrapper.class})
21362136
public void testOneSignalEmptyPendingTaskQueue() throws Exception {
2137-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_FINE_LOCATION");
2137+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_FINE_LOCATION");
21382138
ShadowFusedLocationApiWrapper.lat = 1.0d;
21392139
ShadowFusedLocationApiWrapper.log = 2.0d;
21402140
ShadowFusedLocationApiWrapper.accuracy = 3.0f;
@@ -2405,7 +2405,7 @@ public void ensureNoConcurrentUpdateCallsWithSameData() throws Exception {
24052405
@Config(sdk = 26, shadows = { ShadowGoogleApiClientCompatProxy.class, ShadowGMSLocationController.class })
24062406
public void ensureSyncJobServiceRescheduleOnApiTimeout() throws Exception {
24072407
ShadowGMSLocationController.apiFallbackTime = 0;
2408-
ShadowApplication.getInstance().grantPermissions("android.permission.ACCESS_FINE_LOCATION");
2408+
shadowOf(RuntimeEnvironment.application).grantPermissions("android.permission.ACCESS_FINE_LOCATION");
24092409
ShadowGoogleApiClientCompatProxy.skipOnConnected = true;
24102410

24112411
OneSignalInit();

OneSignalSDK/unittest/src/test/java/com/test/onesignal/TestHelpers.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@
6161
import org.json.JSONException;
6262
import org.json.JSONObject;
6363
import org.robolectric.Robolectric;
64+
import org.robolectric.RuntimeEnvironment;
6465
import org.robolectric.android.controller.ActivityController;
6566
import org.robolectric.shadows.ShadowAlarmManager;
66-
import org.robolectric.shadows.ShadowApplication;
6767
import org.robolectric.util.Scheduler;
6868

6969
import java.util.ArrayList;
@@ -207,7 +207,7 @@ static Thread getThreadByName(String threadName) {
207207

208208
// Run any OneSignal background threads including any pending runnables
209209
public static void threadAndTaskWait() throws Exception {
210-
ShadowApplication.getInstance().getForegroundThreadScheduler().runOneTask();
210+
shadowOf(RuntimeEnvironment.application).getForegroundThreadScheduler().runOneTask();
211211
// Runs Runnables posted by calling View.post() which are run on the main thread.
212212
Robolectric.getForegroundThreadScheduler().runOneTask();
213213

0 commit comments

Comments
 (0)