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

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: Nits. 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..d14ac2cb10bf594b142fac01ddd67018beb160e1 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
@@ -17,6 +17,8 @@ import org.chromium.base.ContextUtils;
import org.chromium.testing.local.LocalRobolectricTestRunner;
import org.chromium.webapk.lib.common.WebApkMetaDataKeys;
+import java.util.Map;
+
/**
* Tests WebApkMetaDataUtils.
*/
@@ -40,16 +42,62 @@ 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"};
+
+ 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(iconUrls.length, iconUrlAndIconMurmur2HashMap.keySet().size());
+ 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