diff options
| author | 2020-04-09 21:38:53 +0000 | |
|---|---|---|
| committer | 2020-04-09 21:38:53 +0000 | |
| commit | c7514c9f71ec8e2c3447b8e37cec1983fa0d2852 (patch) | |
| tree | 54124751e5e8f5426dea229735d2af3b1010a84e | |
| parent | d11054d31fcb1de11925c441fb971cb6da21dcfb (diff) | |
| parent | 39ce15fee5a55cea9d9609e68e3f68b3241ec46c (diff) | |
Merge "Add test for content inflation during row inflation" into rvc-dev
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java index be026f7884c3..1c6e5a36bd8a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java @@ -18,6 +18,8 @@ package com.android.systemui.statusbar.notification.row; import static android.app.NotificationManager.IMPORTANCE_DEFAULT; +import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_HEADS_UP; + import static junit.framework.Assert.assertNotNull; import static org.mockito.ArgumentMatchers.any; @@ -139,6 +141,7 @@ public class NotificationEntryManagerInflationTest extends SysuiTestCase { private NotificationRowBinderImpl mRowBinder; private Handler mHandler; private FakeExecutor mBgExecutor; + private RowContentBindStage mRowContentBindStage; @Before public void setUp() { @@ -147,10 +150,13 @@ public class NotificationEntryManagerInflationTest extends SysuiTestCase { mHandler = Handler.createAsync(TestableLooper.get(this).getLooper()); + // Add an action so heads up content views are made + Notification.Action action = new Notification.Action.Builder(null, null, null).build(); Notification notification = new Notification.Builder(mContext) .setSmallIcon(R.drawable.ic_person) .setContentTitle(TEST_TITLE) .setContentText(TEST_TEXT) + .setActions(action) .build(); mSbn = new SbnBuilder() .setNotification(notification) @@ -192,11 +198,11 @@ public class NotificationEntryManagerInflationTest extends SysuiTestCase { () -> mock(SmartReplyController.class), mock(ConversationNotificationProcessor.class), mBgExecutor); - RowContentBindStage stage = new RowContentBindStage( + mRowContentBindStage = new RowContentBindStage( binder, mock(NotifInflationErrorManager.class), mock(RowContentBindStageLogger.class)); - pipeline.setStage(stage); + pipeline.setStage(mRowContentBindStage); ArgumentCaptor<ExpandableNotificationRow> viewCaptor = ArgumentCaptor.forClass(ExpandableNotificationRow.class); @@ -232,7 +238,7 @@ public class NotificationEntryManagerInflationTest extends SysuiTestCase { "FOOBAR", "FOOBAR", mKeyguardBypassController, mGroupManager, - stage, + mRowContentBindStage, mock(NotificationLogger.class), mHeadsUpManager, mPresenter, @@ -256,7 +262,7 @@ public class NotificationEntryManagerInflationTest extends SysuiTestCase { mRemoteInputManager, mLockscreenUserManager, pipeline, - stage, + mRowContentBindStage, mNotificationInterruptionStateProvider, RowInflaterTask::new, mExpandableNotificationRowComponentBuilder, @@ -365,6 +371,27 @@ public class NotificationEntryManagerInflationTest extends SysuiTestCase { verify(mPresenter).updateNotificationViews(); } + @Test + public void testContentViewInflationDuringRowInflationInflatesCorrectViews() { + // GIVEN a notification is added and the row is inflating + mEntryManager.addNotification(mSbn, mRankingMap); + ArgumentCaptor<NotificationEntry> entryCaptor = ArgumentCaptor.forClass( + NotificationEntry.class); + verify(mEntryListener).onPendingEntryAdded(entryCaptor.capture()); + NotificationEntry entry = entryCaptor.getValue(); + + // WHEN we try to bind a content view + mRowContentBindStage.getStageParams(entry).requireContentViews(FLAG_CONTENT_VIEW_HEADS_UP); + mRowContentBindStage.requestRebind(entry, null); + + waitForInflation(); + + // THEN the notification has its row and all relevant content views inflated + assertNotNull(entry.getRow()); + assertNotNull(entry.getRow().getPrivateLayout().getContractedChild()); + assertNotNull(entry.getRow().getPrivateLayout().getHeadsUpChild()); + } + /** * Wait for inflation to finish. * |