Skip to content

Commit cdb9e15

Browse files
authored
Merge pull request #1342 from OneSignal/fix/tests_stalling
Fix Tests Stalling
2 parents 04824e3 + 73a1c6f commit cdb9e15

File tree

8 files changed

+60
-1
lines changed

8 files changed

+60
-1
lines changed

OneSignalSDK/onesignal/src/main/java/com/onesignal/OSTaskController.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,12 @@ ConcurrentLinkedQueue<Runnable> getTaskQueueWaitingForInit() {
105105
return taskQueueWaitingForInit;
106106
}
107107

108+
void shutdownNow() {
109+
if (pendingTaskExecutor != null) {
110+
pendingTaskExecutor.shutdownNow();
111+
}
112+
}
113+
108114
private static class PendingTaskRunnable implements Runnable {
109115
private OSTaskController controller;
110116
private Runnable innerTask;

OneSignalSDK/onesignal/src/main/java/com/onesignal/OneSignal.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3167,6 +3167,10 @@ static OSTaskController getTaskRemoteController() {
31673167
return taskRemoteController;
31683168
}
31693169

3170+
static OSTaskController getTaskController() {
3171+
return taskController;
3172+
}
3173+
31703174
static FocusTimeController getFocusTimeController() {
31713175
return focusTimeController;
31723176
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,11 @@ public static ConcurrentLinkedQueue<Runnable> OneSignal_taskQueueWaitingForInit(
271271
return OneSignal.getTaskRemoteController().getTaskQueueWaitingForInit();
272272
}
273273

274+
public static void OneSignal_OSTaskController_ShutdownNow() {
275+
OneSignal.getTaskRemoteController().shutdownNow();
276+
OneSignal.getTaskController().shutdownNow();
277+
}
278+
274279
public static boolean OneSignal_requiresUserPrivacyConsent() {
275280
return OneSignal.requiresUserPrivacyConsent();
276281
}

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import com.onesignal.ShadowOSUtils;
77
import com.onesignal.StaticResetHelper;
88

9+
import org.junit.After;
10+
import org.junit.AfterClass;
911
import org.junit.Before;
1012
import org.junit.BeforeClass;
1113
import org.junit.Test;
@@ -43,6 +45,16 @@ public void beforeEachTest() throws Exception {
4345
OneSignal.initWithContext(ApplicationProvider.getApplicationContext());
4446
}
4547

48+
@AfterClass
49+
public static void afterEverything() throws Exception {
50+
TestHelpers.beforeTestInitAndCleanup();
51+
}
52+
53+
@After
54+
public void afterEachTest() throws Exception {
55+
TestHelpers.afterTestCleanup();
56+
}
57+
4658
@Test
4759
public void noAvailablePushChannels_defaultsToAndroid() {
4860
assertEquals(DEVICE_TYPE_ANDROID, getDeviceType());

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@
8686
import org.json.JSONArray;
8787
import org.json.JSONException;
8888
import org.json.JSONObject;
89+
import org.junit.After;
8990
import org.junit.AfterClass;
9091
import org.junit.Before;
9192
import org.junit.BeforeClass;
@@ -216,7 +217,12 @@ public void beforeEachTest() throws Exception {
216217

217218
@AfterClass
218219
public static void afterEverything() throws Exception {
219-
StaticResetHelper.restSetStaticFields();
220+
TestHelpers.beforeTestInitAndCleanup();
221+
}
222+
223+
@After
224+
public void afterEachTest() throws Exception {
225+
TestHelpers.afterTestCleanup();
220226
}
221227

222228
public static Bundle getBaseNotifBundle() {

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import org.checkerframework.checker.nullness.qual.NonNull;
1515
import org.json.JSONException;
1616
import org.json.JSONObject;
17+
import org.junit.After;
18+
import org.junit.AfterClass;
1719
import org.junit.Before;
1820
import org.junit.BeforeClass;
1921
import org.junit.Test;
@@ -65,6 +67,16 @@ public void beforeEachTest() throws Exception {
6567
blankActivity = blankActivityController.get();
6668
}
6769

70+
@AfterClass
71+
public static void afterEverything() throws Exception {
72+
TestHelpers.beforeTestInitAndCleanup();
73+
}
74+
75+
@After
76+
public void afterEachTest() throws Exception {
77+
TestHelpers.afterTestCleanup();
78+
}
79+
6880
private static @NonNull String helperBasicOSPayload() throws JSONException {
6981
return new JSONObject() {{
7082
put(PAYLOAD_OS_ROOT_CUSTOM, new JSONObject() {{

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323

2424
import org.json.JSONException;
2525
import org.json.JSONObject;
26+
import org.junit.After;
27+
import org.junit.AfterClass;
2628
import org.junit.Before;
2729
import org.junit.BeforeClass;
2830
import org.junit.Test;
@@ -84,6 +86,16 @@ public void beforeEachTest() throws Exception {
8486
setRemoteParamsGetHtmlResponse();
8587
}
8688

89+
@AfterClass
90+
public static void afterEverything() throws Exception {
91+
TestHelpers.beforeTestInitAndCleanup();
92+
}
93+
94+
@After
95+
public void afterEachTest() throws Exception {
96+
TestHelpers.afterTestCleanup();
97+
}
98+
8799
private static @NonNull Intent helper_baseHMSOpenIntent() {
88100
return new Intent()
89101
.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK)

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
import java.util.Set;
7474

7575
import static com.onesignal.OneSignalPackagePrivateHelper.JSONUtils;
76+
import static com.onesignal.OneSignalPackagePrivateHelper.OneSignal_OSTaskController_ShutdownNow;
7677
import static junit.framework.Assert.assertEquals;
7778
import static org.robolectric.Shadows.shadowOf;
7879

@@ -136,6 +137,7 @@ static void beforeTestInitAndCleanup() throws Exception {
136137

137138
public static void afterTestCleanup() throws Exception {
138139
try {
140+
OneSignal_OSTaskController_ShutdownNow();
139141
stopAllOSThreads();
140142
} catch (Exception e) {
141143
e.printStackTrace();

0 commit comments

Comments
 (0)