Chromium Code Reviews| Index: chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java |
| diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java |
| index 6b36fd83fce5d8b78f65321468e78618e4baef90..ae3a8fdb9b1fd1f5930b3963864cfb8603feb792 100644 |
| --- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java |
| +++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java |
| @@ -59,8 +59,10 @@ public class WebApkUpdateManagerTest { |
| private static final String SCOPE_URL = "/"; |
| private static final String NAME = "Long Name"; |
| private static final String SHORT_NAME = "Short Name"; |
| - private static final String ICON_URL = "/icon.png"; |
| - private static final String ICON_MURMUR2_HASH = "3"; |
| + private static final String PRIMARY_ICON_URL = "/icon.png"; |
| + private static final String PRIMARY_ICON_MURMUR2_HASH = "3"; |
| + private static final String BADGE_ICON_URL = "/badge.png"; |
| + private static final String BADGE_ICON_MURMUR2_HASH = "4"; |
| private static final int DISPLAY_MODE = WebDisplayMode.UNDEFINED; |
| private static final int ORIENTATION = ScreenOrientationValues.DEFAULT; |
| private static final long THEME_COLOR = 1L; |
| @@ -142,14 +144,14 @@ public class WebApkUpdateManagerTest { |
| } |
| @Override |
| - protected void scheduleUpdate(WebApkInfo info, String bestIconUrl, |
| + protected void scheduleUpdate(WebApkInfo info, String primaryIconUrl, String badgeIconUrl, |
| boolean isManifestStale) { |
| mUpdateName = info.name(); |
| - super.scheduleUpdate(info, bestIconUrl, isManifestStale); |
| + super.scheduleUpdate(info, primaryIconUrl, badgeIconUrl, isManifestStale); |
| } |
| @Override |
| - protected void updateAsyncImpl(WebApkInfo info, String bestIconUrl, |
| + protected void updateAsyncImpl(WebApkInfo info, String primaryIconUrl, String badgeIconUrl, |
| boolean isManifestStale) { |
| mUpdateRequested = true; |
| } |
| @@ -182,8 +184,9 @@ public class WebApkUpdateManagerTest { |
| public String name; |
| public String shortName; |
| public Map<String, String> iconUrlToMurmur2HashMap; |
| - public String bestIconUrl; |
| - public Bitmap bestIcon; |
| + public String primaryIconUrl; |
| + public Bitmap primaryIcon; |
| + public String badgeIconUrl; |
| public Bitmap badgeIcon; |
| public int displayMode; |
| public int orientation; |
| @@ -243,11 +246,13 @@ public class WebApkUpdateManagerTest { |
| manifestData.shortName = SHORT_NAME; |
| manifestData.iconUrlToMurmur2HashMap = new HashMap<>(); |
| - manifestData.iconUrlToMurmur2HashMap.put(ICON_URL, ICON_MURMUR2_HASH); |
| + manifestData.iconUrlToMurmur2HashMap.put(PRIMARY_ICON_URL, PRIMARY_ICON_MURMUR2_HASH); |
| + manifestData.iconUrlToMurmur2HashMap.put(BADGE_ICON_URL, BADGE_ICON_MURMUR2_HASH); |
| - manifestData.bestIconUrl = ICON_URL; |
| - manifestData.bestIcon = createBitmap(Color.GREEN); |
| - manifestData.badgeIcon = null; |
| + manifestData.primaryIconUrl = PRIMARY_ICON_URL; |
| + manifestData.primaryIcon = createBitmap(Color.GREEN); |
| + manifestData.badgeIconUrl = BADGE_ICON_URL; |
| + manifestData.badgeIcon = createBitmap(Color.BLUE); |
| manifestData.displayMode = DISPLAY_MODE; |
| manifestData.orientation = ORIENTATION; |
| manifestData.themeColor = THEME_COLOR; |
| @@ -260,7 +265,7 @@ public class WebApkUpdateManagerTest { |
| final String kPackageName = "org.random.webapk"; |
| return WebApkInfo.create(getWebApkId(kPackageName), "", false /* forceNavigation */, |
| - manifestData.scopeUrl, new WebApkInfo.Icon(manifestData.bestIcon), |
| + manifestData.scopeUrl, new WebApkInfo.Icon(manifestData.primaryIcon), |
| new WebApkInfo.Icon(manifestData.badgeIcon), manifestData.name, |
| manifestData.shortName, manifestData.displayMode, manifestData.orientation, -1, |
| manifestData.themeColor, manifestData.backgroundColor, kPackageName, -1, |
| @@ -297,8 +302,10 @@ public class WebApkUpdateManagerTest { |
| private static void onGotManifestData(WebApkUpdateManager updateManager, |
| ManifestData fetchedManifestData) { |
| - String bestIconUrl = randomIconUrl(fetchedManifestData); |
| - updateManager.onGotManifestData(infoFromManifestData(fetchedManifestData), bestIconUrl); |
| + String primaryIconUrl = randomIconUrl(fetchedManifestData); |
| + String badgeIconUrl = randomIconUrl(fetchedManifestData); |
| + updateManager.onGotManifestData( |
| + infoFromManifestData(fetchedManifestData), primaryIconUrl, badgeIconUrl); |
| } |
| private static String randomIconUrl(ManifestData fetchedManifestData) { |
| @@ -321,8 +328,8 @@ public class WebApkUpdateManagerTest { |
| new TestWebApkUpdateManager(getStorage(WEBAPK_PACKAGE_NAME)); |
| updateIfNeeded(updateManager); |
| assertTrue(updateManager.updateCheckStarted()); |
| - updateManager.onGotManifestData( |
| - infoFromManifestData(fetchedManifestData), fetchedManifestData.bestIconUrl); |
| + updateManager.onGotManifestData(infoFromManifestData(fetchedManifestData), |
| + fetchedManifestData.primaryIconUrl, fetchedManifestData.badgeIconUrl); |
| return updateManager.updateRequested(); |
| } |
| @@ -627,28 +634,59 @@ public class WebApkUpdateManagerTest { |
| /** |
| * Test that an upgrade is requested when: |
| - * - WebAPK was generated using icon at {@link ICON_URL} from Web Manifest. |
| - * - Bitmap at {@link ICON_URL} has changed. |
| + * - WebAPK was generated using icon at {@link PRIMARY_ICON_URL} from Web Manifest. |
| + * - Bitmap at {@link PRIMARY_ICON_URL} has changed. |
| + */ |
| + @Test |
| + public void testPrimaryIconChangeShouldUpgrade() { |
| + ManifestData fetchedData = defaultManifestData(); |
| + fetchedData.iconUrlToMurmur2HashMap.put( |
| + fetchedData.primaryIconUrl, PRIMARY_ICON_MURMUR2_HASH + "1"); |
| + fetchedData.primaryIcon = createBitmap(Color.BLUE); |
| + assertTrue(checkUpdateNeededForFetchedManifest(defaultManifestData(), fetchedData)); |
| + } |
| + |
| + /** |
| + * Test that an upgrade is requested when: |
| + * - WebAPK was generated using icon at {@link BADGE_ICON_URL} from Web Manifest. |
| + * - Bitmap at {@link BADGE_ICON_URL} has changed. |
| */ |
| @Test |
| - public void testHomescreenIconChangeShouldUpgrade() { |
| + public void testBadgeIconChangeShouldUpgrade() { |
| ManifestData fetchedData = defaultManifestData(); |
| - fetchedData.iconUrlToMurmur2HashMap.put(fetchedData.bestIconUrl, ICON_MURMUR2_HASH + "1"); |
| - fetchedData.bestIcon = createBitmap(Color.BLUE); |
| + fetchedData.iconUrlToMurmur2HashMap.put( |
| + fetchedData.badgeIconUrl, BADGE_ICON_MURMUR2_HASH + "1"); |
| + fetchedData.badgeIcon = createBitmap(Color.GREEN); |
| assertTrue(checkUpdateNeededForFetchedManifest(defaultManifestData(), fetchedData)); |
| } |
| /** |
| * Test that an upgrade is requested when: |
| - * - WebAPK is generated using icon at {@link ICON_URL} from Web Manifest. |
| + * - WebAPK is generated using icon at {@link PRIMARY_ICON_URL} from Web Manifest. |
| * - Web Manifest is updated to refer to different icon. |
|
pkotwicz
2017/06/07 21:22:23
Maybe change this point to:
"A new icon URL is add
F
2017/06/08 20:01:12
Done.
|
| */ |
| @Test |
| - public void testHomescreenBestIconUrlChangeShouldUpgrade() { |
| + public void testPrimaryIconUrlChangeShouldUpgrade() { |
| ManifestData fetchedData = defaultManifestData(); |
| fetchedData.iconUrlToMurmur2HashMap.clear(); |
|
pkotwicz
2017/06/07 21:22:23
I think that the test would be clearer if you did
F
2017/06/08 20:01:12
Done.
|
| fetchedData.iconUrlToMurmur2HashMap.put("/icon2.png", "22"); |
| - fetchedData.bestIconUrl = "/icon2.png"; |
| + fetchedData.primaryIconUrl = "/icon2.png"; |
| + fetchedData.iconUrlToMurmur2HashMap.put(BADGE_ICON_URL, BADGE_ICON_MURMUR2_HASH); |
| + assertTrue(checkUpdateNeededForFetchedManifest(defaultManifestData(), fetchedData)); |
| + } |
| + |
| + /** |
| + * Test that an upgrade is requested when: |
| + * - WebAPK is generated using icon at {@link BADGE_ICON_URL} from Web Manifest. |
| + * - Web Manifest is updated to refer to different icon. |
| + */ |
| + @Test |
| + public void testBadgeIconUrlChangeShouldUpgrade() { |
| + ManifestData fetchedData = defaultManifestData(); |
| + fetchedData.iconUrlToMurmur2HashMap.clear(); |
| + fetchedData.iconUrlToMurmur2HashMap.put(PRIMARY_ICON_URL, PRIMARY_ICON_MURMUR2_HASH); |
| + fetchedData.iconUrlToMurmur2HashMap.put("/badge2.png", "44"); |
| + fetchedData.badgeIconUrl = "/badge2.png"; |
| assertTrue(checkUpdateNeededForFetchedManifest(defaultManifestData(), fetchedData)); |
| } |
| @@ -656,45 +694,58 @@ public class WebApkUpdateManagerTest { |
| * Test that an upgrade is not requested if: |
| * - icon URL is added to the Web Manifest |
| * AND |
| - * - "best" icon URL for the launcher icon did not change. |
| + * - "best" icon URL for the primary icon did not change. |
| + * AND |
| + * - "best" icon URL for the badge icon did not change. |
| */ |
| @Test |
| - public void testIconUrlsChangeShouldNotUpgradeIfTheBestIconUrlDoesNotChange() { |
| + public void testIconUrlsChangeShouldNotUpgradeIfPrimaryIconUrlAndBadgeIconUrlDoNotChange() { |
| ManifestData fetchedData = defaultManifestData(); |
| fetchedData.iconUrlToMurmur2HashMap.clear(); |
|
pkotwicz
2017/06/07 21:22:23
I think that this test would also be clearer if yo
F
2017/06/08 20:01:12
Done.
|
| - fetchedData.iconUrlToMurmur2HashMap.put(ICON_URL, ICON_MURMUR2_HASH); |
| + fetchedData.iconUrlToMurmur2HashMap.put(PRIMARY_ICON_URL, PRIMARY_ICON_MURMUR2_HASH); |
| + fetchedData.iconUrlToMurmur2HashMap.put(BADGE_ICON_URL, BADGE_ICON_MURMUR2_HASH); |
| fetchedData.iconUrlToMurmur2HashMap.put("/icon2.png", null); |
| assertFalse(checkUpdateNeededForFetchedManifest(defaultManifestData(), fetchedData)); |
| } |
| /** |
| - * Test than upgrade is requested if: |
| + * Test than an upgrade is not requested if: |
|
pkotwicz
2017/06/07 21:22:23
Nit: than -> that
F
2017/06/08 20:01:12
Done.
|
| * - the WebAPK's meta data has murmur2 hashes for all of the icons. |
| * AND |
| * - the Web Manifest has not changed |
| * AND |
| - * - the computed best icon URL is different from the one stored in the WebAPK's meta data. |
| + * - the computed best icon URLs are different from the one stored in the WebAPK's meta data. |
| */ |
| @Test |
| public void testWebManifestSameButBestIconUrlChangedShouldNotUpgrade() { |
| String iconUrl1 = "/icon1.png"; |
| String iconUrl2 = "/icon2.png"; |
| + String badgeUrl1 = "/badge1.png"; |
| + String badgeUrl2 = "/badge2.pgn"; |
| String hash1 = "11"; |
| String hash2 = "22"; |
| + String hash3 = "33"; |
| + String hash4 = "44"; |
| - ManifestData oldData = defaultManifestData(); |
| - oldData.bestIconUrl = iconUrl1; |
| - oldData.iconUrlToMurmur2HashMap.clear(); |
| - oldData.iconUrlToMurmur2HashMap.put(iconUrl1, hash1); |
| - oldData.iconUrlToMurmur2HashMap.put(iconUrl2, hash2); |
| - |
| - ManifestData fetchedData = defaultManifestData(); |
| - fetchedData.bestIconUrl = iconUrl2; |
| - fetchedData.iconUrlToMurmur2HashMap.clear(); |
| - fetchedData.iconUrlToMurmur2HashMap.put(iconUrl1, null); |
| - fetchedData.iconUrlToMurmur2HashMap.put(iconUrl2, hash2); |
| - |
| - assertFalse(checkUpdateNeededForFetchedManifest(oldData, fetchedData)); |
| + ManifestData androidManifestData = defaultManifestData(); |
| + androidManifestData.primaryIconUrl = iconUrl1; |
| + androidManifestData.badgeIconUrl = badgeUrl1; |
| + androidManifestData.iconUrlToMurmur2HashMap.clear(); |
| + androidManifestData.iconUrlToMurmur2HashMap.put(iconUrl1, hash1); |
| + androidManifestData.iconUrlToMurmur2HashMap.put(iconUrl2, hash2); |
| + androidManifestData.iconUrlToMurmur2HashMap.put(badgeUrl1, hash3); |
| + androidManifestData.iconUrlToMurmur2HashMap.put(badgeUrl2, hash4); |
| + |
| + ManifestData fetchedManifestData = defaultManifestData(); |
| + fetchedManifestData.primaryIconUrl = iconUrl2; |
| + fetchedManifestData.badgeIconUrl = badgeUrl2; |
| + fetchedManifestData.iconUrlToMurmur2HashMap.clear(); |
| + fetchedManifestData.iconUrlToMurmur2HashMap.put(iconUrl1, null); |
| + fetchedManifestData.iconUrlToMurmur2HashMap.put(iconUrl2, hash2); |
| + fetchedManifestData.iconUrlToMurmur2HashMap.put(badgeUrl1, null); |
| + fetchedManifestData.iconUrlToMurmur2HashMap.put(badgeUrl2, hash4); |
| + |
| + assertFalse(checkUpdateNeededForFetchedManifest(androidManifestData, fetchedManifestData)); |
| } |
| @Test |