|
|
|
@@ -39,6 +39,7 @@ import com.android.systemui.plugins.ActivityStarter
|
|
|
|
import com.android.systemui.statusbar.phone.KeyguardBypassController
|
|
|
|
import com.android.systemui.statusbar.phone.KeyguardBypassController
|
|
|
|
import com.android.systemui.statusbar.policy.KeyguardStateController
|
|
|
|
import com.android.systemui.statusbar.policy.KeyguardStateController
|
|
|
|
import com.android.systemui.util.mockito.any
|
|
|
|
import com.android.systemui.util.mockito.any
|
|
|
|
|
|
|
|
import com.android.systemui.util.mockito.whenever
|
|
|
|
import com.android.systemui.utils.os.FakeHandler
|
|
|
|
import com.android.systemui.utils.os.FakeHandler
|
|
|
|
import com.google.common.truth.Truth.assertThat
|
|
|
|
import com.google.common.truth.Truth.assertThat
|
|
|
|
import org.junit.Before
|
|
|
|
import org.junit.Before
|
|
|
|
@@ -50,7 +51,6 @@ import org.mockito.Mock
|
|
|
|
import org.mockito.Mockito.mock
|
|
|
|
import org.mockito.Mockito.mock
|
|
|
|
import org.mockito.Mockito.never
|
|
|
|
import org.mockito.Mockito.never
|
|
|
|
import org.mockito.Mockito.verify
|
|
|
|
import org.mockito.Mockito.verify
|
|
|
|
import org.mockito.Mockito.`when`
|
|
|
|
|
|
|
|
import org.mockito.MockitoAnnotations
|
|
|
|
import org.mockito.MockitoAnnotations
|
|
|
|
|
|
|
|
|
|
|
|
@SmallTest
|
|
|
|
@SmallTest
|
|
|
|
@@ -90,9 +90,9 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() {
|
|
|
|
keyguardUpdateMonitor,
|
|
|
|
keyguardUpdateMonitor,
|
|
|
|
keyguardBypassController,
|
|
|
|
keyguardBypassController,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
`when`(repository.primaryBouncerStartingDisappearAnimation.value).thenReturn(null)
|
|
|
|
whenever(repository.primaryBouncerStartingDisappearAnimation.value).thenReturn(null)
|
|
|
|
`when`(repository.primaryBouncerShow.value).thenReturn(false)
|
|
|
|
whenever(repository.primaryBouncerShow.value).thenReturn(false)
|
|
|
|
`when`(bouncerView.delegate).thenReturn(bouncerViewDelegate)
|
|
|
|
whenever(bouncerView.delegate).thenReturn(bouncerViewDelegate)
|
|
|
|
resources = context.orCreateTestableResources
|
|
|
|
resources = context.orCreateTestableResources
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -118,7 +118,7 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() {
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testShow_keyguardIsDone() {
|
|
|
|
fun testShow_keyguardIsDone() {
|
|
|
|
`when`(bouncerView.delegate?.showNextSecurityScreenOrFinish()).thenReturn(true)
|
|
|
|
whenever(bouncerView.delegate?.showNextSecurityScreenOrFinish()).thenReturn(true)
|
|
|
|
verify(keyguardStateController, never()).notifyPrimaryBouncerShowing(true)
|
|
|
|
verify(keyguardStateController, never()).notifyPrimaryBouncerShowing(true)
|
|
|
|
verify(mPrimaryBouncerCallbackInteractor, never()).dispatchStartingToShow()
|
|
|
|
verify(mPrimaryBouncerCallbackInteractor, never()).dispatchStartingToShow()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -135,7 +135,7 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() {
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testExpansion() {
|
|
|
|
fun testExpansion() {
|
|
|
|
`when`(repository.panelExpansionAmount.value).thenReturn(0.5f)
|
|
|
|
whenever(repository.panelExpansionAmount.value).thenReturn(0.5f)
|
|
|
|
underTest.setPanelExpansion(0.6f)
|
|
|
|
underTest.setPanelExpansion(0.6f)
|
|
|
|
verify(repository).setPanelExpansion(0.6f)
|
|
|
|
verify(repository).setPanelExpansion(0.6f)
|
|
|
|
verify(mPrimaryBouncerCallbackInteractor).dispatchExpansionChanged(0.6f)
|
|
|
|
verify(mPrimaryBouncerCallbackInteractor).dispatchExpansionChanged(0.6f)
|
|
|
|
@@ -143,8 +143,8 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() {
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testExpansion_fullyShown() {
|
|
|
|
fun testExpansion_fullyShown() {
|
|
|
|
`when`(repository.panelExpansionAmount.value).thenReturn(0.5f)
|
|
|
|
whenever(repository.panelExpansionAmount.value).thenReturn(0.5f)
|
|
|
|
`when`(repository.primaryBouncerStartingDisappearAnimation.value).thenReturn(null)
|
|
|
|
whenever(repository.primaryBouncerStartingDisappearAnimation.value).thenReturn(null)
|
|
|
|
underTest.setPanelExpansion(EXPANSION_VISIBLE)
|
|
|
|
underTest.setPanelExpansion(EXPANSION_VISIBLE)
|
|
|
|
verify(falsingCollector).onBouncerShown()
|
|
|
|
verify(falsingCollector).onBouncerShown()
|
|
|
|
verify(mPrimaryBouncerCallbackInteractor).dispatchFullyShown()
|
|
|
|
verify(mPrimaryBouncerCallbackInteractor).dispatchFullyShown()
|
|
|
|
@@ -152,8 +152,8 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() {
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testExpansion_fullyHidden() {
|
|
|
|
fun testExpansion_fullyHidden() {
|
|
|
|
`when`(repository.panelExpansionAmount.value).thenReturn(0.5f)
|
|
|
|
whenever(repository.panelExpansionAmount.value).thenReturn(0.5f)
|
|
|
|
`when`(repository.primaryBouncerStartingDisappearAnimation.value).thenReturn(null)
|
|
|
|
whenever(repository.primaryBouncerStartingDisappearAnimation.value).thenReturn(null)
|
|
|
|
underTest.setPanelExpansion(EXPANSION_HIDDEN)
|
|
|
|
underTest.setPanelExpansion(EXPANSION_HIDDEN)
|
|
|
|
verify(repository).setPrimaryShow(false)
|
|
|
|
verify(repository).setPrimaryShow(false)
|
|
|
|
verify(falsingCollector).onBouncerHidden()
|
|
|
|
verify(falsingCollector).onBouncerHidden()
|
|
|
|
@@ -163,7 +163,7 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() {
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testExpansion_startingToHide() {
|
|
|
|
fun testExpansion_startingToHide() {
|
|
|
|
`when`(repository.panelExpansionAmount.value).thenReturn(EXPANSION_VISIBLE)
|
|
|
|
whenever(repository.panelExpansionAmount.value).thenReturn(EXPANSION_VISIBLE)
|
|
|
|
underTest.setPanelExpansion(0.1f)
|
|
|
|
underTest.setPanelExpansion(0.1f)
|
|
|
|
verify(repository).setPrimaryStartingToHide(true)
|
|
|
|
verify(repository).setPrimaryStartingToHide(true)
|
|
|
|
verify(mPrimaryBouncerCallbackInteractor).dispatchStartingToHide()
|
|
|
|
verify(mPrimaryBouncerCallbackInteractor).dispatchStartingToHide()
|
|
|
|
@@ -228,7 +228,21 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testStartDisappearAnimation() {
|
|
|
|
fun testStartDisappearAnimation_willRunDismissFromKeyguard() {
|
|
|
|
|
|
|
|
whenever(bouncerViewDelegate.willRunDismissFromKeyguard()).thenReturn(true)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
val runnable = mock(Runnable::class.java)
|
|
|
|
|
|
|
|
underTest.startDisappearAnimation(runnable)
|
|
|
|
|
|
|
|
// End runnable should run immediately
|
|
|
|
|
|
|
|
verify(runnable).run()
|
|
|
|
|
|
|
|
// ... while the disappear animation should never be run
|
|
|
|
|
|
|
|
verify(repository, never()).setPrimaryStartDisappearAnimation(any(Runnable::class.java))
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
fun testStartDisappearAnimation_willNotRunDismissFromKeyguard_() {
|
|
|
|
|
|
|
|
whenever(bouncerViewDelegate.willRunDismissFromKeyguard()).thenReturn(false)
|
|
|
|
|
|
|
|
|
|
|
|
val runnable = mock(Runnable::class.java)
|
|
|
|
val runnable = mock(Runnable::class.java)
|
|
|
|
underTest.startDisappearAnimation(runnable)
|
|
|
|
underTest.startDisappearAnimation(runnable)
|
|
|
|
verify(repository).setPrimaryStartDisappearAnimation(any(Runnable::class.java))
|
|
|
|
verify(repository).setPrimaryStartDisappearAnimation(any(Runnable::class.java))
|
|
|
|
@@ -236,45 +250,45 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() {
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testIsFullShowing() {
|
|
|
|
fun testIsFullShowing() {
|
|
|
|
`when`(repository.primaryBouncerShow.value).thenReturn(true)
|
|
|
|
whenever(repository.primaryBouncerShow.value).thenReturn(true)
|
|
|
|
`when`(repository.panelExpansionAmount.value).thenReturn(EXPANSION_VISIBLE)
|
|
|
|
whenever(repository.panelExpansionAmount.value).thenReturn(EXPANSION_VISIBLE)
|
|
|
|
`when`(repository.primaryBouncerStartingDisappearAnimation.value).thenReturn(null)
|
|
|
|
whenever(repository.primaryBouncerStartingDisappearAnimation.value).thenReturn(null)
|
|
|
|
assertThat(underTest.isFullyShowing()).isTrue()
|
|
|
|
assertThat(underTest.isFullyShowing()).isTrue()
|
|
|
|
`when`(repository.primaryBouncerShow.value).thenReturn(false)
|
|
|
|
whenever(repository.primaryBouncerShow.value).thenReturn(false)
|
|
|
|
assertThat(underTest.isFullyShowing()).isFalse()
|
|
|
|
assertThat(underTest.isFullyShowing()).isFalse()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testIsScrimmed() {
|
|
|
|
fun testIsScrimmed() {
|
|
|
|
`when`(repository.primaryBouncerScrimmed.value).thenReturn(true)
|
|
|
|
whenever(repository.primaryBouncerScrimmed.value).thenReturn(true)
|
|
|
|
assertThat(underTest.isScrimmed()).isTrue()
|
|
|
|
assertThat(underTest.isScrimmed()).isTrue()
|
|
|
|
`when`(repository.primaryBouncerScrimmed.value).thenReturn(false)
|
|
|
|
whenever(repository.primaryBouncerScrimmed.value).thenReturn(false)
|
|
|
|
assertThat(underTest.isScrimmed()).isFalse()
|
|
|
|
assertThat(underTest.isScrimmed()).isFalse()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testIsInTransit() {
|
|
|
|
fun testIsInTransit() {
|
|
|
|
`when`(repository.primaryBouncerShowingSoon.value).thenReturn(true)
|
|
|
|
whenever(repository.primaryBouncerShowingSoon.value).thenReturn(true)
|
|
|
|
assertThat(underTest.isInTransit()).isTrue()
|
|
|
|
assertThat(underTest.isInTransit()).isTrue()
|
|
|
|
`when`(repository.primaryBouncerShowingSoon.value).thenReturn(false)
|
|
|
|
whenever(repository.primaryBouncerShowingSoon.value).thenReturn(false)
|
|
|
|
assertThat(underTest.isInTransit()).isFalse()
|
|
|
|
assertThat(underTest.isInTransit()).isFalse()
|
|
|
|
`when`(repository.panelExpansionAmount.value).thenReturn(0.5f)
|
|
|
|
whenever(repository.panelExpansionAmount.value).thenReturn(0.5f)
|
|
|
|
assertThat(underTest.isInTransit()).isTrue()
|
|
|
|
assertThat(underTest.isInTransit()).isTrue()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testIsAnimatingAway() {
|
|
|
|
fun testIsAnimatingAway() {
|
|
|
|
`when`(repository.primaryBouncerStartingDisappearAnimation.value).thenReturn(Runnable {})
|
|
|
|
whenever(repository.primaryBouncerStartingDisappearAnimation.value).thenReturn(Runnable {})
|
|
|
|
assertThat(underTest.isAnimatingAway()).isTrue()
|
|
|
|
assertThat(underTest.isAnimatingAway()).isTrue()
|
|
|
|
`when`(repository.primaryBouncerStartingDisappearAnimation.value).thenReturn(null)
|
|
|
|
whenever(repository.primaryBouncerStartingDisappearAnimation.value).thenReturn(null)
|
|
|
|
assertThat(underTest.isAnimatingAway()).isFalse()
|
|
|
|
assertThat(underTest.isAnimatingAway()).isFalse()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testWillDismissWithAction() {
|
|
|
|
fun testWillDismissWithAction() {
|
|
|
|
`when`(bouncerViewDelegate.willDismissWithActions()).thenReturn(true)
|
|
|
|
whenever(bouncerViewDelegate.willDismissWithActions()).thenReturn(true)
|
|
|
|
assertThat(underTest.willDismissWithAction()).isTrue()
|
|
|
|
assertThat(underTest.willDismissWithAction()).isTrue()
|
|
|
|
`when`(bouncerViewDelegate.willDismissWithActions()).thenReturn(false)
|
|
|
|
whenever(bouncerViewDelegate.willDismissWithActions()).thenReturn(false)
|
|
|
|
assertThat(underTest.willDismissWithAction()).isFalse()
|
|
|
|
assertThat(underTest.willDismissWithAction()).isFalse()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -363,12 +377,13 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() {
|
|
|
|
isUnlockingWithFpAllowed: Boolean,
|
|
|
|
isUnlockingWithFpAllowed: Boolean,
|
|
|
|
isAnimatingAway: Boolean
|
|
|
|
isAnimatingAway: Boolean
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
`when`(repository.primaryBouncerShow.value).thenReturn(isVisible)
|
|
|
|
whenever(repository.primaryBouncerShow.value).thenReturn(isVisible)
|
|
|
|
resources.addOverride(R.bool.config_show_sidefps_hint_on_bouncer, sfpsEnabled)
|
|
|
|
resources.addOverride(R.bool.config_show_sidefps_hint_on_bouncer, sfpsEnabled)
|
|
|
|
`when`(keyguardUpdateMonitor.isFingerprintDetectionRunning).thenReturn(fpsDetectionRunning)
|
|
|
|
whenever(keyguardUpdateMonitor.isFingerprintDetectionRunning)
|
|
|
|
`when`(keyguardUpdateMonitor.isUnlockingWithFingerprintAllowed)
|
|
|
|
.thenReturn(fpsDetectionRunning)
|
|
|
|
|
|
|
|
whenever(keyguardUpdateMonitor.isUnlockingWithFingerprintAllowed)
|
|
|
|
.thenReturn(isUnlockingWithFpAllowed)
|
|
|
|
.thenReturn(isUnlockingWithFpAllowed)
|
|
|
|
`when`(repository.primaryBouncerStartingDisappearAnimation.value)
|
|
|
|
whenever(repository.primaryBouncerStartingDisappearAnimation.value)
|
|
|
|
.thenReturn(if (isAnimatingAway) Runnable {} else null)
|
|
|
|
.thenReturn(if (isAnimatingAway) Runnable {} else null)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|