Merge "Verify URI permissions for notification shortcutIcon." into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
10ce511ed9
@@ -2838,6 +2838,8 @@ public class Notification implements Parcelable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
visitIconUri(visitor, extras.getParcelable(EXTRA_CONVERSATION_ICON));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isStyle(CallStyle.class) & extras != null) {
|
if (isStyle(CallStyle.class) & extras != null) {
|
||||||
|
|||||||
@@ -4319,6 +4319,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
|||||||
public void testVisitUris() throws Exception {
|
public void testVisitUris() throws Exception {
|
||||||
final Uri audioContents = Uri.parse("content://com.example/audio");
|
final Uri audioContents = Uri.parse("content://com.example/audio");
|
||||||
final Uri backgroundImage = Uri.parse("content://com.example/background");
|
final Uri backgroundImage = Uri.parse("content://com.example/background");
|
||||||
|
final Icon smallIcon = Icon.createWithContentUri("content://media/small/icon");
|
||||||
|
final Icon largeIcon = Icon.createWithContentUri("content://media/large/icon");
|
||||||
final Icon personIcon1 = Icon.createWithContentUri("content://media/person1");
|
final Icon personIcon1 = Icon.createWithContentUri("content://media/person1");
|
||||||
final Icon personIcon2 = Icon.createWithContentUri("content://media/person2");
|
final Icon personIcon2 = Icon.createWithContentUri("content://media/person2");
|
||||||
final Icon personIcon3 = Icon.createWithContentUri("content://media/person3");
|
final Icon personIcon3 = Icon.createWithContentUri("content://media/person3");
|
||||||
@@ -4352,7 +4354,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
|||||||
|
|
||||||
Notification n = new Notification.Builder(mContext, "a")
|
Notification n = new Notification.Builder(mContext, "a")
|
||||||
.setContentTitle("notification with uris")
|
.setContentTitle("notification with uris")
|
||||||
.setSmallIcon(android.R.drawable.sym_def_app_icon)
|
.setSmallIcon(smallIcon)
|
||||||
|
.setLargeIcon(largeIcon)
|
||||||
.addExtras(extras)
|
.addExtras(extras)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@@ -4360,6 +4363,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
|||||||
n.visitUris(visitor);
|
n.visitUris(visitor);
|
||||||
verify(visitor, times(1)).accept(eq(audioContents));
|
verify(visitor, times(1)).accept(eq(audioContents));
|
||||||
verify(visitor, times(1)).accept(eq(backgroundImage));
|
verify(visitor, times(1)).accept(eq(backgroundImage));
|
||||||
|
verify(visitor, times(1)).accept(eq(smallIcon.getUri()));
|
||||||
|
verify(visitor, times(1)).accept(eq(largeIcon.getUri()));
|
||||||
verify(visitor, times(1)).accept(eq(personIcon1.getUri()));
|
verify(visitor, times(1)).accept(eq(personIcon1.getUri()));
|
||||||
verify(visitor, times(1)).accept(eq(personIcon2.getUri()));
|
verify(visitor, times(1)).accept(eq(personIcon2.getUri()));
|
||||||
verify(visitor, times(1)).accept(eq(personIcon3.getUri()));
|
verify(visitor, times(1)).accept(eq(personIcon3.getUri()));
|
||||||
@@ -4367,6 +4372,68 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
|||||||
verify(visitor, times(1)).accept(eq(historyUri2));
|
verify(visitor, times(1)).accept(eq(historyUri2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testVisitUris_audioContentsString() throws Exception {
|
||||||
|
final Uri audioContents = Uri.parse("content://com.example/audio");
|
||||||
|
|
||||||
|
Bundle extras = new Bundle();
|
||||||
|
extras.putString(Notification.EXTRA_AUDIO_CONTENTS_URI, audioContents.toString());
|
||||||
|
|
||||||
|
Notification n = new Notification.Builder(mContext, "a")
|
||||||
|
.setContentTitle("notification with uris")
|
||||||
|
.setSmallIcon(android.R.drawable.sym_def_app_icon)
|
||||||
|
.addExtras(extras)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
Consumer<Uri> visitor = (Consumer<Uri>) spy(Consumer.class);
|
||||||
|
n.visitUris(visitor);
|
||||||
|
verify(visitor, times(1)).accept(eq(audioContents));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testVisitUris_messagingStyle() {
|
||||||
|
final Icon personIcon1 = Icon.createWithContentUri("content://media/person1");
|
||||||
|
final Icon personIcon2 = Icon.createWithContentUri("content://media/person2");
|
||||||
|
final Icon personIcon3 = Icon.createWithContentUri("content://media/person3");
|
||||||
|
final Person person1 = new Person.Builder()
|
||||||
|
.setName("Messaging Person 1")
|
||||||
|
.setIcon(personIcon1)
|
||||||
|
.build();
|
||||||
|
final Person person2 = new Person.Builder()
|
||||||
|
.setName("Messaging Person 2")
|
||||||
|
.setIcon(personIcon2)
|
||||||
|
.build();
|
||||||
|
final Person person3 = new Person.Builder()
|
||||||
|
.setName("Messaging Person 3")
|
||||||
|
.setIcon(personIcon3)
|
||||||
|
.build();
|
||||||
|
Icon shortcutIcon = Icon.createWithContentUri("content://media/shortcut");
|
||||||
|
|
||||||
|
Notification.Builder builder = new Notification.Builder(mContext, "a")
|
||||||
|
.setCategory(Notification.CATEGORY_MESSAGE)
|
||||||
|
.setContentTitle("new message!")
|
||||||
|
.setContentText("Conversation Notification")
|
||||||
|
.setSmallIcon(android.R.drawable.sym_def_app_icon);
|
||||||
|
Notification.MessagingStyle.Message message1 = new Notification.MessagingStyle.Message(
|
||||||
|
"Marco?", System.currentTimeMillis(), person2);
|
||||||
|
Notification.MessagingStyle.Message message2 = new Notification.MessagingStyle.Message(
|
||||||
|
"Polo!", System.currentTimeMillis(), person3);
|
||||||
|
Notification.MessagingStyle style = new Notification.MessagingStyle(person1)
|
||||||
|
.addMessage(message1)
|
||||||
|
.addMessage(message2)
|
||||||
|
.setShortcutIcon(shortcutIcon);
|
||||||
|
builder.setStyle(style);
|
||||||
|
Notification n = builder.build();
|
||||||
|
|
||||||
|
Consumer<Uri> visitor = (Consumer<Uri>) spy(Consumer.class);
|
||||||
|
n.visitUris(visitor);
|
||||||
|
|
||||||
|
verify(visitor, times(1)).accept(eq(shortcutIcon.getUri()));
|
||||||
|
verify(visitor, times(1)).accept(eq(personIcon1.getUri()));
|
||||||
|
verify(visitor, times(1)).accept(eq(personIcon2.getUri()));
|
||||||
|
verify(visitor, times(1)).accept(eq(personIcon3.getUri()));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testVisitUris_callStyle() {
|
public void testVisitUris_callStyle() {
|
||||||
Icon personIcon = Icon.createWithContentUri("content://media/person");
|
Icon personIcon = Icon.createWithContentUri("content://media/person");
|
||||||
@@ -4390,24 +4457,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
|||||||
verify(visitor, times(1)).accept(eq(verificationIcon.getUri()));
|
verify(visitor, times(1)).accept(eq(verificationIcon.getUri()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testVisitUris_audioContentsString() throws Exception {
|
|
||||||
final Uri audioContents = Uri.parse("content://com.example/audio");
|
|
||||||
|
|
||||||
Bundle extras = new Bundle();
|
|
||||||
extras.putString(Notification.EXTRA_AUDIO_CONTENTS_URI, audioContents.toString());
|
|
||||||
|
|
||||||
Notification n = new Notification.Builder(mContext, "a")
|
|
||||||
.setContentTitle("notification with uris")
|
|
||||||
.setSmallIcon(android.R.drawable.sym_def_app_icon)
|
|
||||||
.addExtras(extras)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
Consumer<Uri> visitor = (Consumer<Uri>) spy(Consumer.class);
|
|
||||||
n.visitUris(visitor);
|
|
||||||
verify(visitor, times(1)).accept(eq(audioContents));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSetNotificationPolicy_preP_setOldFields() {
|
public void testSetNotificationPolicy_preP_setOldFields() {
|
||||||
ZenModeHelper mZenModeHelper = mock(ZenModeHelper.class);
|
ZenModeHelper mZenModeHelper = mock(ZenModeHelper.class);
|
||||||
|
|||||||
Reference in New Issue
Block a user