mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-25 11:20:47 +01:00
Prevent backups from being scheduled twice within the jitter window.
Fixes #13559.
This commit is contained in:
committed by
Cody Henthorne
parent
b113eec940
commit
aec0a9951a
@@ -8,8 +8,12 @@ package org.thoughtcrime.securesms.service
|
||||
import org.junit.Assert
|
||||
import org.junit.Test
|
||||
import org.thoughtcrime.securesms.BaseUnitTest
|
||||
import org.thoughtcrime.securesms.testutil.MockRandom
|
||||
import java.time.Duration
|
||||
import java.time.LocalDateTime
|
||||
import java.util.concurrent.TimeUnit
|
||||
import kotlin.time.Duration.Companion.days
|
||||
import kotlin.time.Duration.Companion.minutes
|
||||
|
||||
class BackListenerTest : BaseUnitTest() {
|
||||
|
||||
@@ -44,4 +48,14 @@ class BackListenerTest : BaseUnitTest() {
|
||||
val next = MessageBackupListener.getNextDailyBackupTimeFromNowWithJitter(now, 3, 0, jitterWindowSeconds)
|
||||
Assert.assertEquals(8, next.dayOfMonth)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testBackupJitterWhenScheduledForMidnightButJitterMakesItRunJustBefore() {
|
||||
val mockRandom = MockRandom(listOf(1.minutes.inWholeSeconds.toInt()))
|
||||
val jitterWindowSeconds = 10.minutes.inWholeSeconds.toInt()
|
||||
val now: LocalDateTime = LocalDateTime.of(2024, 6, 27, 23, 57, 0)
|
||||
val next: LocalDateTime = MessageBackupListener.getNextDailyBackupTimeFromNowWithJitter(now, 0, 0, jitterWindowSeconds, mockRandom)
|
||||
|
||||
Assert.assertTrue(Duration.between(now, next).toSeconds() > (1.days.inWholeSeconds - jitterWindowSeconds))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user