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()); |
} |
} |