package com.android.systemui.qs import android.testing.AndroidTestingRunner import android.testing.TestableLooper import android.view.View import android.widget.FrameLayout import androidx.test.filters.SmallTest import com.android.systemui.R import com.android.systemui.SysuiTestCase import com.android.systemui.qs.customize.QSCustomizer import com.android.systemui.util.mockito.eq import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock import org.mockito.Mockito.anyInt import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations import org.mockito.Mockito.`when` as whenever @RunWith(AndroidTestingRunner::class) @TestableLooper.RunWithLooper @SmallTest class QSContainerImplTest : SysuiTestCase() { @Mock private lateinit var quickStatusBarHeader: QuickStatusBarHeader @Mock private lateinit var qsCustomizer: QSCustomizer @Mock private lateinit var qsPanelContainer: NonInterceptingScrollView @Mock private lateinit var qsPanelController: QSPanelController @Mock private lateinit var quickStatusBarHeaderController: QuickStatusBarHeaderController private lateinit var qsContainer: QSContainerImpl @Before fun setUp() { MockitoAnnotations.initMocks(this) qsContainer = QSContainerImpl(mContext, null) setUpMockView(quickStatusBarHeader, R.id.header) setUpMockView(qsCustomizer, R.id.qs_customize) setUpMockView(qsPanelContainer, R.id.expanded_qs_scroll_view) qsContainer.onFinishInflate() } private fun setUpMockView(view: View, id: Int) { whenever(view.findViewById(id)).thenReturn(view) whenever(view.layoutParams).thenReturn(FrameLayout.LayoutParams(0, 0)) qsContainer.addView(view) } @Test fun testContainerBottomPadding() { val originalPadding = qsPanelContainer.paddingBottom qsContainer.updateResources( qsPanelController, quickStatusBarHeaderController ) verify(qsPanelContainer) .setPaddingRelative( anyInt(), anyInt(), anyInt(), eq(originalPadding) ) } }