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

Unified Diff: chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtilsTest.java

Issue 2453423002: Send all of the icon URLs listed in Web Manifest to WebAPK Server. (Closed)
Patch Set: use space to separate icon_url and icon_hash. Created 4 years, 1 month 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/junit/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtilsTest.java
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtilsTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtilsTest.java
index 9e528769bc44e50a02879c6a767e6e82ed971f02..2d5c12a3b702a096f2dad25f0e9cc1875dc26b24 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtilsTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtilsTest.java
@@ -13,10 +13,14 @@ import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.chromium.base.CollectionUtil;
import org.chromium.base.ContextUtils;
import org.chromium.testing.local.LocalRobolectricTestRunner;
import org.chromium.webapk.lib.common.WebApkMetaDataKeys;
+import java.util.Map;
+import java.util.Set;
+
/**
* Tests WebApkMetaDataUtils.
*/
@@ -40,16 +44,63 @@ public class WebApkMetaDataUtilsTest {
}
/**
+ * Test that {@link WebApkMetaDataUtils.getIconUrlAndIconMurmur2HashMap} can read multiple icon
+ * URLs and multiple icon murmur2 hashes from metadata and returns a map with
+ * {icon URL, icon hash} pairs.
+ */
+ @Test
+ public void testGetIconUrlAndMurmur2HashFromMetaData() {
+ String[] iconUrls = {"/icon1.png", "/icon2.png"};
+ String[] hashes = {"1", "2"};
+ Set<String> iconUrlSet = CollectionUtil.newHashSet(iconUrls);
+
+ Bundle bundle = new Bundle();
+ bundle.putString(WebApkMetaDataKeys.ICON_URLS_AND_ICON_MURMUR2_HASHES,
+ getIconUrlsAndIconMurmur2HashesString(iconUrls, hashes));
+ Map<String, String> iconUrlAndIconMurmur2HashMap =
+ WebApkMetaDataUtils.getIconUrlAndIconMurmur2HashMap(bundle);
+
+ Assert.assertEquals(iconUrlSet, iconUrlAndIconMurmur2HashMap.keySet());
+ Assert.assertEquals(hashes[0], iconUrlAndIconMurmur2HashMap.get(iconUrls[0]));
+ Assert.assertEquals(hashes[1], iconUrlAndIconMurmur2HashMap.get(iconUrls[1]));
+ }
+
+ /**
* WebApkIconHasher generates hashes with values [0, 2^64-1]. 2^64-1 is greater than
- * {@link Long#MAX_VALUE}. Test that {@link #getIconMurmur2HashFromMetaData()} can read a hash
+ * {@link Long#MAX_VALUE}. Test that {@link #getIconUrlAndIconMurmur2HashMap()} can read a hash
* with value 2^64 - 1.
*/
@Test
public void testGetIconMurmur2HashFromMetaData() {
- String hash = "18446744073709551615"; // 2^64 - 1
+ String[] iconUrls = {"/icon1.png"};
+ String[] hashes = {"18446744073709551615"}; // 2^64 - 1
+
Bundle bundle = new Bundle();
- bundle.putString(WebApkMetaDataKeys.ICON_MURMUR2_HASH, hash + "L");
- String extractedHash = WebApkMetaDataUtils.getIconMurmur2HashFromMetaData(bundle);
- Assert.assertEquals(hash, extractedHash);
+ bundle.putString(WebApkMetaDataKeys.ICON_URLS_AND_ICON_MURMUR2_HASHES,
+ getIconUrlsAndIconMurmur2HashesString(iconUrls, hashes));
+ Map<String, String> iconUrlAndIconMurmur2HashMap =
+ WebApkMetaDataUtils.getIconUrlAndIconMurmur2HashMap(bundle);
+
+ Assert.assertEquals(1, iconUrlAndIconMurmur2HashMap.size());
+ Assert.assertEquals(hashes[0], iconUrlAndIconMurmur2HashMap.get(iconUrls[0]));
+ }
+
+ /**
+ * Create a WebAPK's icon URLs and icon murmur2 hashes metadata tag from the give URLs and
+ * hashes.
+ */
+ private String getIconUrlsAndIconMurmur2HashesString(String[] iconUrls,
+ String[] iconMurmur2Hahes) {
+ final String separator = " ";
+ StringBuilder iconUrlsAndIconMurmur2Hahses = new StringBuilder();
+ for (int i = 0; i < iconUrls.length; i++) {
+ iconUrlsAndIconMurmur2Hahses.append(iconUrls[i]);
+ iconUrlsAndIconMurmur2Hahses.append(separator);
+ iconUrlsAndIconMurmur2Hahses.append(iconMurmur2Hahes[i]);
+ if (i < iconUrls.length - 1) {
+ iconUrlsAndIconMurmur2Hahses.append(separator);
+ }
+ }
+ return iconUrlsAndIconMurmur2Hahses.toString();
}
}

Powered by Google App Engine
This is Rietveld 408576698