You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

47 lines
2.3 KiB

import com.utun.chat.data.RadioVadWindow
fun main() {
val minute = 60_000L
val duration = 15 * minute
val window = RadioVadWindow(duration)
window.setForeground(true, 0)
window.setEnabled(true, 0)
check(window.isAllowed(120 * minute)) { "Foreground VAD expired" }
check(window.timeLeftMs(120 * minute) == duration) { "Foreground consumed background time" }
window.setForeground(false, 120 * minute)
check(window.deadlineMs == 135 * minute)
window.setForeground(true, 125 * minute)
check(window.timeLeftMs(300 * minute) == duration) { "Returning to the app did not reset the timer" }
check(window.isAllowed(300 * minute))
window.setForeground(false, 300 * minute)
window.setEnabled(true, 301 * minute) // Перенастройка не продлевает окно.
window.setForeground(false, 302 * minute)
check(window.deadlineMs == 315 * minute) { "New background period did not get the full timeout" }
check(window.isAllowed(315 * minute - 1))
check(!window.isAllowed(315 * minute)) { "Background timer did not expire" }
window.setForeground(true, 316 * minute)
check(window.isAllowed(500 * minute)) { "Returning to the app did not resume VAD" }
check(window.timeLeftMs(500 * minute) == duration)
window.setForeground(false, 500 * minute)
check(window.deadlineMs == 515 * minute)
window.close() // Погасший экран закрывает окно сразу.
check(!window.isAllowed(501 * minute))
window.restart(502 * minute)
check(window.deadlineMs == 517 * minute)
window.setEnabled(false, 503 * minute)
window.setForeground(true, 504 * minute)
check(!window.isAllowed(504 * minute)) { "Disabled VAD resumed automatically" }
window.setEnabled(true, 505 * minute)
check(window.isAllowed(1000 * minute))
val backgroundStart = RadioVadWindow(duration)
backgroundStart.setEnabled(true, minute)
check(backgroundStart.deadlineMs == 16 * minute)
check(!backgroundStart.isAllowed(16 * minute))
backgroundStart.restart(17 * minute) // Явное повторное включение после истечения.
check(backgroundStart.deadlineMs == 32 * minute)
println("PASS: foreground unlimited and resets timer; full background timeout; expiry; screen; enable/reconfigure")
}