1 package com.android.systemui.statusbar 2 3 import org.mockito.Mockito.`when` as whenever 4 import android.testing.AndroidTestingRunner 5 import androidx.test.filters.SmallTest 6 import com.android.systemui.SysuiTestCase 7 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController 8 import com.android.systemui.statusbar.policy.FakeConfigurationController 9 import org.junit.Before 10 import org.junit.Test 11 import org.junit.runner.RunWith 12 import org.mockito.Mock 13 import org.mockito.Mockito.intThat 14 import org.mockito.Mockito.verify 15 import org.mockito.MockitoAnnotations 16 17 @RunWith(AndroidTestingRunner::class) 18 @SmallTest 19 class SingleShadeLockScreenOverScrollerTest : SysuiTestCase() { 20 21 @Mock private lateinit var statusBarStateController: SysuiStatusBarStateController 22 @Mock private lateinit var nsslController: NotificationStackScrollLayoutController 23 24 private lateinit var overScroller: SingleShadeLockScreenOverScroller 25 26 @Before 27 fun setUp() { 28 MockitoAnnotations.initMocks(this) 29 whenever(nsslController.height).thenReturn(1800) 30 overScroller = 31 SingleShadeLockScreenOverScroller( 32 FakeConfigurationController(), 33 context, 34 statusBarStateController, 35 nsslController 36 ) 37 } 38 39 @Test 40 fun setDragDownAmount_onKeyguard_overScrolls() { 41 whenever(statusBarStateController.state).thenReturn(StatusBarState.KEYGUARD) 42 43 overScroller.expansionDragDownAmount = 10f 44 45 verify(nsslController).setOverScrollAmount(intThat { it > 0 }) 46 } 47 48 @Test 49 fun setDragDownAmount_notOnKeyguard_doesNotOverScroll() { 50 whenever(statusBarStateController.state).thenReturn(StatusBarState.SHADE) 51 52 overScroller.expansionDragDownAmount = 10f 53 54 verify(nsslController).setOverScrollAmount(0) 55 } 56 } 57