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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcherTest.java

Issue 2331773002: Take Murmur2 hash of untransformed icon when creating WebAPK part 2/2 (Closed)
Patch Set: Created 4 years, 3 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/webapps/ManifestUpgradeDetectorFetcherTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcherTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcherTest.java
index 1f6480ffcaabcd9ffc4df66adf6589ed1347414f..bb9a00a123fa5084a41cd943f7fcc1465b772d8c 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcherTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcherTest.java
@@ -45,17 +45,29 @@ public class ManifestUpgradeDetectorFetcherTest extends ChromeTabbedActivityTest
// callback is called.
private static class CallbackWaiter
extends CallbackHelper implements ManifestUpgradeDetectorFetcher.Callback {
+ private boolean mIsWebApkCompatible;
private String mName;
@Override
public void onGotManifestData(String startUrl, String scopeUrl, String name,
- String shortName, String iconUrl, long iconMurmur2Hash, Bitmap iconBitmap,
+ String shortName, String iconUrl, String iconMurmur2Hash, Bitmap iconBitmap,
int displayMode, int orientation, long themeColor, long backgroundColor) {
assertNull(mName);
mName = name;
+ mIsWebApkCompatible = true;
notifyCalled();
}
+ @Override
+ public void onGotNonWebApkCompatibleManifest() {
+ mIsWebApkCompatible = false;
+ notifyCalled();
+ }
+
+ public boolean isWebApkCompatible() {
+ return mIsWebApkCompatible;
+ }
+
public String name() {
return mName;
}
@@ -112,6 +124,7 @@ public class ManifestUpgradeDetectorFetcherTest extends ChromeTabbedActivityTest
waiter.waitForCallback(0);
assertEquals(WEB_MANIFEST_NAME1, waiter.name());
+ assertTrue(waiter.isWebApkCompatible());
}
/**
@@ -132,5 +145,44 @@ public class ManifestUpgradeDetectorFetcherTest extends ChromeTabbedActivityTest
waiter.waitForCallback(0);
assertEquals(WEB_MANIFEST_NAME2, waiter.name());
+ assertTrue(waiter.isWebApkCompatible());
+ }
+
+ /**
+ * Test that ManifestUpgradeDetectorFetcher classifies a page as "not WebAPK compatible" if it
+ * does not have a service worker.
+ */
+ @MediumTest
+ @Feature({"Webapps"})
+ public void testNoServiceWorkerNotInstallable() throws Exception {
Xi Han 2016/09/12 19:19:05 This test doesn't seem to be related to the change
pkotwicz 2016/09/12 19:43:59 Yes, there are many error cases. The service worke
Xi Han 2016/09/12 19:58:49 I understand since you added the remaining parts o
dominickn 2016/09/13 01:09:35 I'd prefer if you split these tests into a separat
+ CallbackWaiter waiter = new CallbackWaiter();
+ startManifestUpgradeDetectorFetcher(mTestServer.getURL(WEB_MANIFEST_SCOPE),
+ mTestServer.getURL("/chrome/test/data/banners/manifest.json"), waiter);
+
+ TabLoadObserver tabLoadObserver = new TabLoadObserver(mTab);
+ tabLoadObserver.fullyLoadUrl(
+ mTestServer.getURL("/chrome/test/data/banners/manifest_no_service_worker.html"));
+ waiter.waitForCallback(0);
+
+ assertFalse(waiter.isWebApkCompatible());
+ }
+
+ /**
+ * Test that ManifestUpgradeDetectorFetcher classifies a Web Manifest as "not WebAPK compatible"
+ * if the Web Manifest points to a corrupted icon.
+ */
+ @MediumTest
+ @Feature({"Webapps"})
+ public void testCorruptedIconNotInstallable() throws Exception {
Xi Han 2016/09/12 19:19:05 This sounds like another test for data.is_installa
pkotwicz 2016/09/12 19:43:59 The reason that I have two tests is that the corru
Xi Han 2016/09/12 19:58:49 Agree, this one is definitely needs to be kept.
+ CallbackWaiter waiter = new CallbackWaiter();
+ startManifestUpgradeDetectorFetcher(mTestServer.getURL(WEB_MANIFEST_SCOPE),
+ mTestServer.getURL("/chrome/test/data/banners/manifest_bad_icon.json"), waiter);
+
+ TabLoadObserver tabLoadObserver = new TabLoadObserver(mTab);
+ tabLoadObserver.fullyLoadUrl(
+ mTestServer.getURL("/chrome/test/data/banners/manifest_bad_icon_test_page.html"));
+ waiter.waitForCallback(0);
+
+ assertFalse(waiter.isWebApkCompatible());
}
}

Powered by Google App Engine
This is Rietveld 408576698