Skip to content

Commit e9f0e93

Browse files
committed
Test fix up for time changes
1 parent 6e7b6fa commit e9f0e93

File tree

3 files changed

+21
-6
lines changed

3 files changed

+21
-6
lines changed

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2700,14 +2700,13 @@ public void syncHashedEmailTest() throws Exception {
27002700
public void sendsOnFocus() throws Exception {
27012701
OneSignalInit();
27022702
threadAndTaskWait();
2703-
advanceSystemTimeBy(60);
2704-
blankActivityController.resume();
2705-
advanceSystemTimeBy(60);
27062703

2704+
advanceSystemTimeBy(60);
27072705
blankActivityController.pause();
27082706
threadAndTaskWait();
2709-
assertEquals(60, ShadowOneSignalRestClient.lastPost.getInt("active_time"));
2710-
RestClientAsserts.assertRestCalls(3);
2707+
2708+
assertOnFocusAtIndex(2, 60);
2709+
assertRestCalls(3);
27112710
}
27122711

27132712
@Test

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727

2828
package com.test.onesignal;
2929

30+
import android.os.SystemClock;
31+
3032
import com.onesignal.BuildConfig;
3133
import com.onesignal.MockOutcomeEventsController;
3234
import com.onesignal.MockOutcomeEventsRepository;
@@ -50,10 +52,14 @@
5052
import org.robolectric.RuntimeEnvironment;
5153
import org.robolectric.annotation.Config;
5254
import org.robolectric.shadows.ShadowLog;
55+
import org.robolectric.shadows.ShadowSystemClock;
5356

5457
import java.util.List;
5558

5659
import static com.onesignal.OneSignalPackagePrivateHelper.OneSignal_getOutcomeSettings;
60+
import static com.test.onesignal.TestHelpers.advanceSystemTimeBy;
61+
import static com.test.onesignal.TestHelpers.lockTimeTo;
62+
import static com.test.onesignal.TestHelpers.resetSystemClock;
5763
import static com.test.onesignal.TestHelpers.threadAndTaskWait;
5864
import static junit.framework.Assert.assertNull;
5965
import static junit.framework.TestCase.assertTrue;
@@ -424,6 +430,7 @@ public void run() {
424430

425431
@Test
426432
public void testOutcomeMultipleFailsSavedOnDB() throws Exception {
433+
lockTimeTo(0);
427434
service.setSuccess(false);
428435

429436
sessionManager.setSessionResult(OSSessionManager.SessionResult.Builder.newInstance()
@@ -523,11 +530,11 @@ public void run() {
523530

524531
@Test
525532
public void testSendFailedOutcomeWithValueOnDB() throws Exception {
533+
lockTimeTo(0);
526534
service.setSuccess(false);
527535
sessionManager.setSessionResult(OSSessionManager.SessionResult.Builder.newInstance()
528536
.setSession(OSSessionManager.Session.UNATTRIBUTED)
529537
.build());
530-
531538
controller.sendOutcomeEventWithValue(OUTCOME_NAME, 1.1f, null);
532539
threadAndTaskWait();
533540

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,15 @@ static List<OutcomeEvent> getAllOutcomesRecords() {
303303
return events;
304304
}
305305

306+
/**
307+
* Calling setNanoTime ends up locking time to zero.
308+
* NOTE: This setNanoTime is going away in future robolectric versions
309+
*/
310+
static void lockTimeTo(long sec) {
311+
long nano = sec * 1_000L * 1_000L;
312+
ShadowSystemClock.setNanoTime(nano);
313+
}
314+
306315
static void resetSystemClock() {
307316
SystemClock.setCurrentTimeMillis(System.currentTimeMillis());
308317
}

0 commit comments

Comments
 (0)