66 lines
2 KiB
Kotlin
66 lines
2 KiB
Kotlin
package org.schabi.newpipe
|
|
|
|
import org.junit.Assert.assertFalse
|
|
import org.junit.Assert.assertTrue
|
|
import org.junit.Test
|
|
import org.schabi.newpipe.util.ReleaseVersionUtil.coerceUpdateCheckExpiry
|
|
import org.schabi.newpipe.util.ReleaseVersionUtil.isLastUpdateCheckExpired
|
|
import java.time.Instant
|
|
import java.time.ZoneId
|
|
import java.time.format.DateTimeFormatter
|
|
import kotlin.math.abs
|
|
|
|
class NewVersionManagerTest {
|
|
|
|
@Test
|
|
fun `Expiry is reached`() {
|
|
val oneHourEarlier = Instant.now().atZone(ZoneId.of("GMT")).minusHours(1)
|
|
|
|
val expired = isLastUpdateCheckExpired(oneHourEarlier.toEpochSecond())
|
|
|
|
assertTrue(expired)
|
|
}
|
|
|
|
@Test
|
|
fun `Expiry is not reached`() {
|
|
val oneHourLater = Instant.now().atZone(ZoneId.of("GMT")).plusHours(1)
|
|
|
|
val expired = isLastUpdateCheckExpired(oneHourLater.toEpochSecond())
|
|
|
|
assertFalse(expired)
|
|
}
|
|
|
|
/**
|
|
* Equal within a range of 5 seconds
|
|
*/
|
|
private fun assertNearlyEqual(a: Long, b: Long) {
|
|
assertTrue(abs(a - b) < 5)
|
|
}
|
|
|
|
@Test
|
|
fun `Expiry must be returned as is because it is inside the acceptable range of 6-72 hours`() {
|
|
val sixHoursLater = Instant.now().atZone(ZoneId.of("GMT")).plusHours(6)
|
|
|
|
val coerced = coerceUpdateCheckExpiry(DateTimeFormatter.RFC_1123_DATE_TIME.format(sixHoursLater))
|
|
|
|
assertNearlyEqual(sixHoursLater.toEpochSecond(), coerced)
|
|
}
|
|
|
|
@Test
|
|
fun `Expiry must be increased to 6 hours if below`() {
|
|
val tooLow = Instant.now().atZone(ZoneId.of("GMT")).plusHours(5)
|
|
|
|
val coerced = coerceUpdateCheckExpiry(DateTimeFormatter.RFC_1123_DATE_TIME.format(tooLow))
|
|
|
|
assertNearlyEqual(tooLow.plusHours(1).toEpochSecond(), coerced)
|
|
}
|
|
|
|
@Test
|
|
fun `Expiry must be decreased to 72 hours if above`() {
|
|
val tooHigh = Instant.now().atZone(ZoneId.of("GMT")).plusHours(73)
|
|
|
|
val coerced = coerceUpdateCheckExpiry(DateTimeFormatter.RFC_1123_DATE_TIME.format(tooHigh))
|
|
|
|
assertNearlyEqual(tooHigh.minusHours(1).toEpochSecond(), coerced)
|
|
}
|
|
}
|