Skip to content

Commit a576cb8

Browse files
Merge branch 'feature/auto-retry' into feature/sdk-346-unauthenticated-apis
2 parents a7c396d + 69cb854 commit a576cb8

File tree

6 files changed

+24
-18
lines changed

6 files changed

+24
-18
lines changed

iterableapi/src/main/java/com/iterable/iterableapi/IterablePushNotificationUtil.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ class IterablePushNotificationUtil {
1414
private static PendingAction pendingAction = null;
1515
private static final String TAG = "IterablePushNotificationUtil";
1616

17+
static void clearPendingAction() {
18+
pendingAction = null;
19+
}
20+
1721
static boolean processPendingAction(Context context) {
1822
boolean handled = false;
1923
if (pendingAction != null) {

iterableapi/src/test/java/com/iterable/iterableapi/BaseTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import com.iterable.iterableapi.unit.TestRunner;
88

9+
import org.junit.After;
910
import org.junit.Rule;
1011
import org.junit.rules.TestWatcher;
1112
import org.junit.runner.Description;
@@ -22,6 +23,14 @@ public abstract class BaseTest {
2223
@Rule
2324
public AsyncTaskRule asyncTaskRule = new AsyncTaskRule();
2425

26+
@After
27+
public void baseTestTearDown() {
28+
IterableActivityMonitor.getInstance().unregisterLifecycleCallbacks(getContext());
29+
IterableActivityMonitor.instance = new IterableActivityMonitor();
30+
IterablePushNotificationUtil.clearPendingAction();
31+
IterableApi.sharedInstance = new IterableApi();
32+
}
33+
2534
protected IterableUtilImpl getIterableUtilSpy() {
2635
return utilsRule.iterableUtilSpy;
2736
}

iterableapi/src/test/java/com/iterable/iterableapi/IterableActivityMonitorTest.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import android.app.Activity;
44

5-
import org.junit.After;
65
import org.junit.Before;
76
import org.junit.Test;
87
import org.robolectric.Robolectric;
@@ -22,12 +21,6 @@ public void setUp() {
2221
IterableActivityMonitor.getInstance().registerLifecycleCallbacks(getContext());
2322
}
2423

25-
@After
26-
public void tearDown() {
27-
IterableActivityMonitor.getInstance().unregisterLifecycleCallbacks(getContext());
28-
IterableActivityMonitor.instance = new IterableActivityMonitor();
29-
}
30-
3124
@Test
3225
public void testOneActivityStarted() {
3326
Robolectric.buildActivity(Activity.class).create().start().resume();

iterableapi/src/test/java/com/iterable/iterableapi/IterableApiTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,8 @@ public void testAttributionInfoPersistence() throws Exception {
143143
assertEquals(attributionInfo.templateId, storedAttributionInfo.templateId);
144144
assertEquals(attributionInfo.messageId, storedAttributionInfo.messageId);
145145

146-
// 24 hours, expired, attributionInfo should be null
147-
doReturn(System.currentTimeMillis() + 3600 * 24 * 1000).when(utilsRule.iterableUtilSpy).currentTimeMillis();
146+
// Just past 24 hours, expired, attributionInfo should be null
147+
doReturn(System.currentTimeMillis() + 3600 * 24 * 1000 + 1).when(utilsRule.iterableUtilSpy).currentTimeMillis();
148148
storedAttributionInfo = IterableApi.getInstance().getAttributionInfo();
149149
assertNull(storedAttributionInfo);
150150
}

iterableapi/src/test/java/com/iterable/iterableapi/IterableInAppManagerTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,6 @@ public IterableConfig.Builder run(IterableConfig.Builder builder) {
8888
public void tearDown() throws IOException {
8989
server.shutdown();
9090
server = null;
91-
IterableActivityMonitor.getInstance().unregisterLifecycleCallbacks(getContext());
92-
IterableActivityMonitor.instance = new IterableActivityMonitor();
9391
}
9492

9593
@Ignore("Ignoring due to stalling")

iterableapi/src/test/java/com/iterable/iterableapi/IterableTaskRunnerTest.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -190,13 +190,15 @@ private IterableAuthHandler initApiWithAutoRetry(boolean autoRetryEnabled) {
190190
.putBoolean(IterableConstants.SHARED_PREFS_AUTO_RETRY_KEY, autoRetryEnabled)
191191
.apply();
192192

193-
IterableTestUtils.createIterableApiNew(new IterableTestUtils.ConfigBuilderExtender() {
194-
@Override
195-
public IterableConfig.Builder run(IterableConfig.Builder builder) {
196-
return builder
197-
.setAuthHandler(mockAuthHandler);
198-
}
199-
});
193+
// Initialize directly without calling setEmail to avoid triggering an async
194+
// auth flow. The null token from the mock handler would race with the test,
195+
// and the resulting syncInApp() call would send unexpected requests to the
196+
// mock server, breaking assertions that check for no requests.
197+
IterableConfig config = new IterableConfig.Builder()
198+
.setAutoPushRegistration(false)
199+
.setAuthHandler(mockAuthHandler)
200+
.build();
201+
IterableApi.initialize(context, IterableTestUtils.apiKey, config);
200202
return mockAuthHandler;
201203
}
202204

0 commit comments

Comments
 (0)