1 package com.android.systemui.qs
2 
3 import android.testing.AndroidTestingRunner
4 import androidx.test.filters.SmallTest
5 import com.android.systemui.SysuiTestCase
6 import org.junit.Before
7 import org.junit.Rule
8 import org.junit.Test
9 import org.junit.runner.RunWith
10 import org.mockito.Mock
11 import org.mockito.Mockito.never
12 import org.mockito.Mockito.verify
13 import org.mockito.junit.MockitoJUnit
14 
15 @RunWith(AndroidTestingRunner::class)
16 @SmallTest
17 class QSSquishinessControllerTest : SysuiTestCase() {
18 
19     @Mock private lateinit var qsAnimator: QSAnimator
20     @Mock private lateinit var qsPanelController: QSPanelController
21     @Mock private lateinit var quickQsPanelController: QuickQSPanelController
22 
23     @JvmField @Rule val mockitoRule = MockitoJUnit.rule()
24 
25     private lateinit var qsSquishinessController: QSSquishinessController
26 
27     @Before
28     fun setup() {
29         qsSquishinessController = QSSquishinessController(qsAnimator,
30                 qsPanelController, quickQsPanelController)
31     }
32 
33     @Test
34     fun setSquishiness_requestsAnimatorUpdate() {
35         qsSquishinessController.squishiness = 0.5f
36         verify(qsAnimator, never()).requestAnimatorUpdate()
37 
38         qsSquishinessController.squishiness = 0f
39         verify(qsAnimator).requestAnimatorUpdate()
40     }
41 
42     @Test
43     fun setSquishiness_updatesTiles() {
44         qsSquishinessController.squishiness = 0.5f
45         verify(qsPanelController).setSquishinessFraction(0.5f)
46         verify(quickQsPanelController).setSquishinessFraction(0.5f)
47     }
48 }