package com.android.systemui.statusbar import org.mockito.Mockito.`when` as whenever import android.testing.AndroidTestingRunner import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController import com.android.systemui.statusbar.policy.FakeConfigurationController import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock import org.mockito.Mockito.intThat import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations @RunWith(AndroidTestingRunner::class) @SmallTest class SingleShadeLockScreenOverScrollerTest : SysuiTestCase() { @Mock private lateinit var statusBarStateController: SysuiStatusBarStateController @Mock private lateinit var nsslController: NotificationStackScrollLayoutController private lateinit var overScroller: SingleShadeLockScreenOverScroller @Before fun setUp() { MockitoAnnotations.initMocks(this) whenever(nsslController.height).thenReturn(1800) overScroller = SingleShadeLockScreenOverScroller( FakeConfigurationController(), context, statusBarStateController, nsslController ) } @Test fun setDragDownAmount_onKeyguard_overScrolls() { whenever(statusBarStateController.state).thenReturn(StatusBarState.KEYGUARD) overScroller.expansionDragDownAmount = 10f verify(nsslController).setOverScrollAmount(intThat { it > 0 }) } @Test fun setDragDownAmount_notOnKeyguard_doesNotOverScroll() { whenever(statusBarStateController.state).thenReturn(StatusBarState.SHADE) overScroller.expansionDragDownAmount = 10f verify(nsslController).setOverScrollAmount(0) } }