Add tests for shouldAnimate and onDoneButtonClicked
Test: atest com.android.systemui.qs.QSDetailTest Bug: 180399488 Change-Id: Ic19f545c5a5e691731ce8aee3c05f4ab6268a5c0
This commit is contained in:
@@ -37,6 +37,7 @@ import android.widget.LinearLayout;
|
||||
import android.widget.Switch;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.systemui.Dependency;
|
||||
@@ -57,7 +58,8 @@ public class QSDetail extends LinearLayout {
|
||||
private ViewGroup mDetailContent;
|
||||
protected TextView mDetailSettingsButton;
|
||||
protected TextView mDetailDoneButton;
|
||||
private QSDetailClipper mClipper;
|
||||
@VisibleForTesting
|
||||
QSDetailClipper mClipper;
|
||||
private DetailAdapter mDetailAdapter;
|
||||
private QSPanelController mQsPanelController;
|
||||
|
||||
|
||||
@@ -20,7 +20,9 @@ import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Matchers.eq;
|
||||
import static org.mockito.Mockito.clearInvocations;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@@ -75,6 +77,7 @@ public class QSDetailTest extends SysuiTestCase {
|
||||
mQsPanelController = mock(QSPanelController.class);
|
||||
mQuickHeader = mock(QuickStatusBarHeader.class);
|
||||
mQsDetail.setQsPanel(mQsPanelController, mQuickHeader, mock(QSFooter.class));
|
||||
mQsDetail.mClipper = mock(QSDetailClipper.class);
|
||||
|
||||
mMockDetailAdapter = mock(DetailAdapter.class);
|
||||
when(mMockDetailAdapter.createDetailView(any(), any(), any()))
|
||||
@@ -114,6 +117,62 @@ public class QSDetailTest extends SysuiTestCase {
|
||||
assertEquals(QSUserSwitcherEvent.QS_USER_DETAIL_CLOSE.getId(), mUiEventLogger.eventId(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testShowDetail_ShouldAnimate() {
|
||||
mTestableLooper.processAllMessages();
|
||||
|
||||
when(mMockDetailAdapter.shouldAnimate()).thenReturn(true);
|
||||
mQsDetail.setFullyExpanded(true);
|
||||
|
||||
mQsDetail.handleShowingDetail(mMockDetailAdapter, 0, 0, false);
|
||||
verify(mQsDetail.mClipper).updateCircularClip(eq(true) /* animate */, anyInt(), anyInt(),
|
||||
eq(true) /* in */, any());
|
||||
clearInvocations(mQsDetail.mClipper);
|
||||
|
||||
mQsDetail.handleShowingDetail(null, 0, 0, false);
|
||||
verify(mQsDetail.mClipper).updateCircularClip(eq(true) /* animate */, anyInt(), anyInt(),
|
||||
eq(false) /* in */, any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testShowDetail_ShouldNotAnimate() {
|
||||
mTestableLooper.processAllMessages();
|
||||
|
||||
when(mMockDetailAdapter.shouldAnimate()).thenReturn(false);
|
||||
mQsDetail.setFullyExpanded(true);
|
||||
|
||||
mQsDetail.handleShowingDetail(mMockDetailAdapter, 0, 0, false);
|
||||
verify(mQsDetail.mClipper).updateCircularClip(eq(false) /* animate */, anyInt(), anyInt(),
|
||||
eq(true) /* in */, any());
|
||||
clearInvocations(mQsDetail.mClipper);
|
||||
|
||||
mQsDetail.handleShowingDetail(null, 0, 0, false);
|
||||
verify(mQsDetail.mClipper).updateCircularClip(eq(false) /* animate */, anyInt(), anyInt(),
|
||||
eq(false) /* in */, any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDoneButton_CloseDetailPanel() {
|
||||
mTestableLooper.processAllMessages();
|
||||
|
||||
when(mMockDetailAdapter.onDoneButtonClicked()).thenReturn(false);
|
||||
|
||||
mQsDetail.handleShowingDetail(mMockDetailAdapter, 0, 0, false);
|
||||
mQsDetail.requireViewById(android.R.id.button1).performClick();
|
||||
verify(mQsPanelController).closeDetail();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDoneButton_KeepDetailPanelOpen() {
|
||||
mTestableLooper.processAllMessages();
|
||||
|
||||
when(mMockDetailAdapter.onDoneButtonClicked()).thenReturn(true);
|
||||
|
||||
mQsDetail.handleShowingDetail(mMockDetailAdapter, 0, 0, false);
|
||||
mQsDetail.requireViewById(android.R.id.button1).performClick();
|
||||
verify(mQsPanelController, never()).closeDetail();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMoreSettingsButton() {
|
||||
mTestableLooper.processAllMessages();
|
||||
|
||||
Reference in New Issue
Block a user