NotificationTest.java revision 9acd673c0deb2652a55c52b9b80515d84b1945dc
18a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds/* 28a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds * Copyright (C) 2017 The Android Open Source Project 38a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds * 48a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds * Licensed under the Apache License, Version 2.0 (the "License"); 58a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds * you may not use this file except in compliance with the License. 68a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds * You may obtain a copy of the License at 78a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds * 88a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds * http://www.apache.org/licenses/LICENSE-2.0 98a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds * 108a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds * Unless required by applicable law or agreed to in writing, software 118a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds * distributed under the License is distributed on an "AS IS" BASIS, 128a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds * See the License for the specific language governing permissions and 148a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds * limitations under the License 158a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds */ 168a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 178a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldspackage com.android.server.notification; 188a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 198a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport static junit.framework.Assert.assertEquals; 208a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport static junit.framework.Assert.assertNotNull; 218a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport static junit.framework.Assert.assertNull; 228a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 237217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynoldsimport static org.junit.Assert.assertFalse; 248a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport static org.junit.Assert.assertTrue; 257217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynoldsimport static org.mockito.Mockito.mock; 268a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport static org.mockito.Mockito.spy; 278a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport static org.mockito.Mockito.when; 288a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 298a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport android.app.ActivityManager; 308a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport android.app.Notification; 319acd673c0deb2652a55c52b9b80515d84b1945dcSelim Cinekimport android.app.Person; 327217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynoldsimport android.app.PendingIntent; 337217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynoldsimport android.app.RemoteInput; 348a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport android.content.Context; 358a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport android.content.pm.ApplicationInfo; 367217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynoldsimport android.graphics.Bitmap; 378a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport android.graphics.Color; 387217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynoldsimport android.graphics.drawable.Icon; 397217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynoldsimport android.net.Uri; 408a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport android.os.Build; 418a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport android.support.test.filters.SmallTest; 428a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport android.support.test.runner.AndroidJUnit4; 437217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynoldsimport android.widget.RemoteViews; 448a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 4574f5e36f49b32baef90bf31bbbaf487c18002944Jason Monkimport com.android.server.UiServiceTestCase; 4674f5e36f49b32baef90bf31bbbaf487c18002944Jason Monk 478a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport org.junit.Before; 488a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport org.junit.Test; 498a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport org.junit.runner.RunWith; 508a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport org.mockito.Mock; 518a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynoldsimport org.mockito.MockitoAnnotations; 528a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 538a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds@RunWith(AndroidJUnit4.class) 548a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds@SmallTest 5574f5e36f49b32baef90bf31bbbaf487c18002944Jason Monkpublic class NotificationTest extends UiServiceTestCase { 568a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 578a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds @Mock 588a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds ActivityManager mAm; 598a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 608a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds @Before 618a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds public void setUp() { 628a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds MockitoAnnotations.initMocks(this); 638a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds } 648a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 658a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds @Test 668a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds public void testStripsExtendersInLowRamMode() { 678a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds Notification.Builder nb = new Notification.Builder(mContext, "channel"); 688a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds nb.extend(new Notification.CarExtender().setColor(Color.RED)); 698a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds nb.extend(new Notification.TvExtender().setChannelId("different channel")); 708a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds nb.extend(new Notification.WearableExtender().setDismissalId("dismiss")); 718a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds Notification before = nb.build(); 728a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 738a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds Notification after = Notification.Builder.maybeCloneStrippedForDelivery(before, true); 748a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 758a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertEquals("different channel", new Notification.TvExtender(before).getChannelId()); 768a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertNull(new Notification.TvExtender(after).getChannelId()); 778a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 788a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertEquals(Color.RED, new Notification.CarExtender(before).getColor()); 798a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertEquals(Notification.COLOR_DEFAULT, new Notification.CarExtender(after).getColor()); 808a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 818a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertEquals("dismiss", new Notification.WearableExtender(before).getDismissalId()); 828a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertNull(new Notification.WearableExtender(after).getDismissalId()); 838a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds } 848a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 858a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds @Test 868a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds public void testStripsRemoteViewsInLowRamMode() { 878a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds Context context = spy(getContext()); 888a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds ApplicationInfo ai = new ApplicationInfo(); 898a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds ai.targetSdkVersion = Build.VERSION_CODES.M; 908a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds when(context.getApplicationInfo()).thenReturn(ai); 918a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 928a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds final Notification.BigTextStyle style = new Notification.BigTextStyle() 938a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds .bigText("hello") 948a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds .setSummaryText("And the summary"); 958a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds Notification before = new Notification.Builder(context, "channel") 968a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds .setContentText("hi") 978a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds .setStyle(style) 988a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds .build(); 998a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 1008a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds Notification after = Notification.Builder.maybeCloneStrippedForDelivery(before, true); 1018a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertNotNull(before.contentView); 1028a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertNotNull(before.bigContentView); 1038a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertNotNull(before.headsUpContentView); 1048a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertNull(after.contentView); 1058a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertNull(after.bigContentView); 1068a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertNull(after.headsUpContentView); 1078a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds } 1088a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 1098a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds @Test 1108a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds public void testDoesNotStripsExtendersInNormalRamMode() { 1118a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds Notification.Builder nb = new Notification.Builder(mContext, "channel"); 1128a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds nb.extend(new Notification.CarExtender().setColor(Color.RED)); 1138a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds nb.extend(new Notification.TvExtender().setChannelId("different channel")); 1148a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds nb.extend(new Notification.WearableExtender().setDismissalId("dismiss")); 1158a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds Notification before = nb.build(); 1168a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds Notification after = Notification.Builder.maybeCloneStrippedForDelivery(before, false); 1178a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 1188a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertTrue(before == after); 1198a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 1208a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertEquals("different channel", new Notification.TvExtender(before).getChannelId()); 1218a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertEquals(Color.RED, new Notification.CarExtender(before).getColor()); 1228a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds assertEquals("dismiss", new Notification.WearableExtender(before).getDismissalId()); 1238a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds } 1247217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 1257217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 1267217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testStyleChangeVisiblyDifferent_noStyles() { 1277217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder n1 = new Notification.Builder(mContext, "test"); 1287217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder n2 = new Notification.Builder(mContext, "test"); 1297217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 1307217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertFalse(Notification.areStyledNotificationsVisiblyDifferent(n1, n2)); 1317217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 1327217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 1337217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 1347217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testStyleChangeVisiblyDifferent_noStyleToStyle() { 1357217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder n1 = new Notification.Builder(mContext, "test"); 1367217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder n2 = new Notification.Builder(mContext, "test") 1377217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.BigTextStyle()); 1387217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 1397217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areStyledNotificationsVisiblyDifferent(n1, n2)); 1407217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 1417217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 1427217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 1437217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testStyleChangeVisiblyDifferent_styleToNoStyle() { 1447217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder n2 = new Notification.Builder(mContext, "test"); 1457217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder n1 = new Notification.Builder(mContext, "test") 1467217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.BigTextStyle()); 1477217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 1487217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areStyledNotificationsVisiblyDifferent(n1, n2)); 1497217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 1507217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 1517217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 1527217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testStyleChangeVisiblyDifferent_changeStyle() { 1537217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder n1 = new Notification.Builder(mContext, "test") 1547217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.InboxStyle()); 1557217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder n2 = new Notification.Builder(mContext, "test") 1567217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.BigTextStyle()); 1577217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 1587217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areStyledNotificationsVisiblyDifferent(n1, n2)); 1597217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 1607217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 1617217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 1627217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testInboxTextChange() { 1637217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nInbox1 = new Notification.Builder(mContext, "test") 1647217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.InboxStyle().addLine("a").addLine("b")); 1657217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nInbox2 = new Notification.Builder(mContext, "test") 1667217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.InboxStyle().addLine("b").addLine("c")); 1677217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 1687217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nInbox1, nInbox2)); 1697217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 1707217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 1717217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 1727217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testBigTextTextChange() { 1737217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nBigText1 = new Notification.Builder(mContext, "test") 1747217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.BigTextStyle().bigText("something")); 1757217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nBigText2 = new Notification.Builder(mContext, "test") 1767217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.BigTextStyle().bigText("else")); 1777217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 1787217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nBigText1, nBigText2)); 1797217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 1807217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 1817217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 1827217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testBigPictureChange() { 1837217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nBigPic1 = new Notification.Builder(mContext, "test") 1847217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.BigPictureStyle().bigPicture(mock(Bitmap.class))); 1857217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nBigPic2 = new Notification.Builder(mContext, "test") 1867217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.BigPictureStyle().bigPicture(mock(Bitmap.class))); 1877217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 1887217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nBigPic1, nBigPic2)); 1897217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 1907217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 1917217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 1927217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testMessagingChange_text() { 1937217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nM1 = new Notification.Builder(mContext, "test") 1947217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.MessagingStyle("") 1957217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addMessage(new Notification.MessagingStyle.Message( 1969acd673c0deb2652a55c52b9b80515d84b1945dcSelim Cinek "a", 100, mock(Person.class)))); 1977217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nM2 = new Notification.Builder(mContext, "test") 1987217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.MessagingStyle("") 1997217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addMessage(new Notification.MessagingStyle.Message( 2009acd673c0deb2652a55c52b9b80515d84b1945dcSelim Cinek "a", 100, mock(Person.class))) 2017217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addMessage(new Notification.MessagingStyle.Message( 2029acd673c0deb2652a55c52b9b80515d84b1945dcSelim Cinek "b", 100, mock(Person.class))) 2037217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds ); 2047217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 2057217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nM1, nM2)); 2067217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 2077217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 2087217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 2097217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testMessagingChange_data() { 2107217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nM1 = new Notification.Builder(mContext, "test") 2117217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.MessagingStyle("") 2127217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addMessage(new Notification.MessagingStyle.Message( 2137217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds "a", 100, mock(Person.class)) 2147217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setData("text", mock(Uri.class)))); 2157217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nM2 = new Notification.Builder(mContext, "test") 2167217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.MessagingStyle("") 2177217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addMessage(new Notification.MessagingStyle.Message( 2187217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds "a", 100, mock(Person.class)))); 2197217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 2207217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nM1, nM2)); 2217217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 2227217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 2237217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 2247217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testMessagingChange_sender() { 2257217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Person a = mock(Person.class); 2267217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds when(a.getName()).thenReturn("A"); 2277217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Person b = mock(Person.class); 2287217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds when(b.getName()).thenReturn("b"); 2297217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nM1 = new Notification.Builder(mContext, "test") 2307217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.MessagingStyle("") 2317217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addMessage(new Notification.MessagingStyle.Message("a", 100, b))); 2327217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nM2 = new Notification.Builder(mContext, "test") 2337217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.MessagingStyle("") 2347217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addMessage(new Notification.MessagingStyle.Message("a", 100, a))); 2357217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 2367217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nM1, nM2)); 2377217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 2387217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 2397217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 2407217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testMessagingChange_key() { 2417217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Person a = mock(Person.class); 2427217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds when(a.getKey()).thenReturn("A"); 2437217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Person b = mock(Person.class); 2447217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds when(b.getKey()).thenReturn("b"); 2457217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nM1 = new Notification.Builder(mContext, "test") 2467217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.MessagingStyle("") 2477217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addMessage(new Notification.MessagingStyle.Message("a", 100, a))); 2487217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nM2 = new Notification.Builder(mContext, "test") 2497217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.MessagingStyle("") 2507217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addMessage(new Notification.MessagingStyle.Message("a", 100, b))); 2517217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 2527217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nM1, nM2)); 2537217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 2547217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 2557217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 2567217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testMessagingChange_ignoreTimeChange() { 2577217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nM1 = new Notification.Builder(mContext, "test") 2587217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.MessagingStyle("") 2597217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addMessage(new Notification.MessagingStyle.Message( 2609acd673c0deb2652a55c52b9b80515d84b1945dcSelim Cinek "a", 100, mock(Person.class)))); 2617217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder nM2 = new Notification.Builder(mContext, "test") 2627217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setStyle(new Notification.MessagingStyle("") 2637217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addMessage(new Notification.MessagingStyle.Message( 2649acd673c0deb2652a55c52b9b80515d84b1945dcSelim Cinek "a", 1000, mock(Person.class))) 2657217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds ); 2667217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 2677217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertFalse(Notification.areStyledNotificationsVisiblyDifferent(nM1, nM2)); 2687217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 2697217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 2707217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 2717217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testRemoteViews_nullChange() { 2727217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder n1 = new Notification.Builder(mContext, "test") 2737217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setContent(mock(RemoteViews.class)); 2747217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification.Builder n2 = new Notification.Builder(mContext, "test"); 2757217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areRemoteViewsChanged(n1, n2)); 2767217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 2777217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds n1 = new Notification.Builder(mContext, "test"); 2787217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds n2 = new Notification.Builder(mContext, "test") 2797217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setContent(mock(RemoteViews.class)); 2807217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areRemoteViewsChanged(n1, n2)); 2817217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 2827217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds n1 = new Notification.Builder(mContext, "test") 2837217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setCustomBigContentView(mock(RemoteViews.class)); 2847217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds n2 = new Notification.Builder(mContext, "test"); 2857217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areRemoteViewsChanged(n1, n2)); 2867217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 2877217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds n1 = new Notification.Builder(mContext, "test"); 2887217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds n2 = new Notification.Builder(mContext, "test") 2897217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setCustomBigContentView(mock(RemoteViews.class)); 2907217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areRemoteViewsChanged(n1, n2)); 2917217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 2927217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds n1 = new Notification.Builder(mContext, "test"); 2937217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds n2 = new Notification.Builder(mContext, "test"); 2947217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertFalse(Notification.areRemoteViewsChanged(n1, n2)); 2957217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 2967217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 2977217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 2987217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testActionsDifferent_null() { 2997217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification n1 = new Notification.Builder(mContext, "test") 3007217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build(); 3017217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification n2 = new Notification.Builder(mContext, "test") 3027217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build(); 3037217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 3047217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertFalse(Notification.areActionsVisiblyDifferent(n1, n2)); 3057217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 3067217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 3077217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 3087217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testActionsDifferentSame() { 3097217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds PendingIntent intent = mock(PendingIntent.class); 3107217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Icon icon = mock(Icon.class); 3117217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 3127217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification n1 = new Notification.Builder(mContext, "test") 3137217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent).build()) 3147217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build(); 3157217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification n2 = new Notification.Builder(mContext, "test") 3167217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent).build()) 3177217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build(); 3187217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 3197217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertFalse(Notification.areActionsVisiblyDifferent(n1, n2)); 3207217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 3217217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 3227217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 3237217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testActionsDifferentText() { 3247217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds PendingIntent intent = mock(PendingIntent.class); 3257217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Icon icon = mock(Icon.class); 3267217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 3277217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification n1 = new Notification.Builder(mContext, "test") 3287217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent).build()) 3297217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build(); 3307217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification n2 = new Notification.Builder(mContext, "test") 3317217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addAction(new Notification.Action.Builder(icon, "TEXT 2", intent).build()) 3327217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build(); 3337217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 3347217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areActionsVisiblyDifferent(n1, n2)); 3357217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 3367217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 3377217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 3387217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testActionsDifferentNumber() { 3397217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds PendingIntent intent = mock(PendingIntent.class); 3407217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Icon icon = mock(Icon.class); 3417217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 3427217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification n1 = new Notification.Builder(mContext, "test") 3437217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent).build()) 3447217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build(); 3457217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification n2 = new Notification.Builder(mContext, "test") 3467217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent).build()) 3477217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addAction(new Notification.Action.Builder(icon, "TEXT 2", intent).build()) 3487217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build(); 3497217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 3507217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areActionsVisiblyDifferent(n1, n2)); 3517217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 3527217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 3537217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 3547217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testActionsDifferentIntent() { 3557217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds PendingIntent intent1 = mock(PendingIntent.class); 3567217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds PendingIntent intent2 = mock(PendingIntent.class); 3577217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Icon icon = mock(Icon.class); 3587217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 3597217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification n1 = new Notification.Builder(mContext, "test") 3607217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent1).build()) 3617217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build(); 3627217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification n2 = new Notification.Builder(mContext, "test") 3637217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent2).build()) 3647217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build(); 3657217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 3667217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertFalse(Notification.areActionsVisiblyDifferent(n1, n2)); 3677217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 3687217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 3697217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds @Test 3705a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds public void testActionsMoreOptionsThanChoices() { 3715a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds PendingIntent intent1 = mock(PendingIntent.class); 3725a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds PendingIntent intent2 = mock(PendingIntent.class); 3735a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds Icon icon = mock(Icon.class); 3745a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds 3755a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds Notification n1 = new Notification.Builder(mContext, "test") 3765a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent1).build()) 3775a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds .addAction(new Notification.Action.Builder(icon, "TEXT 2", intent1) 3785a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds .addRemoteInput(new RemoteInput.Builder("a") 3795a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds .setChoices(new CharSequence[] {"i", "m"}) 3805a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds .build()) 3815a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds .build()) 3825a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds .build(); 3835a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds Notification n2 = new Notification.Builder(mContext, "test") 3845a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent2).build()) 3855a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds .addAction(new Notification.Action.Builder(icon, "TEXT 2", intent1).build()) 3865a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds .build(); 3875a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds 3885a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds assertTrue(Notification.areActionsVisiblyDifferent(n1, n2)); 3895a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds } 3905a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds 3915a366fbd819e17b420f8eb61f8b96434b71b8bb7Julia Reynolds @Test 3927217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds public void testActionsDifferentRemoteInputs() { 3937217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds PendingIntent intent = mock(PendingIntent.class); 3947217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Icon icon = mock(Icon.class); 3957217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 3967217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification n1 = new Notification.Builder(mContext, "test") 3977217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent) 3987217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addRemoteInput(new RemoteInput.Builder("a") 3997217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setChoices(new CharSequence[] {"i", "m"}) 4007217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build()) 4017217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build()) 4027217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build(); 4037217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds Notification n2 = new Notification.Builder(mContext, "test") 4047217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent) 4057217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .addRemoteInput(new RemoteInput.Builder("a") 4067217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .setChoices(new CharSequence[] {"t", "m"}) 4077217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build()) 4087217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build()) 4097217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds .build(); 4107217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds 4117217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds assertTrue(Notification.areActionsVisiblyDifferent(n1, n2)); 4127217dc9f769ccb6e4351011ea9887871c2a4ffb4Julia Reynolds } 4138a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds} 4148a3b45976542d8a52f8135875186f7bc9e8534cbJulia Reynolds 415