Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/notifications/StandardNotificationBuilderTest.java

Issue 2273033002: Add Notification images (Android without custom layouts) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@herodesktop
Patch Set: Fix EXTRA_PICTURE test Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/javatests/src/org/chromium/chrome/browser/notifications/StandardNotificationBuilderTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/StandardNotificationBuilderTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/StandardNotificationBuilderTest.java
index 36e34e9c1508087620f2f97df8602b865b2946f6..72c8d951c4ad013c5f844d238ed3c846e5a8d1d3 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/StandardNotificationBuilderTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/StandardNotificationBuilderTest.java
@@ -11,6 +11,7 @@ import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Color;
+import android.os.Build;
import android.test.InstrumentationTestCase;
import android.test.suitebuilder.annotation.SmallTest;
import android.text.SpannableStringBuilder;
@@ -25,19 +26,25 @@ import org.chromium.chrome.R;
@SuppressLint("NewApi")
@SuppressWarnings("deprecation") // For |icon| and |largeIcon| properties of Notification.
public class StandardNotificationBuilderTest extends InstrumentationTestCase {
- @SmallTest
- @Feature({"Browser", "Notifications"})
- public void testSetAll() {
+ private NotificationBuilderBase createAllOptionsBuilder(
+ PendingIntent[] outContentAndDeleteIntents) {
+ if (outContentAndDeleteIntents == null || outContentAndDeleteIntents.length != 2)
+ throw new IllegalArgumentException();
+
Context context = getInstrumentation().getTargetContext();
Intent contentIntent = new Intent("contentIntent");
- PendingIntent pendingContentIntent = PendingIntent.getBroadcast(
+ outContentAndDeleteIntents[0] = PendingIntent.getBroadcast(
context, 0 /* requestCode */, contentIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Intent deleteIntent = new Intent("deleteIntent");
- PendingIntent pendingDeleteIntent = PendingIntent.getBroadcast(
+ outContentAndDeleteIntents[1] = PendingIntent.getBroadcast(
context, 1 /* requestCode */, deleteIntent, PendingIntent.FLAG_UPDATE_CURRENT);
+ Bitmap image = Bitmap.createBitmap(
+ new int[] {Color.BLUE}, 1 /* width */, 1 /* height */, Bitmap.Config.ARGB_8888);
+ image = image.copy(Bitmap.Config.ARGB_8888, true /* isMutable */);
+
Bitmap largeIcon = Bitmap.createBitmap(
new int[] {Color.RED}, 1 /* width */, 1 /* height */, Bitmap.Config.ARGB_8888);
largeIcon = largeIcon.copy(Bitmap.Config.ARGB_8888, true /* isMutable */);
@@ -46,37 +53,67 @@ public class StandardNotificationBuilderTest extends InstrumentationTestCase {
new int[] {Color.GRAY}, 1 /* width */, 1 /* height */, Bitmap.Config.ARGB_8888);
actionIcon = actionIcon.copy(Bitmap.Config.ARGB_8888, true /* isMutable */);
- Notification notification =
- new StandardNotificationBuilder(context)
- .setSmallIcon(R.drawable.ic_chrome)
- .setLargeIcon(largeIcon)
- .setTitle("title")
- .setBody("body")
- .setOrigin("origin")
- .setTicker(new SpannableStringBuilder("ticker"))
- .setDefaults(Notification.DEFAULT_ALL)
- .setVibrate(new long[] {100L})
- .setContentIntent(pendingContentIntent)
- .setDeleteIntent(pendingDeleteIntent)
- .addAction(actionIcon, "button 1", null /* intent */)
- .addAction(actionIcon, "button 2", null /* intent */)
- .addSettingsAction(0 /* iconId */, "settings", null /* intent */)
- .build();
+ return new StandardNotificationBuilder(context)
+ .setTitle("title")
+ .setBody("body")
+ .setOrigin("origin")
+ .setTicker(new SpannableStringBuilder("ticker"))
+ .setImage(image)
+ .setLargeIcon(largeIcon)
+ .setSmallIcon(R.drawable.ic_chrome)
+ .setDefaults(Notification.DEFAULT_ALL)
+ .setVibrate(new long[] {100L})
+ .setContentIntent(outContentAndDeleteIntents[0])
+ .setDeleteIntent(outContentAndDeleteIntents[1])
+ .addAction(actionIcon, "button 1", null /* intent */)
+ .addAction(actionIcon, "button 2", null /* intent */)
+ .addSettingsAction(0 /* iconId */, "settings", null /* intent */);
+ }
+
+ @SmallTest
+ @Feature({"Browser", "Notifications"})
+ public void testSetAll() {
+ PendingIntent[] contentAndDeleteIntents = new PendingIntent[2];
+ NotificationBuilderBase builder = createAllOptionsBuilder(contentAndDeleteIntents);
+ Notification notification = builder.build();
- assertEquals(R.drawable.ic_chrome, notification.icon);
- assertNotNull(notification.largeIcon);
assertEquals("title", notification.extras.getString(Notification.EXTRA_TITLE));
assertEquals("body", notification.extras.getString(Notification.EXTRA_TEXT));
assertEquals("origin", notification.extras.getString(Notification.EXTRA_SUB_TEXT));
assertEquals("ticker", notification.tickerText.toString());
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ // EXTRA_TEMPLATE was added in Android L; style cannot be verified in earlier versions.
+ assertEquals("android.app.Notification$BigPictureStyle",
+ notification.extras.getString(Notification.EXTRA_TEMPLATE));
+ }
+ Bitmap picture = (Bitmap) notification.extras.get(Notification.EXTRA_PICTURE);
+ assertNotNull(picture);
+ assertTrue(picture.getWidth() > 0 && picture.getHeight() > 0);
+ assertNotNull(notification.largeIcon);
+ assertEquals(R.drawable.ic_chrome, notification.icon);
assertEquals(Notification.DEFAULT_ALL, notification.defaults);
assertEquals(1, notification.vibrate.length);
assertEquals(100L, notification.vibrate[0]);
- assertEquals(pendingContentIntent, notification.contentIntent);
- assertEquals(pendingDeleteIntent, notification.deleteIntent);
+ assertEquals(contentAndDeleteIntents[0], notification.contentIntent);
+ assertEquals(contentAndDeleteIntents[1], notification.deleteIntent);
assertEquals(3, notification.actions.length);
assertEquals("button 1", notification.actions[0].title);
assertEquals("button 2", notification.actions[1].title);
assertEquals("settings", notification.actions[2].title);
}
+
+ @SmallTest
+ @Feature({"Browser", "Notifications"})
+ public void testBigTextStyle() {
+ PendingIntent[] contentAndDeleteIntents = new PendingIntent[2];
+ NotificationBuilderBase builder = createAllOptionsBuilder(contentAndDeleteIntents);
+ builder.setImage(null);
+ Notification notification = builder.build();
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ // EXTRA_TEMPLATE was added in Android L; style cannot be verified in earlier versions.
+ assertEquals("android.app.Notification$BigTextStyle",
+ notification.extras.getString(Notification.EXTRA_TEMPLATE));
+ }
+ }
}

Powered by Google App Engine
This is Rietveld 408576698